OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
ORB< dim, T, loc_wg, loc_pos, Box, Tree > Class Template Reference

This class implement orthogonal recursive bisection. More...

Detailed Description

template<unsigned int dim, typename T, typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
class ORB< dim, T, loc_wg, loc_pos, Box, Tree >

This class implement orthogonal recursive bisection.

Template Parameters
dimDimensionality of the ORB
Ttype of the space
loc_wgtype of structure that store the local weight of particles
loc_postype of structure that store the local position of particles
Boxtype of structure that contain the domain extension
Treetype of structure that store the tree structure

Definition at line 98 of file ORB.hpp.

#include <ORB.hpp>

Public Member Functions

 ORB (Box dom, size_t n_sub, loc_pos &lp)
 constructor
 

Private Member Functions

template<unsigned int dir>
void local_cm (size_t start)
 Calculate the local center of mass on direction dir.
 
template<unsigned int dir>
void local_label ()
 It label the particles.
 
template<unsigned int dir>
size_t bisect ()
 Bisect the domains along one direction.
 

Private Attributes

Vclusterv_cl
 
openfpm::vector< T > cm
 
openfpm::vector< size_t > cm_cnt
 
loc_pos & lp
 
openfpm::vector< size_t > lp_lbl
 
size_t dim_div
 
Tree< ORB_node< T >, no_edgegrp
 

Friends

class bisect_unroll< dim, ORB< dim, T, loc_wg, loc_pos, Box, Tree > >
 

Constructor & Destructor Documentation

◆ ORB()

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
ORB< dim, T, loc_wg, loc_pos, Box, Tree >::ORB ( Box  dom,
size_t  n_sub,
loc_pos &  lp 
)
inline

constructor

Parameters
domBox domain
n_subnumber of sub-domain to create (it is approximated to the biggest 2^n number)
lpLocal position of the particles

Definition at line 265 of file ORB.hpp.

Member Function Documentation

◆ bisect()

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
template<unsigned int dir>
size_t ORB< dim, T, loc_wg, loc_pos, Box, Tree >::bisect ( )
inlineprivate

Bisect the domains along one direction.

Template Parameters
dirdirection where to split

Definition at line 212 of file ORB.hpp.

◆ local_cm()

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
template<unsigned int dir>
void ORB< dim, T, loc_wg, loc_pos, Box, Tree >::local_cm ( size_t  start)
inlineprivate

Calculate the local center of mass on direction dir.

WARNING: with CM we mean the sum of the particle coordinate over one direction

Template Parameters
dirDirection witch to calculate the center of mass
Parameters
startfrom where the last leafs start

Definition at line 128 of file ORB.hpp.

◆ local_label()

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
template<unsigned int dir>
void ORB< dim, T, loc_wg, loc_pos, Box, Tree >::local_label ( )
inlineprivate

It label the particles.

It identify where the particles are

Parameters
nlevel

Definition at line 164 of file ORB.hpp.

Friends And Related Symbol Documentation

◆ bisect_unroll< dim, ORB< dim, T, loc_wg, loc_pos, Box, Tree > >

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
friend class bisect_unroll< dim, ORB< dim, T, loc_wg, loc_pos, Box, Tree > >
friend

Definition at line 212 of file ORB.hpp.

Field Documentation

◆ cm

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
openfpm::vector<T> ORB< dim, T, loc_wg, loc_pos, Box, Tree >::cm
private

Definition at line 104 of file ORB.hpp.

◆ cm_cnt

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
openfpm::vector<size_t> ORB< dim, T, loc_wg, loc_pos, Box, Tree >::cm_cnt
private

Definition at line 106 of file ORB.hpp.

◆ dim_div

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
size_t ORB< dim, T, loc_wg, loc_pos, Box, Tree >::dim_div
private

Definition at line 115 of file ORB.hpp.

◆ grp

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
Tree<ORB_node<T>,no_edge> ORB< dim, T, loc_wg, loc_pos, Box, Tree >::grp
private

Definition at line 118 of file ORB.hpp.

◆ lp

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
loc_pos& ORB< dim, T, loc_wg, loc_pos, Box, Tree >::lp
private

Definition at line 109 of file ORB.hpp.

◆ lp_lbl

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
openfpm::vector<size_t> ORB< dim, T, loc_wg, loc_pos, Box, Tree >::lp_lbl
private

Definition at line 113 of file ORB.hpp.

◆ v_cl

template<unsigned int dim, typename T , typename loc_wg = openfpm::vector<float>, typename loc_pos = openfpm::vector<Point<dim,T>>, typename Box = Box<dim,T>, template< typename, typename > class Tree = Graph_CSR_s>
Vcluster& ORB< dim, T, loc_wg, loc_pos, Box, Tree >::v_cl
private

Definition at line 101 of file ORB.hpp.


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