version 0.6.0
type_node_list::t_node_list Type Reference

Public Attributes

integer nb
 Number of nodes, overlapping regions included.
 
integer, dimension(:), allocatable i
 First index of nodes.
 
integer, dimension(:), allocatable j
 Second index of nodes.
 
integer, dimension(:), allocatable k
 Third index of nodes.
 
integer nbc
 Number of nodes, overlapping regions excluded.
 
type(t_mpi_exchange_listexchange
 Parallel communication information.
 

Detailed Description

Node_list packs selected node indexes in 1D arrays. This allows to efficiently loop over the subset of nodes. The attribute node_list::nb represent the total number of nodes in the numerical domain.

Things get more complex when one wants to exchange data between procs. The numerical domain is divided in 9 parts (27 in 3D) as follows:

┌──┬──────┬──┐
│-+│  ·+  │++│
├──┼──────┼──┤
│  │      │  │
│-·│  ··  │+·│
│  │      │  │
├──┼──────┼──┤
│--│  ·-  │+-│
└──┴──────┴──┘

The 1D array should be arranged in the following order:

┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬┈ ┈ ┈
  ···   -··   +··   ·-·   ·+·   --·   +-·   -+·   ++·
 ┈ ┈ ┈┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬┈ ┈ ┈
        ··-   -·-   +·-   ·--   ·+-   ---   +--   -+-   ++-
 ┈ ┈ ┈┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
        ··+   -·+   +·+   ·-+   ·++   --+   +-+   -++   +++

Where each block is ordered using classical loop ordering. Indexes of the central block is then easily acceded by obji(1:objnbc).


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