OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop > Class Template Reference

Distributed vector. More...

Detailed Description

template<unsigned int dim, typename St, typename prop, typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
class vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >

Distributed vector.

This class represent 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

Box<2,float> box({0.0,0.0},{1.0,1.0});
// Boundary conditions
size_t bc[2]={NON_PERIODIC,NON_PERIODIC};
auto it = vd.getIterator();
while (it.isNext())
{
auto key = it.get();
vd.getPos(key)[0] = ud(eg);
vd.getPos(key)[1] = ud(eg);
++it;
}
vd.map();
This class represent an N-dimensional box.
Definition Box.hpp:61
Distributed vector.

Create a vector of random elements on each processor 3D

Box<3,float> box({0.0,0.0,0.0},{1.0,1.0,1.0});
// Boundary conditions
size_t bc[3]={NON_PERIODIC,NON_PERIODIC,NON_PERIODIC};
auto it = vd.getIterator();
while (it.isNext())
{
auto key = it.get();
vd.getPos(key)[0] = ud(eg);
vd.getPos(key)[1] = ud(eg);
vd.getPos(key)[2] = ud(eg);
++it;
}
vd.map();

Create a vector of elements distributed on a grid like way

size_t g_div[]= {sz,sz};
// number of particles
size_t np = sz * sz;
// Calculate the number of elements this processor is going to obtain
size_t p_np = np / v_cl.getProcessingUnits();
// Get non divisible part
size_t r = np % v_cl.getProcessingUnits();
// Get the offset
size_t offset = v_cl.getProcessUnitID() * p_np + std::min(v_cl.getProcessUnitID(),r);
// Distribute the remain elements
if (v_cl.getProcessUnitID() < r)
p_np++;
// Create a grid info
grid_sm<2,void> g_info(g_div);
// Calculate the grid spacing
Point<2,float> spacing = box.getP2() - box.getP1();
spacing = spacing / g_div;
// middle spacing
Point<2,float> m_spacing = spacing / 2.0;
// set the ghost based on the radius cut off (make just a little bit smaller than the spacing)
Ghost<2,float> g(spacing.get(0) - spacing .get(0) * 0.0001);
// Boundary conditions
size_t bc[2]={NON_PERIODIC,NON_PERIODIC};
// Vector of particles
vector vd(g_info.size(),box,bc,g);
// size_t
size_t cobj = 0;
grid_key_dx_iterator_sp<2> it(g_info,offset,offset+p_np-1);
auto v_it = vd.getIterator();
while (v_it.isNext() && it.isNext())
{
auto key = it.get();
auto key_v = v_it.get();
// set the particle position
vd.getPos(key_v)[0] = key.get(0) * spacing[0] + m_spacing[0] + box.getLow(0);
vd.getPos(key_v)[1] = key.get(1) * spacing[1] + m_spacing[1] + box.getLow(1);
cobj++;
++v_it;
++it;
}
This class implement the point shape in an N-dimensional space.
Definition Point.hpp:28
__device__ __host__ const T & get(unsigned int i) const
Get coordinate.
Definition Point.hpp:172
Declaration grid_sm.
Definition grid_sm.hpp:167
Vcluster< Memory > & v_cl
VCluster.

Redistribute the particles and sync the ghost properties

// redistribute the particles according to the decomposition
vd.map();
auto v_it2 = vd.getIterator();
while (v_it2.isNext())
{
auto key = v_it2.get();
// fill with the processor ID where these particle live
vd.template getProp<p::s>(key) = vd.getPos(key)[0] + vd.getPos(key)[1] * 16.0f;
vd.template getProp<p::v>(key)[0] = v_cl.getProcessUnitID();
vd.template getProp<p::v>(key)[1] = v_cl.getProcessUnitID();
vd.template getProp<p::v>(key)[2] = v_cl.getProcessUnitID();
++v_it2;
}
// do a ghost get
vd.template ghost_get<p::s,p::v>();

Create a gpu distributed vector [St = float or double]

Fill a GPU vector_dist on CPU and move the information to GPU and redistribute [St = float or double]

srand(v_cl.rank()*10000);
auto it = vd.getDomainIterator();
while (it.isNext())
{
auto p = it.get();
vd.getPos(p)[0] = (St)rand() / (float)RAND_MAX;
vd.getPos(p)[1] = (St)rand() / (float)RAND_MAX;
vd.getPos(p)[2] = (St)rand() / (float)RAND_MAX;
vd.template getProp<0>(p) = vd.getPos(p)[0] + vd.getPos(p)[1] + vd.getPos(p)[2];
vd.template getProp<1>(p)[0] = vd.getPos(p)[0];
vd.template getProp<1>(p)[1] = vd.getPos(p)[1];
vd.template getProp<1>(p)[2] = vd.getPos(p)[2];
vd.template getProp<2>(p)[0] = vd.getPos(p)[0] + vd.getPos(p)[1];
vd.template getProp<2>(p)[1] = vd.getPos(p)[0] + vd.getPos(p)[2];
vd.template getProp<2>(p)[2] = vd.getPos(p)[1] + vd.getPos(p)[2];
++it;
}
// move on device
vd.hostToDevicePos();
vd.template hostToDeviceProp<0,1,2>();
// Ok we redistribute the particles (GPU based)
vd.map(RUN_ON_DEVICE);

Fill the ghost on GPU

vd.template ghost_get<0,1,2>(RUN_ON_DEVICE);
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 ...
Memorylayout

Definition at line 299 of file vector_dist.hpp.

#include <vector_dist.hpp>

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

Public Types

typedef vector_dist< dim, St, prop, Decomposition, Memory, layout_base > self
 Self type.
 
typedef St stype
 
typedef prop value_type
 
typedef Decomposition Decomposition_type
 
typedef Memory Memory_type
 
typedef decltype(v_posinternal_position_vector_type
 
typedef CellList< dim, St, Mem_fast<>, shift< dim, St >, internal_position_vector_type > CellList_type
 
typedef int yes_i_am_vector_dist
 yes I am vector dist
 
typedef std::integral_constant< bool, false > is_it_a_subset
 yes I am vector subset dist
 

Public Member Functions

vector_dist< dim, St, prop, Decomposition, Memory, layout_base > & operator= (const vector_dist< dim, St, prop, Decomposition, Memory, layout_base > &v)
 Operator= for distributed vector.
 
vector_dist< dim, St, prop, Decomposition, Memory, layout_base > & operator= (vector_dist< dim, St, prop, Decomposition, Memory, layout_base > &&v)
 Operator= for distributed vector.
 
 vector_dist (const vector_dist< dim, St, prop, Decomposition, Memory, layout_base > &v)
 Copy Constructor.
 
 vector_dist (vector_dist< dim, St, prop, Decomposition, Memory, layout_base > &&v) noexcept
 Copy constructor.
 
 vector_dist (const Decomposition &dec, size_t np)
 Constructor with predefined decomposition.
 
 vector_dist (size_t np, Box< dim, St > box, const size_t(&bc)[dim], const Ghost< dim, St > &g, const grid_sm< dim, void > &gdist)
 Constructor of a distributed vector.
 
 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.
 
void setReferenceCounterToOne ()
 
void clear ()
 remove all the elements
 
size_t size_local () const
 return the local size of the vector
 
size_t size_local_orig () const
 return the local size of the vector
 
size_t size_local_with_ghost () const
 return the local size of the vector
 
auto getPos (vect_dist_key_dx vec_key) -> decltype(v_pos.template get< 0 >(vec_key.getKey()))
 Get the position of an element.
 
auto getPos (vect_dist_key_dx vec_key) const -> decltype(v_pos.template get< 0 >(vec_key.getKey()))
 Get the position of an element.
 
auto getPos (size_t vec_key) -> decltype(v_pos.template get< 0 >(vec_key))
 Get the position of an element.
 
auto getPosOrig (vect_dist_key_dx vec_key) const -> decltype(v_pos.template get< 0 >(vec_key.getKey()))
 Get the position of an element.
 
auto getPosOrig (size_t vec_key) -> decltype(v_pos.template get< 0 >(vec_key))
 Get the position of an element.
 
auto getPos (size_t vec_key) const -> decltype(v_pos.template get< 0 >(vec_key))
 Get the position of an element.
 
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.
 
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.
 
template<unsigned int id>
auto getProp (size_t vec_key) -> decltype(v_prp.template get< id >(vec_key))
 Get the property of an element.
 
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.
 
auto getPosNC (vect_dist_key_dx vec_key) -> decltype(v_pos.template get< 0 >(vec_key.getKey()))
 Get the position of an element.
 
auto getPosNC (vect_dist_key_dx vec_key) const -> decltype(v_pos.template get< 0 >(vec_key.getKey()))
 Get the position of an element.
 
auto getPosNC (size_t vec_key) -> decltype(v_pos.template get< 0 >(vec_key))
 Get the position of an element.
 
auto getPosNC (size_t vec_key) const -> decltype(v_pos.template get< 0 >(vec_key))
 Get the position of an element.
 
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.
 
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.
 
template<unsigned int id>
auto getPropNC (size_t vec_key) -> decltype(v_prp.template get< id >(vec_key))
 Get the property of an element.
 
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.
 
auto getPosWrite (vect_dist_key_dx vec_key) -> decltype(v_pos.template get< 0 >(vec_key.getKey()))
 Get the position of an element.
 
auto getPosRead (vect_dist_key_dx vec_key) const -> decltype(v_pos.template get< 0 >(vec_key.getKey()))
 Get the position of an element.
 
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.
 
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.
 
void add ()
 Add local particle.
 
void addAtEnd ()
 Add at the END of local and ghost particle.
 
auto getLastPos () -> decltype(v_pos.template get< 0 >(0))
 Get the position of the last element.
 
auto getLastPosEnd () -> decltype(v_pos.template get< 0 >(0))
 Get the position of the last element after ghost.
 
template<unsigned int id>
auto getLastProp () -> decltype(v_prp.template get< id >(0))
 Get the property of the last element.
 
auto getLastPosRead () -> decltype(v_pos.template get< 0 >(0))
 Get the position of the last element.
 
template<unsigned int id>
auto getLastPropRead () -> decltype(v_prp.template get< id >(0))
 Get the property of the last element.
 
auto getLastPosWrite () -> decltype(v_pos.template get< 0 >(0))
 Get the position of the last element.
 
template<unsigned int id>
auto getLastPropWrite () -> decltype(v_prp.template get< id >(0))
 Get the property of the last element.
 
vect_dist_key_dx getOriginKey (vect_dist_key_dx vec_key)
 
template<typename CellL = CellList<dim, St, Mem_fast<>, shift<dim, St>,internal_position_vector_type >>
CellL getCellListSym (St r_cut)
 Construct a cell list symmetric based on a cut of radius.
 
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.
 
template<unsigned int impl>
cell_list_selector< self, impl >::ctype getCellListDev (St r_cut)
 Construct a cell list starting from the stored particles.
 
template<typename CellL = CellList_gen<dim, St, Process_keys_lin, Mem_fast<>, shift<dim, St>, decltype(v_pos) >>
CellL getCellList (St r_cut, bool no_se3=false)
 Construct a cell list starting from the stored particles.
 
auto getCellListDevice (St r_cut, bool no_se3=false) -> decltype(this->getCellList(r_cut, no_se3))
 Construct a cell list from the stored particles.
 
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.
 
template<unsigned int ... prp, typename CellL >
void updateCellList (CellL &cell_list, bool no_se3=false, cl_construct_opt opt=cl_construct_opt::Full)
 Update a cell list using the stored particles.
 
template<typename CellL = CellList<dim, St, Mem_fast<>, shift<dim, St> >>
void updateCellListSym (CellL &cell_list)
 Update a cell list using the stored particles.
 
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.
 
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.
 
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St> >>
VerletL getVerletSym (St r_cut)
 for each particle get the symmetric verlet list
 
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St> >>
VerletL getVerletCrs (St r_cut)
 for each particle get the symmetric verlet list
 
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St>,decltype(v_pos) >>
VerletL getVerlet (St r_cut)
 for each particle get the verlet list
 
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
 
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.
 
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.
 
template<typename CellL = CellList_gen<dim,St,Process_keys_lin,Mem_bal<>,shift<dim,St> >>
void reorder_rcut (St r_cut)
 Construct a cell list starting from the stored particles and reorder a vector according to the Hilberts curve.
 
size_t init_size_accum (size_t np)
 It return the number of particles contained by the previous processors.
 
vector_dist_iterator getIterator ()
 Get an iterator that traverse domain and ghost particles.
 
vector_dist_iterator getIterator (size_t start, size_t stop)
 Get an iterator that traverse domain and ghost particles.
 
grid_dist_id_iterator_dec< DecompositiongetGridIterator (const size_t(&sz)[dim])
 
vector_dist_iterator getGhostIterator () const
 Get the iterator across the position of the ghost particles.
 
vector_dist_iterator getGhostIterator_no_se3 () const
 Get the iterator across the position of the ghost particles.
 
template<typename CellList >
ParticleIt_Cells< dim, CellListgetDomainIteratorCells (CellList &NN)
 Get an iterator that traverse the particles in the domain using a cell list.
 
vector_dist_iterator getDomainIterator () const
 Get an iterator that traverse the particles in the domain.
 
auto getDomainIteratorDevice (size_t n_thr=default_kernel_wg_threads_) const -> decltype(this->getDomainIterator())
 Get an iterator that traverse the particles in the domain.
 
vector_dist_iterator getDomainIterator_no_se3 () const
 Get an iterator that traverse the particles in the domain.
 
vector_dist_iterator getDomainAndGhostIterator () const
 Get an iterator that traverse the particles in the domain.
 
vector_dist_iterator getDomainAndGhostIterator_no_se3 () const
 Get an iterator that traverse the particles in the domain.
 
DecompositiongetDecomposition ()
 Get the decomposition.
 
const DecompositiongetDecomposition () const
 Get the decomposition.
 
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.
 
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.
 
void ghost_get_subset ()
 Stub does not do anything.
 
template<int ... prp>
void ghost_get (size_t opt=WITH_POSITION)
 It synchronize the properties and position of the ghost particles.
 
template<int ... prp>
void Ighost_get (size_t opt=WITH_POSITION)
 It synchronize the properties and position of the ghost particles.
 
template<int ... prp>
void ghost_wait (size_t opt=WITH_POSITION)
 It synchronize the properties and position of the ghost particles.
 
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.
 
void remove (openfpm::vector< size_t > &keys, size_t start=0)
 Remove a set of elements from the distributed vector.
 
void remove (openfpm::vector< aggregate< int > > &keys, size_t start=0)
 Remove a set of elements from the distributed vector.
 
void remove (size_t key)
 Remove one element from the distributed vector.
 
template<typename Model = ModelLin>
void addComputationCosts (const self &vd, Model md=Model())
 Add the computation cost on the decomposition coming from the particles.
 
template<typename Model = ModelLin>
void finalizeComputationCosts (Model md=Model(), size_t ts=1)
 Add the computation cost on the decomposition coming from the particles.
 
void initializeComputationCosts ()
 Initialize the computational cost.
 
template<typename Model = ModelLin>
void addComputationCosts (Model md=Model(), size_t ts=1)
 Add the computation cost on the decomposition coming from the particles.
 
void save (const std::string &filename) const
 Save the distributed vector on HDF5 file.
 
void load (const std::string &filename)
 Load the distributed vector from an HDF5 file.
 
void setCapacity (unsigned int ns)
 Reserve space for the internal vectors.
 
bool write (std::string out, int opt=VTK_WRITER)
 Output particle position and properties.
 
bool write (std::string out, std::string meta_info, int opt=VTK_WRITER)
 Output particle position and properties.
 
void deleteGhost ()
 Delete the particles on the ghost.
 
void resize (size_t rs)
 Resize the vector (locally)
 
void resizeAtEnd (size_t rs)
 Resize the vector at the end of the ghost (locally)
 
bool write_frame (std::string out, size_t iteration, int opt=VTK_WRITER)
 Output particle position and properties.
 
bool write_frame (std::string out, size_t iteration, std::string meta_info, int opt=VTK_WRITER)
 Output particle position and properties.
 
bool write_frame (std::string out, size_t iteration, double time, int opt=VTK_WRITER)
 Output particle position and properties and add a time stamp to pvtp.
 
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.
 
long int who ()
 It return the id of structure in the allocation list.
 
Vcluster< Memory > & getVC ()
 Get the Virtual Cluster machine.
 
const vector_dist_pos & getPosVector () const
 return the position vector of all the particles
 
vector_dist_pos & getPosVector ()
 return the position vector of all the particles
 
const vector_dist_prop & getPropVector () const
 return the property vector of all the particles
 
vector_dist_prop & getPropVector ()
 return the property vector of all the particles
 
const vector_dist_pos & getPosVectorSort () const
 return the position vector of all the particles
 
vector_dist_pos & getPosVectorSort ()
 return the position vector of all the particles
 
const vector_dist_prop & getPropVectorSort () const
 return the property vector of all the particles
 
vector_dist_prop & getPropVectorSort ()
 return the property vector of all the particles
 
size_t accum ()
 It return the sum of the particles in the previous processors.
 
template<typename cli >
ParticleItCRS_Cells< dim, cli, decltype(v_pos)> getParticleIteratorCRS_Cell (cli &NN)
 Get a special particle iterator able to iterate across particles using symmetric crossing scheme.
 
void setPropNames (const openfpm::vector< std::string > &names)
 Set the properties names.
 
openfpm::vector< std::string > & getPropNames ()
 Get the properties names.
 
template<typename vrl >
openfpm::vector_key_iterator_seq< typename vrl::Mem_type_type::local_index_type > getParticleIteratorCRS (vrl &NN)
 Get a special particle iterator able to iterate across particles using symmetric crossing scheme.
 
template<typename Celllist >
grid_key_dx< dim > getCRSStart (Celllist &NN)
 Return from which cell we have to start in case of CRS interation scheme.
 
template<typename Celllist >
grid_key_dx< dim > getCRSStop (Celllist &NN)
 Return from which cell we have to stop in case of CRS interation scheme.
 
bool isSubset () const
 Indicate that this class is not a subset.
 
template<unsigned int ... prp>
void deviceToHostProp ()
 Move the memory from the device to host memory.
 
void deviceToHostPos ()
 Move the memory from the device to host memory.
 
template<unsigned int ... prp>
void hostToDeviceProp ()
 Move the memory from the device to host memory.
 
void hostToDevicePos ()
 Move the memory from the device to host memory.
 
- Public Member Functions inherited from vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base >
 vector_dist_comm (const vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > &v)
 Copy Constructor.
 
 vector_dist_comm (const Decomposition &dec)
 Constructor.
 
 vector_dist_comm (Decomposition &&dec)
 Constructor.
 
 vector_dist_comm ()
 Constructor.
 
 ~vector_dist_comm ()
 Destructor.
 
size_t getDecompositionGranularity ()
 Get the number of minimum sub-domain per processor.
 
void setDecompositionGranularity (size_t n_sub)
 Set the minimum number of sub-domain per processor.
 
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.
 
void init_decomposition_gr_cell (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.
 
template<unsigned int impl, int ... prp>
void ghost_get_ (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, size_t &g_m, size_t opt=WITH_POSITION)
 It synchronize the properties and position of the ghost particles.
 
template<int ... prp>
void ghost_wait_ (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, size_t &g_m, size_t opt=WITH_POSITION)
 It synchronize the properties and position of the ghost particles.
 
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)
 It move all the particles that does not belong to the local processor to the respective processor.
 
template<typename obp = KillParticle>
void map_ (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, size_t &g_m, size_t opt)
 It move all the particles that does not belong to the local processor to the respective processor.
 
DecompositiongetDecomposition ()
 Get the decomposition.
 
const DecompositiongetDecomposition () const
 Get the decomposition.
 
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > & operator= (const vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > &vc)
 Copy a vector.
 
vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > & operator= (vector_dist_comm< dim, St, prop, Decomposition, Memory, layout_base > &&vc)
 Copy a vector.
 
template<template< typename, typename > class op, int ... prp>
void ghost_put_ (openfpm::vector< Point< dim, St >, Memory, layout_base > &v_pos, openfpm::vector< prop, Memory, layout_base > &v_prp, size_t &g_m, size_t opt)
 Ghost put.
 

Static Public Attributes

static const unsigned int dims = dim
 template parameters typedefs
 

Private Member Functions

void init_structures (size_t np)
 Initialize the structures.
 
void check_parameters (Box< dim, St > &box)
 Check if the parameters describe a valid vector. In case it does not report an error.
 
void check_ghost_compatible_rcut (St r_cut)
 It check that the r_cut is not bugger than the ghost.
 
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.
 
- Private Member Functions inherited from vector_dist_ker_list< int >
void add (int &v, bool is_sorted)
 Add a new vector_dist_kernel to track.
 
void update (const int &v)
 Update the addresses of all vector_dist_kernels around.
 
void update_sort (const int &vs)
 
void remove (int &v)
 Remove one vector_dist_kernels entry.
 
size_t n_entry ()
 Return the number of entries.
 
bool check (const int &v)
 Check that all the entries are aligned to the latest vector_dist_ker_type.
 

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.
 
vector_dist_pos v_pos
 
vector_dist_prop v_prp
 
vector_dist_prop v_prp_out
 reordered v_pos buffer
 
vector_dist_pos v_pos_out
 reordered v_prp buffer
 
size_t opt = 0
 option used to create this vector
 
openfpm::vector< std::string > prp_names
 Name of the properties.
 

Member Typedef Documentation

◆ CellList_type

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
typedef CellList<dim, St, Mem_fast<>, shift<dim, St>, internal_position_vector_type > vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::CellList_type

Definition at line 466 of file vector_dist.hpp.

◆ Decomposition_type

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
typedef Decomposition vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::Decomposition_type

Definition at line 316 of file vector_dist.hpp.

◆ internal_position_vector_type

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
typedef decltype(v_pos) vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::internal_position_vector_type

Definition at line 464 of file vector_dist.hpp.

◆ is_it_a_subset

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
typedef std::integral_constant<bool,false> vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::is_it_a_subset

yes I am vector subset dist

Definition at line 472 of file vector_dist.hpp.

◆ Memory_type

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
typedef Memory vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::Memory_type

Definition at line 317 of file vector_dist.hpp.

◆ self

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
typedef vector_dist<dim,St,prop,Decomposition,Memory,layout_base> vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::self

Self type.

Definition at line 310 of file vector_dist.hpp.

◆ stype

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
typedef St vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::stype

Definition at line 314 of file vector_dist.hpp.

◆ value_type

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
typedef prop vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::value_type

Definition at line 315 of file vector_dist.hpp.

◆ yes_i_am_vector_dist

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
typedef int vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::yes_i_am_vector_dist

yes I am vector dist

Definition at line 469 of file vector_dist.hpp.

Constructor & Destructor Documentation

◆ vector_dist() [1/6]

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

Definition at line 526 of file vector_dist.hpp.

◆ vector_dist() [2/6]

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

Copy Constructor.

Parameters
vvector to copy

Definition at line 535 of file vector_dist.hpp.

◆ vector_dist() [3/6]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::vector_dist ( vector_dist< dim, St, prop, Decomposition, Memory, layout_base > &&  v)
inlinenoexcept

Copy constructor.

Parameters
vvector to copy

Definition at line 550 of file vector_dist.hpp.

◆ vector_dist() [4/6]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::vector_dist ( const Decomposition dec,
size_t  np 
)
inline

Constructor with predefined decomposition.

Parameters
decis the decomposition
npnumber of particles

Definition at line 569 of file vector_dist.hpp.

◆ vector_dist() [5/6]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::vector_dist ( size_t  np,
Box< dim, St >  box,
const size_t(&)  bc[dim],
const Ghost< dim, St > &  g,
const grid_sm< dim, void > &  gdist 
)
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 595 of file vector_dist.hpp.

◆ vector_dist() [6/6]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 625 of file vector_dist.hpp.

◆ ~vector_dist()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::~vector_dist ( )
inline

Definition at line 647 of file vector_dist.hpp.

Member Function Documentation

◆ accum()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
size_t vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::accum ( )
inline

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

Returns
the particles number

Definition at line 3126 of file vector_dist.hpp.

◆ add()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1094 of file vector_dist.hpp.

◆ addAtEnd()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::addAtEnd ( )
inline

Add at the END of local and ghost particle.

It add a local particle at the end of local and ghost, 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 1117 of file vector_dist.hpp.

◆ addComputationCosts() [1/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename Model = ModelLin>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 2642 of file vector_dist.hpp.

◆ addComputationCosts() [2/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename Model = ModelLin>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 2706 of file vector_dist.hpp.

◆ check_ghost_compatible_rcut()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 405 of file vector_dist.hpp.

◆ check_parameters()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 389 of file vector_dist.hpp.

◆ clear()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::clear ( )
inline

remove all the elements

Definition at line 676 of file vector_dist.hpp.

◆ deleteGhost()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::deleteGhost ( )
inline

Delete the particles on the ghost.

Definition at line 2820 of file vector_dist.hpp.

◆ deviceToHostPos()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::deviceToHostPos ( )
inline

Move the memory from the device to host memory.

Template Parameters
propertyto move use POS_PROP for position property

Definition at line 3455 of file vector_dist.hpp.

◆ deviceToHostProp()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int ... prp>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::deviceToHostProp ( )
inline

Move the memory from the device to host memory.

Template Parameters
propertyto move use POS_PROP for position property

Definition at line 3447 of file vector_dist.hpp.

◆ finalizeComputationCosts()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename Model = ModelLin>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 2671 of file vector_dist.hpp.

◆ getCellList() [1/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellL = CellList_gen<dim, St, Process_keys_lin, Mem_fast<>, shift<dim, St>, decltype(v_pos) >>
CellL vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1347 of file vector_dist.hpp.

◆ getCellList() [2/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellL = CellList_gen<dim, St, Process_keys_lin, Mem_fast<>, shift<dim, St> >>
CellL vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1602 of file vector_dist.hpp.

◆ getCellList_hilb() [1/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellL = CellList_gen<dim, St, Process_keys_hilb, Mem_fast<>, shift<dim, St> >>
CellL vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1491 of file vector_dist.hpp.

◆ getCellList_hilb() [2/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellL = CellList_gen<dim, St, Process_keys_hilb, Mem_fast<>, shift<dim, St> >>
CellL vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1644 of file vector_dist.hpp.

◆ getCellListDev()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int impl>
cell_list_selector< self, impl >::ctype vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getCellListDev ( St  r_cut)
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 1331 of file vector_dist.hpp.

◆ getCellListDevice()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getCellListDevice ( St  r_cut,
bool  no_se3 = false 
) -> decltype(this->getCellList(r_cut,no_se3))
inline

Construct a cell list from the stored particles.

Parameters
r_cutinteration radius, or size of each cell
Returns
the Cell list

Definition at line 1472 of file vector_dist.hpp.

◆ getCellListParams()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 2996 of file vector_dist.hpp.

◆ getCellListSym() [1/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellL = CellList<dim, St, Mem_fast<>, shift<dim, St> >>
CellL vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1283 of file vector_dist.hpp.

◆ getCellListSym() [2/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellL = CellList<dim, St, Mem_fast<>, shift<dim, St>,internal_position_vector_type >>
CellL vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1240 of file vector_dist.hpp.

◆ getCRSStart()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename Celllist >
grid_key_dx< dim > vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 3237 of file vector_dist.hpp.

◆ getCRSStop()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename Celllist >
grid_key_dx< dim > vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 3250 of file vector_dist.hpp.

◆ getDecomposition() [1/2]

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

Get the decomposition.

Returns

Definition at line 2379 of file vector_dist.hpp.

◆ getDecomposition() [2/2]

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

Get the decomposition.

Returns

Definition at line 2389 of file vector_dist.hpp.

◆ getDomainAndGhostIterator()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_iterator vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getDomainAndGhostIterator ( ) const
inline

Get an iterator that traverse the particles in the domain.

Returns
an iterator

Definition at line 2355 of file vector_dist.hpp.

◆ getDomainAndGhostIterator_no_se3()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_iterator vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getDomainAndGhostIterator_no_se3 ( ) const
inline

Get an iterator that traverse the particles in the domain.

Returns
an iterator

Definition at line 2369 of file vector_dist.hpp.

◆ getDomainIterator()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_iterator vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getDomainIterator ( ) const
inline

Get an iterator that traverse the particles in the domain.

Returns
an iterator

Definition at line 2165 of file vector_dist.hpp.

◆ getDomainIterator_no_se3()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_iterator vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getDomainIterator_no_se3 ( ) const
inline

Get an iterator that traverse the particles in the domain.

Returns
an iterator

Definition at line 2345 of file vector_dist.hpp.

◆ getDomainIteratorCells()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellList >
ParticleIt_Cells< dim, CellList > vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 2140 of file vector_dist.hpp.

◆ getDomainIteratorDevice()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getDomainIteratorDevice ( size_t  n_thr = default_kernel_wg_threads_) const -> decltype(this->getDomainIterator())
inline

Get an iterator that traverse the particles in the domain.

Returns
an iterator

Definition at line 2332 of file vector_dist.hpp.

◆ getGhostIterator()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_iterator vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getGhostIterator ( ) const
inline

Get the iterator across the position of the ghost particles.

Returns
an iterator

Definition at line 2112 of file vector_dist.hpp.

◆ getGhostIterator_no_se3()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_iterator vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getGhostIterator_no_se3 ( ) const
inline

Get the iterator across the position of the ghost particles.

Returns
an iterator

Definition at line 2126 of file vector_dist.hpp.

◆ getGridIterator()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
grid_dist_id_iterator_dec< Decomposition > vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 2093 of file vector_dist.hpp.

◆ getIterator() [1/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_iterator vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getIterator ( )
inline

Get an iterator that traverse domain and ghost particles.

Returns
an iterator

Definition at line 2060 of file vector_dist.hpp.

◆ getIterator() [2/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_iterator vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getIterator ( size_t  start,
size_t  stop 
)
inline

Get an iterator that traverse domain and ghost particles.

Parameters
startparticle
stopparticle
Returns
an iterator

Definition at line 2076 of file vector_dist.hpp.

◆ getLastPos()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1130 of file vector_dist.hpp.

◆ getLastPosEnd()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getLastPosEnd ( ) -> decltype(v_pos.template get<0>(0))
inline

Get the position of the last element after ghost.

Returns
the position of the element in space

Definition at line 1141 of file vector_dist.hpp.

◆ getLastPosRead()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1167 of file vector_dist.hpp.

◆ getLastPosWrite()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1198 of file vector_dist.hpp.

◆ getLastProp()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1153 of file vector_dist.hpp.

◆ getLastPropRead()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1183 of file vector_dist.hpp.

◆ getLastPropWrite()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1214 of file vector_dist.hpp.

◆ getOriginKey()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vect_dist_key_dx vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getOriginKey ( vect_dist_key_dx  vec_key)
inline

Definition at line 1225 of file vector_dist.hpp.

◆ getParticleIteratorCRS()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename vrl >
openfpm::vector_key_iterator_seq< typename vrl::Mem_type_type::local_index_type > vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 3215 of file vector_dist.hpp.

◆ getParticleIteratorCRS_Cell()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename cli >
ParticleItCRS_Cells< dim, cli, decltype(v_pos)> vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 3153 of file vector_dist.hpp.

◆ getPos() [1/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 757 of file vector_dist.hpp.

◆ getPos() [2/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 808 of file vector_dist.hpp.

◆ getPos() [3/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 722 of file vector_dist.hpp.

◆ getPos() [4/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 740 of file vector_dist.hpp.

◆ getPosNC() [1/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 929 of file vector_dist.hpp.

◆ getPosNC() [2/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 943 of file vector_dist.hpp.

◆ getPosNC() [3/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 901 of file vector_dist.hpp.

◆ getPosNC() [4/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 915 of file vector_dist.hpp.

◆ getPosOrig() [1/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getPosOrig ( 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 791 of file vector_dist.hpp.

◆ getPosOrig() [2/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getPosOrig ( 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 774 of file vector_dist.hpp.

◆ getPosRead()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1037 of file vector_dist.hpp.

◆ getPosVector() [1/2]

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

return the position vector of all the particles

Returns
the particle position vector

Definition at line 3056 of file vector_dist.hpp.

◆ getPosVector() [2/2]

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

return the position vector of all the particles

Returns
the particle position vector

Definition at line 3046 of file vector_dist.hpp.

◆ getPosVectorSort() [1/2]

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

return the position vector of all the particles

Returns
the particle position vector

Definition at line 3096 of file vector_dist.hpp.

◆ getPosVectorSort() [2/2]

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

return the position vector of all the particles

Returns
the particle position vector

Definition at line 3086 of file vector_dist.hpp.

◆ getPosWrite()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1019 of file vector_dist.hpp.

◆ getProp() [1/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 862 of file vector_dist.hpp.

◆ getProp() [2/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 880 of file vector_dist.hpp.

◆ getProp() [3/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 826 of file vector_dist.hpp.

◆ getProp() [4/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 844 of file vector_dist.hpp.

◆ getPropNames()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
openfpm::vector< std::string > & vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getPropNames ( )
inline

Get the properties names.

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

Definition at line 3201 of file vector_dist.hpp.

◆ getPropNC() [1/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 988 of file vector_dist.hpp.

◆ getPropNC() [2/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1003 of file vector_dist.hpp.

◆ getPropNC() [3/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 958 of file vector_dist.hpp.

◆ getPropNC() [4/4]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 973 of file vector_dist.hpp.

◆ getPropRead()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1075 of file vector_dist.hpp.

◆ getPropVector() [1/2]

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

return the property vector of all the particles

Returns
the particle property vector

Definition at line 3076 of file vector_dist.hpp.

◆ getPropVector() [2/2]

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

return the property vector of all the particles

Returns
the particle property vector

Definition at line 3066 of file vector_dist.hpp.

◆ getPropVectorSort() [1/2]

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

return the property vector of all the particles

Returns
the particle property vector

Definition at line 3116 of file vector_dist.hpp.

◆ getPropVectorSort() [2/2]

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

return the property vector of all the particles

Returns
the particle property vector

Definition at line 3106 of file vector_dist.hpp.

◆ getPropWrite()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int id>
auto vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1056 of file vector_dist.hpp.

◆ getVC()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
Vcluster< Memory > & vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getVC ( )
inline

Get the Virtual Cluster machine.

Returns
the Virtual cluster machine

Definition at line 3033 of file vector_dist.hpp.

◆ getVerlet()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St>,decltype(v_pos) >>
VerletL vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::getVerlet ( St  r_cut)
inline

for each particle get the verlet list

Parameters
r_cutcut-off radius
Returns
a VerletList object

Definition at line 1757 of file vector_dist.hpp.

◆ getVerletCrs()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St> >>
VerletL vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1704 of file vector_dist.hpp.

◆ getVerletSym()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename VerletL = VerletList<dim,St,Mem_fast<>,shift<dim,St> >>
VerletL vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1678 of file vector_dist.hpp.

◆ ghost_get()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<int ... prp>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 2481 of file vector_dist.hpp.

◆ ghost_get_subset()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::ghost_get_subset ( )
inline

Stub does not do anything.

Definition at line 2466 of file vector_dist.hpp.

◆ ghost_put()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<template< typename, typename > class op, int ... prp>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 2582 of file vector_dist.hpp.

◆ ghost_wait()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<int ... prp>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::ghost_wait ( 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 2545 of file vector_dist.hpp.

◆ hostToDevicePos()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::hostToDevicePos ( )
inline

Move the memory from the device to host memory.

Template Parameters
propertyto move use POS_PROP for position property

Definition at line 3471 of file vector_dist.hpp.

◆ hostToDeviceProp()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int ... prp>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::hostToDeviceProp ( )
inline

Move the memory from the device to host memory.

Template Parameters
propertyto move use POS_PROP for position property

Definition at line 3463 of file vector_dist.hpp.

◆ Ighost_get()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<int ... prp>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::Ighost_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 2519 of file vector_dist.hpp.

◆ init_size_accum()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
size_t vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 2032 of file vector_dist.hpp.

◆ init_structures()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::init_structures ( size_t  np)
inlineprivate

Initialize the structures.

Parameters
npnumber of particles

Definition at line 361 of file vector_dist.hpp.

◆ initializeComputationCosts()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::initializeComputationCosts ( )
inline

Initialize the computational cost.

Definition at line 2689 of file vector_dist.hpp.

◆ isSubset()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
bool vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::isSubset ( ) const
inline

Indicate that this class is not a subset.

Returns
false

Definition at line 3264 of file vector_dist.hpp.

◆ load()

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

Load the distributed vector from an HDF5 file.

Parameters
filenamefile from where to load

Definition at line 2732 of file vector_dist.hpp.

◆ map()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename obp = KillParticle>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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

Parameters
optoptions

Definition at line 2436 of file vector_dist.hpp.

◆ map_list()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int ... prp>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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
Parameters
optoptions

Definition at line 2407 of file vector_dist.hpp.

◆ operator=() [1/2]

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

Operator= for distributed vector.

Parameters
vvector to copy
Returns
itself

Definition at line 483 of file vector_dist.hpp.

◆ operator=() [2/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist< dim, St, prop, Decomposition, Memory, layout_base > & vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::operator= ( vector_dist< dim, St, prop, Decomposition, Memory, layout_base > &&  v)
inline

Operator= for distributed vector.

Parameters
vvector to copy
Returns
itself

Definition at line 508 of file vector_dist.hpp.

◆ remove() [1/3]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::remove ( openfpm::vector< aggregate< int > > &  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 2614 of file vector_dist.hpp.

◆ remove() [2/3]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 2598 of file vector_dist.hpp.

◆ remove() [3/3]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::remove ( size_t  key)
inline

Remove one element from the distributed vector.

Parameters
keyremove one element from the vector

Definition at line 2627 of file vector_dist.hpp.

◆ reorder() [1/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellL = CellList_gen<dim,St,Process_keys_lin,Mem_bal<>,shift<dim,St> >>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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.

Warning
it kill the ghost and invalidate cell-lists

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 1904 of file vector_dist.hpp.

◆ reorder() [2/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellL = CellList_gen<dim,St,Process_keys_lin,Mem_bal<>,shift<dim,St> >>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1884 of file vector_dist.hpp.

◆ reorder_rcut()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellL = CellList_gen<dim,St,Process_keys_lin,Mem_bal<>,shift<dim,St> >>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::reorder_rcut ( St  r_cut)
inline

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

Warning
it kill the ghost and invalidate cell-lists

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 1990 of file vector_dist.hpp.

◆ reorder_sfc()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellL , typename sfc_it >
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 426 of file vector_dist.hpp.

◆ resize()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::resize ( size_t  rs)
inline

Resize the vector (locally)

Warning
It automatically delete the ghosts
Parameters
rs

Definition at line 2833 of file vector_dist.hpp.

◆ resizeAtEnd()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::resizeAtEnd ( size_t  rs)
inline

Resize the vector at the end of the ghost (locally)

Warning
It doesn't delete the ghosts
Parameters
rs

Definition at line 2854 of file vector_dist.hpp.

◆ save()

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

Save the distributed vector on HDF5 file.

Parameters
filenamefile where to save

Definition at line 2720 of file vector_dist.hpp.

◆ setCapacity()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::setCapacity ( unsigned int  ns)
inline

Reserve space for the internal vectors.

Parameters

Definition at line 2744 of file vector_dist.hpp.

◆ setPropNames()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 3191 of file vector_dist.hpp.

◆ setReferenceCounterToOne()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::setReferenceCounterToOne ( )
inline

Set reference counter to one

Definition at line 657 of file vector_dist.hpp.

◆ size_local()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
size_t vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::size_local ( ) const
inline

return the local size of the vector

Returns
local size

Definition at line 686 of file vector_dist.hpp.

◆ size_local_orig()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
size_t vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::size_local_orig ( ) const
inline

return the local size of the vector

Returns
local size

Definition at line 696 of file vector_dist.hpp.

◆ size_local_with_ghost()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
size_t vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::size_local_with_ghost ( ) const
inline

return the local size of the vector

Returns
local size

Definition at line 706 of file vector_dist.hpp.

◆ updateCellList()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<unsigned int ... prp, typename CellL >
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::updateCellList ( CellL &  cell_list,
bool  no_se3 = false,
cl_construct_opt  opt = cl_construct_opt::Full 
)
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 1516 of file vector_dist.hpp.

◆ updateCellListSym()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename CellL = CellList<dim, St, Mem_fast<>, shift<dim, St> >>
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1556 of file vector_dist.hpp.

◆ updateVerlet()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
template<typename Mem_type >
void vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 1790 of file vector_dist.hpp.

◆ who()

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
long int vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 3018 of file vector_dist.hpp.

◆ write() [1/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
bool vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 2759 of file vector_dist.hpp.

◆ write() [2/2]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
bool vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::write ( std::string  out,
std::string  meta_info,
int  opt = VTK_WRITER 
)
inline

Output particle position and properties.

Parameters
outoutput filename
meta_infometa information example ("time = 1.234" add the information time to the VTK file)
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 2774 of file vector_dist.hpp.

◆ write_frame() [1/3]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
bool vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::write_frame ( std::string  out,
size_t  iteration,
double  time,
int  opt = VTK_WRITER 
)
inline

Output particle position and properties and add a time stamp to pvtp.

Parameters
outoutput
iteration(we can append the number at the end of the file_name)
time= 1.234 to add to the information time to the PVTP file)
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 2945 of file vector_dist.hpp.

◆ write_frame() [2/3]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
bool vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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)
meta_infometa information example ("time = 1.234" add the information time to the VTK file)
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 2874 of file vector_dist.hpp.

◆ write_frame() [3/3]

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
bool vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::write_frame ( std::string  out,
size_t  iteration,
std::string  meta_info,
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)
meta_infometa information example ("time = 1.234" add the information time to the VTK file)
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 2890 of file vector_dist.hpp.

Field Documentation

◆ dims

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
const unsigned int vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::dims = dim
static

template parameters typedefs

Definition at line 313 of file vector_dist.hpp.

◆ g_m

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
size_t vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::g_m = 0
private

Ghost marker, all the particle with id > g_m are ghost all with g_m < are real particle.

Definition at line 322 of file vector_dist.hpp.

◆ opt

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
size_t vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::opt = 0
private

option used to create this vector

Definition at line 339 of file vector_dist.hpp.

◆ prp_names

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
openfpm::vector<std::string> vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::prp_names
private

Name of the properties.

Definition at line 342 of file vector_dist.hpp.

◆ v_pos

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_pos vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 326 of file vector_dist.hpp.

◆ v_pos_out

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_pos vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::v_pos_out
private

reordered v_prp buffer

Definition at line 336 of file vector_dist.hpp.

◆ v_prp

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_prop vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::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 330 of file vector_dist.hpp.

◆ v_prp_out

template<unsigned int dim, typename St , typename prop , typename Decomposition = CartDecomposition<dim,St>, typename Memory = HeapMemory, template< typename > class layout_base = memory_traits_lin, typename vector_dist_pos = openfpm::vector<Point<dim, St>,Memory,layout_base>, typename vector_dist_prop = openfpm::vector<prop,Memory,layout_base>>
vector_dist_prop vector_dist< dim, St, prop, Decomposition, Memory, layout_base, vector_dist_pos, vector_dist_prop >::v_prp_out
private

reordered v_pos buffer

Definition at line 333 of file vector_dist.hpp.


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