Interpolation
Ferrite.Interpolation
— TypeInterpolation{ref_shape, order}()
Abstract type for interpolations defined on ref_shape
(see AbstractRefShape
). order
corresponds to the order of the interpolation. The interpolation is used to define shape functions to interpolate a function between nodes.
The following interpolations are implemented:
Lagrange{RefLine,1}
Lagrange{RefLine,2}
Lagrange{RefQuadrilateral,1}
Lagrange{RefQuadrilateral,2}
Lagrange{RefQuadrilateral,3}
Lagrange{RefTriangle,1}
Lagrange{RefTriangle,2}
Lagrange{RefTriangle,3}
Lagrange{RefTriangle,4}
Lagrange{RefTriangle,5}
BubbleEnrichedLagrange{RefTriangle,1}
CrouzeixRaviart{RefTriangle, 1}
CrouzeixRaviart{RefTetrahedron, 1}
RannacherTurek{RefQuadrilateral, 1}
RannacherTurek{RefHexahedron, 1}
Lagrange{RefHexahedron,1}
Lagrange{RefHexahedron,2}
Lagrange{RefTetrahedron,1}
Lagrange{RefTetrahedron,2}
Lagrange{RefPrism,1}
Lagrange{RefPrism,2}
Lagrange{RefPyramid,1}
Lagrange{RefPyramid,2}
Serendipity{RefQuadrilateral,2}
Serendipity{RefHexahedron,2}
Examples
julia> ip = Lagrange{RefTriangle, 2}()
Lagrange{RefTriangle, 2}()
julia> getnbasefunctions(ip)
6
Ferrite.getnbasefunctions
— FunctionFerrite.getnbasefunctions(ip::Interpolation)
Return the number of base functions for the interpolation ip
.
Ferrite.getrefdim
— MethodFerrite.getrefdim(::Interpolation)
Return the dimension of the reference element for a given interpolation.
Ferrite.getrefshape
— FunctionFerrite.getrefshape(::Interpolation)::AbstractRefShape
Return the reference element shape of the interpolation.
Ferrite.getorder
— FunctionFerrite.getorder(::Interpolation)
Return order of the interpolation.
Implemented interpolations:
Ferrite.Lagrange
— TypeLagrange{refshape, order} <: ScalarInterpolation
Standard continuous Lagrange polynomials with equidistant node placement.
Ferrite.Serendipity
— TypeSerendipity{refshape, order} <: ScalarInterpolation
Serendipity element on hypercubes. Currently only second order variants are implemented.
Ferrite.DiscontinuousLagrange
— TypePiecewise discontinuous Lagrange basis via Gauss-Lobatto points.
Ferrite.BubbleEnrichedLagrange
— TypeLagrange element with bubble stabilization.
Ferrite.CrouzeixRaviart
— TypeCrouzeixRaviart{refshape, order} <: ScalarInterpolation
Classical non-conforming Crouzeix–Raviart element.
For details we refer to the original paper [9].
Ferrite.RannacherTurek
— TypeRannacherTurek{refshape, order} <: ScalarInterpolation
Classical non-conforming Rannacher-Turek element.
This element is basically the idea from Crouzeix and Raviart applied to hypercubes. For details see the original paper [10].