OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
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();

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
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;
}

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

Data Fields

decltype(v_pos) typedef internal_position_vector_type
 

Static Public Attributes

static const unsigned int dims = dim
 dimensions of space
 

Private Member Functions

void init_structures (size_t np)
 Initialize the structures. More...
 
void check_parameters (Box< dim, St > &box)
 Check if the parameters describe a valid vector. In case it does not report an error. More...
 
void check_ghost_compatible_rcut (St r_cut)
 It check that the r_cut is not bugger than the ghost. More...
 
template<typename CellL , typename sfc_it >
void reorder_sfc (openfpm::vector< Point< dim, St >> &v_pos_dest, openfpm::vector< prop > &v_prp_dest, sfc_it &h_it, CellL &cell_list)
 Reorder based on hilbert space filling curve. More...
 
- Private Member Functions inherited from vector_dist_ker_list< int >
void add (int &v, bool is_sorted)
 Add a new vector_dist_kernel to track. More...
 
void update (const int &v)
 Update the addresses of all vector_dist_kernels around. More...
 
void update_sort (const int &vs)
 
void remove (int &v)
 Remove one vector_dist_kernels entry. More...
 
size_t n_entry ()
 Return the number of entries. More...
 
bool check (const int &v)
 Check that all the entries are aligned to the latest vector_dist_ker_type. More...
 

Private Attributes

size_t g_m = 0
 Ghost marker, all the particle with id > g_m are ghost all with g_m < are real particle.
 
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.
 

Constructor & Destructor Documentation

◆ vector_dist() [1/5]

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

◆ vector_dist() [2/5]

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

◆ vector_dist() [3/5]

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

◆ vector_dist() [4/5]

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

◆ vector_dist() [5/5]

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 629 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 3022 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 1098 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 2618 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 2682 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 396 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 380 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 680 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 2792 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 3351 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 3343 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 2647 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 1324 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 1579 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 1468 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 1621 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 1308 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 1449 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 2892 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>,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 1217 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> >>
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 1260 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 3133 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 3146 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 2356 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 2366 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 2332 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 2346 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 2142 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 2322 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 2117 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 2309 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 2089 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 2103 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 2070 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 2037 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 2053 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 1118 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 1144 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 1175 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 1130 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 1160 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 1191 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 3111 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 3049 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 ( 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 726 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 ( 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 744 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 ( 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 761 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 ( 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 812 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 ( 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 905 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 ( 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 919 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 ( 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 933 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 ( 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 947 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 ( 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 778 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 ( 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 795 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 1041 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>>
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 2942 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>>
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 2952 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>>
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 2982 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>>
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 2992 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 1023 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 ( 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 830 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 ( 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 848 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 ( 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 866 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 ( 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 884 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 3097 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 ( 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 962 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 ( 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 977 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 ( 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 992 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 ( 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 1007 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 1079 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>>
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 2962 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>>
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 2972 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>>
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 3002 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>>
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 3012 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 1060 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 2929 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 1734 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 1681 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 1655 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 2457 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 2443 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 2558 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 2521 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 3367 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 3359 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 2495 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 2009 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 352 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 2665 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 3160 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 2708 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 2413 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 2384 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 487 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 512 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< 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 2574 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< 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 2590 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 2603 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,
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 1861 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,
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 1881 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 1967 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 417 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 2805 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 2696 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 2720 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 3087 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 661 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 690 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 700 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 710 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 1493 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 1533 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 1767 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 2914 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 2735 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 2750 of file vector_dist.hpp.

◆ write_frame() [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_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 2830 of file vector_dist.hpp.

◆ write_frame() [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_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 2846 of file vector_dist.hpp.

Field Documentation

◆ 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 317 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 321 of file vector_dist.hpp.


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