Commit 58e62895 authored by Pietro Incardona's avatar Pietro Incardona

Support for vector operations

parent 57a0ee07
# Change Log # Change Log
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## [0.5.0] - mid July 2016 ## [0.5.0 - Gingold] - End July 2016
### Added ### Added
- map_list map communicate particles across processors mooving the information of all the particle map_list give the possibility to give a list of property to move from one to another processor - map communicate particles across processors mooving the information of all the particle map_list give the possibility to give a list of property to move from one to another processor
- Numeric: Finite Differences discretization with matrix contruction and parallel solvers - Numeric: Finite Differences discretization with matrix contruction and parallel solvers (See example ... )
- vector_dist now support complex object like Point VectorS Box ... , with no limitation
and more generic object like std::vector ... (WARNING TEMPORARY LIMITATION: Communication is not supported property must be excluded from communication using map_list and ghost_get)
- vector_dist support expressions (See example ...)
- No limit to ghost extension (they can be arbitrary extended)
- Multi-phase CellList
- Hilber curve data and computation reordering for cache firndliness
### Fixed ### Fixed
...@@ -94,5 +100,6 @@ All notable changes to this project will be documented in this file. ...@@ -94,5 +100,6 @@ All notable changes to this project will be documented in this file.
## [0.6.0] - Beginning of september ## [0.6.0] - Beginning of september
### Added ### Added
- Parallel IO, new formats, imroved writers - Parallel IO, new formats, improved writers
- Algebraic Multigrid solver
openfpm_data @ 9d44c008
Subproject commit 32c0433fe9cf7c125ef2ad019b80955e8f8a73c5 Subproject commit 9d44c008f04e855666b1ea15d02e681f2bfcf2e9
openfpm_io @ ca2becb0
Subproject commit 088fa4a38c15f09f48cc78165f56d327d1a399bb Subproject commit ca2becb045ef96fcf6287f8ef5da2314248bcb66
openfpm_numerics @ 6274ea12
Subproject commit 29d4f60747846e9f526ac03557904ec8ab93d413 Subproject commit 6274ea12ff26d87573f361a2b1b801cb1883e38c
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
#include "Vector/vector_dist_ofb.hpp" #include "Vector/vector_dist_ofb.hpp"
#include "Decomposition/CartDecomposition.hpp" #include "Decomposition/CartDecomposition.hpp"
#include "data_type/aggregate.hpp" #include "data_type/aggregate.hpp"
#include "vector_dist_operators.hpp"
#define V_SUB_UNIT_FACTOR 64 #define V_SUB_UNIT_FACTOR 64
...@@ -776,6 +775,12 @@ private: ...@@ -776,6 +775,12 @@ private:
public: public:
//! space type
typedef St stype;
//! dimensions of space
static const unsigned int dims = dim;
/*! \brief Constructor /*! \brief Constructor
* *
* \param np number of elements * \param np number of elements
...@@ -869,6 +874,20 @@ public: ...@@ -869,6 +874,20 @@ public:
return v_pos.template get<0>(vec_key.getKey()); return v_pos.template get<0>(vec_key.getKey());
} }
/*! \brief Get the position of an element
*
* see the vector_dist iterator usage to get an element key
*
* \param vec_key element
*
* \return the position of the element in space
*
*/
inline auto getPos(vect_dist_key_dx vec_key) const -> decltype(v_pos.template get<0>(vec_key.getKey()))
{
return v_pos.template get<0>(vec_key.getKey());
}
/*! \brief Get the property of an element /*! \brief Get the property of an element
* *
* see the vector_dist iterator usage to get an element key * see the vector_dist iterator usage to get an element key
...@@ -1627,15 +1646,6 @@ public: ...@@ -1627,15 +1646,6 @@ public:
#endif #endif
return v_cl; return v_cl;
} }
//////////////////////////// Vector expression implementation ////////////////////////
template <unsigned int prp> inline vector_dist_expression<prp,vector_dist<dim,St,prop,Decomposition,Memory> > getV()
{
vector_dist_expression<prp,vector_dist<dim,St,prop,Decomposition,Memory> > exp_v(*this);
return exp_v;
}
}; };
......
...@@ -39,7 +39,7 @@ public: ...@@ -39,7 +39,7 @@ public:
* \return the local key * \return the local key
* *
*/ */
inline size_t getKey() inline size_t getKey() const
{ {
return key; return key;
} }
......
This diff is collapsed.
This diff is collapsed.
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include "dec_optimizer_unit_test.hpp" #include "dec_optimizer_unit_test.hpp"
#include "Grid/grid_dist_id_unit_test.hpp" #include "Grid/grid_dist_id_unit_test.hpp"
#include "Vector/vector_dist_unit_test.hpp" #include "Vector/vector_dist_unit_test.hpp"
#include "Vector/vector_dist_operators_unit_tests.hpp"
#include "Decomposition/Distribution/Distribution_unit_tests.hpp" #include "Decomposition/Distribution/Distribution_unit_tests.hpp"
//#include "DLB/DLB_unit_test.hpp" //#include "DLB/DLB_unit_test.hpp"
#include "Graph/dist_map_graph_unit_test.hpp" #include "Graph/dist_map_graph_unit_test.hpp"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment