This class calculate processor domains and neighborhood of each processor domain. More...
This class calculate processor domains and neighborhood of each processor domain.
| dim | Dimensionality | 
Definition at line 21 of file Domain_NN_calculator_cart.hpp.
#include <Domain_NN_calculator_cart.hpp>
 Inheritance diagram for domain_nn_calculator_cart< dim >:Public Member Functions | |
| 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 | CalculateDomAndAnomCells (openfpm::vector< subsub< dim >> &sub_keys, openfpm::vector< grid_key_dx< dim >> &dom_subsub, openfpm::vector< grid_key_dx< dim >> &dom_cells, const ::Box< dim, long int > &proc_box, const openfpm::vector<::Box< dim, size_t >> &loc_box) | 
| Calculate the subdomain that are in the skin part of the domain.  More... | |
| void | linearize_subsub (const openfpm::vector< subsub< dim >> &anom, openfpm::vector< subsub_lin< dim >> &anom_lin, const grid_key_dx< dim > &shift, const grid_sm< dim, void > &gs) | 
| Linearize the sub-sub-domains ids.  More... | |
Private Attributes | |
| bool | are_domain_anom_computed | 
| True if domain and anomalous domain cells are computed.  | |
| openfpm::vector< subsub< dim > > | anom | 
| anomalous cell neighborhood for CRS  | |
| 
openfpm::vector< subsub_lin < dim > >  | anom_lin | 
| Set of anomalous CRS domain cells linearized.  | |
| 
openfpm::vector< grid_key_dx < dim > >  | dom | 
| Set of normal domain cells for CRS.  | |
| openfpm::vector< size_t > | dom_lin | 
| Set of normal CRS domain cells linearized.  | |
| 
openfpm::vector< grid_key_dx < dim > >  | dom_cells | 
| Set of domain cells.  | |
| openfpm::vector< size_t > | dom_cells_lin | 
| Set of linearized domain cells.  | |
| Box< dim, long int > | proc_box | 
| Processor box.  | |
| grid_sm< dim, void > | gs | 
| Processor cells-grid.  | |
| grid_key_dx< dim > | one | 
| key with all coordinates set to one  | |
      
  | 
  inlineprivate | 
Calculate the subdomain that are in the skin part of the domain.
 +---+---+---+---+---+---+
 | 1 | 2 | 3 | 4 | 5 | 6 |
 +---+---+---+---+---+---+
 |27 |               | 7 |
 +---+               +---+
 |26 |               | 8 |
 +---+               +---+
 |25 |               | 9 |
 +---+   DOM1        +---+
 |24 |               |10 |
 +---+               +---+
 |23 |               |11 |
 +---+               +---+
 |22 |               |12 |
 +---+-----------+---+---+
 |21 |           |13 |
 +---+           +---+
 |20 |   DOM2    |14 |
 +---+---+---+---+---+
 |19 |18 |17 | 16|15 |
 +---+---+---+---+---+    <----- Domain end here
                               |
                 ^             |
                 |_____________|In some cases like symmetric with CRS Scheme The cells indicated with numbers has a non straigh-forward neighborhood. This function calculate the list of the domain cells with normal symmetric neighborhood type and compute a list of cells with more complex neighboring cells.
| sub_keys | array that contain the position of the sub-sub-domains indicated with numbers in grid coordinates + for each its neighboring cells | 
| dom_cells | list of all the domain cells | 
| dom_subsub | cells with normal neighborhood | 
| loc_box | array of local sub-sub-domain in grid coordinates | 
| proc_box | Processor bounding box in local coordinates | 
Definition at line 108 of file Domain_NN_calculator_cart.hpp.
      
  | 
  inline | 
Get the domain anomalous cells.
Definition at line 320 of file Domain_NN_calculator_cart.hpp.
      
  | 
  inline | 
Get the domain Cells.
Definition at line 309 of file Domain_NN_calculator_cart.hpp.
      
  | 
  inline | 
Get the domain Cells.
Definition at line 298 of file Domain_NN_calculator_cart.hpp.
      
  | 
  inlineprivate | 
Linearize the sub-sub-domains ids.
A subsub domain can be identified by a set of number (i,j). The linearization transform it into a number
| anom | set of grid keys to linearize | 
| anom_lin | linearized output | 
| shift | shifting to add for the linearizaton | 
| gs | information about the grid to linearize | 
Definition at line 212 of file Domain_NN_calculator_cart.hpp.
      
  | 
  inline | 
In case you have to recompute the indexes.
Definition at line 330 of file Domain_NN_calculator_cart.hpp.
      
  | 
  inline | 
Set parameters to calculate the cell neighborhood.
| loc_box | set of local sub-domains | 
| shift | to apply in the linearization | 
| gs | grid of cells (for the processor domain) | 
Definition at line 270 of file Domain_NN_calculator_cart.hpp.
      
  | 
  inline | 
Set parameters to calculate the cell neighborhood.
| proc_box | processor cells box | 
Definition at line 258 of file Domain_NN_calculator_cart.hpp.