Block signature object class.
Define the block dimensions, id and level.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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. |
Overload =
.
Operator =
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(block_signature_object), | intent(inout) | :: | lhs | Left hand side. |
||
type(block_signature_object), | intent(in) | :: | rhs | Right hand side. |
Operator =
.
Operator =
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(block_signature_object), | intent(inout) | :: | lhs | Left hand side. |
||
type(block_signature_object), | intent(in) | :: | rhs | Right hand side. |
Return the number of cells.
Return the number of cells.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(block_signature_object), | intent(in) | :: | self | Block. |
||
logical, | intent(in), | optional | :: | with_ghosts | Take into account ghost cells. |
Number of cells.
Return a pretty-formatted description of block signature.
Return a pretty-formatted description of the block signature.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(block_signature_object), | intent(in) | :: | self | Block signature object. |
||
character(len=*), | intent(in), | optional | :: | prefix | Prefixing string. |
Description.
Destroy block signature.
Destroy block signature.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(block_signature_object), | intent(inout) | :: | self | Block signature object. |
Initialize block signature.
Initialize block signature.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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). |
Return the IO length storage.
Return the IO length storage.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(block_signature_object), | intent(in) | :: | self | Block signature object. |
IO length storage.
Load block signature from file.
Load block signature from file.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(block_signature_object), | intent(inout) | :: | self | Block signature object. |
||
integer(kind=I4P), | intent(in) | :: | file_unit | File unit. |
Return the number of nodes.
Return the number of nodes.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(block_signature_object), | intent(in) | :: | self | Block. |
||
logical, | intent(in), | optional | :: | with_ghosts | Take into account ghost cells. |
Number of nodes.
Save block signature into file.
Load the block signature of all blocks from file.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(block_signature_object), | intent(in) | :: | self | Block signature object. |
||
integer(kind=I4P), | intent(in) | :: | file_unit | File unit. |
type :: block_signature_object
!< Block signature object class.
!<
!< Define the block dimensions, id and level.
integer(I8P) :: id=0 !< Unique (Morton) identification code.
integer(I4P) :: level=0 !< block refinement level.
integer(I4P) :: gc(1:6)=[0,0,0,0,0,0] !< Number of ghost cells along each frame.
integer(I4P) :: ni=0 !< Number of cells in I direction.
integer(I4P) :: nj=0 !< Number of cells in J direction.
integer(I4P) :: nk=0 !< Number of cells in K direction.
type(vector) :: emin !< Coordinates of minimum abscissa (extent) of the block.
type(vector) :: emax !< Coordinates of maximum abscissa (extent) of the block.
logical :: is_cartesian=.false. !< Flag for checking if the block is Cartesian.
logical :: is_null_x=.false. !< Nullify X direction (2D yz, 1D y or z domain).
logical :: is_null_y=.false. !< Nullify Y direction (2D xy, 1D x or y domain).
logical :: is_null_z=.false. !< Nullify Z direction (2D xy, 1D x or y domain).
contains
! public methods
procedure, pass(self) :: cells_number !< Return the number of cells.
procedure, pass(self) :: description !< Return a pretty-formatted description of block signature.
procedure, pass(self) :: destroy !< Destroy block signature.
procedure, pass(self) :: initialize !< Initialize block signature.
procedure, pass(self) :: iolength !< Return the IO length storage.
procedure, pass(self) :: load_from_file !< Load block signature from file.
procedure, pass(self) :: nodes_number !< Return the number of nodes.
procedure, pass(self) :: save_into_file !< Save block signature into file.
! operators
generic :: assignment(=) => block_d_assign_block_d !< Overload `=`.
! private methods
procedure, pass(lhs) :: block_d_assign_block_d !< Operator `=`.
endtype block_signature_object