FE-Project
|
Derived type representing a hexahedral element. More...
Public Member Functions | |
procedure | init (elem, elemorder_h, elemorder_v, lumpedmassmatflag) |
Initialize an object to manage a hexahedral element. | |
procedure | final (elem) |
Finalize an object to manage a hexahedral element. | |
procedure | genintgausslegendreintrpmat (this, intrppolyorder, intw_intrp, x_intrp, y_intrp, z_intrp) |
Public Member Functions inherited from scale_element_base::elementbase | |
procedure | islumpedmatrix (elem) |
Get a flag whether the lumped mass matrix is used. |
Additional Inherited Members | |
Public Attributes inherited from scale_element_base::elementbase3d | |
integer | polyorder_h |
Polynomial order with the horizontal direction. | |
integer | nnode_h1d |
Number of nodes along the horizontal coordinate. | |
integer | nfaces_h |
Number of nodes on an horizontal face of the reference element. | |
integer | nfp_h |
Number of horizontal faces of the reference element. | |
integer, dimension(:,:), allocatable | fmask_h |
Array saving indices to extract nodal values on the horizontal faces. | |
integer | polyorder_v |
Polynomial order with the vertical direction. | |
integer | nnode_v |
Number of nodes along the vertical coordinate. | |
integer | nfaces_v |
Number of nodes on an vertical face of the reference element. | |
integer | nfp_v |
Number of vertical faces of the reference element. | |
integer, dimension(:,:), allocatable | fmask_v |
Number of vertical faces of the reference element. | |
integer, dimension(:,:), allocatable | colmask |
Array saving indices to extract nodal values on the vertical columns. | |
integer, dimension(:,:), allocatable | hslice |
Array saving indices to extract nodal values on the horizontal plane. | |
integer, dimension(:), allocatable | indexh2dto3d |
Array saving indices to expand 2D horizontal nodal values into the 3D nodal values. | |
integer, dimension(:), allocatable | indexh2dto3d_bnd |
Array saving indices to expand 2D horizontal nodal values into the 3D nodal values on element faces. | |
integer, dimension(:), allocatable | indexz1dto3d |
Array saving indices to expand 1D vertical nodal values into the 3D nodal values. | |
real(rp), dimension(:), allocatable | x1 |
Array saving x1-coordinate of nodes within the reference element. | |
real(rp), dimension(:), allocatable | x2 |
Array saving x2-coordinate of nodes within the reference element. | |
real(rp), dimension(:), allocatable | x3 |
Array saving x3-coordinate of nodes within the reference element. | |
real(rp), dimension(:,:), allocatable | dx1 |
Elementwise differential matrix for the x1-coordinate direction (Dx1 = M^-1 Sx1) | |
real(rp), dimension(:,:), allocatable | dx2 |
Elementwise differential matrix for the x2-coordinate direction (Dx2 = M^-1 Sx2) | |
real(rp), dimension(:,:), allocatable | dx3 |
Elementwise differential matrix for the x3-coordinate direction (Dx3 = M^-1 Sx3) | |
real(rp), dimension(:,:), allocatable | sx1 |
Elementwise stiffness matrix for the x1-coordinate direction. | |
real(rp), dimension(:,:), allocatable | sx2 |
Elementwise stiffness matrix for the x2-coordinate direction. | |
real(rp), dimension(:,:), allocatable | sx3 |
Elementwise stiffness matrix for the x3-coordinate direction. | |
Public Attributes inherited from scale_element_base::elementbase | |
integer | np |
Number of nodes within an element. | |
integer | nfaces |
Number of faces. | |
integer | nfptot |
Total number of nodes on faces. | |
integer | nv |
Number of vertices with an element. | |
real(rp), dimension(:,:), allocatable | v |
The Vandermonde matrix (V) whose size is Np x Np. | |
real(rp), dimension(:,:), allocatable | invv |
Inversion of the Vandermonde matrix (V^-1) whose size is Np x Np. | |
real(rp), dimension(:,:), allocatable | m |
Mass matrix (M) whose size is Np x Np. | |
real(rp), dimension(:,:), allocatable | invm |
Inversion of the mass matrix (M^-1) whose size Np x NP. | |
real(rp), dimension(:,:), allocatable | lift |
Lifting matrix with element boundary integrals whose size Np x NfpTot. | |
real(rp), dimension(:), allocatable | intweight_lgl |
Weights of gaussian quadrature with the LGL nodes. |
Derived type representing a hexahedral element.
Definition at line 31 of file scale_element_hexahedral.F90.
procedure scale_element_hexahedral::hexahedralelement::init | ( | class(hexahedralelement), intent(inout) | elem, |
integer, intent(in) | elemorder_h, | ||
integer, intent(in) | elemorder_v, | ||
logical, intent(in) | lumpedmassmatflag ) |
Initialize an object to manage a hexahedral element.
elem | Object of finite element |
elemOrder_h | Polynomial order with 1D horizontal direction |
elemOrder_v | Polynomial order with vertical direction |
LumpedMassMatFlag | Flag whether mass lumping is considered |
Definition at line 33 of file scale_element_hexahedral.F90.
procedure scale_element_hexahedral::hexahedralelement::final | ( | class(hexahedralelement), intent(inout) | elem | ) |
Finalize an object to manage a hexahedral element.
elem | Object of finite element |
Definition at line 34 of file scale_element_hexahedral.F90.
procedure scale_element_hexahedral::hexahedralelement::genintgausslegendreintrpmat | ( | class(hexahedralelement), intent(in) | this, |
integer, intent(in) | intrppolyorder, | ||
real(rp), dimension(intrppolyorder**3), intent(out), optional | intw_intrp, | ||
real(rp), dimension(intrppolyorder**3), intent(out), optional | x_intrp, | ||
real(rp), dimension(intrppolyorder**3), intent(out), optional | y_intrp, | ||
real(rp), dimension(intrppolyorder**3), intent(out), optional | z_intrp ) |
Definition at line 35 of file scale_element_hexahedral.F90.