|
FE-Project
|
Derived type representing a 2D reference element. More...
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. | |
Derived type representing a 2D reference element.
Definition at line 71 of file scale_element_base.F90.
| 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.
| 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.
| 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().
| integer scale_element_base::elementbase2d::polyorder |
Polynomial order.
Definition at line 72 of file scale_element_base.F90.
| integer scale_element_base::elementbase2d::nfp |
Number of nodes on an element face.
Definition at line 73 of file scale_element_base.F90.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.