OpenFPM  5.2.0
Project that contain the implementation of distributed structures
VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase > Class Template Reference

Class for Verlet list implementation with Multiphase. More...

#include <VerletListM.hpp>

+ Inheritance diagram for VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >:

Public Member Functions

void Initialize (CellListImpl &cli, size_t pp, T r_cut, const vector_pos_type &pos, const openfpm::vector< struct pos_v< vector_pos_type >> &pos2, size_t ghostMarker, size_t opt=VL_NON_SYMMETRIC)
 
size_t getP (size_t part, size_t ele) const
 Get the element-id in the cell. More...
 
size_t getV (size_t part, size_t ele) const
 Get the element vector in the cell. More...
 
VerletNNIteratorM< dim, VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >, sh_byte > getNNIterator (size_t part_id)
 Get the Neighborhood iterator. More...
 

Private Types

typedef boost::high_bit_mask_t< sh_byte > mask_high
 Mask to get the high bits of a number.
 
typedef boost::low_bits_mask_t< sizeof(size_t) *8-sh_byte > mask_low
 Mask to get the low bits of a number.
 

Private Member Functions

void create (const vector_pos_type &pos, const openfpm::vector< pos_v< vector_pos_type >> &pos2, size_t pp, T r_cut, size_t ghostMarker, CellListImpl &cl, size_t opt)
 Create the Verlet list from a given cell-list. More...
 
void createCRSSymmetric (const vector_pos_type &pos, const openfpm::vector< pos_v< vector_pos_type >> &pos2, const openfpm::vector< size_t > &dom, const openfpm::vector< subsub_lin< dim >> &anom, size_t pp, T r_cut, size_t ghostMarker, CellListImpl &cli, size_t opt)
 Create the CRS Symmetric Verlet list from a given cell-list. More...
 
void createSymmetric (const vector_pos_type &pos, const openfpm::vector< pos_v< vector_pos_type >> &pos2, size_t pp, T r_cut, size_t ghostMarker, CellListImpl &cli, size_t opt)
 Create the Symmetric Verlet list from a given cell-list. More...
 
void createNonSymmetric (const vector_pos_type &pos, const openfpm::vector< pos_v< vector_pos_type >> &pos2, size_t pp, T r_cut, size_t ghostMarker, CellListImpl &cli, size_t opt)
 Create the Non-symmetric Verlet list from a given cell-list. More...
 

Detailed Description

template<unsigned int dim, typename T, unsigned int sh_byte, typename CellListImpl = CellListM<dim,T,sh_byte>, typename transform = shift<dim,T>, typename vector_pos_type = openfpm::vector<Point<dim,T>>, typename VerletBase = VerletList<dim,T,VL_NON_SYMMETRIC,Mem_fast<>,transform, vector_pos_type>>
class VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >

Class for Verlet list implementation with Multiphase.

Template Parameters
dimDimensionality of the space
Ttype of the space float, double ...
CellListImplBase structure that store the information

Definition at line 29 of file VerletListM.hpp.

Member Function Documentation

◆ create()

template<unsigned int dim, typename T , unsigned int sh_byte, typename CellListImpl = CellListM<dim,T,sh_byte>, typename transform = shift<dim,T>, typename vector_pos_type = openfpm::vector<Point<dim,T>>, typename VerletBase = VerletList<dim,T,VL_NON_SYMMETRIC,Mem_fast<>,transform, vector_pos_type>>
void VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >::create ( const vector_pos_type &  pos,
const openfpm::vector< pos_v< vector_pos_type >> &  pos2,
size_t  pp,
r_cut,
size_t  ghostMarker,
CellListImpl &  cl,
size_t  opt 
)
inlineprivate

Create the Verlet list from a given cell-list.

Parameters
posvector of positions
pos2vector of neighborhood particles position
r_cutcut-off radius to get the neighborhood particles
ghostMarkerIndicate form which particles to construct the verlet list. For example if we have 120 particles and ghostMarker = 100, the Verlet list will be constructed only for the first 100 particles
clCell-list elements to use to construct the verlet list
optoptions to create the verlet list like VL_SYMMETRIC or VL_NON_SYMMETRIC

Definition at line 50 of file VerletListM.hpp.

◆ createCRSSymmetric()

template<unsigned int dim, typename T , unsigned int sh_byte, typename CellListImpl = CellListM<dim,T,sh_byte>, typename transform = shift<dim,T>, typename vector_pos_type = openfpm::vector<Point<dim,T>>, typename VerletBase = VerletList<dim,T,VL_NON_SYMMETRIC,Mem_fast<>,transform, vector_pos_type>>
void VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >::createCRSSymmetric ( const vector_pos_type &  pos,
const openfpm::vector< pos_v< vector_pos_type >> &  pos2,
const openfpm::vector< size_t > &  dom,
const openfpm::vector< subsub_lin< dim >> &  anom,
size_t  pp,
r_cut,
size_t  ghostMarker,
CellListImpl &  cli,
size_t  opt 
)
inlineprivate

Create the CRS Symmetric Verlet list from a given cell-list.

Parameters
posvector of positions
pos2vector of position for the neighborhood
r_cutcut-off radius to get the neighborhood particles
ghostMarkerIndicate form which particles to construct the verlet list. For example if we have 120 particles and ghostMarker = 100, the Verlet list will be constructed only for the first 100 particles
cliCell-list elements to use to construct the verlet list
domlist of domain cells with normal neighborhood
anomlist of domain cells with non-normal neighborhood
optoptions

Definition at line 89 of file VerletListM.hpp.

◆ createNonSymmetric()

template<unsigned int dim, typename T , unsigned int sh_byte, typename CellListImpl = CellListM<dim,T,sh_byte>, typename transform = shift<dim,T>, typename vector_pos_type = openfpm::vector<Point<dim,T>>, typename VerletBase = VerletList<dim,T,VL_NON_SYMMETRIC,Mem_fast<>,transform, vector_pos_type>>
void VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >::createNonSymmetric ( const vector_pos_type &  pos,
const openfpm::vector< pos_v< vector_pos_type >> &  pos2,
size_t  pp,
r_cut,
size_t  ghostMarker,
CellListImpl &  cli,
size_t  opt 
)
inlineprivate

Create the Non-symmetric Verlet list from a given cell-list.

Parameters
posvector of positions
pos2vector of position for the neighborhood
r_cutcut-off radius to get the neighborhood particles
ghostMarkerIndicate form which particles to construct the verlet list. For example if we have 120 particles and ghostMarker = 100, the Verlet list will be constructed only for the first 100 particles
cliCell-list elements to use to construct the verlet list
optoptions

Definition at line 204 of file VerletListM.hpp.

◆ createSymmetric()

template<unsigned int dim, typename T , unsigned int sh_byte, typename CellListImpl = CellListM<dim,T,sh_byte>, typename transform = shift<dim,T>, typename vector_pos_type = openfpm::vector<Point<dim,T>>, typename VerletBase = VerletList<dim,T,VL_NON_SYMMETRIC,Mem_fast<>,transform, vector_pos_type>>
void VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >::createSymmetric ( const vector_pos_type &  pos,
const openfpm::vector< pos_v< vector_pos_type >> &  pos2,
size_t  pp,
r_cut,
size_t  ghostMarker,
CellListImpl &  cli,
size_t  opt 
)
inlineprivate

Create the Symmetric Verlet list from a given cell-list.

Parameters
posvector of positions
pos2vector of position for the neighborhood
r_cutcut-off radius to get the neighborhood particles
ghostMarkerIndicate form which particles to construct the verlet list. For example if we have 120 particles and ghostMarker = 100, the Verlet list will be constructed only for the first 100 particles
cliCell-list elements to use to construct the verlet list
optoptions

Definition at line 148 of file VerletListM.hpp.

◆ getNNIterator()

template<unsigned int dim, typename T , unsigned int sh_byte, typename CellListImpl = CellListM<dim,T,sh_byte>, typename transform = shift<dim,T>, typename vector_pos_type = openfpm::vector<Point<dim,T>>, typename VerletBase = VerletList<dim,T,VL_NON_SYMMETRIC,Mem_fast<>,transform, vector_pos_type>>
VerletNNIteratorM<dim,VerletListM<dim,T,sh_byte,CellListImpl,transform,vector_pos_type,VerletBase>,sh_byte> VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >::getNNIterator ( size_t  part_id)
inline

Get the Neighborhood iterator.

It iterate across all the neighborhood particles of a selected particle

Parameters
part_idparticle id
Returns
an interator across the neighborhood particles

Definition at line 329 of file VerletListM.hpp.

◆ getP()

template<unsigned int dim, typename T , unsigned int sh_byte, typename CellListImpl = CellListM<dim,T,sh_byte>, typename transform = shift<dim,T>, typename vector_pos_type = openfpm::vector<Point<dim,T>>, typename VerletBase = VerletList<dim,T,VL_NON_SYMMETRIC,Mem_fast<>,transform, vector_pos_type>>
size_t VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >::getP ( size_t  part,
size_t  ele 
) const
inline

Get the element-id in the cell.

Template Parameters
iproperty to get
Parameters
partpart id
eleelement id
Returns
The element value

Definition at line 300 of file VerletListM.hpp.

◆ getV()

template<unsigned int dim, typename T , unsigned int sh_byte, typename CellListImpl = CellListM<dim,T,sh_byte>, typename transform = shift<dim,T>, typename vector_pos_type = openfpm::vector<Point<dim,T>>, typename VerletBase = VerletList<dim,T,VL_NON_SYMMETRIC,Mem_fast<>,transform, vector_pos_type>>
size_t VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >::getV ( size_t  part,
size_t  ele 
) const
inline

Get the element vector in the cell.

Template Parameters
iproperty to get
Parameters
partparticle id
eleelement id
Returns
The element value

Definition at line 315 of file VerletListM.hpp.

◆ Initialize()

template<unsigned int dim, typename T , unsigned int sh_byte, typename CellListImpl = CellListM<dim,T,sh_byte>, typename transform = shift<dim,T>, typename vector_pos_type = openfpm::vector<Point<dim,T>>, typename VerletBase = VerletList<dim,T,VL_NON_SYMMETRIC,Mem_fast<>,transform, vector_pos_type>>
void VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >::Initialize ( CellListImpl &  cli,
size_t  pp,
r_cut,
const vector_pos_type &  pos,
const openfpm::vector< struct pos_v< vector_pos_type >> &  pos2,
size_t  ghostMarker,
size_t  opt = VL_NON_SYMMETRIC 
)
inline

Initialize the verlet list from an already filled cell-list

Parameters
cliexternal Cell-list
ppphase of pos
r_cutcutoff-radius
posvector of particle positions
pos2vector of particle position for the neighborhood
ghostMarkerIndicate form which particles to construct the verlet list. For example if we have 120 particles and ghostMarker = 100, the Verlet list will be constructed only for the first 100 particles
optoptions for the Verlet-list creation

Definition at line 264 of file VerletListM.hpp.


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