plate_3d Derived Type

type, public, extends(geometry) :: plate_3d

encapsulate the grid specification for a plate_3D object


Inherits

type~~plate_3d~~InheritsGraph type~plate_3d plate_3d json_file json_file type~plate_3d->json_file grid_specification type~block_metadata block_metadata type~plate_3d->type~block_metadata metadata type~geometry geometry type~plate_3d->type~geometry type~subdomain_t subdomain_t type~block_metadata->type~subdomain_t subdomain

Contents


Components

TypeVisibility AttributesNameInitial
type(json_file), private :: grid_specification
type(block_metadata), private, dimension(:,:,:), allocatable:: metadata
character(len=:), private, allocatable:: units_system

Type-Bound Procedures

procedure, public :: build

  • interface

    private module subroutine build(this, grid_description_file)

    template method pattern for building a geometry description from a json_file

    Arguments

    Type IntentOptional AttributesName
    class(geometry), intent(out) :: this
    character(len=*), intent(in) :: grid_description_file

procedure, public :: get_block_domain

  • interface

    private module function get_block_domain(this, indicial_coordinates) result(this_domain)

    result is the spatial subdomain for the grid block with the given indicial_coordinates

    Arguments

    Type IntentOptional AttributesName
    class(plate_3d), intent(in) :: this
    integer, dimension(space_dimension):: indicial_coordinates

    Return Value real(kind=r8k), dimension(space_dimension,num_end_points)

procedure, public :: get_block_metadata

  • interface

    private module function get_block_metadata(this) result(this_metadata)

    result is the block_metadata component for all blocks

    Arguments

    Type IntentOptional AttributesName
    class(plate_3d), intent(in) :: this

    Return Value type(block_metadata), dimension(:,:,:), allocatable

procedure, public :: get_block_metadata_shape

  • interface

    private module function get_block_metadata_shape(this) result(shape_)

    define the shape of the array of grid blocks

    Arguments

    Type IntentOptional AttributesName
    class(plate_3d), intent(in) :: this

    Return Value integer, dimension(space_dimension)

procedure, public :: get_block_metadatum

  • interface

    private module function get_block_metadatum(this, indicial_coordinates) result(this_metadata_xyz)

    result is the block_metadata component for the block with the given indicial_coordinates

    Arguments

    Type IntentOptional AttributesName
    class(plate_3d), intent(in) :: this
    integer, dimension(space_dimension):: indicial_coordinates

    Return Value type(block_metadata)

procedure, public :: set_block_metadata

  • interface

    private module subroutine set_block_metadata(this)

    read grid metadata from json_file stored in child class

    Arguments

    Type IntentOptional AttributesName
    class(plate_3d), intent(inout) :: this

procedure, public :: set_grid_specification

  • interface

    private module subroutine set_grid_specification(this, grid_description_file)

    define json_file problem description

    Arguments

    Type IntentOptional AttributesName
    class(plate_3d), intent(out) :: this
    character(len=*), intent(in) :: grid_description_file