OpenFPM_pdata  1.1.0
Project that contain the implementation of distributed structures
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Friends Pages
CellList_gen< dim, T, Prock, Mem_type, transform, base > Class Template Reference

Detailed Description

template<unsigned int dim, typename T, template< unsigned int, typename > class Prock, typename Mem_type = Mem_fast<>, typename transform = no_transform<dim,T>, typename base = openfpm::vector<size_t>>
class CellList_gen< dim, T, Prock, Mem_type, transform, base >

Definition at line 33 of file CellListFast_gen.hpp.

+ Inheritance diagram for CellList_gen< dim, T, Prock, Mem_type, transform, base >:

Public Member Functions

const Prock< dim, CellList_gen
< dim, T, Prock, Mem_type,
transform, base > > & 
getCellSFC () const
 Get the space filling curve object. More...
 
void init_SFC ()
 Initialize Space-filling-curve (SFC) More...
 
Prock< dim, CellList_gen< dim,
T, Prock, Mem_type, transform,
base > >::Pit 
getIterator ()
 return the celllist iterator (across cells) More...
 
void Initialize (const Box< dim, T > &box, const size_t(&div)[dim], const size_t pad=1, size_t slot=STARTING_NSLOT)
 
const openfpm::vector< size_t > & getKeys ()
 Return cellkeys vector. More...
 
size_t get_gm ()
 return the ghost marker More...
 
void set_gm (size_t g_m)
 Set the ghost marker. More...
 
- Public Member Functions inherited from CellList< dim, T, Mem_type, transform, base >
const grid_sm< dim, void > & getGrid ()
 Return the underlying grid information of the cell list. More...
 
void Initialize (CellDecomposer_sm< dim, T, transform > &cd_sm, const Box< dim, T > &dom_box, const size_t pad=1, size_t slot=STARTING_NSLOT)
 
void Initialize (const Box< dim, T > &box, const size_t(&div)[dim], const size_t pad=1, size_t slot=STARTING_NSLOT)
 
void Initialize (const SpaceBox< dim, T > &box, const size_t(&div)[dim], const size_t pad=1, size_t slot=STARTING_NSLOT)
 
 CellList ()
 Default Constructor.
 
 CellList (const CellList< dim, T, Mem_type, transform, base > &cell)
 Copy constructor.
 
 CellList (CellList< dim, T, Mem_type, transform, base > &&cell)
 Copy constructor.
 
 CellList (Box< dim, T > &box, const size_t(&div)[dim], Matrix< dim, T > mat, const size_t pad=1, size_t slot=STARTING_NSLOT)
 Cell list constructor. More...
 
 CellList (Box< dim, T > &box, const size_t(&div)[dim], const size_t pad=1, size_t slot=STARTING_NSLOT)
 Cell list constructor. More...
 
 CellList (SpaceBox< dim, T > &box, const size_t(&div)[dim], const size_t pad=1, size_t slot=STARTING_NSLOT)
 Cell list constructor. More...
 
 CellList (CellDecomposer_sm< dim, T, transform > &cd_sm, const Box< dim, T > &box, const size_t pad=1, size_t slot=STARTING_NSLOT)
 Cell list constructor from a cell decomposer. More...
 
 ~CellList ()
 Destructor. More...
 
CellList< dim, T, Mem_type,
transform, base > & 
operator= (CellList< dim, T, Mem_type, transform, base > &&cell)
 Constructor from a temporal object. More...
 
CellList< dim, T, Mem_type,
transform, base > & 
operator= (const CellList< dim, T, Mem_type, transform, base > &cell)
 Constructor from a temporal object. More...
 
ParticleIt_Cells< dim,
CellList< dim, T, Mem_fast
<>, transform, base > > 
getDomainIterator (openfpm::vector< size_t > &dom_cells)
 Get an iterator over particles following the cell structure. More...
 
void addCell (size_t cell_id, typename base::value_type ele)
 Add to the cell. More...
 
void add (const T(&pos)[dim], typename base::value_type ele)
 Add an element in the cell list. More...
 
void add (const Point< dim, T > &pos, typename base::value_type ele)
 Add an element in the cell list. More...
 
void addDom (const T(&pos)[dim], typename base::value_type ele)
 Add an element in the cell list forcing to be in the domain cells. More...
 
void addDom (const Point< dim, T > &pos, typename base::value_type ele)
 Add an element in the cell list forcing to be in the domain cells. More...
 
void addPad (const T(&pos)[dim], typename base::value_type ele)
 Add an element in the cell list forcing to be in the padding cells. More...
 
void addPad (const Point< dim, T > &pos, typename base::value_type ele)
 Add an element in the cell list forcing to be in the padding cells. More...
 
void remove (size_t cell, size_t ele)
 remove an element from the cell More...
 
size_t getNelements (const size_t cell_id) const
 Return the number of elements in the cell. More...
 
auto get (size_t cell, size_t ele) -> decltype(this->Mem_type::get(cell, ele))
 Get an element in the cell. More...
 
auto get (size_t cell, size_t ele) const -> decltype(this->Mem_type::get(cell, ele))
 Get an element in the cell. More...
 
void swap (CellList< dim, T, Mem_type, transform, base > &cl)
 Swap the memory. More...
 
CellIterator< CellList< dim, T,
Mem_type, transform, base > > 
getCellIterator (size_t cell)
 Get the Cell iterator. More...
 
template<unsigned int impl = NO_CHECK>
CellNNIterator< dim, CellList
< dim, T, Mem_type, transform,
base >,(int) FULL, impl > 
getNNIterator (size_t cell)
 Get the Neighborhood iterator. More...
 
template<unsigned int impl = NO_CHECK>
CellNNIteratorRadius< dim,
CellList< dim, T, Mem_type,
transform, base >, impl > 
getNNIteratorRadius (size_t cell, T r_cut)
 Get the symmetric Neighborhood iterator. More...
 
template<unsigned int impl>
CellNNIteratorSym< dim,
CellList< dim, T, Mem_type,
transform, base >,(unsigned
int) SYM, impl > 
getNNIteratorSym (size_t cell, size_t p, const openfpm::vector< Point< dim, T >> &v)
 Get the symmetric Neighborhood iterator. More...
 
template<unsigned int impl>
CellNNIteratorSymMP< dim,
CellList< dim, T, Mem_type,
transform, base >,(unsigned
int) SYM, impl > 
getNNIteratorSymMP (size_t cell, size_t p, const openfpm::vector< Point< dim, T >> &v_p1, const openfpm::vector< Point< dim, T >> &v_p2)
 Get the symmetric Neighborhood iterator. More...
 
const NNc_array< dim,(unsigned
int) openfpm::math::pow(3, dim)/2+1 > & 
getNNc_sym () const
 Get the symmetric neighborhood. More...
 
size_t getPadding (size_t i) const
 Return the number of padding cells of the Cell decomposer. More...
 
size_t(& getPadding ())[dim]
 Return the number of padding cells of the Cell decomposer as an array. More...
 
void clear ()
 Clear the cell list. More...
 
const Mem_type::loc_index & getStartId (typename Mem_type::loc_index cell_id) const
 Return the starting point of the cell p. More...
 
const Mem_type::loc_index & getStopId (typename Mem_type::loc_index cell_id) const
 Return the end point of the cell p. More...
 
const Mem_type::loc_index & get_lin (const typename Mem_type::loc_index *part_id) const
 Return the neighborhood id. More...
 
size_t get_gm ()
 return the ghost marker More...
 
void set_gm (size_t g_m)
 Set the ghost marker. More...
 
void set_ndec (size_t n_dec)
 Set the n_dec number. More...
 
size_t get_ndec () const
 Set the n_dec number. More...
 

Private Member Functions

void initialize_sfc (size_t pad)
 Initialize the space-filling-curve. More...
 

Private Attributes

size_t g_m = 0
 Ghost marker.
 
Prock< dim, CellList_gen< dim,
T, Prock, Mem_type, transform,
base > > 
SFC
 
bool init_sfc
 Init SFC.
 

Additional Inherited Members

- Public Types inherited from CellList< dim, T, Mem_type, transform, base >
typedef Mem_type Mem_type_type
 Type of internal memory structure.
 
typedef CellNNIteratorSym< dim,
CellList< dim, T, Mem_type,
transform, base >, RUNTIME,
NO_CHECK > 
SymNNIterator
 
typedef base::value_type value_type
 Object type that the structure store.
 
typedef T stype
 Type of the coordinate space (double float)
 
- Data Fields inherited from CellList< dim, T, Mem_type, transform, base >
size_t g_m = 0
 Ghost marker.
 
- Protected Attributes inherited from CellList< dim, T, Mem_type, transform, base >
NNc_array< dim,(unsigned int)
openfpm::math::pow(3, dim)> 
NNc_full
 The array contain the neighborhood of the cell-id in case of asymmetric interaction.
 
NNc_array< dim,(unsigned int)
openfpm::math::pow(3, dim)/2+1 > 
NNc_sym
 The array contain the neighborhood of the cell-id in case of symmetric interaction.
 

Member Function Documentation

template<unsigned int dim, typename T, template< unsigned int, typename > class Prock, typename Mem_type = Mem_fast<>, typename transform = no_transform<dim,T>, typename base = openfpm::vector<size_t>>
size_t CellList_gen< dim, T, Prock, Mem_type, transform, base >::get_gm ( )
inline

return the ghost marker

Returns
ghost marker

Definition at line 168 of file CellListFast_gen.hpp.

template<unsigned int dim, typename T, template< unsigned int, typename > class Prock, typename Mem_type = Mem_fast<>, typename transform = no_transform<dim,T>, typename base = openfpm::vector<size_t>>
const Prock<dim,CellList_gen<dim,T,Prock,Mem_type,transform,base> >& CellList_gen< dim, T, Prock, Mem_type, transform, base >::getCellSFC ( ) const
inline

Get the space filling curve object.

Returns
the SFC object

Definition at line 108 of file CellListFast_gen.hpp.

template<unsigned int dim, typename T, template< unsigned int, typename > class Prock, typename Mem_type = Mem_fast<>, typename transform = no_transform<dim,T>, typename base = openfpm::vector<size_t>>
Prock<dim,CellList_gen<dim,T,Prock,Mem_type,transform,base> >::Pit CellList_gen< dim, T, Prock, Mem_type, transform, base >::getIterator ( )
inline

return the celllist iterator (across cells)

Returns
an iterator

Definition at line 131 of file CellListFast_gen.hpp.

template<unsigned int dim, typename T, template< unsigned int, typename > class Prock, typename Mem_type = Mem_fast<>, typename transform = no_transform<dim,T>, typename base = openfpm::vector<size_t>>
const openfpm::vector<size_t>& CellList_gen< dim, T, Prock, Mem_type, transform, base >::getKeys ( )
inline

Return cellkeys vector.

Returns
vector of cell keys

Definition at line 158 of file CellListFast_gen.hpp.

template<unsigned int dim, typename T, template< unsigned int, typename > class Prock, typename Mem_type = Mem_fast<>, typename transform = no_transform<dim,T>, typename base = openfpm::vector<size_t>>
void CellList_gen< dim, T, Prock, Mem_type, transform, base >::init_SFC ( )
inline

Initialize Space-filling-curve (SFC)

Definition at line 116 of file CellListFast_gen.hpp.

template<unsigned int dim, typename T, template< unsigned int, typename > class Prock, typename Mem_type = Mem_fast<>, typename transform = no_transform<dim,T>, typename base = openfpm::vector<size_t>>
void CellList_gen< dim, T, Prock, Mem_type, transform, base >::Initialize ( const Box< dim, T > &  box,
const size_t(&)  div[dim],
const size_t  pad = 1,
size_t  slot = STARTING_NSLOT 
)
inline

Initialize the cell list

Parameters
boxDomain where this cell list is living
divgrid size on each dimension
g_m_newA ghost marker
padpadding cell
slotmaximum number of slot

Definition at line 147 of file CellListFast_gen.hpp.

template<unsigned int dim, typename T, template< unsigned int, typename > class Prock, typename Mem_type = Mem_fast<>, typename transform = no_transform<dim,T>, typename base = openfpm::vector<size_t>>
void CellList_gen< dim, T, Prock, Mem_type, transform, base >::initialize_sfc ( size_t  pad)
inlineprivate

Initialize the space-filling-curve.

Parameters
padpadding of the cell-list

Definition at line 52 of file CellListFast_gen.hpp.

template<unsigned int dim, typename T, template< unsigned int, typename > class Prock, typename Mem_type = Mem_fast<>, typename transform = no_transform<dim,T>, typename base = openfpm::vector<size_t>>
void CellList_gen< dim, T, Prock, Mem_type, transform, base >::set_gm ( size_t  g_m)
inline

Set the ghost marker.

Definition at line 177 of file CellListFast_gen.hpp.

Field Documentation

template<unsigned int dim, typename T, template< unsigned int, typename > class Prock, typename Mem_type = Mem_fast<>, typename transform = no_transform<dim,T>, typename base = openfpm::vector<size_t>>
Prock<dim,CellList_gen<dim,T,Prock,Mem_type,transform,base> > CellList_gen< dim, T, Prock, Mem_type, transform, base >::SFC
private

It is an object that indicate which space filling curve to use for the iteration across cells

Definition at line 42 of file CellListFast_gen.hpp.


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