ReferenceElement
ReferenceElement
data type is designed for handling the reference domain of finite elements.
Structure
ReferenceElement type is designed for handling the reference domains of finite elements.
TYPE :: ReferenceElement_
REAL(DFP), ALLOCATABLE :: xiJ(:, :)
!! Node coord
INTEGER(I4B) :: entityCounts(4) = 0
!! Number of 0D, 1D, 2D, 3D entities
INTEGER(I4B) :: xiDimension = 0
!! Xidimension
INTEGER(I4B) :: name = 0
!! name of the element
INTEGER(I4B) :: order = 0
!! Order of element
INTEGER(I4B) :: nsd = 0
!! Number of spatial dimensions
INTEGER(I4B) :: interpolationPointType = Equidistance
!! Interpolation point
!! Equidistance, GaussLegendre, GaussLobatto, Chebyshev
TYPE(ReferenceTopology_), ALLOCATABLE :: topology(:)
!! Topology information of 0D, 1, 2, 3D entities
PROCEDURE(highorder_refelem), POINTER, PASS(obj) :: highOrderElement => NULL()
!! Routine to generate hgher order LagrangeElement
END TYPE ReferenceElement_
xiJ
- Nodal coordinates of the ReferenceElement.
- Rows of xij denotes the spatial coordinates, for example,
xij(2, :)
denotes y coordinates. - Columns of
xiJ
denote the number of nodes in the element
entityCounts
entityCounts(xidim)
denotes the total number of entity of codimension, xidim
=0,1,2,3.
xidimension
Codimension of element.
xidim | |
---|---|
0 | point |
1 | curve (or line) |
2 | surface |
3 | volume |
name
name of the reference element. Name is hardcoded in GlobalData by using 4-byte integers.
Click here to see the name
INTEGER(I4B), PARAMETER :: Line = 1
INTEGER(I4B), PARAMETER :: Line2 = 1
INTEGER(I4B), PARAMETER :: Line3 = 8
INTEGER(I4B), PARAMETER :: Line4 = 26
INTEGER(I4B), PARAMETER :: Line5 = 27
INTEGER(I4B), PARAMETER :: Line6 = 28
INTEGER(I4B), PARAMETER :: Triangle = 2
INTEGER(I4B), PARAMETER :: Triangle3 = 2
INTEGER(I4B), PARAMETER :: Triangle6 = 9
INTEGER(I4B), PARAMETER :: Triangle9 = 20
INTEGER(I4B), PARAMETER :: Triangle10 = 21
INTEGER(I4B), PARAMETER :: Triangle12 = 22
INTEGER(I4B), PARAMETER :: Triangle15a = 23
INTEGER(I4B), PARAMETER :: Triangle15b = 24
INTEGER(I4B), PARAMETER :: Triangle15 = 24
INTEGER(I4B), PARAMETER :: Triangle21 = 25
INTEGER(I4B), PARAMETER :: Quadrangle = 3
INTEGER(I4B), PARAMETER :: Quadrangle4 = 3
INTEGER(I4B), PARAMETER :: Quadrangle9 = 10
INTEGER(I4B), PARAMETER :: Quadrangle8 = 16
INTEGER(I4B), PARAMETER :: Quadrangle16 = 160
INTEGER(I4B), PARAMETER :: Tetrahedron = 4
INTEGER(I4B), PARAMETER :: Tetrahedron4 = 4
INTEGER(I4B), PARAMETER :: Tetrahedron10 = 11
INTEGER(I4B), PARAMETER :: Tetrahedron20 = 29
INTEGER(I4B), PARAMETER :: Tetrahedron35 = 30
INTEGER(I4B), PARAMETER :: Tetrahedron56 = 31
INTEGER(I4B), PARAMETER :: Hexahedron = 5
INTEGER(I4B), PARAMETER :: Hexahedron8 = 5
INTEGER(I4B), PARAMETER :: Hexahedron27 = 12
INTEGER(I4B), PARAMETER :: Hexahedron20 = 17
INTEGER(I4B), PARAMETER :: Hexahedron64 = 92
INTEGER(I4B), PARAMETER :: Hexahedron125 = 93
INTEGER(I4B), PARAMETER :: Prism = 6
INTEGER(I4B), PARAMETER :: Prism6 = 6
INTEGER(I4B), PARAMETER :: Prism18 = 13
INTEGER(I4B), PARAMETER :: Prism15 = 18
INTEGER(I4B), PARAMETER :: Pyramid = 7
INTEGER(I4B), PARAMETER :: Pyramid5 = 7
INTEGER(I4B), PARAMETER :: Pyramid14 = 14
INTEGER(I4B), PARAMETER :: Pyramid13 = 19
INTEGER(I4B), PARAMETER :: Point = 15
INTEGER(I4B), PARAMETER :: Point1 = 15
order
order of element
nsd
number of spatial dimension of element.
topology
- It is a vector of ReferenceTopology, which represents the topology of entities present in the reference elements.
- For example, a triangle is made from three points, three lines, and a surface. The points, lines, and surfaces are called entities of triangle.
- Point topology ranges from 1 to
entityCounts(1)
- Curve topology ranges from
entityCounts(1)+1
toentityCounts(1)+entityCounts(2)
- Surface topology ranges from
entityCounts(1)+entityCounts(2)+1
toentityCounts(1)+entityCounts(2)+entityCounts(3)
- Volume topology ranges from
entityCounts(1)+entityCounts(2)+entityCounts(3)+1
toentityCounts(1)+entityCounts(2)+entityCounts(3)+entityCounts(4)
In this way, the size of topology
is equal to the sum of all the entities of entityCounts
.
lagrangeElement
This is a procedure pointer, which returns the lagrange element of higher order.
Methodsβ
ποΈ ContainsPoint
Returns true if the given point is inside the element
ποΈ Deallocate
ποΈ Display
Display reference element.
ποΈ ElementName
Returns element name in character from element number/type
ποΈ ElementOrder
Returns the order of an element
ποΈ ElementQuality
Measure the quality of the element
ποΈ ElementTopology
This routine returns the topology of the reference element
ποΈ ElementType
Returns element name in integer from element name
ποΈ FacetElements
This routine returns the facet elements
ποΈ FacetMatrix
Returns the facet matrix of a reference element.
ποΈ FacetTopology
Returns the facet topology of the given element type
ποΈ GetConnectivity
ποΈ GetVTKElementType
ποΈ Initiate
Initiates an instance of ReferenceElement.
ποΈ IsHexahedron
Returns true if element is a Hexahedron element
ποΈ IsLine
Returns true if element is a Line element
ποΈ IsPoint
Returns true if element is a Point element
ποΈ IsPrism
Returns true if element is a Prism element
ποΈ IsPyramid
Returns true if element is a Pyramid element
ποΈ IsQuadrangle
Returns true if element is a Quadrangle element
ποΈ IsSerendipityElement
Returns true if element is a SerendipityElement element
ποΈ IsSurface
Returns true if element is a Surface element
ποΈ IsTetrahedron
Returns true if element is a Tetrahedron element
ποΈ IsTriangle
Returns true if element is a Triangle element
ποΈ IsVolume
Returns true if element is a volume element
ποΈ LocalNodeCoord
Returns the local NodeCoord of an element
ποΈ MeasureSimplex
Returns the measures of a simplex.
ποΈ NNE
Returns number of nodes in element.
ποΈ Order
ποΈ Structure
ReferenceElement type is designed for handling the reference domains of finite elements.
ποΈ ReferenceElement example 1
Modules and classes
ποΈ ReferenceElement example 2
Modules and classes
ποΈ ReferenceTopology
ποΈ TotalEntities
Total entities present in an element
ποΈ TotalNodesInElement
Returns total numbers of nodes present in a given element