This class decompose a space into sub-sub-domains and distribute them across processors. More...
This class decompose a space into sub-sub-domains and distribute them across processors.
dim | is the dimensionality of the physical domain we are going to decompose. |
T | type of the space we decompose, Real, Integer, Complex ... |
Memory | Memory factory used to allocate memory |
Distribution | type of distribution, can be ParMetisDistribution or MetisDistribution |
Most of the functionality is the same as CartDecomposition so refer to that class for more information
The additional functionality is the possibility to produce an extended decomposition, in figure is show what we mean with extended
Definition at line 42 of file CartDecomposition_ext.hpp.
#include <CartDecomposition_ext.hpp>
Public Types | |
typedef CartDecomposition< dim, T, Memory, Distribution > | base_type |
The non-extended decomposition base class. | |
![]() | |
typedef T | domain_type |
Type of the domain we are going to decompose. | |
typedef SpaceBox< dim, T > | Box |
It simplify to access the SpaceBox element. | |
typedef CartDecomposition< dim, T, Memory, Distribution > | base_type |
This class is base of itself. | |
typedef CartDecomposition_ext < dim, T, Memory, Distribution > | extended_type |
This class admit a class defined on an extended domain. | |
typedef T | stype |
Space type. | |
Public Member Functions | |
CartDecomposition_ext (Vcluster &v_cl) | |
Cartesian decomposition constructor. More... | |
void | setParameters (const CartDecomposition< dim, T, Memory, Distribution > &dec, const Ghost< dim, T > &g, const ::Box< dim, T > &ext_domain) |
It create another object that contain the same decomposition information but with different ghost boxes and an extended domain. More... | |
![]() | |
void | createSubdomains (Vcluster &v_cl, const size_t(&bc)[dim], size_t opt=0) |
Constructor, it decompose and distribute the sub-domains across the processors. More... | |
void | Initialize_geo_cell_lists () |
Initialize geo_cell lists. More... | |
void | computeCommunicationAndMigrationCosts (size_t ts) |
Calculate communication and migration costs. More... | |
void | CreateSubspaces () |
Create the sub-domain that decompose your domain. More... | |
void | calculateGhostBoxes () |
It calculate the internal ghost boxes. More... | |
void | incRef () |
Increment the reference counter. | |
void | decRef () |
Decrement the reference counter. | |
long int | ref () |
Return the reference counter. | |
CartDecomposition (Vcluster &v_cl) | |
Cartesian decomposition constructor. More... | |
CartDecomposition (const CartDecomposition< dim, T, Memory, Distribution > &cart) | |
Cartesian decomposition copy constructor. More... | |
CartDecomposition (CartDecomposition< dim, T, Memory, Distribution > &&cart) | |
Cartesian decomposition copy constructor. More... | |
~CartDecomposition () | |
Cartesian decomposition destructor. | |
void | applyPointBC (float(&pt)[dim]) const |
Apply boundary condition to the point. More... | |
void | applyPointBC (Point< dim, T > &pt) const |
Apply boundary condition to the point. More... | |
template<typename Mem > | |
void | applyPointBC (encapc< 1, Point< dim, T >, Mem > &&pt) const |
Apply boundary condition to the point. More... | |
CartDecomposition< dim, T, Memory, Distribution > | duplicate (const Ghost< dim, T > &g) const |
It create another object that contain the same decomposition information but with different ghost boxes. More... | |
CartDecomposition< dim, T, Memory, Distribution > | duplicate () const |
It create another object that contain the same information and act in the same way. More... | |
CartDecomposition< dim, T, Memory, Distribution > & | operator= (const CartDecomposition &cart) |
Copy the element. More... | |
CartDecomposition< dim, T, Memory, Distribution > & | operator= (CartDecomposition &&cart) |
Copy the element, move semantic. More... | |
template<typename Mem > | |
size_t | processorID (const encapc< 1, Point< dim, T >, Mem > &p) const |
Given a point return in which processor the particle should go. More... | |
size_t | processorID (const Point< dim, T > &p) const |
Given a point return in which processor the particle should go. More... | |
size_t | processorID (const T(&p)[dim]) const |
Given a point return in which processor the particle should go. More... | |
template<typename Mem > | |
size_t | processorIDBC (encapc< 1, Point< dim, T >, Mem > p) |
Given a point return in which processor the point/particle should go. More... | |
template<typename ofb > | |
size_t | processorIDBC (const Point< dim, T > &p) const |
Given a point return in which processor the particle should go. More... | |
template<typename ofb > | |
size_t | processorIDBC (const T(&p)[dim]) const |
Given a point return in which processor the particle should go. More... | |
size_t | periodicity (size_t i) const |
Get the periodicity on i dimension. More... | |
const size_t(& | periodicity () const)[dim] |
Get the periodicity. More... | |
void | calculate_magn (const grid_sm< dim, void > &gm) |
Calculate magnification. More... | |
void | setGoodParameters (::Box< dim, T > domain_, const size_t(&bc)[dim], const Ghost< dim, T > &ghost, size_t dec_gran, const grid_sm< dim, void > &sec_dist=grid_sm< dim, void >()) |
Set the best parameters for the decomposition. More... | |
void | getParameters (size_t(&div_)[dim]) |
return the parameters of the decomposition More... | |
void | setParameters (const size_t(&div_)[dim],::Box< dim, T > domain_, const size_t(&bc)[dim], const Ghost< dim, T > &ghost, const grid_sm< dim, void > &sec_dist=grid_sm< dim, void >()) |
Set the parameter of the decomposition. More... | |
void | reset () |
Delete the decomposition and reset the data-structure. More... | |
void | decompose () |
Start decomposition. More... | |
void | refine (size_t ts) |
Refine the decomposition, available only for ParMetis distribution, for Metis it is a null call. More... | |
void | redecompose (size_t ts) |
Refine the decomposition, available only for ParMetis distribution, for Metis it is a null call. More... | |
bool | refine (DLB &dlb) |
Refine the decomposition, available only for ParMetis distribution, for Metis it is a null call. More... | |
float | getUnbalance () |
Get the current un-balance value. More... | |
size_t | getProcessorLoad () |
Compute the processor load counting the total weights of its vertices. More... | |
void | getSubSubDomainPosition (size_t id, T(&pos)[dim]) |
function that return the position of the cell in the space More... | |
size_t | getNSubSubDomains () |
Get the number of sub-sub-domains in this sub-graph. More... | |
void | setSubSubDomainComputationCost (size_t id, size_t weight) |
Function that set the computational cost for a of a sub-sub domain. More... | |
size_t | getSubSubDomainComputationCost (size_t id) |
function that return the computation cost of the sub-sub-domain id More... | |
size_t | subSize () |
Operator to access the size of the sub-graph. More... | |
size_t | getNSubDomain () |
Get the number of local sub-domains. More... | |
SpaceBox< dim, T > | getSubDomain (size_t lc) |
Get the local sub-domain. More... | |
SpaceBox< dim, T > | getSubDomainWithGhost (size_t lc) |
Get the local sub-domain enlarged with ghost extension. More... | |
const ::Box< dim, T > & | getDomain () const |
Return the box of the physical domain. More... | |
openfpm::vector< SpaceBox< dim, T > > | getSubDomains () const |
openfpm::vector < openfpm::vector< SpaceBox < dim, T > > > & | getSubDomainsGlobal () |
template<typename Mem > | |
bool | isLocal (const encapc< 1, Point< dim, T >, Mem > p) const |
Check if the particle is local. More... | |
bool | isLocal (const T(&pos)[dim]) const |
Check if the particle is local. More... | |
bool | isLocal (const Point< dim, T > &pos) const |
Check if the particle is local. More... | |
template<typename Mem > | |
bool | isLocalBC (const encapc< 1, Point< dim, T >, Mem > p, const size_t(&bc)[dim]) const |
Check if the particle is local considering boundary conditions. More... | |
openfpm::vector< size_t > & | getDomainCells () |
Get the domain Cells. More... | |
openfpm::vector< size_t > & | getCRSDomainCells () |
Get the CRS domain Cells with normal neighborhood. More... | |
void | setNNParameters (grid_key_dx< dim > &shift, grid_sm< dim, void > &gs) |
set NN parameters to calculate cell-list neighborhood More... | |
openfpm::vector< subsub_lin < dim > > & | getCRSAnomDomainCells () |
Get the CRS anomalous cells. More... | |
bool | isLocalBC (const T(&p)[dim], const size_t(&bc)[dim]) const |
Check if the particle is local considering boundary conditions. More... | |
::Box< dim, T > & | getProcessorBounds () |
Return the bounding box containing union of all the sub-domains for the local processor. More... | |
const Ghost< dim, T > & | getGhost () const |
Return the ghost. More... | |
const grid_sm< dim, void > | getGrid () |
Decomposition grid. More... | |
const grid_sm< dim, void > | getDistGrid () |
Distribution grid. More... | |
bool | write (std::string output) const |
Write the decomposition as VTK file. More... | |
Vcluster & | getVC () const |
Get the Virtual Cluster machine. More... | |
bool | check_consistency () |
function to check the consistency of the information of the decomposition More... | |
void | debugPrint () |
Print subdomains, external and internal ghost boxes. More... | |
bool | is_equal (CartDecomposition< dim, T, Memory > &cart) |
Check if the CartDecomposition contain the same information. More... | |
bool | is_equal_ng (CartDecomposition< dim, T, Memory > &cart) |
Check if the CartDecomposition contain the same information with the exception of the ghost part It is anyway required that the ghost come from the same sub-domains decomposition. More... | |
Distribution & | getDistribution () |
Return the distribution object. More... | |
void | addComputationCost (size_t gid, size_t i) |
Add computation cost i to the subsubdomain with global id gid. More... | |
size_t | get_ndec () |
Get the decomposition counter. More... | |
const CellDecomposer_sm< dim, T, shift< dim, T > > & | getCellDecomposer () |
Get the cell decomposer of the decomposition. More... | |
![]() | |
void | create (openfpm::vector< SpaceBox< dim, T >> &sub_domains, Box< dim, T > &domain, Ghost< dim, T > &ghost, const size_t(&bc)[dim]) |
Create external and internal local ghosts. More... | |
ie_loc_ghost () | |
Default constructor. | |
ie_loc_ghost (const ie_loc_ghost< dim, T > &ilg) | |
Constructor from another ie_loc_ghost. | |
ie_loc_ghost (ie_loc_ghost< dim, T > &&ilg) | |
Constructor from temporal ie_loc_ghost. | |
ie_loc_ghost< dim, T > & | operator= (const ie_loc_ghost< dim, T > &ilg) |
copy the ie_loc_ghost More... | |
ie_loc_ghost< dim, T > & | operator= (ie_loc_ghost< dim, T > &&ilg) |
copy the ie_loc_ghost More... | |
size_t | getNLocalSub () |
Get the number of local sub-domains. More... | |
size_t | getLocalNEGhost (size_t id) |
Get the number of external local ghost box for each sub-domain. More... | |
size_t | getLocalNIGhost (size_t id) |
Get the number of internal local ghost box for each sub-domain. More... | |
size_t | getLocalIGhostE (size_t i, size_t j) |
For the sub-domain i intersected with a surrounding sub-domain enlarged. Produce a internal ghost box from the prospecive of i and an associated external ghost box from the prospective of j. In order to retrieve the information about the external ghost box we have to use getLocalEGhostBox(x,k). where k is the value returned by getLocalIGhostE(i,j) and x is the value returned by getLocalIGhostSub(i,j) More... | |
const ::Box< dim, T > & | getLocalIGhostBox (size_t i, size_t j) const |
Get the j internal local ghost box for the i sub-domain. More... | |
const comb< dim > & | getLocalIGhostPos (size_t i, size_t j) const |
Get the j internal local ghost box boundary position for the i sub-domain of the local processor. More... | |
const ::Box< dim, T > & | getLocalEGhostBox (size_t i, size_t j) const |
Get the j external local ghost box for the local processor. More... | |
const comb< dim > & | getLocalEGhostPos (size_t i, size_t j) const |
Get the j external local ghost box for the local processor. More... | |
size_t | getLocalIGhostSub (size_t i, size_t k) const |
Considering that sub-domains has N internal local ghost box identified with the 0 <= k < N that come from the intersection of 2 sub-domains i and j where j is enlarged, given the sub-domain i and the id k of the internal box, it return the id of the other sub-domain that produced the intersection. More... | |
size_t | getLocalEGhostSub (size_t i, size_t k) const |
Considering that sub-domains has N external local ghost box identified with the 0 <= k < N that come from the intersection of 2 sub-domains i and j where i is enlarged, given the sub-domain i and the id k of the external box, it return the id of the other sub-domain that produced the intersection. More... | |
bool | write (std::string output, size_t p_id) const |
Write the decomposition as VTK file. More... | |
bool | check_consistency (size_t n_sub) |
function to check the consistency of the information of the decomposition More... | |
bool | is_equal (ie_loc_ghost< dim, T > &ilg) |
Check if the ie_loc_ghosts contain the same information. More... | |
bool | is_equal_ng (ie_loc_ghost< dim, T > &ilg) |
Check if the ie_loc_ghosts contain the same information with the exception of the ghost part. More... | |
void | reset () |
Reset the ie_loc_ghost. More... | |
![]() | |
nn_prcs (Vcluster &v_cl) | |
Constructor require Vcluster. | |
nn_prcs (const nn_prcs< dim, T > &ilg) | |
Constructor from another nn_prcs. | |
nn_prcs (nn_prcs< dim, T > &&ilg) | |
Constructor from temporal ie_loc_ghost. | |
nn_prcs< dim, T > & | operator= (const nn_prcs< dim, T > &nnp) |
Copy the object. More... | |
nn_prcs< dim, T > & | operator= (nn_prcs< dim, T > &&nnp) |
Copy the object. More... | |
void | create (const openfpm::vector< openfpm::vector< long unsigned int > > &box_nn_processor, const openfpm::vector< SpaceBox< dim, T >> &sub_domains) |
Create the list of adjacent processors and the list of adjacent sub-domains. More... | |
size_t | getNNProcessors () const |
Get the number of Near processors. More... | |
size_t | IDtoProc (size_t id) const |
Return the processor id of the near processor list at place id. More... | |
const openfpm::vector< size_t > & | getNearSubdomainsRealId (size_t p_id) const |
Get the real-id of the sub-domains of a near processor. More... | |
const openfpm::vector< ::Box < dim, T > > & | getNearSubdomains (size_t p_id) const |
Get the sub-domains of a near processor. More... | |
size_t | getNRealSubdomains (size_t p_id) const |
Get the number of real sub-domains of a near processor. More... | |
const openfpm::vector< comb < dim > > & | getNearSubdomainsPos (size_t p_id) const |
Get the sub-domains sector position of a near processor. More... | |
size_t | getNearProcessor (size_t p_id) const |
Get the near processor id. More... | |
const openfpm::vector< size_t > & | getSentSubdomains (size_t p_id) const |
For each near processor it give a vector with the id of the local sub-domain sent to that processor. More... | |
size_t | ProctoID (size_t p) const |
Convert the processor rank to the id in the list. More... | |
bool | write (std::string output) const |
Write the decomposition as VTK file. More... | |
void | applyBC (const Box< dim, T > &domain, const Ghost< dim, T > &ghost, const size_t(&bc)[dim]) |
Apply boundary conditions. More... | |
bool | is_equal (nn_prcs< dim, T > &np) |
Check if the nn_prcs contain the same information. More... | |
void | reset () |
Reset the nn_prcs structure. More... | |
std::unordered_map< size_t, N_box< dim, T > > & | get_nn_processor_subdomains () |
Used for testing porpose do not use. | |
openfpm::vector< size_t > & | get_nn_processors () |
Used for testing porpose do not use. | |
![]() | |
ie_ghost () | |
Default constructor. | |
ie_ghost (const ie_ghost< dim, T > &ie) | |
Copy constructor. | |
ie_ghost (ie_ghost< dim, T > &&ie) | |
Copy constructor. | |
ie_ghost< dim, T > & | operator= (ie_ghost< dim, T > &&ie) |
Copy operator. | |
ie_ghost< dim, T > & | operator= (const ie_ghost< dim, T > &ie) |
Copy operator. | |
const openfpm::vector< Point < dim, T > > & | getShiftVectors () |
size_t | convertShift (const comb< dim > &cmb) |
size_t | getProcessorNIGhost (size_t id) const |
Get the number of Internal ghost boxes for one processor. More... | |
size_t | getProcessorNEGhost (size_t id) const |
Get the number of External ghost boxes for one processor id. More... | |
const ::Box< dim, T > & | getProcessorIGhostBox (size_t id, size_t j) const |
Get the j Internal ghost box for one processor. More... | |
const ::Box< dim, T > & | getProcessorEGhostBox (size_t id, size_t j) const |
Get the j External ghost box. More... | |
const comb< dim > & | getProcessorEGhostPos (size_t id, size_t j) const |
Get the j External ghost box sector. More... | |
const comb< dim > & | getProcessorIGhostPos (size_t id, size_t j) const |
Get the ghost box sector of the external ghost box linked with the j internal ghost box. More... | |
size_t | getProcessorIGhostId (size_t id, size_t j) const |
Get the j Internal ghost box id. More... | |
size_t | getProcessorEGhostId (size_t id, size_t j) const |
Get the j External ghost box id. More... | |
size_t | getProcessorIGhostSSub (size_t id, size_t j) const |
Get the sub-domain send-id at witch belong the internal ghost box. More... | |
size_t | getProcessorIGhostSub (size_t id, size_t j) const |
Get the local sub-domain at witch belong the internal ghost box. More... | |
size_t | getProcessorEGhostSub (size_t id, size_t j) const |
Get the local sub-domain at witch belong the external ghost box. More... | |
size_t | getNIGhostBox () const |
Return the total number of the calculated internal ghost boxes. More... | |
const ::Box< dim, T > & | getIGhostBox (size_t b_id) const |
Given the internal ghost box id, it return the internal ghost box. More... | |
size_t | getIGhostBoxProcessor (size_t b_id) const |
Given the internal ghost box id, it return the near processor at witch belong or the near processor that produced this internal ghost box. More... | |
size_t | getNEGhostBox () const |
Get the number of the calculated external ghost boxes. More... | |
inline::Box< dim, T > | getEGhostBox (size_t b_id) const |
Given the external ghost box id, it return the external ghost box. More... | |
size_t | getEGhostBoxProcessor (size_t b_id) const |
Given the external ghost box id, it return the near processor at witch belong or the near processor that produced this external ghost box. More... | |
auto | getInternalIDBoxes (Point< dim, T > &p) -> decltype(geo_cell.getCellIterator(geo_cell.getCell(p))) |
auto | labelPoint (Point< dim, T > &p) -> decltype(geo_cell.getCellIterator(geo_cell.getCell(p))) |
if the point fall into the ghost of some near processor it return the processors id's in which it fall More... | |
template<typename id1 , typename id2 > | |
const openfpm::vector < std::pair< size_t, size_t > > | ghost_processorID_pair (Point< dim, T > &p, const int opt=MULTIPLE) |
Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost) More... | |
template<typename id > | |
const openfpm::vector< size_t > | ghost_processorID (const Point< dim, T > &p, const int opt=MULTIPLE) |
Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost) More... | |
template<typename id1 , typename id2 , typename Mem > | |
const openfpm::vector < std::pair< size_t, size_t > > & | ghost_processorID_pair (const encapc< 1, Point< dim, T >, Mem > &p, const int opt=MULTIPLE) |
Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost) More... | |
template<typename id , typename Mem > | |
const openfpm::vector< size_t > & | ghost_processorID (const encapc< 1, Point< dim, T >, Mem > &p, const int opt=MULTIPLE) |
Given a position it return if the position belong to any neighborhood processor ghost (Internal ghost) More... | |
bool | write (std::string output, size_t p_id) const |
write the information about the ghost in vtk format More... | |
bool | is_equal (ie_ghost< dim, T > &ig) |
Check if the ie_ghosts contain the same information. More... | |
bool | is_equal_ng (ie_ghost< dim, T > &ig) |
Check if the ie_loc_ghosts contain the same information with the exception of the ghost part It is anyway required that the ghost come from the same sub-domains decomposition. More... | |
void | reset () |
Reset the nn_prcs structure. More... | |
![]() | |
void | setParameters (const Box< dim, long int > &proc_box) |
Set parameters to calculate the cell neighborhood. More... | |
void | setNNParameters (openfpm::vector<::Box< dim, size_t >> &loc_box, const grid_key_dx< dim > &shift, const grid_sm< dim, void > &gs) |
Set parameters to calculate the cell neighborhood. More... | |
openfpm::vector< size_t > & | getDomainCells () |
Get the domain Cells. More... | |
openfpm::vector< size_t > & | getCRSDomainCells () |
Get the domain Cells. More... | |
openfpm::vector< subsub_lin < dim > > & | getCRSAnomDomainCells () |
Get the domain anomalous cells. More... | |
void | reset () |
In case you have to recompute the indexes. More... | |
Private Member Functions | |
void | extend_subdomains (const CartDecomposition< dim, T, Memory, Distribution > &dec, const ::Box< dim, T > &ext_dom) |
It copy the sub-domains into another CartesianDecomposition object extending them. More... | |
void | extend_fines (const CartDecomposition< dim, T, Memory, Distribution > &dec) |
Extend the fines for the new Cartesian decomposition. More... | |
Additional Inherited Members | |
![]() | |
static size_t | getDefaultGrid (size_t n_sub) |
The default grid size. More... | |
![]() | |
static bool | check_valid (comb< dim > cmb, const size_t(&bc)[dim]) |
![]() | |
friend | extended_type |
friend classes | |
![]() | |
static constexpr int | dims = dim |
Space dimensions. | |
![]() | |
typedef openfpm::vector < SpaceBox< dim, T >, Memory, typename memory_traits_lin < SpaceBox< dim, T > >::type, memory_traits_lin, openfpm::vector_grow_policy_default, openfpm::vect_isel< SpaceBox < dim, T > >::value > ::access_key | acc_key |
![]() | |
template<typename Memory_bx > | |
SpaceBox< dim, T > | convertDecBoxIntoSubDomain (encapc< 1,::Box< dim, size_t >, Memory_bx > loc_box) |
It convert the box from the domain decomposition into sub-domain. More... | |
![]() | |
void | generateShiftVectors (const Box< dim, T > &domain, size_t(&bc)[dim]) |
Here we generare the shift vectors. More... | |
void | Initialize_geo_cell (const Box< dim, T > &domain, const size_t(&div)[dim]) |
Initialize the geo cell list structure. More... | |
void | create_box_nn_processor_ext (Vcluster &v_cl, Ghost< dim, T > &ghost, openfpm::vector< SpaceBox< dim, T >> &sub_domains, const openfpm::vector< openfpm::vector< long unsigned int > > &box_nn_processor, const nn_prcs< dim, T > &nn_p) |
Create the box_nn_processor_int (bx part) structure. More... | |
void | create_box_nn_processor_int (Vcluster &v_cl, Ghost< dim, T > &ghost, openfpm::vector< SpaceBox< dim, T >> &sub_domains, const openfpm::vector< openfpm::vector< long unsigned int > > &box_nn_processor, const nn_prcs< dim, T > &nn_p) |
Create the box_nn_processor_int (nbx part) structure, the geo_cell list and proc_int_box. More... | |
![]() | |
bool | commCostSet = false |
Indicate the communication weight has been set. | |
openfpm::vector< SpaceBox< dim, T > > | sub_domains |
the set of all local sub-domain as vector | |
openfpm::vector < openfpm::vector< SpaceBox < dim, T > > > | sub_domains_global |
the global set of all sub-domains as vector of 'sub_domains' vectors | |
openfpm::vector < openfpm::vector< long unsigned int > > | box_nn_processor |
for each sub-domain, contain the list of the neighborhood processors | |
openfpm::vector< size_t > | fine_s |
grid_sm< dim, void > | gr |
Structure that store the cartesian grid information. | |
grid_sm< dim, void > | gr_dist |
Structure that store the cartesian grid information. | |
CellDecomposer_sm< dim, T, shift< dim, T > > | cd |
::Box< dim, T > | domain |
rectangular domain to decompose | |
T | spacing [dim] |
Box Spacing. | |
size_t | magn [dim] |
Vcluster & | v_cl |
Runtime virtual cluster machine. | |
Distribution | dist |
Create distribution. | |
::Box< dim, T > | bbox |
Processor bounding box. | |
long int | ref_cnt |
reference counter of the object in case is shared between object | |
Ghost< dim, T > | ghost |
ghost info | |
size_t | bc [dim] |
Boundary condition info. | |
::Box< dim, size_t > | proc_box |
Processor domain bounding box. | |
openfpm::vector<::Box< dim, size_t > > | loc_box |
set of Boxes produced by the decomposition optimizer | |
|
inline |
Cartesian decomposition constructor.
v_cl | VCluster |
Definition at line 164 of file CartDecomposition_ext.hpp.
|
inlineprivate |
Extend the fines for the new Cartesian decomposition.
dec | Non-extended decomposition |
Definition at line 93 of file CartDecomposition_ext.hpp.
|
inlineprivate |
It copy the sub-domains into another CartesianDecomposition object extending them.
dec | Cartesian decomposition object |
ext_dom | Extended domain |
Definition at line 54 of file CartDecomposition_ext.hpp.
|
inline |
It create another object that contain the same decomposition information but with different ghost boxes and an extended domain.
The domain extension is produced extending the boxes at the border like in figure
* +--------------^--------^----------^----------+ | | | | | | A | E | F | N | | +-----------------------------------+----> | | | | | | | | A | A | | F | | | | | | | | | | | | | E +----------+ N | N | <--------------+ | | | | | | | | | | | | | | | G | | | | | | | +----------> | B | B | +----------+ | | | | +--------+ | M | M | | | | | H | | | | | | +-----+----+----------> <--------------+ D | | | | | | | | I | L | L | | C | C | | | | | | | | | | | | | +-----------------------------------+ | | | | | | | C | D | I | L | +--------------v--------v-----v---------------+ * *
dec | Decomposition |
g | ghost |
ext_domain | extended domain (MUST be extended) |
Definition at line 213 of file CartDecomposition_ext.hpp.