FE-Project
Loading...
Searching...
No Matches
scale_element_base::elementbase2d Type Reference

Derived type representing a 2D reference element. More...

Inheritance diagram for scale_element_base::elementbase2d:
scale_element_base::elementbase scale_element_quadrilateral::quadrilateralelement

Public Member Functions

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_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.

Public Attributes

integer polyorder
 Polynomial order.
integer nfp
 Number of nodes on an element face.
integer, dimension(:,:), allocatable fmask
 Array saving indices to extract nodal values on the faces.
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 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 sx1
 Elementwise stiffness matrix for the x1-coordinate direction.
real(rp), dimension(:,:), allocatable sx2
 Elementwise stiffness matrix for the x2-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.

Detailed Description

Derived type representing a 2D reference element.

Definition at line 71 of file scale_element_base.F90.

Member Function/Subroutine Documentation

◆ generate_l2projmat()

procedure scale_element_base::elementbase2d::generate_l2projmat ( class(elementbase2d), intent(in) elem,
class(elementbase2d), intent(in) elem_in,
real(rp), dimension(elem%np,elem_in%np), intent(out) 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.

With an orthogonal Legendre modal basis, this corresponds to L2 projection onto the polynomial space represented by elem.

Definition at line 85 of file scale_element_base.F90.

◆ generate_interpmat()

procedure scale_element_base::elementbase2d::generate_interpmat ( class(elementbase2d), intent(in) elem,
class(elementbase2d), intent(in) elem_in,
real(rp), dimension(elem%np,elem_in%np), intent(out) 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.

In Legendre modal space, higher modes not present in elem_in are set to zero.

Definition at line 86 of file scale_element_base.F90.

◆ generate_modaltruncationmat()

procedure scale_element_base::elementbase2d::generate_modaltruncationmat ( class(elementbase2d), intent(in) elem,
integer, intent(in) polyorder_tr,
real(rp), dimension(elem%np,elem%np), intent(out) truncatemat )

Generate a nodal-to-nodal transfer matrix to remove several high modes.

Definition at line 87 of file scale_element_base.F90.

References scale_element_base::elementbase2d_final(), and scale_element_base::elementbase2d_init().

Member Data Documentation

◆ polyorder

integer scale_element_base::elementbase2d::polyorder

Polynomial order.

Definition at line 72 of file scale_element_base.F90.

72 integer :: PolyOrder !< Polynomial order

◆ nfp

integer scale_element_base::elementbase2d::nfp

Number of nodes on an element face.

Definition at line 73 of file scale_element_base.F90.

73 integer :: Nfp !< Number of nodes on an element face

◆ fmask

integer, dimension(:,:), allocatable scale_element_base::elementbase2d::fmask

Array saving indices to extract nodal values on the faces.

Definition at line 74 of file scale_element_base.F90.

74 integer, allocatable :: Fmask(:,:) !< Array saving indices to extract nodal values on the faces

◆ x1

real(rp), dimension(:), allocatable scale_element_base::elementbase2d::x1

Array saving x1-coordinate of nodes within the reference element.

Definition at line 76 of file scale_element_base.F90.

76 real(RP), allocatable :: x1(:) !< Array saving x1-coordinate of nodes within the reference element

◆ x2

real(rp), dimension(:), allocatable scale_element_base::elementbase2d::x2

Array saving x2-coordinate of nodes within the reference element.

Definition at line 77 of file scale_element_base.F90.

77 real(RP), allocatable :: x2(:) !< Array saving x2-coordinate of nodes within the reference element

◆ dx1

real(rp), dimension(:,:), allocatable scale_element_base::elementbase2d::dx1

Elementwise differential matrix for the x1-coordinate direction (Dx1 = M^-1 Sx1)

Definition at line 79 of file scale_element_base.F90.

79 real(RP), allocatable :: Dx1(:,:) !< Elementwise differential matrix for the x1-coordinate direction (Dx1 = M^-1 Sx1)

◆ dx2

real(rp), dimension(:,:), allocatable scale_element_base::elementbase2d::dx2

Elementwise differential matrix for the x2-coordinate direction (Dx2 = M^-1 Sx2)

Definition at line 80 of file scale_element_base.F90.

80 real(RP), allocatable :: Dx2(:,:) !< Elementwise differential matrix for the x2-coordinate direction (Dx2 = M^-1 Sx2)

◆ sx1

real(rp), dimension(:,:), allocatable scale_element_base::elementbase2d::sx1

Elementwise stiffness matrix for the x1-coordinate direction.

Definition at line 82 of file scale_element_base.F90.

82 real(RP), allocatable :: Sx1(:,:) !< Elementwise stiffness matrix for the x1-coordinate direction

◆ sx2

real(rp), dimension(:,:), allocatable scale_element_base::elementbase2d::sx2

Elementwise stiffness matrix for the x2-coordinate direction.

Definition at line 83 of file scale_element_base.F90.

83 real(RP), allocatable :: Sx2(:,:) !< Elementwise stiffness matrix for the x2-coordinate direction

The documentation for this type was generated from the following file: