|
template<typename H > |
| staggered_grid_dist (const grid_dist_id< dim, St, H, typename Decomposition::base_type, Memory, grid_cpu< dim, H > > &g, const Ghost< dim, long int > &gh, Box< dim, size_t > ext) |
| This constructor is special, it construct an expanded grid that perfectly overlap with the previous.
|
|
| staggered_grid_dist (const size_t(&g_sz)[dim], const Box< dim, St > &domain, const Ghost< dim, St > &ghost) |
| Constructor.
|
|
| staggered_grid_dist (const size_t(&g_sz)[dim], const Box< dim, St > &domain, const Ghost< dim, long int > &ghost) |
| Constructor.
|
|
| staggered_grid_dist (const size_t(&g_sz)[dim], const Box< dim, St > &domain, const Ghost< dim, long int > &g, const periodicity< dim > &p) |
|
| staggered_grid_dist (const Decomposition &dec, const size_t(&g_sz)[dim], const Ghost< dim, long int > &g) |
|
| staggered_grid_dist (const Decomposition &dec, const size_t(&g_sz)[dim], const Ghost< dim, St > &ghost) |
|
template<unsigned int p> |
void | setStagPosition (openfpm::vector< comb< dim > > &cmb) |
| set the staggered positions of the properties
|
|
void | setDefaultStagPosition () |
| It set all the properties defined to be staggered on the default location.
|
|
template<typename Grid_dst , unsigned int ... pos> |
bool | to_normal (Grid_dst &g_dst, const Padding< dim > &pd, const long int(&start)[dim], const long int(&stop)[dim]) |
| Copy the staggered grid into a normal one.
|
|
const | openfpm::vector (&getStagPositions())[T |
| Get the staggered positions.
|
|
void | write (std::string str) |
| Write a vtk file with the information of the staggered grid.
|
|
bool | is_staggered_prop (size_t prp) |
| Return if the properties is a staggered property or not.
|
|
bool | is_staggered () const |
| Return if the grid is staggered.
|
|
const Box< dim, St > | getDomain () const |
| Get the domain where the grid is defined.
|
|
Point< dim, St > | getOffset (size_t i) |
| Get the point where it start the origin of the grid of the sub-domain i.
|
|
St | spacing (size_t i) const |
| Get the spacing of the grid in direction i.
|
|
size_t | size () const |
| Return the total number of points in the grid.
|
|
void | setBackgroundValue (T &bv) |
| set the background value
|
|
template<unsigned int p> |
void | setBackgroundValue (const typename boost::mpl::at< typename T::type, boost::mpl::int_< p > >::type &bv) |
| set the background value
|
|
size_t | size_local_inserted () const |
| Return the local total number of points inserted in the grid.
|
|
size_t | size (size_t i) const |
| Return the total number of points in the grid.
|
|
| grid_dist_id (const grid_dist_id< dim, St, T, Decomposition, Memory, device_grid > &g) |
| Copy constructor.
|
|
template<typename H > |
| grid_dist_id (const grid_dist_id< dim, St, H, typename Decomposition::base_type, Memory, grid_cpu< dim, H > > &g, const Ghost< dim, long int > &gh, Box< dim, size_t > ext) |
| This constructor is special, it construct an expanded grid that perfectly overlap with the previous.
|
|
template<typename Decomposition2 > |
| grid_dist_id (const Decomposition2 &dec, const size_t(&g_sz)[dim], const Ghost< dim, St > &ghost) |
|
| grid_dist_id (Decomposition &&dec, const size_t(&g_sz)[dim], const Ghost< dim, St > &ghost) |
|
| grid_dist_id (const Decomposition &dec, const size_t(&g_sz)[dim], const Ghost< dim, long int > &g) |
|
template<typename Decomposition2 > |
| grid_dist_id (const Decomposition2 &dec, const size_t(&g_sz)[dim], const Ghost< dim, long int > &g) |
|
| grid_dist_id (Decomposition &&dec, const size_t(&g_sz)[dim], const Ghost< dim, long int > &g) |
|
| grid_dist_id (const size_t(&g_sz)[dim], const Box< dim, St > &domain, const Ghost< dim, St > &g, size_t opt=0) |
|
| grid_dist_id (const size_t(&g_sz)[dim], const Box< dim, St > &domain, const Ghost< dim, long int > &g, size_t opt=0) |
|
| grid_dist_id (const size_t(&g_sz)[dim], const Box< dim, St > &domain, const Ghost< dim, St > &g, const periodicity< dim > &p, size_t opt=0) |
|
| grid_dist_id (const size_t(&g_sz)[dim], const Box< dim, St > &domain, const Ghost< dim, long int > &g, const periodicity< dim > &p, size_t opt=0, const grid_sm< dim, void > &g_dec=grid_sm< dim, void >()) |
|
| grid_dist_id (const size_t(&g_sz)[dim], const Box< dim, St > &domain, const Ghost< dim, long int > &g, const periodicity< dim > &p, openfpm::vector< Box< dim, long int > > &bx_def) |
| It construct a grid on the full domain restricted to the set of boxes specified.
|
|
const grid_sm< dim, T > & | getGridInfo () const |
| Get an object containing the grid informations.
|
|
const grid_sm< dim, void > & | getGridInfoVoid () const |
| Get an object containing the grid informations without type.
|
|
Decomposition & | getDecomposition () |
| Get the object that store the information about the decomposition.
|
|
const Decomposition & | getDecomposition () const |
| Get the object that store the information about the decomposition.
|
|
const CellDecomposer_sm< dim, St, shift< dim, St > > & | getCellDecomposer () const |
| Return the cell decomposer.
|
|
bool | isInside (const grid_key_dx< dim > &gk) const |
| Check that the global grid key is inside the grid domain.
|
|
size_t | getLocalDomainSize () const |
| Get the total number of grid points for the calling processor.
|
|
size_t | getLocalDomainWithGhostSize () const |
| Get the total number of grid points with ghost for the calling processor.
|
|
const openfpm::vector< GBoxes< device_grid::dims > > & | getLocalGridsInfo () const |
| It return the informations about the local grids.
|
|
void | getGlobalGridsInfo (openfpm::vector< GBoxes< device_grid::dims > > &gdb_ext_global) const |
| It gathers the information about local grids for all of the processors.
|
|
grid_dist_iterator< dim, device_grid, decltype(device_grid::type_of_subiterator()), FREE > | getOldDomainIterator () const |
| It return an iterator that span the full grid domain (each processor span its local domain)
|
|
grid_dist_id_iterator_dec< Decomposition > | getGridIterator (const grid_key_dx< dim > &start, const grid_key_dx< dim > &stop) |
|
grid_dist_id_iterator_dec< Decomposition, true > | getGridGhostIterator (const grid_key_dx< dim > &start, const grid_key_dx< dim > &stop) |
|
grid_dist_id_iterator_dec< Decomposition > | getGridIterator () |
|
grid_dist_iterator< dim, device_grid, decltype(device_grid::type_of_subiterator()), FREE > | getDomainIterator () const |
| It return an iterator that span the full grid domain (each processor span its local domain)
|
|
template<unsigned int Np> |
grid_dist_iterator< dim, device_grid, decltype(device_grid::template type_of_subiterator< stencil_offset_compute< dim, Np > >()), FREE, stencil_offset_compute< dim, Np > > | getDomainIteratorStencil (const grid_key_dx< dim >(&stencil_pnt)[Np]) const |
| It return an iterator that span the full grid domain (each processor span its local domain)
|
|
grid_dist_iterator< dim, device_grid, decltype(device_grid::type_of_iterator()), FIXED > | getDomainGhostIterator () const |
| It return an iterator that span the grid domain + ghost part.
|
|
grid_dist_iterator_sub< dim, device_grid > | getSubDomainIterator (const grid_key_dx< dim > &start, const grid_key_dx< dim > &stop) const |
| It return an iterator that span the grid domain only in the specified part.
|
|
grid_dist_iterator_sub< dim, device_grid > | getSubDomainIterator (const long int(&start)[dim], const long int(&stop)[dim]) const |
| It return an iterator that span the grid domain only in the specified part.
|
|
| ~grid_dist_id () |
| Destructor.
|
|
Vcluster & | getVC () |
| Get the Virtual Cluster machine.
|
|
void | removeUnusedBuffers () |
| Eliminate many internal temporary buffer you can use this between flushes if you get some out of memory.
|
|
bool | is_staggered () const |
| Indicate that this grid is not staggered.
|
|
template<typename bg_key > |
void | remove (const grid_dist_key_dx< dim, bg_key > &v1) |
| remove an element in the grid
|
|
template<typename bg_key > |
void | remove_no_flush (const grid_dist_key_dx< dim, bg_key > &v1) |
| remove an element in the grid
|
|
template<typename ... v_reduce> |
void | flush (flush_type opt=flush_type::FLUSH_ON_HOST) |
|
void | flush_remove () |
| remove an element in the grid
|
|
template<unsigned int p, typename bg_key > |
auto | insert (const grid_dist_key_dx< dim, bg_key > &v1) -> decltype(loc_grid.get(v1.getSub()).template insert< p >(v1.getKey())) |
| insert an element in the grid
|
|
template<unsigned int p, typename bg_key > |
auto | insertFlush (const grid_dist_key_dx< dim, bg_key > &v1) -> decltype(loc_grid.get(v1.getSub()).template insertFlush< p >(v1.getKey())) |
| insert an element in the grid
|
|
template<typename bg_key > |
auto | insertFlush (const grid_dist_key_dx< dim, bg_key > &v1) -> decltype(loc_grid.get(v1.getSub()).template insertFlush(v1.getKey())) |
| insert an element in the grid
|
|
template<unsigned int p, typename bg_key > |
auto | get (const grid_dist_key_dx< dim, bg_key > &v1) const -> typename std::add_lvalue_reference< decltype(loc_grid.get(v1.getSub()).template get< p >(v1.getKey()))>::type |
| Get the reference of the selected element.
|
|
template<unsigned int p, typename bg_key > |
auto | get (const grid_dist_key_dx< dim, bg_key > &v1) -> decltype(loc_grid.get(v1.getSub()).template get< p >(v1.getKey())) |
| Get the reference of the selected element.
|
|
template<unsigned int p = 0> |
auto | get (const grid_dist_g_dx< device_grid > &v1) const -> decltype(v1.getSub() ->template get< p >(v1.getKey())) |
| Get the reference of the selected element.
|
|
template<unsigned int p = 0> |
auto | get (const grid_dist_g_dx< device_grid > &v1) -> decltype(v1.getSub() ->template get< p >(v1.getKey())) |
| Get the reference of the selected element.
|
|
template<unsigned int p = 0> |
auto | get (const grid_dist_lin_dx &v1) const -> decltype(loc_grid.get(v1.getSub()).template get< p >(v1.getKey())) |
| Get the reference of the selected element.
|
|
template<unsigned int p = 0> |
auto | get (const grid_dist_lin_dx &v1) -> decltype(loc_grid.get(v1.getSub()).template get< p >(v1.getKey())) |
| Get the reference of the selected element.
|
|
template<typename bg_key > |
Point< dim, St > | getPos (const grid_dist_key_dx< dim, bg_key > &v1) |
| Get the reference of the selected element.
|
|
template<typename bg_key > |
bool | existPoint (const grid_dist_key_dx< dim, bg_key > &v1) const |
| Check if the point exist.
|
|
template<unsigned int p = 0, typename bgkey > |
auto | getProp (const grid_dist_key_dx< dim, bgkey > &v1) const -> decltype(this->template get< p >(v1)) |
| Get the reference of the selected element.
|
|
template<unsigned int p = 0, typename bgkey > |
auto | getProp (const grid_dist_key_dx< dim, bgkey > &v1) -> decltype(this->template get< p >(v1)) |
| Get the reference of the selected element.
|
|
template<int... prp> |
void | ghost_get (size_t opt=0) |
| It synchronize the ghost parts.
|
|
template<template< typename, typename > class op, int... prp> |
void | ghost_put () |
| It synchronize the ghost parts.
|
|
grid_dist_id< dim, St, T, Decomposition, Memory, device_grid > & | copy (grid_dist_id< dim, St, T, Decomposition, Memory, device_grid > &g, bool use_memcpy=true) |
| Copy the give grid into this grid.
|
|
grid_dist_id< dim, St, T, Decomposition, Memory, device_grid > & | copy_sparse (grid_dist_id< dim, St, T, Decomposition, Memory, device_grid > &g, bool use_memcpy=true) |
| Copy the give grid into this grid.
|
|
Point< dim, St > | getSpacing () |
| Get the spacing on each dimension.
|
|
grid_key_dx< dim > | getGKey (const grid_dist_key_dx< dim > &k) const |
| Convert a g_dist_key_dx into a global key.
|
|
template<typename Model > |
void | addComputationCosts (Model md=Model(), size_t ts=1) |
| Add the computation cost on the decomposition using a resolution function.
|
|
template<unsigned int prop_src, unsigned int prop_dst, unsigned int stencil_size, unsigned int N, typename lambda_f , typename ... ArgsT> |
void | conv (int(&stencil)[N][dim], grid_key_dx< 3 > start, grid_key_dx< 3 > stop, lambda_f func, ArgsT ... args) |
| apply a convolution using the stencil N
|
|
template<unsigned int prop_src, unsigned int prop_dst, unsigned int stencil_size, typename lambda_f , typename ... ArgsT> |
void | conv_cross (grid_key_dx< 3 > start, grid_key_dx< 3 > stop, lambda_f func, ArgsT ... args) |
| apply a convolution using the stencil N
|
|
template<unsigned int prop_src, unsigned int prop_dst, unsigned int stencil_size, typename lambda_f , typename ... ArgsT> |
void | conv_cross_b (grid_key_dx< 3 > start, grid_key_dx< 3 > stop, lambda_f func, ArgsT ... args) |
| apply a convolution using the stencil N
|
|
template<unsigned int stencil_size, typename v_type , typename lambda_f , typename ... ArgsT> |
void | conv_cross_ids (grid_key_dx< 3 > start, grid_key_dx< 3 > stop, lambda_f func, ArgsT ... args) |
| apply a convolution using the stencil N
|
|
template<unsigned int prop_src1, unsigned int prop_src2, unsigned int prop_dst1, unsigned int prop_dst2, unsigned int stencil_size, unsigned int N, typename lambda_f , typename ... ArgsT> |
void | conv2 (int(&stencil)[N][dim], grid_key_dx< dim > start, grid_key_dx< dim > stop, lambda_f func, ArgsT ... args) |
| apply a convolution using the stencil N
|
|
template<unsigned int prop_src1, unsigned int prop_src2, unsigned int prop_dst1, unsigned int prop_dst2, unsigned int stencil_size, typename lambda_f , typename ... ArgsT> |
void | conv2 (grid_key_dx< dim > start, grid_key_dx< dim > stop, lambda_f func, ArgsT ... args) |
| apply a convolution on 2 property on GPU
|
|
template<unsigned int prop_src1, unsigned int prop_dst1, unsigned int stencil_size, typename lambda_f , typename ... ArgsT> |
void | conv (grid_key_dx< dim > start, grid_key_dx< dim > stop, lambda_f func, ArgsT ... args) |
| apply a convolution on GPU
|
|
template<unsigned int prop_src1, unsigned int prop_src2, unsigned int prop_dst1, unsigned int prop_dst2, unsigned int stencil_size, typename lambda_f , typename ... ArgsT> |
void | conv2_b (grid_key_dx< dim > start, grid_key_dx< dim > stop, lambda_f func, ArgsT ... args) |
| apply a convolution on 2 property on GPU
|
|
template<unsigned int prop_src1, unsigned int prop_src2, unsigned int prop_src3, unsigned int prop_dst1, unsigned int prop_dst2, unsigned int prop_dst3, unsigned int stencil_size, typename lambda_f , typename ... ArgsT> |
void | conv3_b (grid_key_dx< dim > start, grid_key_dx< dim > stop, lambda_f func, ArgsT ... args) |
| apply a convolution on 2 property on GPU
|
|
template<typename NNtype > |
void | findNeighbours () |
|
template<unsigned int prop_src1, unsigned int prop_src2, unsigned int prop_dst1, unsigned int prop_dst2, unsigned int stencil_size, typename lambda_f , typename ... ArgsT> |
void | conv_cross2 (grid_key_dx< 3 > start, grid_key_dx< 3 > stop, lambda_f func, ArgsT ... args) |
| apply a convolution using the stencil N
|
|
bool | write (std::string output, size_t opt=VTK_WRITER|FORMAT_BINARY) |
| Write the distributed grid information.
|
|
bool | write_debug (std::string output) |
| Write all grids indigually.
|
|
bool | write_frame (std::string output, size_t i, size_t opt=VTK_WRITER|FORMAT_ASCII) |
| Write the distributed grid information.
|
|
device_grid & | get_loc_grid (size_t i) |
| Get the i sub-domain grid.
|
|
const device_grid & | get_loc_grid (size_t i) const |
| Get the i sub-domain grid.
|
|
grid_key_dx_iterator_sub< dim, no_stencil > | get_loc_grid_iterator (size_t i) |
| Get the i sub-domain grid.
|
|
template<unsigned int Np> |
grid_key_dx_iterator_sub< dim, stencil_offset_compute< dim, Np >, typename device_grid::linearizer_type > | get_loc_grid_iterator_stencil (size_t i, const grid_key_dx< dim >(&stencil_pnt)[Np]) |
| Get the i sub-domain grid.
|
|
size_t | getN_loc_grid () const |
| Return the number of local grid.
|
|
long int | who () |
| It return the id of structure in the allocation list.
|
|
void | debugPrint () |
| It print the internal ghost boxes and external ghost boxes in global unit.
|
|
void | setPropNames (const openfpm::vector< std::string > &names) |
| Set the properties names.
|
|
const openfpm::vector< std::string > & | getPropNames () |
| Set the properties names.
|
|
void | clear () |
| It delete all the points.
|
|
void | construct_link (self &grid_up, self &grid_dw) |
| construct link between levels
|
|
void | construct_link_dw (self &grid_dw, openfpm::vector< offset_mv< dim > > &mvof) |
| construct link between current and the level down
|
|
void | construct_link_up (self &grid_up, openfpm::vector< offset_mv< dim > > &mvof) |
| construct link between current and the level up
|
|
template<typename stencil_type > |
void | tagBoundaries () |
| construct link between current and the level up
|
|
void | map (size_t opt=0) |
| It move all the grid parts that do not belong to the local processor to the respective processor.
|
|
void | save (const std::string &filename) const |
| Save the grid state on HDF5.
|
|
void | load (const std::string &filename) |
| Reload the grid from HDF5 file.
|
|
const openfpm::vector< i_lbox_grid< dim > > & | get_loc_ig_box () |
| Get the internal local ghost box.
|
|
const openfpm::vector< i_lbox_grid< dim > > & | get_ig_box () |
| Get the internal ghost box.
|
|
void | print_stats () |
|
void | clear_stats () |
|
void | grids_reconstruct (openfpm::vector< openfpm::vector< aggregate< device_grid, SpaceBox< dim, long int > > > > &m_oGrid_recv, openfpm::vector< device_grid > &loc_grid, openfpm::vector< GBoxes< device_grid::dims > > &gdb_ext, CellDecomposer_sm< dim, St, shift< dim, St > > &cd_sm) |
| Reconstruct the local grids.
|
|
template<typename lambda_t > |
void | labelIntersectionGridsProcessor_and_pack (Decomposition &dec, CellDecomposer_sm< dim, St, shift< dim, St > > &cd_sm, openfpm::vector< device_grid > &loc_grid_old, openfpm::vector< GBoxes< device_grid::dims > > &gdb_ext, openfpm::vector< GBoxes< device_grid::dims > > &gdb_ext_old, openfpm::vector< GBoxes< device_grid::dims > > &gdb_ext_global, size_t p_id_cur, lambda_t f) |
| Label intersection grids for mappings.
|
|
template<int ... prp> |
void | unpack_buffer_to_local_grid (openfpm::vector< device_grid > &loc_grid, openfpm::vector< GBoxes< device_grid::dims > > &gdb_ext, ExtPreAlloc< Memory > &send_buffer, size_t sz) |
| Unpack.
|
|
template<int ... prp> |
void | map_ (Decomposition &dec, CellDecomposer_sm< dim, St, shift< dim, St > > &cd_sm, openfpm::vector< device_grid > &loc_grid, openfpm::vector< device_grid > &loc_grid_old, openfpm::vector< GBoxes< device_grid::dims > > &gdb_ext, openfpm::vector< GBoxes< device_grid::dims > > &gdb_ext_old, openfpm::vector< GBoxes< device_grid::dims > > &gdb_ext_global, size_t opt) |
| Moves all the grids that does not belong to the local processor to the respective processor.
|
|
template<int... prp> |
void | ghost_get_ (const openfpm::vector< ip_box_grid< dim > > &ig_box, const openfpm::vector< ep_box_grid< dim > > &eg_box, const openfpm::vector< i_lbox_grid< dim > > &loc_ig_box, const openfpm::vector< e_lbox_grid< dim > > &loc_eg_box, const openfpm::vector< GBoxes< device_grid::dims > > &gdb_ext, const openfpm::vector< e_box_multi< dim > > &eb_gid_list, bool use_bx_def, openfpm::vector< device_grid > &loc_grid, const grid_sm< dim, void > &ginfo, std::unordered_map< size_t, size_t > &g_id_to_external_ghost_box, size_t opt) |
| It fill the ghost part of the grids.
|
|
template<template< typename, typename > class op, int... prp> |
void | ghost_put_ (Decomposition &dec, const openfpm::vector< ip_box_grid< dim > > &ig_box, const openfpm::vector< ep_box_grid< dim > > &eg_box, const openfpm::vector< i_lbox_grid< dim > > &loc_ig_box, const openfpm::vector< e_lbox_grid< dim > > &loc_eg_box, const openfpm::vector< GBoxes< device_grid::dims > > &gdb_ext, openfpm::vector< device_grid > &loc_grid, openfpm::vector< std::unordered_map< size_t, size_t > > &g_id_to_internal_ghost_box) |
| It merge the information in the ghost with the real information.
|
|
| grid_dist_id_comm () |
| Constructor.
|
|
| grid_dist_id_comm (const grid_dist_id_comm< dim, St, T, Decomposition, Memory, device_grid > &gc) |
| Copy constructor.
|
|