tree_node Derived Type

type, public :: tree_node

The data structure that contains information about a tree node/grid block


Inherits

type~~tree_node~~InheritsGraph type~tree_node tree_node type~tree_node_ptr tree_node_ptr type~tree_node->type~tree_node_ptr parent, child, neighbor, next, prev type~tree_node_ptr->type~tree_node node

Inherited by

type~~tree_node~~InheritedByGraph type~tree_node tree_node type~tree_node_ptr tree_node_ptr type~tree_node->type~tree_node_ptr parent, child, neighbor, next, prev type~tree_node_ptr->type~tree_node node

Components

Type Visibility Attributes Name Initial
logical, public :: active
type(tree_node_ptr), public :: child(2,2,2)

Pointer to children

integer, public :: id

Extra integer, not set by default. Is used to go from pointer to array for coupling with a multigrid solver.

integer, public :: ig1

Spatial indices of the grid block

integer, public :: ig2

Spatial indices of the grid block

integer, public :: ig3

Spatial indices of the grid block

integer, public :: igrid

Index of grid on processor's grid-array

integer, public :: ipe

On which processor the grid is stored

logical, public :: leaf

Is the grid a leaf (no further refinement)

integer, public :: level

Refinement level

type(tree_node_ptr), public :: neighbor(2,3)

Pointer to neighbors

type(tree_node_ptr), public :: next

Next node at refinement level (linked list)

type(tree_node_ptr), public :: parent

Pointer to parent grid

type(tree_node_ptr), public :: prev

Previous node at refinement level (linked list)


Source Code

   type tree_node
      integer :: ig1,ig2,ig3
      !< Spatial indices of the grid block
      integer :: level
      !< Refinement level
      integer :: igrid
      !< Index of grid on processor's grid-array
      integer :: ipe
      !< On which processor the grid is stored
      !> Extra integer, not set by default. Is used to go from pointer to array
      !> for coupling with a multigrid solver.
      integer :: id
      logical :: leaf
      !< Is the grid a leaf (no further refinement)
      logical :: active
      type(tree_node_ptr) :: parent
      !< Pointer to parent grid
      type(tree_node_ptr) :: child(2,2,2)
      !< Pointer to children
      type(tree_node_ptr) :: neighbor(2,3)
      !< Pointer to neighbors
      type(tree_node_ptr) :: next
      !< Next node at refinement level (linked list)
      type(tree_node_ptr) :: prev
      !< Previous node at refinement level (linked list)
   end type tree_node