Class for Verlet list implementation. More...
Class for Verlet list implementation.
| dim | Dimensionality of the space |
| T | type of the space float, double ... |
| base | Base structure that store the information |
Definition at line 280 of file VerletListFast.hpp.
#include <VerletListFast.hpp>
Inheritance diagram for VerletList< dim, T, Mem_type, transform, CellListImpl >:Public Types | |
| typedef Mem_type | Mem_type_type |
| type for the local index | |
| typedef size_t | value_type |
| Object type that the structure store. | |
| typedef CellListImpl | CellListImpl_ |
| CellList implementation used for Verlet list construction. | |
Public Member Functions | |
| size_t | size () |
| Return for how many particles has been constructed this verlet list. More... | |
| void | addPart (size_t part_id, size_t ele) |
| Add a neighborhood particle to a particle. More... | |
| void | Initialize (const Box< dim, T > &box, const Box< dim, T > &dom, T r_cut, openfpm::vector< Point< dim, T >> &pos, size_t g_m, size_t opt=VL_NON_SYMMETRIC) |
| void | InitializeSym (const Box< dim, T > &box, const Box< dim, T > &dom, const Ghost< dim, T > &g, T r_cut, openfpm::vector< Point< dim, T >> &pos, size_t g_m) |
| Initialize the symmetric Verlet-list. More... | |
| void | InitializeCrs (const Box< dim, T > &box, const Box< dim, T > &dom, const Ghost< dim, T > &g, T r_cut, openfpm::vector< Point< dim, T >> &pos, size_t g_m) |
| Initialize the symmetric Verlet-list CRS scheme. More... | |
| void | createVerletCrs (T r_cut, size_t g_m, openfpm::vector< Point< dim, T >> &pos, openfpm::vector< size_t > &dom_c, openfpm::vector< subsub_lin< dim >> &anom_c) |
| Create the Verlet-list with the crossing scheme. More... | |
| void | update (const Box< dim, T > &dom, T r_cut, openfpm::vector< Point< dim, T >> &pos, size_t &g_m, size_t opt) |
| update the Verlet list More... | |
| void | updateCrs (const Box< dim, T > &dom, T r_cut, openfpm::vector< Point< dim, T >> &pos, size_t &g_m, const openfpm::vector< size_t > &dom_c, const openfpm::vector< subsub_lin< dim >> &anom_c) |
| update the Verlet list More... | |
| void | Initialize (CellListImpl &cli, T r_cut, const openfpm::vector< Point< dim, T >> &pos, const openfpm::vector< Point< dim, T >> &pos2, size_t g_m, size_t opt=VL_NON_SYMMETRIC) |
| VerletList () | |
| Default Constructor. | |
| VerletList (const VerletList< dim, T, Mem_type, transform, CellListImpl > &cell) | |
| Copy constructor. | |
| VerletList (VerletList< dim, T, Mem_type, transform, CellListImpl > &&cell) | |
| Copy constructor. | |
| VerletList (Box< dim, T > &box, T r_cut, Matrix< dim, T > mat, const size_t pad=1, size_t slot=STARTING_NSLOT) | |
| Verlet-list constructor. More... | |
| VerletList (Box< dim, T > &box, T r_cut, openfpm::vector< Point< dim, T >> &pos, size_t g_m, size_t slot=VERLET_STARTING_NSLOT) | |
| Verlet-list constructor. More... | |
| VerletList (SpaceBox< dim, T > &box, Box< dim, T > &dom, T r_cut, openfpm::vector< Point< dim, T >> &pos, size_t g_m, size_t slot=VERLET_STARTING_NSLOT) | |
| Cell list constructor. More... | |
| ~VerletList () | |
| Destructor. More... | |
| VerletList< dim, T, Mem_type, transform, CellListImpl > & | operator= (VerletList< dim, T, Mem_type, transform, CellListImpl > &&vl) |
| Copy the verlet list. More... | |
| VerletList< dim, T, Mem_type, transform, CellListImpl > & | operator= (const VerletList< dim, T, Mem_type, transform, CellListImpl > &vl) |
| Copy a verlet list. More... | |
| size_t | getNNPart (size_t part_id) const |
| Return the number of neighborhood particles for the particle id. More... | |
| size_t | get (size_t i, size_t j) const |
| Get the neighborhood element j for the particle i. More... | |
| void | swap (VerletList< dim, T, Mem_type, transform, CellListImpl > &vl) |
| Swap the memory. More... | |
| template<unsigned int impl = NO_CHECK> | |
| VerletNNIterator< dim, VerletList< dim, T, Mem_type, transform, CellListImpl > > | getNNIterator (size_t part_id) |
| Get the Neighborhood iterator. More... | |
| void | clear () |
| Clear the cell list. More... | |
| const Mem_type::loc_index & | getStart (typename Mem_type::loc_index part_id) |
| Return the starting point of the neighborhood for the particle p. More... | |
| const Mem_type::loc_index & | getStop (typename Mem_type::loc_index part_id) |
| Return the end point of the neighborhood for the particle p. More... | |
| const Mem_type::loc_index & | get_lin (const typename Mem_type::loc_index *part_id) |
| Return the neighborhood id. More... | |
| CellListImpl & | getInternalCellList () |
| Get the internal cell-list used to construct the Verlet-list. More... | |
| void | set_ndec (size_t n_dec) |
| Set the n_dec number. More... | |
| size_t | get_ndec () |
| Set the n_dec number. More... | |
| openfpm::vector< typename Mem_type::loc_index > & | getParticleSeq () |
| Return the domain particle sequence. More... | |
Protected Attributes | |
| Mem_type::loc_index | slot |
| Number of slot for each particle. Or maximum number of particles for each particle. | |
|
openfpm::vector< typename Mem_type::loc_index > | dp |
| Domain particles. | |
Private Member Functions | |
| void | initCl (CellListImpl &cli, openfpm::vector< Point< dim, T >> &pos, size_t g_m, size_t opt) |
| Fill the cell-list with data. More... | |
| void | create (const openfpm::vector< Point< dim, T >> &pos, const openfpm::vector< Point< dim, T >> &pos2, const openfpm::vector< size_t > &dom, const openfpm::vector< subsub_lin< dim >> &anom, T r_cut, size_t g_m, CellListImpl &cl, size_t opt) |
| Create the Verlet list from a given cell-list. More... | |
| template<typename NN_type , int type> | |
| void | create_ (const openfpm::vector< Point< dim, T >> &pos, const openfpm::vector< Point< dim, T >> &pos2, const openfpm::vector< size_t > &dom, const openfpm::vector< subsub_lin< dim >> &anom, T r_cut, size_t g_m, CellListImpl &cli, size_t opt) |
| Create the Verlet list from a given cell-list. More... | |
| void | createR (openfpm::vector< Point< dim, T >> &pos, T r_cut, size_t g_m, CellListImpl &cl) |
| Create the Verlet list from a given cell-list with a particular cut-off radius. More... | |
Private Attributes | |
| size_t | n_dec |
| decomposition counter | |
| CellListImpl | cli |
| Interlal cell-list. | |
|
inline |
Verlet-list constructor.
| box | Domain where this verlet-list is living |
| r_cut | cutoff radius |
| mat | Matrix transformation |
| pad | padding for the internal Cell-list padding |
| slot | maximum number of slots or maximum number of neighborhood per particle |
Definition at line 691 of file VerletListFast.hpp.
|
inline |
Verlet-list constructor.
| box | Domain where this cell list is living |
| r_cut | cut-off radius |
| pos | vector position of particles |
| g_m | Indicate 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 |
| slot | maximum number of slots (or maximum number each particle can have) |
Definition at line 711 of file VerletListFast.hpp.
|
inline |
Cell list constructor.
| box | Domain where this cell list is living |
| dom | Simulation domain |
| r_cut | cut-off radius |
| pos | vector position of particles |
| g_m | Indicate 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 |
| slot | maximum number of slots (or maximum number each particle can have) |
Definition at line 732 of file VerletListFast.hpp.
|
inline |
Destructor.
Definition at line 742 of file VerletListFast.hpp.
|
inline |
Add a neighborhood particle to a particle.
| part_id | part id where to add |
| ele | element to add |
Definition at line 464 of file VerletListFast.hpp.
|
inline |
Clear the cell list.
Definition at line 853 of file VerletListFast.hpp.
|
inlineprivate |
Create the Verlet list from a given cell-list.
| pos | vector of positions |
| pos2 | vector of positions of neighborhood particles |
| r_cut | cut-off radius to get the neighborhood particles |
| g_m | Indicate 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 |
| cl | Cell-list elements to use to construct the verlet list |
| opt | options to create the verlet list like VL_SYMMETRIC or VL_NON_SYMMETRIC |
Definition at line 327 of file VerletListFast.hpp.
|
inlineprivate |
Create the Verlet list from a given cell-list.
| pos | vector of positions |
| pos2 | vector of position for the neighborhood |
| r_cut | cut-off radius to get the neighborhood particles |
| g_m | Indicate 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 |
| cli | Cell-list elements to use to construct the verlet list |
| dom | list of domain cells with normal neighborhood |
| anom | list of domain cells with non-normal neighborhood |
| opt | options |
Definition at line 357 of file VerletListFast.hpp.
|
inlineprivate |
Create the Verlet list from a given cell-list with a particular cut-off radius.
| pos | vector of positions of particles |
| r_cut | cut-off radius to get the neighborhood particles |
| g_m | Indicate 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 |
| cl | Cell-list elements to use to construct the verlet list |
Definition at line 407 of file VerletListFast.hpp.
|
inline |
Create the Verlet-list with the crossing scheme.
| pos | vector with the particle positions |
| g_m | ghost marker |
| pos | vector with the particle positions |
| r_cut | cut-off radius |
| dom_c | domain cells |
| anom_c | cells with anomalos neighborhood |
Definition at line 577 of file VerletListFast.hpp.
|
inline |
Get the neighborhood element j for the particle i.
| i | particle id |
| j | neighborhood j |
Definition at line 806 of file VerletListFast.hpp.
|
inline |
Return the neighborhood id.
| part_id | particle id |
Definition at line 892 of file VerletListFast.hpp.
|
inline |
|
inline |
Get the internal cell-list used to construct the Verlet-list.
Definition at line 902 of file VerletListFast.hpp.
|
inline |
Get the Neighborhood iterator.
It iterate across all the neighborhood particles of a selected particle
| part_id | particle id |
Definition at line 843 of file VerletListFast.hpp.
|
inline |
Return the number of neighborhood particles for the particle id.
| part_id | id of the particle |
Definition at line 793 of file VerletListFast.hpp.
|
inline |
Return the domain particle sequence.
Definition at line 934 of file VerletListFast.hpp.
|
inline |
Return the starting point of the neighborhood for the particle p.
| part_id | particle id |
Definition at line 866 of file VerletListFast.hpp.
|
inline |
Return the end point of the neighborhood for the particle p.
| part_id | particle id |
Definition at line 879 of file VerletListFast.hpp.
|
inlineprivate |
Fill the cell-list with data.
| cli | Cell-list |
| pos | vector of positions |
| g_m | marker |
| opt | VL_SYMMETRIC or VL_NON_SYMMETRIC |
Definition at line 307 of file VerletListFast.hpp.
|
inline |
Initialize the verlet list
| box | Domain where this cell list is living |
| dom | Processor domain |
| r_cut | cut-off radius |
| pos | vector of particle positions |
| g_m | Indicate 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 |
| opt | option to generate Verlet list |
Definition at line 481 of file VerletListFast.hpp.
|
inline |
Initialize the verlet list from an already filled cell-list
| cli | external Cell-list |
| r_cut | cutoff-radius |
| pos | vector of particle positions |
| pos2 | vector of particle position for the neighborhood |
| g_m | Indicate 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 |
| opt | options for the Verlet-list creation |
Definition at line 632 of file VerletListFast.hpp.
|
inline |
Initialize the symmetric Verlet-list CRS scheme.
| box | Simulation domain |
| dom | Processor domain |
| g | ghost size |
| r_cut | cut-off radius |
| pos | vector of particle positions |
| g_m | Indicate 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 |
Definition at line 551 of file VerletListFast.hpp.
|
inline |
Initialize the symmetric Verlet-list.
| box | Simulation domain |
| dom | Processor domain |
| g | ghost size |
| r_cut | cut-off radius |
| pos | vector of particle positions |
| g_m | Indicate 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 |
Definition at line 515 of file VerletListFast.hpp.
|
inline |
Copy the verlet list.
| vl | verlet list to copy |
Definition at line 753 of file VerletListFast.hpp.
|
inline |
Copy a verlet list.
| vl | verlet-list to copy |
Definition at line 772 of file VerletListFast.hpp.
|
inline |
|
inline |
Return for how many particles has been constructed this verlet list.
Definition at line 453 of file VerletListFast.hpp.
|
inline |
Swap the memory.
| vl | Verlet list with witch you swap the memory |
Definition at line 816 of file VerletListFast.hpp.
|
inline |
update the Verlet list
| r_cut | cutoff radius |
| dom | Processor domain |
| pos | vector of particle positions |
| g_m | ghost marker |
| opt | option to create the Verlet list |
Definition at line 592 of file VerletListFast.hpp.
|
inline |
update the Verlet list
| r_cut | cutoff radius |
| dom | Processor domain |
| pos | vector of particle positions |
| g_m | ghost marker |
| dom_c | list of cells with normal neighborhood |
| anom_c | list of cells with anormal neighborhood |
Definition at line 613 of file VerletListFast.hpp.