Interpolation

Ferrite.InterpolationType
Interpolation{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
source
Ferrite.getrefdimMethod
Ferrite.getrefdim(::Interpolation)

Return the dimension of the reference element for a given interpolation.

source
Ferrite.getrefshapeFunction
Ferrite.getrefshape(::Interpolation)::AbstractRefShape

Return the reference element shape of the interpolation.

source

Implemented interpolations:

Ferrite.LagrangeType
Lagrange{refshape, order} <: ScalarInterpolation

Standard continuous Lagrange polynomials with equidistant node placement.

source
Ferrite.SerendipityType
Serendipity{refshape, order} <: ScalarInterpolation

Serendipity element on hypercubes. Currently only second order variants are implemented.

source
Ferrite.CrouzeixRaviartType
CrouzeixRaviart{refshape, order} <: ScalarInterpolation

Classical non-conforming Crouzeix–Raviart element.

For details we refer to the original paper [9].

source
Ferrite.RannacherTurekType
RannacherTurek{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].

source