cartesian_grid_interface Module


Uses

  • module~~cartesian_grid_interface~~UsesGraph module~cartesian_grid_interface cartesian_grid_interface module~surfaces_interface surfaces_interface module~cartesian_grid_interface->module~surfaces_interface module~structured_grid_interface structured_grid_interface module~cartesian_grid_interface->module~structured_grid_interface module~geometry_interface geometry_interface module~cartesian_grid_interface->module~geometry_interface module~differentiable_field_interface differentiable_field_interface module~cartesian_grid_interface->module~differentiable_field_interface module~kind_parameters kind_parameters module~surfaces_interface->module~kind_parameters module~package_interface package_interface module~surfaces_interface->module~package_interface iso_c_binding iso_c_binding module~surfaces_interface->iso_c_binding module~structured_grid_interface->module~surfaces_interface module~structured_grid_interface->module~geometry_interface module~structured_grid_interface->module~differentiable_field_interface module~structured_grid_interface->module~kind_parameters module~grid_interface grid_interface module~structured_grid_interface->module~grid_interface module~block_metadata_interface block_metadata_interface module~structured_grid_interface->module~block_metadata_interface module~differentiable_field_interface->module~grid_interface iso_fortran_env iso_fortran_env module~kind_parameters->iso_fortran_env module~package_interface->module~kind_parameters module~units_interface units_interface module~grid_interface->module~units_interface module~object_interface object_interface module~grid_interface->module~object_interface module~block_metadata_interface->module~kind_parameters module~block_metadata_interface->iso_c_binding module~units_interface->module~object_interface

Used by

  • module~~cartesian_grid_interface~~UsedByGraph module~cartesian_grid_interface cartesian_grid_interface proc~laplacian laplacian proc~laplacian->module~cartesian_grid_interface proc~evaluate evaluate proc~evaluate->module~cartesian_grid_interface proc~initialize_from_plate_3d initialize_from_plate_3d proc~initialize_from_plate_3d->module~cartesian_grid_interface module~cartesian_grid_implementation cartesian_grid_implementation module~cartesian_grid_implementation->module~cartesian_grid_interface

Contents


Interfaces

interface

  • private pure module function block_coordinates_in_bounds(this, ijk) result(in_bounds)

    Arguments

    Type IntentOptional AttributesName
    class(cartesian_grid), intent(in) :: this
    integer, intent(in), dimension(:):: ijk

    Return Value logical

interface

  • private pure module function block_identifier(this, ijk) result(n)

    calculate the 1D block identifier associated with the provided 3D block location

    Arguments

    Type IntentOptional AttributesName
    class(cartesian_grid), intent(in) :: this
    integer, intent(in), dimension(:):: ijk

    Return Value integer

interface

  • private pure module function block_identifier_in_bounds(this, id) result(in_bounds)

    Arguments

    Type IntentOptional AttributesName
    class(cartesian_grid), intent(in) :: this
    integer, intent(in) :: id

    Return Value logical

interface

  • private pure module function block_indicial_coordinates(this, n) result(ijk)

    calculate the 3D location of the block that has the provided 1D block identifier

    Arguments

    Type IntentOptional AttributesName
    class(cartesian_grid), intent(in) :: this
    integer, intent(in) :: n

    Return Value integer, dimension(:), allocatable

interface

  • private module subroutine build_surfaces(this, problem_geometry, vertices, block_faces, block_partitions, num_scalars)

    allocate the surfaces array for use in halo exchanges and boundary conditions

    Arguments

    Type IntentOptional AttributesName
    class(cartesian_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

interface

  • private pure module subroutine div_scalar_flux(this, vertices, block_surfaces, div_flux)

    communicate scalar fluxes between block neighbors in a halo exchange; compute scalar flux divergence at block boundaries

    Arguments

    Type IntentOptional AttributesName
    class(cartesian_grid), intent(in) :: this
    class(structured_grid), intent(in) :: vertices
    type(surfaces), intent(in) :: block_surfaces
    class(structured_grid), intent(inout) :: div_flux

interface

  • private module subroutine set_up_div_scalar_flux(this, vertices, block_surfaces, div_flux_internal_points)

    define the scalar flux divergence at points internal to grid blocks grid; define block-surface data on halo blocks

    Arguments

    Type IntentOptional AttributesName
    class(cartesian_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

Derived Types

type, public, extends(structured_grid) :: cartesian_grid

Components

TypeVisibility AttributesNameInitial
procedure, public :: get_block_identifier
procedure, public :: get_scalar_identifier
procedure, public :: set_block_identifier
procedure, public :: set_scalar_identifier

Type-Bound Procedures

procedure, public :: block_coordinates_in_bounds
procedure, public :: block_identifier
procedure, public :: block_identifier_in_bounds
generic, public :: block_in_bounds => block_identifier_in_bounds, block_coordinates_in_bounds
procedure, public :: block_indicial_coordinates
procedure, public :: build_surfaces
procedure, public :: clone
procedure, public :: compare
procedure, public :: diffusion_coefficient
procedure, 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, 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