OpenFPM_pdata  1.1.0
Project that contain the implementation of distributed structures
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Friends Pages
vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > Class Template Reference

Distributed vector. More...

Detailed Description

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
class vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >

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

Create a vector of random elements on each processor 2D

Create a vector of random elements on each processor 3D

Create a vector of elements distributed on a grid like way

Redistribute the particles and sync the ghost properties

Template Parameters
dimDimensionality of the space where the elements lives
Sttype of space float, double ...
propproperties the vector element store in OpenFPM data structure format
DecompositionDecomposition strategy to use CartDecomposition ...
MemoryMemory pool where store the information HeapMemory ...

Definition at line 202 of file vector_dist.hpp.

#include <vector_dist.hpp>

+ Inheritance diagram for vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >:

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, CellListgetDomainIteratorCells (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...
 
DecompositiongetDecomposition ()
 Get the decomposition. More...
 
const DecompositiongetDecomposition () 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...
 
VclustergetVC ()
 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...
 
- Public Member Functions inherited from vector_dist_comm< dim, St, prop, layout, layout_base, Decomposition, Memory >
 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...
 
DecompositiongetDecomposition ()
 Get the decomposition. More...
 
const DecompositiongetDecomposition () 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
 
Vclusterv_cl
 Virtual cluster.
 
size_t opt = 0
 option used to create this vector
 
openfpm::vector< std::string > prp_names
 Name of the properties.
 

Constructor & Destructor Documentation

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::vector_dist ( const vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > &  v)
inline

Copy Constructor.

Parameters
vvector to copy

Definition at line 407 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::vector_dist ( vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > &&  v)
inlinenoexcept

Copy constructor.

Parameters
vvector to copy

Definition at line 422 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::vector_dist ( const Decomposition dec,
size_t  np 
)
inline

Constructor with predefined decomposition.

Parameters
decis the decomposition
npnumber of particles

Definition at line 442 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::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>() 
)
inline

Constructor of a distributed vector.

Parameters
npnumber of elements
boxdomain where the vector of elements live
bcboundary conditions
gGhost 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.

Member Function Documentation

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
size_t vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::accum ( )
inline

It return the sum of the particles in the previous processors.

Returns
the particles number

Definition at line 2217 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::add ( )
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.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename Model = ModelLin>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::addComputationCosts ( const self vd,
Model  md = Model() 
)
inline

Add the computation cost on the decomposition coming from the particles.

Parameters
mdModel to use
vdexternal vector to add for the computational cost

Definition at line 1913 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename Model = ModelLin>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::addComputationCosts ( Model  md = Model(),
size_t  ts = 1 
)
inline

Add the computation cost on the decomposition coming from the particles.

Parameters
mdModel to use
tsIt 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.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::check_ghost_compatible_rcut ( St  r_cut)
inlineprivate

It check that the r_cut is not bugger than the ghost.

Parameters
r_cutcut-off radius

Definition at line 287 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::check_parameters ( Box< dim, St > &  box)
inlineprivate

Check if the parameters describe a valid vector. In case it does not report an error.

Parameters
boxBox to check

Definition at line 271 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::clear ( )
inline

remove all the elements

Definition at line 500 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::deleteGhost ( )
inline

Delete the particles on the ghost.

Definition at line 2055 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename Model = ModelLin>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::finalizeComputationCosts ( Model  md = Model(),
size_t  ts = 1 
)
inline

Add the computation cost on the decomposition coming from the particles.

Parameters
mdModel to use
tsIt 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.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellL = CellList_gen<dim, St, Process_keys_lin, Mem_fast<>, shift<dim, St> >>
CellL vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getCellList ( St  r_cut,
bool  no_se3 = false 
)
inline

Construct a cell list starting from the stored particles.

Template Parameters
CellLCellList type to construct
Parameters
r_cutinteration radius, or size of each cell
no_se3avoid SE_CLASS3 checking
Returns
the Cell list

Definition at line 1078 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellL = CellList_gen<dim, St, Process_keys_lin, Mem_fast<>, shift<dim, St> >>
CellL vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getCellList ( St  r_cut,
const Ghost< dim, St > &  enlarge,
bool  no_se3 = false 
)
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)

Template Parameters
CellLCellList type to construct
Parameters
r_cutinteration radius, or size of each cell
enlargeIn case of padding particles the cell list must be enlarged, like a ghost this parameter say how much must be enlarged
no_se3avoid se_class3 cheking default false
Returns
the CellList

Definition at line 1212 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellL = CellList_gen<dim, St, Process_keys_hilb, Mem_fast<>, shift<dim, St> >>
CellL vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getCellList_hilb ( St  r_cut)
inline

Construct an hilbert cell list starting from the stored particles.

Template Parameters
CellLCellList type to construct
Parameters
r_cutinteration radius, or size of each cell
Returns
the Cell list

Definition at line 1105 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellL = CellList_gen<dim, St, Process_keys_hilb, Mem_fast<>, shift<dim, St> >>
CellL vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getCellList_hilb ( St  r_cut,
const Ghost< dim, St > &  enlarge 
)
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)

Template Parameters
CellLCellList type to construct
Parameters
r_cutinteration radius, or size of each cell
enlargeIn case of padding particles the cell list must be enlarged, like a ghost this parameter say how much must be enlarged
Returns
The Cell-list

Definition at line 1254 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getCellListParams ( St  r_cut,
size_t(&)  div[dim],
Box< dim, St > &  box,
Ghost< dim, St >  enlarge = Ghost<dim,St>(0.0) 
)
inline

Get the Celllist parameters.

Parameters
r_cutspacing of the cell-list
divdivision required for the cell-list
boxwhere the Cell list must be defined (In general Processor domain + Ghost)
enlargeOptionally 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.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellL = CellList<dim, St, Mem_fast<>, shift<dim, St> >>
CellL vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getCellListSym ( St  r_cut)
inline

Construct a cell list symmetric based on a cut of radius.

Template Parameters
CellLCellList type to construct
Parameters
r_cutinteration radius, or size of each cell
Returns
the Cell list

Definition at line 987 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellL = CellList<dim, St, Mem_fast<>, shift<dim, St> >>
CellL vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getCellListSym ( const size_t(&)  div[dim],
const size_t(&)  pad[dim] 
)
inline

Construct a cell list symmetric based on a cut of radius.

Template Parameters
CellLCellList type to construct
Parameters
r_cutinteration radius, or size of each cell
Returns
the Cell list

Definition at line 1030 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename Celllist >
grid_key_dx<dim> vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getCRSStart ( Celllist &  NN)
inline

Return from which cell we have to start in case of CRS interation scheme.

Parameters
NNcell-list
Returns
The starting cell point

Definition at line 2315 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename Celllist >
grid_key_dx<dim> vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getCRSStop ( Celllist &  NN)
inline

Return from which cell we have to stop in case of CRS interation scheme.

Parameters
NNcell-list
Returns
The stop cell point

Definition at line 2328 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
Decomposition& vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getDecomposition ( )
inline

Get the decomposition.

Returns

Definition at line 1763 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
const Decomposition& vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getDecomposition ( ) const
inline

Get the decomposition.

Returns

Definition at line 1773 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist_iterator vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getDomainAndGhostIterator ( ) const
inline

Get an iterator that traverse the particles in the domain.

Returns
an iterator

Definition at line 1739 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist_iterator vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getDomainAndGhostIterator_no_se3 ( ) const
inline

Get an iterator that traverse the particles in the domain.

Returns
an iterator

Definition at line 1753 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist_iterator vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getDomainIterator ( ) const
inline

Get an iterator that traverse the particles in the domain.

Returns
an iterator

Definition at line 1715 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist_iterator vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getDomainIterator_no_se3 ( ) const
inline

Get an iterator that traverse the particles in the domain.

Returns
an iterator

Definition at line 1729 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellList >
ParticleIt_Cells<dim,CellList> vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getDomainIteratorCells ( CellList NN)
inline

Get an iterator that traverse the particles in the domain using a cell list.

Parameters
NNCell-list
Returns
an iterator over the particles

Definition at line 1690 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist_iterator vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getGhostIterator ( ) const
inline

Get the iterator across the position of the ghost particles.

Returns
an iterator

Definition at line 1662 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist_iterator vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getGhostIterator_no_se3 ( ) const
inline

Get the iterator across the position of the ghost particles.

Returns
an iterator

Definition at line 1676 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
grid_dist_id_iterator_dec<Decomposition> vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getGridIterator ( const size_t(&)  sz[dim])
inline

/brief Get a grid Iterator

Usefull function to place particles on a grid or grid-like (grid + noise)

Parameters
szsize of the grid
Returns
a Grid iterator

Definition at line 1643 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist_iterator vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getIterator ( )
inline

Get an iterator that traverse domain and ghost particles.

Returns
an iterator

Definition at line 1626 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getLastPos ( ) -> decltype(v_pos.template get<0>(0))
inline

Get the position of the last element.

Returns
the position of the element in space

Definition at line 894 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getLastPosRead ( ) -> decltype(v_pos.template get<0>(0))
inline

Get the position of the last element.

Returns
the position of the element in space

Definition at line 920 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getLastPosWrite ( ) -> decltype(v_pos.template get<0>(0))
inline

Get the position of the last element.

Returns
the position of the element in space

Definition at line 951 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getLastProp ( ) -> decltype(v_prp.template get<id>(0))
inline

Get the property of the last element.

Template Parameters
idproperty id
Returns
return the selected property of the vector element

Definition at line 906 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getLastPropRead ( ) -> decltype(v_prp.template get<id>(0))
inline

Get the property of the last element.

Template Parameters
idproperty id
Returns
return the selected property of the vector element

Definition at line 936 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getLastPropWrite ( ) -> decltype(v_prp.template get<id>(0))
inline

Get the property of the last element.

Template Parameters
idproperty id
Returns
return the selected property of the vector element

Definition at line 967 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename vrl >
openfpm::vector_key_iterator_seq<typename vrl::Mem_type_type::loc_index> vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getParticleIteratorCRS ( vrl &  NN)
inline

Get a special particle iterator able to iterate across particles using symmetric crossing scheme.

Parameters
NNVerlet list neighborhood
Returns
Particle iterator

Definition at line 2293 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename cli >
ParticleItCRS_Cells<dim,cli> vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getParticleIteratorCRS_Cell ( cli &  NN)
inline

Get a special particle iterator able to iterate across particles using symmetric crossing scheme.

Parameters
NNCell-List neighborhood
Returns
Particle iterator

Definition at line 2242 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPos ( vect_dist_key_dx  vec_key) -> decltype(v_pos.template get<0>(vec_key.getKey()))
inline

Get the position of an element.

see the vector_dist iterator usage to get an element key

Parameters
vec_keyelement
Returns
the position of the element in space

Definition at line 536 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPos ( vect_dist_key_dx  vec_key) const -> decltype(v_pos.template get<0>(vec_key.getKey()))
inline

Get the position of an element.

see the vector_dist iterator usage to get an element key

Parameters
vec_keyelement
Returns
the position of the element in space

Definition at line 554 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPos ( size_t  vec_key) -> decltype(v_pos.template get<0>(vec_key))
inline

Get the position of an element.

see the vector_dist iterator usage to get an element key

Parameters
vec_keyelement
Returns
the position of the element in space

Definition at line 571 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPos ( size_t  vec_key) const -> decltype(v_pos.template get<0>(vec_key))
inline

Get the position of an element.

see the vector_dist iterator usage to get an element key

Parameters
vec_keyelement
Returns
the position of the element in space

Definition at line 588 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPosNC ( vect_dist_key_dx  vec_key) -> decltype(v_pos.template get<0>(vec_key.getKey()))
inline

Get the position of an element.

see the vector_dist iterator usage to get an element key

Parameters
vec_keyelement
Returns
the position of the element in space

Definition at line 681 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPosNC ( vect_dist_key_dx  vec_key) const -> decltype(v_pos.template get<0>(vec_key.getKey()))
inline

Get the position of an element.

see the vector_dist iterator usage to get an element key

Parameters
vec_keyelement
Returns
the position of the element in space

Definition at line 695 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPosNC ( size_t  vec_key) -> decltype(v_pos.template get<0>(vec_key))
inline

Get the position of an element.

see the vector_dist iterator usage to get an element key

Parameters
vec_keyelement
Returns
the position of the element in space

Definition at line 709 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPosNC ( size_t  vec_key) const -> decltype(v_pos.template get<0>(vec_key))
inline

Get the position of an element.

see the vector_dist iterator usage to get an element key

Parameters
vec_keyelement
Returns
the position of the element in space

Definition at line 723 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPosRead ( vect_dist_key_dx  vec_key) const -> decltype(v_pos.template get<0>(vec_key.getKey()))
inline

Get the position of an element.

see the vector_dist iterator usage to get an element key

Parameters
vec_keyelement
Returns
the position of the element in space

Definition at line 817 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
const openfpm::vector<Point<dim,St> >& vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPosVector ( ) const
inline

return the position vector of all the particles

Returns
the particle position vector

Definition at line 2177 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
openfpm::vector<Point<dim,St> >& vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPosVector ( )
inline

return the position vector of all the particles

Returns
the particle position vector

Definition at line 2187 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPosWrite ( vect_dist_key_dx  vec_key) -> decltype(v_pos.template get<0>(vec_key.getKey()))
inline

Get the position of an element.

see the vector_dist iterator usage to get an element key

Parameters
vec_keyelement
Returns
the position of the element in space

Definition at line 799 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getProp ( vect_dist_key_dx  vec_key) -> decltype(v_prp.template get<id>(vec_key.getKey()))
inline

Get the property of an element.

see the vector_dist iterator usage to get an element key

Template Parameters
idproperty id
Parameters
vec_keyvector element
Returns
return the selected property of the vector element

Definition at line 606 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getProp ( vect_dist_key_dx  vec_key) const -> decltype(v_prp.template get<id>(vec_key.getKey()))
inline

Get the property of an element.

see the vector_dist iterator usage to get an element key

Template Parameters
idproperty id
Parameters
vec_keyvector element
Returns
return the selected property of the vector element

Definition at line 624 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getProp ( size_t  vec_key) -> decltype(v_prp.template get<id>(vec_key))
inline

Get the property of an element.

see the vector_dist iterator usage to get an element key

Template Parameters
idproperty id
Parameters
vec_keyvector element
Returns
return the selected property of the vector element

Definition at line 642 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getProp ( size_t  vec_key) const -> decltype(v_prp.template get<id>(vec_key))
inline

Get the property of an element.

see the vector_dist iterator usage to get an element key

Template Parameters
idproperty id
Parameters
vec_keyvector element
Returns
return the selected property of the vector element

Definition at line 660 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPropNC ( vect_dist_key_dx  vec_key) -> decltype(v_prp.template get<id>(vec_key.getKey()))
inline

Get the property of an element.

see the vector_dist iterator usage to get an element key

Template Parameters
idproperty id
Parameters
vec_keyvector element
Returns
return the selected property of the vector element

Definition at line 738 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPropNC ( vect_dist_key_dx  vec_key) const -> decltype(v_prp.template get<id>(vec_key.getKey()))
inline

Get the property of an element.

see the vector_dist iterator usage to get an element key

Template Parameters
idproperty id
Parameters
vec_keyvector element
Returns
return the selected property of the vector element

Definition at line 753 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPropNC ( size_t  vec_key) -> decltype(v_prp.template get<id>(vec_key))
inline

Get the property of an element.

see the vector_dist iterator usage to get an element key

Template Parameters
idproperty id
Parameters
vec_keyvector element
Returns
return the selected property of the vector element

Definition at line 768 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPropNC ( size_t  vec_key) const -> decltype(v_prp.template get<id>(vec_key))
inline

Get the property of an element.

see the vector_dist iterator usage to get an element key

Template Parameters
idproperty id
Parameters
vec_keyvector element
Returns
return the selected property of the vector element

Definition at line 783 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPropRead ( vect_dist_key_dx  vec_key) const -> decltype(v_prp.template get<id>(vec_key.getKey()))
inline

Get the property of an element.

see the vector_dist iterator usage to get an element key

Template Parameters
idproperty id
Parameters
vec_keyvector element
Returns
return the selected property of the vector element

Definition at line 855 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
const openfpm::vector<prop>& vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPropVector ( ) const
inline

return the property vector of all the particles

Returns
the particle property vector

Definition at line 2197 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
openfpm::vector<prop>& vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPropVector ( )
inline

return the property vector of all the particles

Returns
the particle property vector

Definition at line 2207 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int id>
auto vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getPropWrite ( vect_dist_key_dx  vec_key) -> decltype(v_prp.template get<id>(vec_key.getKey()))
inline

Get the property of an element.

see the vector_dist iterator usage to get an element key

Template Parameters
idproperty id
Parameters
vec_keyvector element
Returns
return the selected property of the vector element

Definition at line 836 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
Vcluster& vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getVC ( )
inline

Get the Virtual Cluster machine.

Returns
the Virtual cluster machine

Definition at line 2164 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St> >>
VerletL vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getVerlet ( St  r_cut)
inline

for each particle get the verlet list

Parameters
r_cutcut-off radius
Returns
a VerletList object

Definition at line 1367 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St> >>
VerletL vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getVerletCrs ( St  r_cut)
inline

for each particle get the symmetric verlet list

Parameters
r_cutcut-off radius
Returns
the verlet list

Definition at line 1314 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St> >>
VerletL vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::getVerletSym ( St  r_cut)
inline

for each particle get the symmetric verlet list

Parameters
r_cutcut-off radius
Returns
the verlet list

Definition at line 1288 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<int... prp>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::ghost_get ( size_t  opt = WITH_POSITION)
inline

It synchronize the properties and position of the ghost particles.

Template Parameters
prplist of properties to get synchronize
Parameters
optoptions WITH_POSITION, it send also the positional information of the particles

Definition at line 1834 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<template< typename, typename > class op, int... prp>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::ghost_put ( size_t  opt_ = NONE)
inline

It synchronize the properties and position of the ghost particles.

Template Parameters
opwhich kind of operation to apply
prplist of properties to get synchronize
Parameters
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.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
size_t vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::init_size_accum ( size_t  np)
inline

It return the number of particles contained by the previous processors.

Warning
It only work with the initial decomposition

Given 1000 particles and 3 processors, you will get

  • Processor 0: 0
  • Processor 1: 334
  • Processor 2: 667
Parameters
npinitial number of particles
Returns
number of particles contained by the previous processors

Definition at line 1600 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::init_structures ( size_t  np)
inlineprivate

Initialize the structures.

Parameters
npnumber of particles

Definition at line 245 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::initializeComputationCosts ( )
inline

Initialize the computational cost.

Definition at line 1959 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::load ( const std::string &  filename)
inline

Load the distributed vector from an HDF5 file.

Parameters
filenamefile from where to load

Definition at line 2002 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename obp = KillParticle>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::map ( size_t  opt = NONE)
inline

It move all the particles that does not belong to the local processor to the respective processor.

Template Parameters
outof 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.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<unsigned int... prp>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::map_list ( size_t  opt = NONE)
inline

It move all the particles that does not belong to the local processor to the respective processor.

Template Parameters
outof 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

Template Parameters
prpproperties to communicate

Definition at line 1790 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist<dim,St,prop,layout,layout_base,Decomposition,Memory>& vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::operator= ( const vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > &  v)
inline

Operator= for distributed vector.

Parameters
vvector to copy
Returns
itself

Definition at line 360 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
vector_dist<dim,St,prop,layout,layout_base,Decomposition,Memory>& vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::operator= ( vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory > &&  v)
inline

Operator= for distributed vector.

Parameters
vvector to copy
Returns
itself

Definition at line 384 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::remove ( openfpm::vector< size_t > &  keys,
size_t  start = 0 
)
inline

Remove a set of elements from the distributed vector.

Warning
keys must be sorted
Parameters
keysvector of elements to eliminate
startfrom where to eliminate

Definition at line 1885 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::remove ( size_t  key)
inline

Remove one element from the distributed vector.

Parameters
keyremove one element from the vector

Definition at line 1898 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellL = CellList_gen<dim,St,Process_keys_lin,Mem_bal<>,shift<dim,St> >>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::reorder ( int32_t  m,
reorder_opt  opt = reorder_opt::HILBERT 
)
inline

Construct a cell list starting from the stored particles and reorder a vector according to the Hilberts curve.

Template Parameters
CellLCellList type to construct
Parameters
man order of a hilbert curve

Definition at line 1494 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellL = CellList_gen<dim,St,Process_keys_lin,Mem_bal<>,shift<dim,St> >>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::reorder ( int32_t  m,
const Ghost< dim, St > &  enlarge,
reorder_opt  opt = reorder_opt::HILBERT 
)
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)

Parameters
morder of a curve
enlargeIn 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.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellL , typename sfc_it >
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::reorder_sfc ( openfpm::vector< Point< dim, St >> &  v_pos_dest,
openfpm::vector< prop > &  v_prp_dest,
sfc_it &  h_it,
CellL &  cell_list 
)
inlineprivate

Reorder based on hilbert space filling curve.

Parameters
v_pos_destreordered vector of position
v_prp_destreordered vector of properties
morder of the space filling curve
cell_listcell-list

Definition at line 308 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::resize ( size_t  rs)
inline

Resize the vector (locally)

Warning
It automatically delete the ghosts
Parameters
rs

Definition at line 2068 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::save ( const std::string &  filename) const
inline

Save the distributed vector on HDF5 file.

Parameters
filenamefile where to save

Definition at line 1990 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::setPropNames ( const openfpm::vector< std::string > &  names)
inline

Set the properties names.

It is useful to specify name for the properties in vtk writers

Parameters
namesset of properties names

Definition at line 2280 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
size_t vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::size_local ( ) const
inline

return the local size of the vector

Returns
local size

Definition at line 510 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
size_t vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::size_local_with_ghost ( ) const
inline

return the local size of the vector

Returns
local size

Definition at line 520 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellL >
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::updateCellList ( CellL &  cell_list,
bool  no_se3 = false 
)
inline

Update a cell list using the stored particles.

Template Parameters
CellLCellList type to construct
Parameters
cell_listCell list to update
no_se3avoid se class 3 checking

Definition at line 1129 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename CellL = CellList<dim, St, Mem_fast<>, shift<dim, St> >>
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::updateCellListSym ( CellL &  cell_list)
inline

Update a cell list using the stored particles.

Template Parameters
CellLCellList type to construct
Parameters
cell_listCell list to update

Definition at line 1168 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
template<typename Mem_type >
void vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::updateVerlet ( VerletList< dim, St, Mem_type, shift< dim, St > > &  ver,
St  r_cut,
size_t  opt = VL_NON_SYMMETRIC 
)
inline

for each particle get the verlet list

Parameters
r_cutcut-off radius
verVerlet to update
r_cutcutoff radius
optoption like VL_SYMMETRIC and VL_NON_SYMMETRIC or VL_CRS_SYMMETRIC

Definition at line 1400 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
long int vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::who ( )
inline

It return the id of structure in the allocation list.

See Also
print_alloc and SE_CLASS2
Returns
the id

Definition at line 2149 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
bool vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::write ( std::string  out,
int  opt = VTK_WRITER 
)
inline

Output particle position and properties.

Parameters
outoutput filename
optVTK_WRITER, CSV_WRITER, it is also possible to choose the format for VTK FORMAT_BINARY. (the default is ASCII format)
Returns
true if the file has been written without error

Definition at line 2018 of file vector_dist.hpp.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
bool vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::write_frame ( std::string  out,
size_t  iteration,
int  opt = VTK_WRITER 
)
inline

Output particle position and properties.

Parameters
outoutput
iteration(we can append the number at the end of the file_name)
optVTK_WRITER, CSV_WRITER, it is also possible to choose the format for VTK FORMAT_BINARY. (the default is ASCII format)
Returns
if the file has been written correctly

Definition at line 2088 of file vector_dist.hpp.

Field Documentation

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
openfpm::vector<Point<dim, St>,Memory> vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::v_pos
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.

template<unsigned int dim, typename St, typename prop, typename layout = typename memory_traits_lin<prop>::type, template< typename > class layout_base = memory_traits_lin, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory>
openfpm::vector<prop,Memory,layout,layout_base> vector_dist< dim, St, prop, layout, layout_base, Decomposition, Memory >::v_prp
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.


The documentation for this class was generated from the following file: