abst_element Derived Type

type, public, abstract, extends(abst_mesh) :: abst_element


Inherits

type~~abst_element~~InheritsGraph type~abst_element abst_element type~abst_mesh abst_mesh type~abst_element->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~~abst_element~~InheritedByGraph type~abst_element abst_element type~holder_elements holder_elements type~holder_elements->type~abst_element e type~type_square_first type_square_first type~type_square_first->type~abst_element type~type_square_second type_square_second type~type_square_second->type~abst_element type~type_triangle_first type_triangle_first type~type_triangle_first->type~abst_element type~type_triangle_second type_triangle_second type~type_triangle_second->type~abst_element type~type_domain type_domain type~type_domain->type~holder_elements elements type~type_output_observation type_output_observation type~type_output_observation->type~holder_elements elements type~type_ftdss type_ftdss type~type_ftdss->type~type_domain domain type~type_output type_output type~type_ftdss->type~type_output output type~type_output->type~type_output_observation observations

Type-Bound Procedures

procedure, public, pass(self) :: dlerp

  • private pure function dlerp(self, r, value) result(val)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_mesh), intent(in) :: self
    type(type_dp_vector_3d), intent(in) :: r
    real(kind=real64), intent(in) :: value(:)

    Return Value type(type_dp_vector_3d)

procedure(abst_dpsi), public, deferred, pass(self) :: dpsi

  • pure elemental function abst_dpsi(self, i, j, r) result(dpsi) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(abst_mesh), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    integer(kind=int32), intent(in) :: j
    type(type_dp_vector_3d), intent(in) :: r

    Return Value real(kind=real64)

procedure, public, pass(self) :: get_connectivity

  • private function get_connectivity(self) result(connectivity)

    Arguments

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

    Return Value integer(kind=int32), dimension(:), pointer

procedure, public, pass(self) :: get_coordinate

  • private pure function get_coordinate(self, index) result(coordinate)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_mesh), intent(in) :: self
    integer(kind=int32), intent(in) :: index

    Return Value type(type_dp_vector_3d)

procedure, public, pass(self) :: get_dimension

  • private pure function get_dimension(self) result(dimension)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public, pass(self) :: get_gauss

  • private function get_gauss(self) result(gauss)

    Arguments

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

    Return Value type(type_dp_vector_3d), dimension(:), pointer

procedure(abst_get_geometry), public, deferred, pass(self) :: get_geometry

  • pure function abst_get_geometry(self) result(geometry) Prototype

    Arguments

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

    Return Value real(kind=real64)

procedure, public, pass(self) :: get_group

  • private pure function get_group(self) result(group)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public, pass(self) :: get_id

  • private pure function get_id(self) result(id)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public, pass(self) :: get_num_gauss

  • private pure function get_num_gauss(self) result(num_gauss)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public, pass(self) :: get_num_nodes

  • private pure function get_num_nodes(self) result(num_nodes)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public, pass(self) :: get_order

  • private pure function get_order(self) result(order)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public, pass(self) :: get_type

  • private pure function get_type(self) result(type)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public, pass(self) :: get_weight

  • private function get_weight(self) result(weight)

    Arguments

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

    Return Value real(kind=real64), dimension(:), pointer

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

  • private subroutine initialize_abst_mesh(self, id, type, group, dimension, order, num_nodes, connectivity, num_gauss, weight, gauss, global_coordinate)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_mesh), intent(inout) :: self
    integer(kind=int32), intent(in) :: id
    integer(kind=int32), intent(in) :: type
    integer(kind=int32), intent(in) :: group
    integer(kind=int32), intent(in) :: dimension
    integer(kind=int32), intent(in) :: order
    integer(kind=int32), intent(in) :: num_nodes
    integer(kind=int32), intent(in) :: connectivity(:)
    integer(kind=int32), intent(in) :: num_gauss
    real(kind=real64), intent(in) :: weight(:)
    real(kind=real64), intent(in) :: gauss(:,:)
    type(type_dp_3d), intent(in), pointer :: global_coordinate

procedure(abst_is_inside), public, deferred, pass(self) :: is_inside

  • subroutine abst_is_inside(self, cartesian, normalized, is_in) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(abst_element), intent(in) :: self
    type(type_dp_vector_3d), intent(in) :: cartesian
    type(type_dp_vector_3d), intent(inout) :: normalized
    logical, intent(inout) :: is_in

procedure(abst_jacobian), public, deferred, pass(self) :: jacobian

  • pure elemental function abst_jacobian(self, i, j, r) result(jacobian) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(abst_mesh), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    integer(kind=int32), intent(in) :: j
    type(type_dp_vector_3d), intent(in) :: r

    Return Value real(kind=real64)

procedure(abst_jacobian_det), public, deferred, pass(self) :: jacobian_det

  • pure elemental function abst_jacobian_det(self, r) result(jacobian_det) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(abst_mesh), intent(in) :: self
    type(type_dp_vector_3d), intent(in) :: r

    Return Value real(kind=real64)

procedure, public, pass(self) :: lerp

  • private pure function lerp(self, r, value) result(val)

    Arguments

    Type IntentOptional Attributes Name
    class(abst_mesh), intent(in) :: self
    type(type_dp_vector_3d), intent(in) :: r
    real(kind=real64), intent(in) :: value(:)

    Return Value real(kind=real64)

procedure(abst_psi), public, deferred, pass(self) :: psi

  • pure elemental function abst_psi(self, i, r) result(psi) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(abst_mesh), intent(in) :: self
    integer(kind=int32), intent(in) :: i
    type(type_dp_vector_3d), intent(in) :: r

    Return Value real(kind=real64)

Source Code

    type, abstract, extends(abst_mesh) :: abst_element
    contains
        procedure(abst_is_inside), pass(self), deferred :: is_inside
    end type abst_element