OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase > Class Template Reference

Class for Verlet list implementation with Multiphase. 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,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 142 of file VerletListM.hpp.

#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 g_m, size_t opt=VL_NON_SYMMETRIC)
 
size_t getP (size_t part, size_t ele) const
 Get the element-id in the cell.
 
size_t getV (size_t part, size_t ele) const
 Get the element vector in the cell.
 
template<unsigned int impl = NO_CHECK>
VerletNNIteratorM< dim, VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >, sh_bytegetNNIterator (size_t part_id)
 Get the Neighborhood iterator.
 

Private Types

typedef boost::high_bit_mask_t< sh_bytemask_high
 Mask to get the high bits of a number.
 
typedef boost::low_bits_mask_t< sizeof(size_t) *8-sh_bytemask_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, const openfpm::vector< size_t > &dom, const openfpm::vector< subsub_lin< dim > > &anom, size_t pp, T r_cut, size_t g_m, CellListImpl &cl, size_t opt)
 Create the Verlet list from a given cell-list.
 
template<typename NN_type , int type>
void create_ (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 g_m, CellListImpl &cli, size_t opt)
 Create the Verlet list from a given cell-list.
 

Member Typedef Documentation

◆ mask_high

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,Mem_fast<>,transform, vector_pos_type>>
typedef boost::high_bit_mask_t<sh_byte> VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >::mask_high
private

Mask to get the high bits of a number.

Definition at line 146 of file VerletListM.hpp.

◆ mask_low

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,Mem_fast<>,transform, vector_pos_type>>
typedef boost::low_bits_mask_t<sizeof(size_t)*8-sh_byte> VerletListM< dim, T, sh_byte, CellListImpl, transform, vector_pos_type, VerletBase >::mask_low
private

Mask to get the low bits of a number.

Definition at line 149 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,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,
const openfpm::vector< size_t > &  dom,
const openfpm::vector< subsub_lin< dim > > &  anom,
size_t  pp,
r_cut,
size_t  g_m,
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
g_mIndicate form which particles to construct the verlet list. For example if we have 120 particles and g_m = 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 163 of file VerletListM.hpp.

◆ 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,Mem_fast<>,transform, vector_pos_type>>
template<typename NN_type , int 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,
const openfpm::vector< size_t > &  dom,
const openfpm::vector< subsub_lin< dim > > &  anom,
size_t  pp,
r_cut,
size_t  g_m,
CellListImpl cli,
size_t  opt 
)
inlineprivate

Create the 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
g_mIndicate form which particles to construct the verlet list. For example if we have 120 particles and g_m = 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 201 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,Mem_fast<>,transform, vector_pos_type>>
template<unsigned int impl = NO_CHECK>
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 335 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,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 306 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,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 321 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,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  g_m,
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
g_mIndicate form which particles to construct the verlet list. For example if we have 120 particles and g_m = 100, the Verlet list will be constructed only for the first 100 particles
optoptions for the Verlet-list creation

Definition at line 267 of file VerletListM.hpp.


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