type_domain Derived Type

type, public :: type_domain


Inherits

type~~type_domain~~InheritsGraph type~type_domain type_domain type~holder_elements holder_elements type~type_domain->type~holder_elements elements type~holder_sides holder_sides type~type_domain->type~holder_sides sides type~type_coloring type_coloring type~type_domain->type~type_coloring colors type~type_crs_adjacency_element type_crs_adjacency_element type~type_domain->type~type_crs_adjacency_element element_adjacency type~type_map_node_to_element type_map_node_to_element type~type_domain->type~type_map_node_to_element map_node_to_element type~type_node_adjacency type_node_adjacency type~type_domain->type~type_node_adjacency node_adjacency type~type_reordering type_reordering type~type_domain->type~type_reordering reordering type~abst_element abst_element type~holder_elements->type~abst_element e type~abst_side abst_side type~holder_sides->type~abst_side s type~type_colored_info type_colored_info type~type_coloring->type~type_colored_info colored type~type_element_list type_element_list type~type_map_node_to_element->type~type_element_list map_data type~abst_mesh abst_mesh type~abst_element->type~abst_mesh type~abst_side->type~abst_mesh type~type_dp_pointer type_dp_pointer type~abst_mesh->type~type_dp_pointer x, y, z type~type_dp_vector_3d type_dp_vector_3d type~abst_mesh->type~type_dp_vector_3d gauss

Inherited by

type~~type_domain~~InheritedByGraph type~type_domain type_domain type~type_ftdss type_ftdss type~type_ftdss->type~type_domain domain

Components

Type Visibility Attributes Name Initial
type(type_coloring), public :: colors
integer(kind=int32), private :: computation_dimension
type(type_crs_adjacency_element), public :: element_adjacency
type(holder_elements), public, allocatable :: elements(:)
type(type_map_node_to_element), public :: map_node_to_element
type(type_node_adjacency), public :: node_adjacency
integer(kind=int32), private :: num_elements
integer(kind=int32), private :: num_materials
integer(kind=int32), private :: num_nodes
integer(kind=int32), private :: num_sides
integer(kind=int32), private :: num_volumes
type(type_reordering), public :: reordering
type(holder_sides), public, allocatable :: sides(:)

Type-Bound Procedures

procedure, public, pass(self) :: apply_reordering

  • private subroutine apply_reordering(self)

    TBI: Handle 3D reordering if necessary

    Arguments

    Type IntentOptional Attributes Name
    class(type_domain), intent(inout) :: self

procedure, public, pass(self) :: get_computation_dimension

  • private function get_computation_dimension(self) result(computation_dimension)

    Arguments

    Type IntentOptional Attributes Name
    class(type_domain), intent(in) :: self

    Return Value integer(kind=int32)

procedure, public, pass(self) :: get_num_elements

  • private function get_num_elements(self) result(num_elements)

    Arguments

    Type IntentOptional Attributes Name
    class(type_domain), intent(in) :: self

    Return Value integer(kind=int32)

procedure, public, pass(self) :: get_num_materials

  • private function get_num_materials(self) result(num_materials)

    Arguments

    Type IntentOptional Attributes Name
    class(type_domain), intent(in) :: self

    Return Value integer(kind=int32)

procedure, public, pass(self) :: get_num_nodes

  • private function get_num_nodes(self) result(num_nodea)

    Arguments

    Type IntentOptional Attributes Name
    class(type_domain), intent(in) :: self

    Return Value integer(kind=int32)

procedure, public, pass(self) :: get_num_sides

  • private function get_num_sides(self) result(num_sides)

    Arguments

    Type IntentOptional Attributes Name
    class(type_domain), intent(in) :: self

    Return Value integer(kind=int32)

procedure, public, pass(self) :: initialize => initialize_type_domain

Source Code

    type :: type_domain
        integer(int32), private :: num_sides
        integer(int32), private :: num_elements
        integer(int32), private :: num_volumes
        integer(int32), private :: num_nodes
        integer(int32), private :: num_materials
        type(holder_elements), allocatable :: elements(:) !&
        type(holder_sides),    allocatable :: sides(:) !&

        type(type_coloring) :: colors
        type(type_reordering) :: reordering
        type(type_node_adjacency) :: node_adjacency
        type(type_crs_adjacency_element) :: element_adjacency
        type(type_map_node_to_element) :: map_node_to_element

        integer(int32), private :: computation_dimension
        ! ...
    contains
        procedure, pass(self) :: initialize => initialize_type_domain
        procedure, pass(self) :: apply_reordering

        procedure, pass(self) :: get_num_elements
        procedure, pass(self) :: get_num_sides
        procedure, pass(self) :: get_num_nodes
        procedure, pass(self) :: get_num_materials
        procedure, pass(self) :: get_computation_dimension
    end type type_domain