Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=int32), | public, | allocatable | :: | connectivity(:) |
connectivity information |
||
integer(kind=int32), | public, | allocatable | :: | connectivity_reordered(:) |
reordered connectivity information |
||
integer(kind=int32), | private | :: | dimension | ||||
real(kind=real64), | public, | allocatable | :: | gauss(:,:) |
Gauss Quadrature points Coordinate |
||
procedure(abst_get_connectivity), | public, | pass(self), pointer | :: | get_connectivity | => | null() | |
integer(kind=int32), | private | :: | group |
Element group number |
|||
integer(kind=int32), | private | :: | id |
Element ID |
|||
procedure(abst_interpolate), | public, | pass(self), pointer | :: | interpolate | => | null() | |
integer(kind=int32), | public | :: | num_gauss |
Number of Gauss Quadrature points |
|||
integer(kind=int32), | private | :: | num_nodes |
Number of nodes in the element |
|||
integer(kind=int32), | private | :: | order | ||||
integer(kind=int32), | private | :: | type |
Element type (5: triangle 1st, 9: square 1st) |
|||
real(kind=real64), | public, | allocatable | :: | weight(:) |
Gauss weight |
||
type(type_dp_pointer), | public, | allocatable | :: | x(:) |
X coordinate |
||
type(type_dp_pointer), | public, | allocatable | :: | y(:) |
Y coordinate |
||
type(type_dp_pointer), | public, | allocatable | :: | z(:) |
Z coordinate |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self | |||
integer(kind=int32), | intent(in) | :: | i | |||
real(kind=real64), | intent(in) | :: | xi | |||
real(kind=real64), | intent(in) | :: | eta |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self | |||
integer(kind=int32), | intent(in) | :: | i | |||
real(kind=real64), | intent(in) | :: | xi | |||
real(kind=real64), | intent(in) | :: | eta |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self | |||
real(kind=real64), | intent(in) | :: | px | |||
real(kind=real64), | intent(in) | :: | py | |||
real(kind=real64), | intent(inout) | :: | pxi | |||
real(kind=real64), | intent(inout) | :: | peta | |||
logical, | intent(inout) | :: | is_in |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self | |||
integer(kind=int32), | intent(in) | :: | i | |||
integer(kind=int32), | intent(in) | :: | j | |||
real(kind=real64), | intent(in) | :: | xi | |||
real(kind=real64), | intent(in) | :: | eta |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self | |||
real(kind=real64), | intent(in) | :: | xi | |||
real(kind=real64), | intent(in) | :: | eta |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abst_element), | intent(in) | :: | self | |||
integer(kind=int32), | intent(in) | :: | i | |||
real(kind=real64), | intent(in) | :: | xi | |||
real(kind=real64), | intent(in) | :: | eta |
type, abstract :: abst_element integer(int32), private :: id !! Element ID integer(int32), private :: type !! Element type (5: triangle 1st, 9: square 1st) integer(int32), private :: num_nodes !! Number of nodes in the element integer(int32), private :: group !! Element group number integer(int32), private :: dimension integer(int32), private :: order integer(int32), allocatable :: connectivity(:) !! connectivity information integer(int32), allocatable :: connectivity_reordered(:) !! reordered connectivity information type(type_dp_pointer), allocatable :: x(:) !! X coordinate type(type_dp_pointer), allocatable :: y(:) !! Y coordinate type(type_dp_pointer), allocatable :: z(:) !! Z coordinate !---------------------------------------------------------------------------------- ! Gauss Quadrature points and weights ! - Gauss Quadrature points are defined in the local coordinate system ! - The number of Gauss points is determined by the element type ! - The weights are used for numerical integration over the element ! - The Gauss points are used to evaluate the shape functions and their derivatives !---------------------------------------------------------------------------------- integer(int32) :: num_gauss !! Number of Gauss Quadrature points real(real64), allocatable :: weight(:) !! Gauss weight real(real64), allocatable :: gauss(:, :) !! Gauss Quadrature points Coordinate !---------------------------------------------------------------------------------- ! Interpolation functions !---------------------------------------------------------------------------------- procedure(abst_interpolate), pass(self), pointer :: interpolate => null() !& procedure(abst_get_connectivity), pass(self), pointer :: get_connectivity => null() !& contains procedure(abst_get_id), pass(self), deferred :: get_id !& procedure(abst_get_type), pass(self), deferred :: get_type !& procedure(abst_get_num_nodes), pass(self), deferred :: get_num_nodes !& procedure(abst_get_group), pass(self), deferred :: get_group !& procedure(abst_get_order), pass(self), deferred :: get_order !& procedure(abst_get_dimension), pass(self), deferred :: get_dimension !& procedure(abst_get_num_gauss), pass(self), deferred :: get_num_gauss !& !---------------------------------------------------------------------------------- procedure(abst_psi), pass(self), deferred :: psi !& procedure(abst_dpsi_dxi), pass(self), deferred :: dpsi_dxi !& procedure(abst_dpsi_deta), pass(self), deferred :: dpsi_deta !& procedure(abst_jacobian), pass(self), deferred :: jacobian !& procedure(abst_jacobian_det), pass(self), deferred :: jacobian_det !& procedure(abst_is_inside), pass(self), deferred :: is_inside !& end type abst_element