Distributed vector. More...
Distributed vector.
This class reppresent a distributed vector, the distribution of the structure is based on the positional information of the elements the vector store
dim | Dimensionality of the space where the elements lives |
St | type of space float, double ... |
prop | properties the vector element store in OpenFPM data structure format |
Decomposition | Decomposition strategy to use CartDecomposition ... |
Memory | Memory pool where store the information HeapMemory ... |
Definition at line 202 of file vector_dist.hpp.
#include <vector_dist.hpp>
Public Types | |
typedef vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > | self |
Self type. | |
typedef prop | value_type |
property object | |
typedef St | stype |
space type | |
Public Member Functions | |
vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > & | operator= (const vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > &v) |
Operator= for distributed vector. More... | |
vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > & | operator= (vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > &&v) |
Operator= for distributed vector. More... | |
vector_dist (const vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > &v) | |
Copy Constructor. More... | |
vector_dist (vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > &&v) noexcept | |
Copy constructor. More... | |
vector_dist (const Decomposition &dec, size_t np) | |
Constructor with predefined decomposition. More... | |
vector_dist (size_t np, Box< dim, St > box, const size_t(&bc)[dim], const Ghost< dim, St > &g, size_t opt=0, const grid_sm< dim, void > &gdist=grid_sm< dim, void >()) | |
Constructor of a distributed vector. More... | |
void | clear () |
remove all the elements More... | |
size_t | size_local () const |
return the local size of the vector More... | |
size_t | size_local_with_ghost () const |
return the local size of the vector More... | |
auto | getPos (vect_dist_key_dx vec_key) -> decltype(v_pos.template get< 0 >(vec_key.getKey())) |
Get the position of an element. More... | |
auto | getPos (vect_dist_key_dx vec_key) const -> decltype(v_pos.template get< 0 >(vec_key.getKey())) |
Get the position of an element. More... | |
auto | getPos (size_t vec_key) -> decltype(v_pos.template get< 0 >(vec_key)) |
Get the position of an element. More... | |
auto | getPos (size_t vec_key) const -> decltype(v_pos.template get< 0 >(vec_key)) |
Get the position of an element. More... | |
template<unsigned int id> | |
auto | getProp (vect_dist_key_dx vec_key) -> decltype(v_prp.template get< id >(vec_key.getKey())) |
Get the property of an element. More... | |
template<unsigned int id> | |
auto | getProp (vect_dist_key_dx vec_key) const -> decltype(v_prp.template get< id >(vec_key.getKey())) |
Get the property of an element. More... | |
template<unsigned int id> | |
auto | getProp (size_t vec_key) -> decltype(v_prp.template get< id >(vec_key)) |
Get the property of an element. More... | |
template<unsigned int id> | |
auto | getProp (size_t vec_key) const -> decltype(v_prp.template get< id >(vec_key)) |
Get the property of an element. More... | |
auto | getPosNC (vect_dist_key_dx vec_key) -> decltype(v_pos.template get< 0 >(vec_key.getKey())) |
Get the position of an element. More... | |
auto | getPosNC (vect_dist_key_dx vec_key) const -> decltype(v_pos.template get< 0 >(vec_key.getKey())) |
Get the position of an element. More... | |
auto | getPosNC (size_t vec_key) -> decltype(v_pos.template get< 0 >(vec_key)) |
Get the position of an element. More... | |
auto | getPosNC (size_t vec_key) const -> decltype(v_pos.template get< 0 >(vec_key)) |
Get the position of an element. More... | |
template<unsigned int id> | |
auto | getPropNC (vect_dist_key_dx vec_key) -> decltype(v_prp.template get< id >(vec_key.getKey())) |
Get the property of an element. More... | |
template<unsigned int id> | |
auto | getPropNC (vect_dist_key_dx vec_key) const -> decltype(v_prp.template get< id >(vec_key.getKey())) |
Get the property of an element. More... | |
template<unsigned int id> | |
auto | getPropNC (size_t vec_key) -> decltype(v_prp.template get< id >(vec_key)) |
Get the property of an element. More... | |
template<unsigned int id> | |
auto | getPropNC (size_t vec_key) const -> decltype(v_prp.template get< id >(vec_key)) |
Get the property of an element. More... | |
auto | getPosWrite (vect_dist_key_dx vec_key) -> decltype(v_pos.template get< 0 >(vec_key.getKey())) |
Get the position of an element. More... | |
auto | getPosRead (vect_dist_key_dx vec_key) const -> decltype(v_pos.template get< 0 >(vec_key.getKey())) |
Get the position of an element. More... | |
template<unsigned int id> | |
auto | getPropWrite (vect_dist_key_dx vec_key) -> decltype(v_prp.template get< id >(vec_key.getKey())) |
Get the property of an element. More... | |
template<unsigned int id> | |
auto | getPropRead (vect_dist_key_dx vec_key) const -> decltype(v_prp.template get< id >(vec_key.getKey())) |
Get the property of an element. More... | |
void | add () |
Add local particle. More... | |
auto | getLastPos () -> decltype(v_pos.template get< 0 >(0)) |
Get the position of the last element. More... | |
template<unsigned int id> | |
auto | getLastProp () -> decltype(v_prp.template get< id >(0)) |
Get the property of the last element. More... | |
auto | getLastPosRead () -> decltype(v_pos.template get< 0 >(0)) |
Get the position of the last element. More... | |
template<unsigned int id> | |
auto | getLastPropRead () -> decltype(v_prp.template get< id >(0)) |
Get the property of the last element. More... | |
auto | getLastPosWrite () -> decltype(v_pos.template get< 0 >(0)) |
Get the position of the last element. More... | |
template<unsigned int id> | |
auto | getLastPropWrite () -> decltype(v_prp.template get< id >(0)) |
Get the property of the last element. More... | |
template<typename CellL = CellList<dim, St, Mem_fast<>, shift<dim, St> >> | |
CellL | getCellListSym (St r_cut) |
Construct a cell list symmetric based on a cut of radius. More... | |
template<typename CellL = CellList<dim, St, Mem_fast<>, shift<dim, St> >> | |
CellL | getCellListSym (const size_t(&div)[dim], const size_t(&pad)[dim]) |
Construct a cell list symmetric based on a cut of radius. More... | |
template<typename CellL = CellList_gen<dim, St, Process_keys_lin, Mem_fast<>, shift<dim, St> >> | |
CellL | getCellList (St r_cut, bool no_se3=false) |
Construct a cell list starting from the stored particles. More... | |
template<typename CellL = CellList_gen<dim, St, Process_keys_hilb, Mem_fast<>, shift<dim, St> >> | |
CellL | getCellList_hilb (St r_cut) |
Construct an hilbert cell list starting from the stored particles. More... | |
template<typename CellL > | |
void | updateCellList (CellL &cell_list, bool no_se3=false) |
Update a cell list using the stored particles. More... | |
template<typename CellL = CellList<dim, St, Mem_fast<>, shift<dim, St> >> | |
void | updateCellListSym (CellL &cell_list) |
Update a cell list using the stored particles. More... | |
template<typename CellL = CellList_gen<dim, St, Process_keys_lin, Mem_fast<>, shift<dim, St> >> | |
CellL | getCellList (St r_cut, const Ghost< dim, St > &enlarge, bool no_se3=false) |
Construct a cell list starting from the stored particles. More... | |
template<typename CellL = CellList_gen<dim, St, Process_keys_hilb, Mem_fast<>, shift<dim, St> >> | |
CellL | getCellList_hilb (St r_cut, const Ghost< dim, St > &enlarge) |
Construct an hilbert cell list starting from the stored particles. More... | |
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St> >> | |
VerletL | getVerletSym (St r_cut) |
for each particle get the symmetric verlet list More... | |
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St> >> | |
VerletL | getVerletCrs (St r_cut) |
for each particle get the symmetric verlet list More... | |
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St> >> | |
VerletL | getVerlet (St r_cut) |
for each particle get the verlet list More... | |
template<typename Mem_type > | |
void | updateVerlet (VerletList< dim, St, Mem_type, shift< dim, St > > &ver, St r_cut, size_t opt=VL_NON_SYMMETRIC) |
for each particle get the verlet list More... | |
template<typename CellL = CellList_gen<dim,St,Process_keys_lin,Mem_bal<>,shift<dim,St> >> | |
void | reorder (int32_t m, reorder_opt opt=reorder_opt::HILBERT) |
Construct a cell list starting from the stored particles and reorder a vector according to the Hilberts curve. More... | |
template<typename CellL = CellList_gen<dim,St,Process_keys_lin,Mem_bal<>,shift<dim,St> >> | |
void | reorder (int32_t m, const Ghost< dim, St > &enlarge, reorder_opt opt=reorder_opt::HILBERT) |
Construct a cell list starting from the stored particles and reorder a vector according to the Hilberts curve. More... | |
size_t | init_size_accum (size_t np) |
It return the number of particles contained by the previous processors. More... | |
vector_dist_iterator | getIterator () |
Get an iterator that traverse domain and ghost particles. More... | |
grid_dist_id_iterator_dec < Decomposition > | getGridIterator (const size_t(&sz)[dim]) |
vector_dist_iterator | getGhostIterator () const |
Get the iterator across the position of the ghost particles. More... | |
vector_dist_iterator | getGhostIterator_no_se3 () const |
Get the iterator across the position of the ghost particles. More... | |
template<typename CellList > | |
ParticleIt_Cells< dim, CellList > | getDomainIteratorCells (CellList &NN) |
Get an iterator that traverse the particles in the domain using a cell list. More... | |
vector_dist_iterator | getDomainIterator () const |
Get an iterator that traverse the particles in the domain. More... | |
vector_dist_iterator | getDomainIterator_no_se3 () const |
Get an iterator that traverse the particles in the domain. More... | |
vector_dist_iterator | getDomainAndGhostIterator () const |
Get an iterator that traverse the particles in the domain. More... | |
vector_dist_iterator | getDomainAndGhostIterator_no_se3 () const |
Get an iterator that traverse the particles in the domain. More... | |
Decomposition & | getDecomposition () |
Get the decomposition. More... | |
const Decomposition & | getDecomposition () const |
Get the decomposition. More... | |
template<unsigned int... prp> | |
void | map_list (size_t opt=NONE) |
It move all the particles that does not belong to the local processor to the respective processor. More... | |
template<typename obp = KillParticle> | |
void | map (size_t opt=NONE) |
It move all the particles that does not belong to the local processor to the respective processor. More... | |
template<int... prp> | |
void | ghost_get (size_t opt=WITH_POSITION) |
It synchronize the properties and position of the ghost particles. More... | |
template<template< typename, typename > class op, int... prp> | |
void | ghost_put (size_t opt_=NONE) |
It synchronize the properties and position of the ghost particles. More... | |
void | remove (openfpm::vector< size_t > &keys, size_t start=0) |
Remove a set of elements from the distributed vector. More... | |
void | remove (size_t key) |
Remove one element from the distributed vector. More... | |
template<typename Model = ModelLin> | |
void | addComputationCosts (const self &vd, Model md=Model()) |
Add the computation cost on the decomposition coming from the particles. More... | |
template<typename Model = ModelLin> | |
void | finalizeComputationCosts (Model md=Model(), size_t ts=1) |
Add the computation cost on the decomposition coming from the particles. More... | |
void | initializeComputationCosts () |
Initialize the computational cost. More... | |
template<typename Model = ModelLin> | |
void | addComputationCosts (Model md=Model(), size_t ts=1) |
Add the computation cost on the decomposition coming from the particles. More... | |
void | save (const std::string &filename) const |
Save the distributed vector on HDF5 file. More... | |
void | load (const std::string &filename) |
Load the distributed vector from an HDF5 file. More... | |
bool | write (std::string out, int opt=VTK_WRITER) |
Output particle position and properties. More... | |
void | deleteGhost () |
Delete the particles on the ghost. More... | |
void | resize (size_t rs) |
Resize the vector (locally) More... | |
bool | write_frame (std::string out, size_t iteration, int opt=VTK_WRITER) |
Output particle position and properties. More... | |
void | getCellListParams (St r_cut, size_t(&div)[dim], Box< dim, St > &box, Ghost< dim, St > enlarge=Ghost< dim, St >(0.0)) |
Get the Celllist parameters. More... | |
long int | who () |
It return the id of structure in the allocation list. More... | |
Vcluster & | getVC () |
Get the Virtual Cluster machine. More... | |
const openfpm::vector< Point < dim, St > > & | getPosVector () const |
return the position vector of all the particles More... | |
openfpm::vector< Point< dim, St > > & | getPosVector () |
return the position vector of all the particles More... | |
const openfpm::vector< prop > & | getPropVector () const |
return the property vector of all the particles More... | |
openfpm::vector< prop > & | getPropVector () |
return the property vector of all the particles More... | |
size_t | accum () |
It return the sum of the particles in the previous processors. More... | |
template<typename cli > | |
ParticleItCRS_Cells< dim, cli > | getParticleIteratorCRS_Cell (cli &NN) |
Get a special particle iterator able to iterate across particles using symmetric crossing scheme. More... | |
void | setPropNames (const openfpm::vector< std::string > &names) |
Set the properties names. More... | |
template<typename vrl > | |
openfpm::vector_key_iterator_seq < typename vrl::Mem_type_type::loc_index > | getParticleIteratorCRS (vrl &NN) |
Get a special particle iterator able to iterate across particles using symmetric crossing scheme. More... | |
template<typename Celllist > | |
grid_key_dx< dim > | getCRSStart (Celllist &NN) |
Return from which cell we have to start in case of CRS interation scheme. More... | |
template<typename Celllist > | |
grid_key_dx< dim > | getCRSStop (Celllist &NN) |
Return from which cell we have to stop in case of CRS interation scheme. More... | |
![]() | |
vector_dist_comm (const vector_dist_comm< dim, St, prop, layout, layout_base, Decomposition, Memory > &v) | |
Copy Constructor. More... | |
vector_dist_comm (const Decomposition &dec) | |
Constructor. More... | |
vector_dist_comm (Decomposition &&dec) | |
Constructor. More... | |
vector_dist_comm () | |
Constructor. More... | |
~vector_dist_comm () | |
Destructor. More... | |
size_t | getDecompositionGranularity () |
Get the number of minimum sub-domain per processor. More... | |
void | setDecompositionGranularity (size_t n_sub) |
Set the minimum number of sub-domain per processor. More... | |
void | init_decomposition (Box< dim, St > &box, const size_t(&bc)[dim], const Ghost< dim, St > &g, size_t opt, const grid_sm< dim, void > &gdist) |
Initialize the decomposition. More... | |
template<int... prp> | |
void | ghost_get_ (openfpm::vector< Point< dim, St >> &v_pos, openfpm::vector< prop, Memory, typename layout_base< prop >::type, layout_base > &v_prp, size_t &g_m, size_t opt=WITH_POSITION) |
It synchronize the properties and position of the ghost particles. More... | |
template<unsigned int... prp> | |
void | map_list_ (openfpm::vector< Point< dim, St >> &v_pos, openfpm::vector< prop > &v_prp, size_t &g_m, size_t opt=NONE) |
It move all the particles that does not belong to the local processor to the respective processor. More... | |
template<typename obp = KillParticle> | |
void | map_ (openfpm::vector< Point< dim, St >> &v_pos, openfpm::vector< prop, Memory, typename layout_base< prop >::type, layout_base > &v_prp, size_t &g_m, size_t opt=NONE) |
It move all the particles that does not belong to the local processor to the respective processor. More... | |
Decomposition & | getDecomposition () |
Get the decomposition. More... | |
const Decomposition & | getDecomposition () const |
Get the decomposition. More... | |
vector_dist_comm< dim, St, prop, layout, layout_base, Decomposition, Memory > & | operator= (const vector_dist_comm< dim, St, prop, layout, layout_base, Decomposition, Memory > &vc) |
Copy a vector. More... | |
vector_dist_comm< dim, St, prop, layout, layout_base, Decomposition, Memory > & | operator= (vector_dist_comm< dim, St, prop, layout, layout_base, Decomposition, Memory > &&vc) |
Copy a vector. More... | |
template<template< typename, typename > class op, int... prp> | |
void | ghost_put_ (openfpm::vector< Point< dim, St >> &v_pos, openfpm::vector< prop > &v_prp, size_t &g_m, size_t opt) |
Ghost put. More... | |
Static Public Attributes | |
static const unsigned int | dims = dim |
dimensions of space | |
Private Member Functions | |
void | init_structures (size_t np) |
Initialize the structures. More... | |
void | check_parameters (Box< dim, St > &box) |
Check if the parameters describe a valid vector. In case it does not report an error. More... | |
void | check_ghost_compatible_rcut (St r_cut) |
It check that the r_cut is not bugger than the ghost. More... | |
template<typename CellL , typename sfc_it > | |
void | reorder_sfc (openfpm::vector< Point< dim, St >> &v_pos_dest, openfpm::vector< prop > &v_prp_dest, sfc_it &h_it, CellL &cell_list) |
Reorder based on hilbert space filling curve. More... | |
Private Attributes | |
size_t | g_m = 0 |
Ghost marker, all the particle with id > g_m are ghost all with g_m < are real particle. | |
openfpm::vector< Point< dim, St >, Memory > | v_pos |
openfpm::vector< prop, Memory, layout, layout_base > | v_prp |
Vcluster & | v_cl |
Virtual cluster. | |
size_t | opt = 0 |
option used to create this vector | |
openfpm::vector< std::string > | prp_names |
Name of the properties. | |
|
inline |
|
inlinenoexcept |
|
inline |
Constructor with predefined decomposition.
dec | is the decomposition |
np | number of particles |
Definition at line 442 of file vector_dist.hpp.
|
inline |
Constructor of a distributed vector.
np | number of elements |
box | domain where the vector of elements live |
bc | boundary conditions |
g | Ghost margins |
opt | [Optional] additional options. BIND_DEC_TO_GHOST Bind the decomposition to be multiple of the ghost size. This is required if we want to use symmetric to eliminate ghost communications. |
gdist | [Optional] override the default distribution grid |
Definition at line 469 of file vector_dist.hpp.
|
inline |
It return the sum of the particles in the previous processors.
Definition at line 2217 of file vector_dist.hpp.
|
inline |
Add local particle.
It add a local particle, with "local" we mean in this processor the particle can be also created out of the processor domain, in this case a call to map is required. Added particles are always created at the end and can be accessed with getLastPos and getLastProp
Definition at line 874 of file vector_dist.hpp.
|
inline |
Add the computation cost on the decomposition coming from the particles.
md | Model to use |
vd | external vector to add for the computational cost |
Definition at line 1913 of file vector_dist.hpp.
|
inline |
Add the computation cost on the decomposition coming from the particles.
md | Model to use |
ts | It is an optional parameter approximately should be the number of ghost get between two rebalancing at first decomposition this number can be ignored (default = 1) because not used |
Definition at line 1976 of file vector_dist.hpp.
|
inlineprivate |
It check that the r_cut is not bugger than the ghost.
r_cut | cut-off radius |
Definition at line 287 of file vector_dist.hpp.
|
inlineprivate |
Check if the parameters describe a valid vector. In case it does not report an error.
box | Box to check |
Definition at line 271 of file vector_dist.hpp.
|
inline |
remove all the elements
Definition at line 500 of file vector_dist.hpp.
|
inline |
Delete the particles on the ghost.
Definition at line 2055 of file vector_dist.hpp.
|
inline |
Add the computation cost on the decomposition coming from the particles.
md | Model to use |
ts | It is an optional parameter approximately should be the number of ghost get between two rebalancing at first decomposition this number can be ignored (default = 1) because not used |
Definition at line 1941 of file vector_dist.hpp.
|
inline |
Construct a cell list starting from the stored particles.
CellL | CellList type to construct |
r_cut | interation radius, or size of each cell |
no_se3 | avoid SE_CLASS3 checking |
Definition at line 1078 of file vector_dist.hpp.
|
inline |
Construct a cell list starting from the stored particles.
It differ from the get getCellList for an additional parameter, in case the domain + ghost is not big enough to contain additional padding particles, a Cell list with bigger space can be created (padding particles in general are particles added by the user out of the domains)
CellL | CellList type to construct |
r_cut | interation radius, or size of each cell |
enlarge | In case of padding particles the cell list must be enlarged, like a ghost this parameter say how much must be enlarged |
no_se3 | avoid se_class3 cheking default false |
Definition at line 1212 of file vector_dist.hpp.
|
inline |
Construct an hilbert cell list starting from the stored particles.
CellL | CellList type to construct |
r_cut | interation radius, or size of each cell |
Definition at line 1105 of file vector_dist.hpp.
|
inline |
Construct an hilbert cell list starting from the stored particles.
It differ from the get getCellList for an additional parameter, in case the domain + ghost is not big enough to contain additional padding particles, a Cell list with bigger space can be created (padding particles in general are particles added by the user out of the domains)
CellL | CellList type to construct |
r_cut | interation radius, or size of each cell |
enlarge | In case of padding particles the cell list must be enlarged, like a ghost this parameter say how much must be enlarged |
Definition at line 1254 of file vector_dist.hpp.
|
inline |
Get the Celllist parameters.
r_cut | spacing of the cell-list |
div | division required for the cell-list |
box | where the Cell list must be defined (In general Processor domain + Ghost) |
enlarge | Optionally a request to make the space a littler bit larger than Processor domain + Ghost keeping the cell list consistent with the requests |
Definition at line 2127 of file vector_dist.hpp.
|
inline |
Construct a cell list symmetric based on a cut of radius.
CellL | CellList type to construct |
r_cut | interation radius, or size of each cell |
Definition at line 987 of file vector_dist.hpp.
|
inline |
Construct a cell list symmetric based on a cut of radius.
CellL | CellList type to construct |
r_cut | interation radius, or size of each cell |
Definition at line 1030 of file vector_dist.hpp.
|
inline |
Return from which cell we have to start in case of CRS interation scheme.
NN | cell-list |
Definition at line 2315 of file vector_dist.hpp.
|
inline |
Return from which cell we have to stop in case of CRS interation scheme.
NN | cell-list |
Definition at line 2328 of file vector_dist.hpp.
|
inline |
|
inline |
|
inline |
Get an iterator that traverse the particles in the domain.
Definition at line 1739 of file vector_dist.hpp.
|
inline |
Get an iterator that traverse the particles in the domain.
Definition at line 1753 of file vector_dist.hpp.
|
inline |
Get an iterator that traverse the particles in the domain.
Definition at line 1715 of file vector_dist.hpp.
|
inline |
Get an iterator that traverse the particles in the domain.
Definition at line 1729 of file vector_dist.hpp.
|
inline |
Get an iterator that traverse the particles in the domain using a cell list.
NN | Cell-list |
Definition at line 1690 of file vector_dist.hpp.
|
inline |
Get the iterator across the position of the ghost particles.
Definition at line 1662 of file vector_dist.hpp.
|
inline |
Get the iterator across the position of the ghost particles.
Definition at line 1676 of file vector_dist.hpp.
|
inline |
/brief Get a grid Iterator
Usefull function to place particles on a grid or grid-like (grid + noise)
sz | size of the grid |
Definition at line 1643 of file vector_dist.hpp.
|
inline |
Get an iterator that traverse domain and ghost particles.
Definition at line 1626 of file vector_dist.hpp.
|
inline |
Get the position of the last element.
Definition at line 894 of file vector_dist.hpp.
|
inline |
Get the position of the last element.
Definition at line 920 of file vector_dist.hpp.
|
inline |
Get the position of the last element.
Definition at line 951 of file vector_dist.hpp.
|
inline |
Get the property of the last element.
id | property id |
Definition at line 906 of file vector_dist.hpp.
|
inline |
Get the property of the last element.
id | property id |
Definition at line 936 of file vector_dist.hpp.
|
inline |
Get the property of the last element.
id | property id |
Definition at line 967 of file vector_dist.hpp.
|
inline |
Get a special particle iterator able to iterate across particles using symmetric crossing scheme.
NN | Verlet list neighborhood |
Definition at line 2293 of file vector_dist.hpp.
|
inline |
Get a special particle iterator able to iterate across particles using symmetric crossing scheme.
NN | Cell-List neighborhood |
Definition at line 2242 of file vector_dist.hpp.
|
inline |
Get the position of an element.
see the vector_dist iterator usage to get an element key
vec_key | element |
Definition at line 536 of file vector_dist.hpp.
|
inline |
Get the position of an element.
see the vector_dist iterator usage to get an element key
vec_key | element |
Definition at line 554 of file vector_dist.hpp.
|
inline |
Get the position of an element.
see the vector_dist iterator usage to get an element key
vec_key | element |
Definition at line 571 of file vector_dist.hpp.
|
inline |
Get the position of an element.
see the vector_dist iterator usage to get an element key
vec_key | element |
Definition at line 588 of file vector_dist.hpp.
|
inline |
Get the position of an element.
see the vector_dist iterator usage to get an element key
vec_key | element |
Definition at line 681 of file vector_dist.hpp.
|
inline |
Get the position of an element.
see the vector_dist iterator usage to get an element key
vec_key | element |
Definition at line 695 of file vector_dist.hpp.
|
inline |
Get the position of an element.
see the vector_dist iterator usage to get an element key
vec_key | element |
Definition at line 709 of file vector_dist.hpp.
|
inline |
Get the position of an element.
see the vector_dist iterator usage to get an element key
vec_key | element |
Definition at line 723 of file vector_dist.hpp.
|
inline |
Get the position of an element.
see the vector_dist iterator usage to get an element key
vec_key | element |
Definition at line 817 of file vector_dist.hpp.
|
inline |
return the position vector of all the particles
Definition at line 2177 of file vector_dist.hpp.
|
inline |
return the position vector of all the particles
Definition at line 2187 of file vector_dist.hpp.
|
inline |
Get the position of an element.
see the vector_dist iterator usage to get an element key
vec_key | element |
Definition at line 799 of file vector_dist.hpp.
|
inline |
Get the property of an element.
see the vector_dist iterator usage to get an element key
id | property id |
vec_key | vector element |
Definition at line 606 of file vector_dist.hpp.
|
inline |
Get the property of an element.
see the vector_dist iterator usage to get an element key
id | property id |
vec_key | vector element |
Definition at line 624 of file vector_dist.hpp.
|
inline |
Get the property of an element.
see the vector_dist iterator usage to get an element key
id | property id |
vec_key | vector element |
Definition at line 642 of file vector_dist.hpp.
|
inline |
Get the property of an element.
see the vector_dist iterator usage to get an element key
id | property id |
vec_key | vector element |
Definition at line 660 of file vector_dist.hpp.
|
inline |
Get the property of an element.
see the vector_dist iterator usage to get an element key
id | property id |
vec_key | vector element |
Definition at line 738 of file vector_dist.hpp.
|
inline |
Get the property of an element.
see the vector_dist iterator usage to get an element key
id | property id |
vec_key | vector element |
Definition at line 753 of file vector_dist.hpp.
|
inline |
Get the property of an element.
see the vector_dist iterator usage to get an element key
id | property id |
vec_key | vector element |
Definition at line 768 of file vector_dist.hpp.
|
inline |
Get the property of an element.
see the vector_dist iterator usage to get an element key
id | property id |
vec_key | vector element |
Definition at line 783 of file vector_dist.hpp.
|
inline |
Get the property of an element.
see the vector_dist iterator usage to get an element key
id | property id |
vec_key | vector element |
Definition at line 855 of file vector_dist.hpp.
|
inline |
return the property vector of all the particles
Definition at line 2197 of file vector_dist.hpp.
|
inline |
return the property vector of all the particles
Definition at line 2207 of file vector_dist.hpp.
|
inline |
Get the property of an element.
see the vector_dist iterator usage to get an element key
id | property id |
vec_key | vector element |
Definition at line 836 of file vector_dist.hpp.
|
inline |
Get the Virtual Cluster machine.
Definition at line 2164 of file vector_dist.hpp.
|
inline |
for each particle get the verlet list
r_cut | cut-off radius |
Definition at line 1367 of file vector_dist.hpp.
|
inline |
for each particle get the symmetric verlet list
r_cut | cut-off radius |
Definition at line 1314 of file vector_dist.hpp.
|
inline |
for each particle get the symmetric verlet list
r_cut | cut-off radius |
Definition at line 1288 of file vector_dist.hpp.
|
inline |
It synchronize the properties and position of the ghost particles.
prp | list of properties to get synchronize |
opt | options WITH_POSITION, it send also the positional information of the particles |
Definition at line 1834 of file vector_dist.hpp.
|
inline |
It synchronize the properties and position of the ghost particles.
op | which kind of operation to apply |
prp | list of properties to get synchronize |
opt_ | options. It is an optional parameter. If set to NO_CHANGE_ELEMENTS the communication has lower latencies. This option has some usage limitations, so please refere to the examples for further explanations |
Definition at line 1869 of file vector_dist.hpp.
|
inline |
It return the number of particles contained by the previous processors.
Given 1000 particles and 3 processors, you will get
np | initial number of particles |
Definition at line 1600 of file vector_dist.hpp.
|
inlineprivate |
Initialize the structures.
np | number of particles |
Definition at line 245 of file vector_dist.hpp.
|
inline |
Initialize the computational cost.
Definition at line 1959 of file vector_dist.hpp.
|
inline |
Load the distributed vector from an HDF5 file.
filename | file from where to load |
Definition at line 2002 of file vector_dist.hpp.
|
inline |
It move all the particles that does not belong to the local processor to the respective processor.
out | of bound policy it specify what to do when the particles are detected out of bound |
In general this function is called after moving the particles to move the elements out the local processor. Or just after initialization if each processor contain non local particles
Definition at line 1814 of file vector_dist.hpp.
|
inline |
It move all the particles that does not belong to the local processor to the respective processor.
out | of bound policy it specify what to do when the particles are detected out of bound |
In general this function is called after moving the particles to move the elements out the local processor. Or just after initialization if each processor contain non local particles
prp | properties to communicate |
Definition at line 1790 of file vector_dist.hpp.
|
inline |
Operator= for distributed vector.
v | vector to copy |
Definition at line 360 of file vector_dist.hpp.
|
inline |
Operator= for distributed vector.
v | vector to copy |
Definition at line 384 of file vector_dist.hpp.
|
inline |
Remove a set of elements from the distributed vector.
keys | vector of elements to eliminate |
start | from where to eliminate |
Definition at line 1885 of file vector_dist.hpp.
|
inline |
Remove one element from the distributed vector.
key | remove one element from the vector |
Definition at line 1898 of file vector_dist.hpp.
|
inline |
Construct a cell list starting from the stored particles and reorder a vector according to the Hilberts curve.
CellL | CellList type to construct |
m | an order of a hilbert curve |
Definition at line 1494 of file vector_dist.hpp.
|
inline |
Construct a cell list starting from the stored particles and reorder a vector according to the Hilberts curve.
It differs from the reorder(m) for an additional parameter, in case the domain + ghost is not big enough to contain additional padding particles, a Cell list with bigger space can be created (padding particles in general are particles added by the user out of the domains)
m | order of a curve |
enlarge | In case of padding particles the cell list must be enlarged, like a ghost this parameter say how much must be enlarged |
Definition at line 1513 of file vector_dist.hpp.
|
inlineprivate |
Reorder based on hilbert space filling curve.
v_pos_dest | reordered vector of position |
v_prp_dest | reordered vector of properties |
m | order of the space filling curve |
cell_list | cell-list |
Definition at line 308 of file vector_dist.hpp.
|
inline |
Resize the vector (locally)
rs |
Definition at line 2068 of file vector_dist.hpp.
|
inline |
Save the distributed vector on HDF5 file.
filename | file where to save |
Definition at line 1990 of file vector_dist.hpp.
|
inline |
Set the properties names.
It is useful to specify name for the properties in vtk writers
names | set of properties names |
Definition at line 2280 of file vector_dist.hpp.
|
inline |
return the local size of the vector
Definition at line 510 of file vector_dist.hpp.
|
inline |
return the local size of the vector
Definition at line 520 of file vector_dist.hpp.
|
inline |
Update a cell list using the stored particles.
CellL | CellList type to construct |
cell_list | Cell list to update |
no_se3 | avoid se class 3 checking |
Definition at line 1129 of file vector_dist.hpp.
|
inline |
Update a cell list using the stored particles.
CellL | CellList type to construct |
cell_list | Cell list to update |
Definition at line 1168 of file vector_dist.hpp.
|
inline |
for each particle get the verlet list
r_cut | cut-off radius |
ver | Verlet to update |
r_cut | cutoff radius |
opt | option like VL_SYMMETRIC and VL_NON_SYMMETRIC or VL_CRS_SYMMETRIC |
Definition at line 1400 of file vector_dist.hpp.
|
inline |
It return the id of structure in the allocation list.
Definition at line 2149 of file vector_dist.hpp.
|
inline |
Output particle position and properties.
out | output filename |
opt | VTK_WRITER, CSV_WRITER, it is also possible to choose the format for VTK FORMAT_BINARY. (the default is ASCII format) |
Definition at line 2018 of file vector_dist.hpp.
|
inline |
Output particle position and properties.
out | output |
iteration | (we can append the number at the end of the file_name) |
opt | VTK_WRITER, CSV_WRITER, it is also possible to choose the format for VTK FORMAT_BINARY. (the default is ASCII format) |
Definition at line 2088 of file vector_dist.hpp.
|
private |
Particle position vector, (It has 2 elements) the first has real particles assigned to a processor the second element contain unassigned particles
Definition at line 219 of file vector_dist.hpp.
|
private |
Particle properties vector, (It has 2 elements) the first has real particles assigned to a processor the second element contain unassigned particles
Definition at line 223 of file vector_dist.hpp.