|
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::elementbase3d | |
| procedure | generate_l2projmat (elem, elem_in, l2projmat) |
| Generate a projection matrix for L2 projection. This matrix maps nodal values on elem_in to nodal values on elem. It is intended for p-restriction, i.e. elem order <= elem_in order. | |
| procedure | generate_interpmat (elem, elem_in, interpmat) |
| Generate an interpolation matrix by p-prolongation. This matrix maps nodal values on elem_in to nodal values on elem. It is intended for p-prolongation, i.e. elem order >= elem_in order. | |
| procedure | generate_modaltruncationmat (elem, polyorder_h_tr, polyorder_v_tr, truncatemat) |
| Generate a nodal-to-nodal transfer matrix to remove several high modes. | |
| 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 |
| Array saving indices to extract nodal values on the vertical faces. | |
| 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.