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

in case of high dimensions shift vector converter More...

Detailed Description

template<unsigned int dim, typename T>
class shift_vect_converter< dim, T >

in case of high dimensions shift vector converter

In case of high-dimensions the number of shift vectors explode, this class handle such case

Definition at line 20 of file shift_vect_converter.hpp.

#include <shift_vect_converter.hpp>

Public Member Functions

void generateShiftVectors (const Box< dim, T > &domain, size_t(&bc)[dim], openfpm::vector< Point< dim, T >> &shifts)
 Here we generare the shift vectors for the low dimension case. More...
 
void Initialize (size_t(&bc)[dim])
 Initialize. More...
 
size_t linId_hd (const comb< dim > &cmb)
 linearize the combination in case of high dimension More...
 
size_t linId_ld (const comb< dim > &cmb)
 linearize the combination in case of low dimensions More...
 
size_t linId (const comb< dim > &cmb)
 linearize the combination in case of high dimensions More...
 

Private Member Functions

void generateShiftVectors_ld (const Box< dim, T > &domain, size_t(&bc)[dim], openfpm::vector< Point< dim, T >> &shifts)
 Here we generare the shift vectors for the low dimension case. More...
 
void generateShiftVectors_hd (const Box< dim, T > &domain, size_t(&bc)[dim], openfpm::vector< Point< dim, T >> &shifts)
 Here we generare the shift vectors for the high dimension case. More...
 

Private Attributes

size_t red_shift_v [dim]
 Indicate which indexes are non_periodic.
 
size_t tmp [dim]
 
int dim_r = 0
 

Member Function Documentation

template<unsigned int dim, typename T>
void shift_vect_converter< dim, T >::generateShiftVectors ( const Box< dim, T > &  domain,
size_t(&)  bc[dim],
openfpm::vector< Point< dim, T >> &  shifts 
)
inline

Here we generare the shift vectors for the low dimension case.

Parameters
domainbox that describe the domain

Definition at line 126 of file shift_vect_converter.hpp.

template<unsigned int dim, typename T>
void shift_vect_converter< dim, T >::generateShiftVectors_hd ( const Box< dim, T > &  domain,
size_t(&)  bc[dim],
openfpm::vector< Point< dim, T >> &  shifts 
)
inlineprivate

Here we generare the shift vectors for the high dimension case.

Parameters
domainbox that describe the domain

Definition at line 72 of file shift_vect_converter.hpp.

template<unsigned int dim, typename T>
void shift_vect_converter< dim, T >::generateShiftVectors_ld ( const Box< dim, T > &  domain,
size_t(&)  bc[dim],
openfpm::vector< Point< dim, T >> &  shifts 
)
inlineprivate

Here we generare the shift vectors for the low dimension case.

Parameters
domainbox that describe the domain

Definition at line 36 of file shift_vect_converter.hpp.

template<unsigned int dim, typename T>
void shift_vect_converter< dim, T >::Initialize ( size_t(&)  bc[dim])
inline

Initialize.

Parameters
bcboundary conditions

Definition at line 139 of file shift_vect_converter.hpp.

template<unsigned int dim, typename T>
size_t shift_vect_converter< dim, T >::linId ( const comb< dim > &  cmb)
inline

linearize the combination in case of high dimensions

Parameters
cmbcombination

Definition at line 185 of file shift_vect_converter.hpp.

template<unsigned int dim, typename T>
size_t shift_vect_converter< dim, T >::linId_hd ( const comb< dim > &  cmb)
inline

linearize the combination in case of high dimension

Parameters
cmbcombination

Definition at line 157 of file shift_vect_converter.hpp.

template<unsigned int dim, typename T>
size_t shift_vect_converter< dim, T >::linId_ld ( const comb< dim > &  cmb)
inline

linearize the combination in case of low dimensions

Parameters
cmbcombination

Definition at line 175 of file shift_vect_converter.hpp.


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