type_square_first Derived Type

type, public, extends(abst_element) :: type_square_first


Inherits

type~~type_square_first~~InheritsGraph type~type_square_first type_square_first type~abst_element abst_element type~type_square_first->type~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

Constructor

public interface type_square_first


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, public, pass(self) :: dpsi => dpsi_square_first

  • interface

    private pure elemental module function dpsi_square_first(self, i, j, r) result(dpsi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), 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, public, pass(self) :: get_geometry => get_area_square_first

  • interface

    private pure module function get_area_square_first(self) result(area)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), 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, public, pass(self) :: is_inside => is_in_square_first

procedure, public, pass(self) :: jacobian => jacobian_square_first

  • interface

    private pure elemental module function jacobian_square_first(self, i, j, r) result(jacobian)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), 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) :: jacobian_det => jacobian_det_square_first

  • interface

    private pure elemental module function jacobian_det_square_first(self, r) result(jacobian_det)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), 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, public, pass(self) :: psi => psi_square_first

  • interface

    private pure elemental module function psi_square_first(self, i, r) result(psi)

    Arguments

    Type IntentOptional Attributes Name
    class(type_square_first), 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, extends(abst_element) :: type_square_first
    contains
        procedure, pass(self) :: get_geometry => get_area_square_first !&
        procedure, pass(self) :: psi          => psi_square_first !&
        procedure, pass(self) :: dpsi         => dpsi_square_first !&
        procedure, pass(self) :: jacobian     => jacobian_square_first !&
        procedure, pass(self) :: jacobian_det => jacobian_det_square_first !&
        procedure, pass(self) :: is_inside    => is_in_square_first !&
    end type type_square_first