off_block_signature_object Module

  • Uses:

  • penf
  • vecfor
module~~off_block_signature_object~~UsesGraph module~off_block_signature_object off_block_signature_object vecfor vecfor vecfor->module~off_block_signature_object penf penf penf->module~off_block_signature_object
Help

OFF block signature object definition and implementation.

Used By

module~~off_block_signature_object~~UsedByGraph module~off_block_signature_object off_block_signature_object module~off_objects off_objects module~off_block_signature_object->module~off_objects module~off_block_object off_block_object module~off_block_signature_object->module~off_block_object module~off_grid_dimensions_object off_grid_dimensions_object module~off_block_signature_object->module~off_grid_dimensions_object program~off_test_save_load_file_parameters off_test_save_load_file_parameters module~off_objects->program~off_test_save_load_file_parameters program~off_test_load_file_parameters off_test_load_file_parameters module~off_objects->program~off_test_load_file_parameters program~off_test_save_load_file_grid off_test_save_load_file_grid module~off_objects->program~off_test_save_load_file_grid module~off_block_object->module~off_objects module~off_simulation_object off_simulation_object module~off_block_object->module~off_simulation_object module~off_file_grid_object off_file_grid_object module~off_block_object->module~off_file_grid_object module~off_grid_dimensions_object->module~off_objects module~off_grid_dimensions_object->module~off_simulation_object module~off_grid_dimensions_object->module~off_file_grid_object module~off_simulation_object->module~off_objects module~off_file_grid_object->module~off_objects module~off_file_grid_object->module~off_simulation_object
Help


Derived Types

type, public :: block_signature_object

Block signature object class.

Components

TypeVisibility AttributesNameInitial
type(vector), public :: emax

Coordinates of maximum abscissa (extent) of the block.

type(vector), public :: emin

Coordinates of minimum abscissa (extent) of the block.

integer(kind=I4P), public :: gc(1:6) =[0, 0, 0, 0, 0, 0]

Number of ghost cells along each frame.

integer(kind=I8P), public :: id =0

Unique (Morton) identification code.

logical, public :: is_cartesian =.false.

Flag for checking if the block is Cartesian.

logical, public :: is_null_x =.false.

Nullify X direction (2D yz, 1D y or z domain).

logical, public :: is_null_y =.false.

Nullify Y direction (2D xy, 1D x or y domain).

logical, public :: is_null_z =.false.

Nullify Z direction (2D xy, 1D x or y domain).

integer(kind=I4P), public :: level =0

block refinement level.

integer(kind=I4P), public :: ni =0

Number of cells in I direction.

integer(kind=I4P), public :: nj =0

Number of cells in J direction.

integer(kind=I4P), public :: nk =0

Number of cells in K direction.

Type-Bound Procedures

generic, public :: assignment(=) => block_d_assign_block_d

Overload =.

procedure, public, pass(lhs) :: block_d_assign_block_d

Operator =.

procedure, public, pass(self) :: cells_number

Return the number of cells.

procedure, public, pass(self) :: description

Return a pretty-formatted description of block signature.

procedure, public, pass(self) :: destroy

Destroy block signature.

procedure, public, pass(self) :: initialize

Initialize block signature.

procedure, public, pass(self) :: iolength

Return the IO length storage.

procedure, public, pass(self) :: load_from_file

Load block signature from file.

procedure, public, pass(self) :: nodes_number

Return the number of nodes.

procedure, public, pass(self) :: save_into_file

Save block signature into file.


Functions

private elemental function cells_number(self, with_ghosts) result(cells_number_)

Return the number of cells.

Arguments

Type IntentOptional AttributesName
class(block_signature_object), intent(in) :: self

Block.

logical, intent(in), optional :: with_ghosts

Take into account ghost cells.

Return Value integer(kind=I4P)

Number of cells.

private pure function description(self, prefix) result(desc)

Return a pretty-formatted description of the block signature.

Arguments

Type IntentOptional AttributesName
class(block_signature_object), intent(in) :: self

Block signature object.

character(len=*), intent(in), optional :: prefix

Prefixing string.

Return Value character(len=:), allocatable

Description.

private function iolength(self)

Return the IO length storage.

Arguments

Type IntentOptional AttributesName
class(block_signature_object), intent(in) :: self

Block signature object.

Return Value integer(kind=I4P)

IO length storage.

private elemental function nodes_number(self, with_ghosts) result(nodes_number_)

Return the number of nodes.

Arguments

Type IntentOptional AttributesName
class(block_signature_object), intent(in) :: self

Block.

logical, intent(in), optional :: with_ghosts

Take into account ghost cells.

Return Value integer(kind=I4P)

Number of nodes.


Subroutines

private pure subroutine block_d_assign_block_d(lhs, rhs)

Operator =.

Arguments

Type IntentOptional AttributesName
class(block_signature_object), intent(inout) :: lhs

Left hand side.

type(block_signature_object), intent(in) :: rhs

Right hand side.

private elemental subroutine destroy(self)

Destroy block signature.

Arguments

Type IntentOptional AttributesName
class(block_signature_object), intent(inout) :: self

Block signature object.

private pure subroutine initialize(self, signature, id, level, gc, ni, nj, nk, emin, emax, is_cartesian, is_null_x, is_null_y, is_null_z)

Initialize block signature.

Arguments

Type IntentOptional AttributesName
class(block_signature_object), intent(inout) :: self

Block signature object.

type(block_signature_object), intent(in), optional :: signature

Block signature input.

integer(kind=I8P), intent(in), optional :: id

Unique (Morton) identification code.

integer(kind=I4P), intent(in), optional :: level

Grid refinement level.

integer(kind=I4P), intent(in), optional :: gc(1:)

Number of ghost cells along each frame.

integer(kind=I4P), intent(in), optional :: ni

Number of cells in I direction.

integer(kind=I4P), intent(in), optional :: nj

Number of cells in J direction.

integer(kind=I4P), intent(in), optional :: nk

Number of cells in K direction.

type(vector), intent(in), optional :: emin

Coordinates of minimum abscissa of the block.

type(vector), intent(in), optional :: emax

Coordinates of maximum abscissa of the block.

logical, intent(in), optional :: is_cartesian

Flag for checking if the block is Cartesian.

logical, intent(in), optional :: is_null_x

Nullify X direction (2D yz, 1D y or z domain).

logical, intent(in), optional :: is_null_y

Nullify Y direction (2D xy, 1D x or y domain).

logical, intent(in), optional :: is_null_z

Nullify Z direction (2D xy, 1D x or y domain).

private subroutine load_from_file(self, file_unit)

Load block signature from file.

Arguments

Type IntentOptional AttributesName
class(block_signature_object), intent(inout) :: self

Block signature object.

integer(kind=I4P), intent(in) :: file_unit

File unit.

private subroutine save_into_file(self, file_unit)

Load the block signature of all blocks from file.

Arguments

Type IntentOptional AttributesName
class(block_signature_object), intent(in) :: self

Block signature object.

integer(kind=I4P), intent(in) :: file_unit

File unit.