Hexahedral, structured-grid block encapsulating nodal data and deferring coordinate-specific procedures to child classes
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private, | parameter | :: | max_space_dims | = | 3 | |
integer, | private, | parameter | :: | num_bounds | = | 2 | |
integer, | private, | parameter | :: | undefined | = | -1 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(inout) | :: | this | |||
class(structured_grid), | intent(in) | :: | original |
verify
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this | |||
class(structured_grid), | intent(in) | :: | reference | |||
real(kind=r8k), | intent(in) | :: | tolerance |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this | |||
real(kind=r8k), | intent(in) | :: | temperature |
result is number of free tensor indices for quantity stored on a structured grid (e.g., 3 for vector quantity)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this |
result is the block identification tag
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this |
result is an array of scalar values at grid vertices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this |
result is the block identification tag
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this |
increment this%nodal_values by the provided array
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(inout) | :: | this | |||
real(kind=r8k), | intent(in), | dimension(:,:,:) | :: | scalar |
result is number of 3D grid points stored for a given quantity on a structured grid
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this |
result is number of instances of time stored for a given quantity on a structured grid
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this |
set block identification tag
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(inout) | :: | this | |||
integer, | intent(in) | :: | id |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(inout) | :: | this | |||
integer, | intent(in), | dimension(:) | :: | shape_array |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(inout) | :: | this | |||
type(block_metadata), | intent(in) | :: | metadata |
set this%nodal_values to the provided array
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(inout) | :: | this | |||
real(kind=r8k), | intent(in), | dimension(:,:,:) | :: | scalar |
set block identification tag
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(inout) | :: | this | |||
integer, | intent(in) | :: | id |
set this%nodal_values to provided vector field components
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(inout) | :: | this | |||
real(kind=r8k), | intent(in), | dimension(:,:,:) | :: | x_nodes | ||
real(kind=r8k), | intent(in), | dimension(:,:,:) | :: | y_nodes | ||
real(kind=r8k), | intent(in), | dimension(:,:,:) | :: | z_nodes |
result is the number of independent spatial dimensions in the structured grid (e.g., 2 for axisymmetric grid)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this |
result contains the difference between this and rhs nodal_values components
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this | |||
class(structured_grid), | intent(in) | :: | rhs |
result is an array of 3D vectors
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this | |||
integer, | intent(in) | :: | unit | |||
character(len=*), | intent(in) | :: | iotype | |||
integer, | intent(in) | :: | v_list(:) | |||
integer, | intent(out) | :: | iostat | |||
character(len=*), | intent(inout) | :: | iomsg |
verify block identifier
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this | |||
integer, | intent(in) | :: | id |
calculate the 1D block identifier associated with the provided 3D block location
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this | |||
integer, | intent(in), | dimension(:) | :: | ijk |
verify block indicial coordinates
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this | |||
integer, | intent(in), | dimension(:) | :: | ijk |
calculate the 3D location of the block that has the provided 1D block identifier
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this | |||
integer, | intent(in) | :: | n |
allocate coarray for communicating across structured_grid blocks
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this | |||
class(geometry), | intent(in) | :: | problem_geometry | |||
class(structured_grid), | intent(in), | dimension(:), allocatable | :: | vertices | ||
type(surfaces), | intent(inout) | :: | block_faces | |||
integer, | intent(in), | dimension(:) | :: | block_partitions | ||
integer, | intent(in) | :: | num_scalars |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this | |||
class(structured_grid), | intent(in) | :: | vertices | |||
type(surfaces), | intent(in) | :: | block_surfaces | |||
class(structured_grid), | intent(inout) | :: | div_flux |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structured_grid), | intent(in) | :: | this | |||
class(structured_grid), | intent(in) | :: | vertices | |||
type(surfaces), | intent(inout) | :: | block_surfaces | |||
class(structured_grid), | intent(inout) | :: | div_flux_internal_points |
Morfeus structured grid class
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
procedure, | public | :: | get_block_identifier | ||||
procedure, | public | :: | get_scalar_identifier | ||||
procedure, | public | :: | set_block_identifier | ||||
procedure, | public | :: | set_scalar_identifier | ||||
integer, | private | :: | block_id | = | undefined | ||
integer, | private | :: | global_bounds(num_bounds,max_space_dims) | = | undefined | ||
type(block_metadata), | private | :: | metadata | ||||
real(kind=r8k), | private, | allocatable | :: | nodal_values(:,:,:,:,:,:) | 3 dims for indexing through 3D space 2 dims for tensor free indices to handle scalars, vectors, & dyads 1 dim for instances in time |
||
integer, | private | :: | scalar_id | = | undefined |
procedure(block_ijk_in_bounds_interface), public :: block_coordinates_in_bounds | |
procedure(block_identifier_interface), public :: block_identifier | |
procedure(block_id_in_bounds_interface), public :: block_identifier_in_bounds | |
generic, public :: block_in_bounds => block_identifier_in_bounds, block_coordinates_in_bounds | |
procedure(block_indices_interface), public :: block_indicial_coordinates | |
procedure(build_surfaces_interface), public :: build_surfaces | |
procedure, public :: clone | |
procedure, public :: compare | |
procedure, public :: diffusion_coefficient | |
procedure(div_scalar_flux_interface), public :: div_scalar_flux | |
procedure, public :: free_tensor_indices | |
procedure, public :: get_global_block_shape | |
procedure, public :: get_scalar | |
procedure, public :: get_tag | |
procedure, public :: get_units | |
procedure, public :: increment_scalar | |
procedure, public :: mark_as_defined | |
procedure, public :: num_cells | |
procedure, public :: num_time_stamps | |
procedure, public :: set_global_block_shape | |
procedure, public :: set_metadata | |
procedure, public :: set_scalar | |
procedure, public :: set_units | |
procedure(set_up_div_scalar_flux_interface), public :: set_up_div_scalar_flux | |
procedure, public :: set_vector_components | |
procedure, public :: space_dimension | |
procedure, public :: subtract | |
procedure, public :: user_defined | |
procedure, public :: vectors | |
procedure, public :: write_formatted |