From a8e821cff01dd39434b7e32495dbbe4b4544e013 Mon Sep 17 00:00:00 2001
From: Pietro Incardona <incardon@mpi-cbg.de>
Date: Sun, 17 Dec 2017 12:29:09 +0100
Subject: [PATCH] Eliminating scalar data_type

---
 src/FiniteDifference/FDScheme.hpp            |  3 +--
 src/FiniteDifference/FDScheme_unit_tests.hpp |  8 ++++----
 src/FiniteDifference/eq.hpp                  |  1 -
 src/FiniteDifference/eq_unit_test.hpp        |  1 -
 src/FiniteDifference/eq_unit_test_3d.hpp     |  1 -
 src/FiniteDifference/mul.hpp                 |  6 +++---
 src/Vector/Vector_eigen.hpp                  | 10 ++++++++++
 src/Vector/Vector_petsc.hpp                  | 10 ++++++++++
 src/util/grid_dist_testing.hpp               |  3 +--
 src/util/util_num.hpp                        |  2 +-
 src/util/util_num_unit_tests.hpp             |  2 +-
 11 files changed, 31 insertions(+), 16 deletions(-)

diff --git a/src/FiniteDifference/FDScheme.hpp b/src/FiniteDifference/FDScheme.hpp
index 9f50ef2..7571826 100644
--- a/src/FiniteDifference/FDScheme.hpp
+++ b/src/FiniteDifference/FDScheme.hpp
@@ -12,7 +12,6 @@
 #include "Grid/grid_dist_id.hpp"
 #include "Grid/Iterators/grid_dist_id_iterator_sub.hpp"
 #include "eq.hpp"
-#include "data_type/scalar.hpp"
 #include "NN/CellList/CellDecomposer.hpp"
 #include "Grid/staggered_dist_grid_util.hpp"
 #include "Grid/grid_dist_id.hpp"
@@ -127,7 +126,7 @@ class FDScheme
 public:
 
 	//! Distributed grid map
-	typedef grid_dist_id<Sys_eqs::dims,typename Sys_eqs::stype,scalar<size_t>,typename Sys_eqs::b_grid::decomposition::extended_type> g_map_type;
+	typedef grid_dist_id<Sys_eqs::dims,typename Sys_eqs::stype,aggregate<size_t>,typename Sys_eqs::b_grid::decomposition::extended_type> g_map_type;
 
 	//! Type that specify the properties of the system of equations
 	typedef Sys_eqs Sys_eqs_typ;
diff --git a/src/FiniteDifference/FDScheme_unit_tests.hpp b/src/FiniteDifference/FDScheme_unit_tests.hpp
index 83dd6f9..43cc916 100644
--- a/src/FiniteDifference/FDScheme_unit_tests.hpp
+++ b/src/FiniteDifference/FDScheme_unit_tests.hpp
@@ -37,7 +37,7 @@ struct sys_nn
 	typedef float stype;
 
 	//! Base grid
-	typedef grid_dist_id<dims,stype,scalar<float>,CartDecomposition<2,stype> > b_grid;
+	typedef grid_dist_id<dims,stype,aggregate<float>,CartDecomposition<2,stype> > b_grid;
 
 	//! specify that we are on testing
 	typedef void testing;
@@ -60,7 +60,7 @@ struct sys_pp
 	typedef float stype;
 
 	//! Base grid
-	typedef grid_dist_id<dims,stype,scalar<float>,CartDecomposition<2,stype> > b_grid;
+	typedef grid_dist_id<dims,stype,aggregate<float>,CartDecomposition<2,stype> > b_grid;
 
 	//! Indicate we are on testing
 	typedef void testing;
@@ -89,7 +89,7 @@ struct syss_nn
 	typedef float stype;
 
 	//! Base grid
-	typedef grid_dist_id<dims,stype,scalar<float>,CartDecomposition<2,stype> > b_grid;
+	typedef grid_dist_id<dims,stype,aggregate<float>,CartDecomposition<2,stype> > b_grid;
 
 	//! Indicate we are on testing
 	typedef void testing;
@@ -115,7 +115,7 @@ struct syss_pp
 	typedef float stype;
 
 	//! Base grid
-	typedef grid_dist_id<dims,stype,scalar<float>,CartDecomposition<2,stype> > b_grid;
+	typedef grid_dist_id<dims,stype,aggregate<float>,CartDecomposition<2,stype> > b_grid;
 
 	//! Indicate we are on testing
 	typedef void testing;
diff --git a/src/FiniteDifference/eq.hpp b/src/FiniteDifference/eq.hpp
index 183437e..e141751 100644
--- a/src/FiniteDifference/eq.hpp
+++ b/src/FiniteDifference/eq.hpp
@@ -14,7 +14,6 @@
 //#define PERIODIC true
 //#define NON_PERIODIC false
 
-#include "data_type/scalar.hpp"
 #include "util/util_num.hpp"
 
 /*! \brief Equation
diff --git a/src/FiniteDifference/eq_unit_test.hpp b/src/FiniteDifference/eq_unit_test.hpp
index 97af130..099c3da 100644
--- a/src/FiniteDifference/eq_unit_test.hpp
+++ b/src/FiniteDifference/eq_unit_test.hpp
@@ -13,7 +13,6 @@
 #include "FiniteDifference/sum.hpp"
 #include "FiniteDifference/mul.hpp"
 #include "Grid/grid_dist_id.hpp"
-#include "data_type/scalar.hpp"
 #include "Decomposition/CartDecomposition.hpp"
 #include "Vector/Vector.hpp"
 #include "Solvers/umfpack_solver.hpp"
diff --git a/src/FiniteDifference/eq_unit_test_3d.hpp b/src/FiniteDifference/eq_unit_test_3d.hpp
index 368483b..26f6ad2 100644
--- a/src/FiniteDifference/eq_unit_test_3d.hpp
+++ b/src/FiniteDifference/eq_unit_test_3d.hpp
@@ -14,7 +14,6 @@
 #include "FiniteDifference/sum.hpp"
 #include "FiniteDifference/mul.hpp"
 #include "Grid/grid_dist_id.hpp"
-#include "data_type/scalar.hpp"
 #include "Decomposition/CartDecomposition.hpp"
 #include "Vector/Vector.hpp"
 #include "Solvers/umfpack_solver.hpp"
diff --git a/src/FiniteDifference/mul.hpp b/src/FiniteDifference/mul.hpp
index 84d481b..84e57f6 100644
--- a/src/FiniteDifference/mul.hpp
+++ b/src/FiniteDifference/mul.hpp
@@ -55,7 +55,7 @@ struct const_mul_functor_value
 	const grid_sm<last::dims,void> & gs;
 
 	//! grid mapping
-	const grid_dist_id<last::dims,typename last::stype,scalar<size_t>,typename last::b_grid::decomposition::extended_type> & g_map;
+	const grid_dist_id<last::dims,typename last::stype,aggregate<size_t>,typename last::b_grid::decomposition::extended_type> & g_map;
 
 	//! grid position
 	grid_dist_key_dx<last::dims> & kmap;
@@ -76,7 +76,7 @@ struct const_mul_functor_value
 	 * \param coeff multiplication coefficent
 	 *
 	 */
-	const_mul_functor_value(const grid_dist_id<last::dims,typename last::stype,scalar<size_t>,typename last::b_grid::decomposition::extended_type> & g_map,
+	const_mul_functor_value(const grid_dist_id<last::dims,typename last::stype,aggregate<size_t>,typename last::b_grid::decomposition::extended_type> & g_map,
 			                grid_dist_key_dx<last::dims> & kmap,
 							const grid_sm<last::dims,void> & gs,
 							typename last::stype (& spacing)[last::dims],
@@ -137,7 +137,7 @@ struct mul
 	 * \param coeff coefficent (constant in front of the derivative)
 	 *
 	 */
-	inline static void value(const grid_dist_id<Sys_eqs::dims,typename Sys_eqs::stype,scalar<size_t>,typename Sys_eqs::b_grid::decomposition::extended_type> & g_map,
+	inline static void value(const grid_dist_id<Sys_eqs::dims,typename Sys_eqs::stype,aggregate<size_t>,typename Sys_eqs::b_grid::decomposition::extended_type> & g_map,
 			                 grid_dist_key_dx<Sys_eqs::dims> & kmap,
 							 const grid_sm<Sys_eqs::dims,void> & gs,
 							 typename Sys_eqs::stype (& spacing )[Sys_eqs::dims],
diff --git a/src/Vector/Vector_eigen.hpp b/src/Vector/Vector_eigen.hpp
index 243ef5c..55751fc 100644
--- a/src/Vector/Vector_eigen.hpp
+++ b/src/Vector/Vector_eigen.hpp
@@ -75,6 +75,16 @@ public:
 		row() = i;
 		value() = val;
 	}
+
+	/*! \brief Indicate that the structure has no pointer
+	 *
+	 * \return true
+	 *
+	 */
+	static inline bool noPointers()
+	{
+		return true;
+	}
 };
 
 template<typename T>
diff --git a/src/Vector/Vector_petsc.hpp b/src/Vector/Vector_petsc.hpp
index 5e2c829..68735ae 100644
--- a/src/Vector/Vector_petsc.hpp
+++ b/src/Vector/Vector_petsc.hpp
@@ -78,6 +78,16 @@ public:
 		rw() = i;
 		val() = val;
 	}
+
+	/*! \brief Indicate that the structure has no pointer
+	 *
+	 * \return true
+	 *
+	 */
+	static inline bool noPointers()
+	{
+		return true;
+	}
 };
 
 constexpr unsigned int row_id = 0;
diff --git a/src/util/grid_dist_testing.hpp b/src/util/grid_dist_testing.hpp
index 13db514..cba4505 100644
--- a/src/util/grid_dist_testing.hpp
+++ b/src/util/grid_dist_testing.hpp
@@ -8,13 +8,12 @@
 #ifndef OPENFPM_NUMERICS_SRC_UTIL_GRID_DIST_TESTING_HPP_
 #define OPENFPM_NUMERICS_SRC_UTIL_GRID_DIST_TESTING_HPP_
 
-#include "data_type/scalar.hpp"
 #include "Grid/grid_dist_key.hpp"
 
 template<unsigned int dim>
 class grid_dist_testing
 {
-	grid_cpu<dim,scalar<size_t>> grid_test;
+	grid_cpu<dim,aggregate<size_t>> grid_test;
 
 public:
 
diff --git a/src/util/util_num.hpp b/src/util/util_num.hpp
index 2e3bbec..783f380 100644
--- a/src/util/util_num.hpp
+++ b/src/util/util_num.hpp
@@ -91,7 +91,7 @@ template<typename T, unsigned int dims, typename stype, typename decomposition>
 struct stub_or_real<T,dims,stype,decomposition,false>
 {
 	//! switch type if we are on testing or not
-	typedef grid_dist_id<dims,stype,scalar<size_t>,decomposition> type;
+	typedef grid_dist_id<dims,stype,aggregate<size_t>,decomposition> type;
 };
 
 #endif /* OPENFPM_NUMERICS_SRC_UTIL_UTIL_NUM_HPP_ */
diff --git a/src/util/util_num_unit_tests.hpp b/src/util/util_num_unit_tests.hpp
index 27a305a..986cc5e 100644
--- a/src/util/util_num_unit_tests.hpp
+++ b/src/util/util_num_unit_tests.hpp
@@ -97,7 +97,7 @@ BOOST_AUTO_TEST_CASE( util_num )
 	ret = std::is_same<stub_or_real<on_test,2,float,CartDecomposition<2,float>>::type, grid_dist_testing<2>>::value ;
 	BOOST_REQUIRE_EQUAL(ret,true);
 
-	ret = std::is_same<stub_or_real<not_on_test,2,float,CartDecomposition<2,float>>::type, grid_dist_id<2,float,scalar<size_t>,CartDecomposition<2,float>> >::value;
+	ret = std::is_same<stub_or_real<not_on_test,2,float,CartDecomposition<2,float>>::type, grid_dist_id<2,float,aggregate<size_t>,CartDecomposition<2,float>> >::value;
 	BOOST_REQUIRE_EQUAL(ret,true);
 
 	//! [Usage of stub_or_real]
-- 
GitLab