FEValues
Type definitions
AbstractValues
AbstractCellValues
AbstractFaceValues
PointValues
Internal types
Ferrite.GeometryMapping
— TypeGeometryMapping{DiffOrder}(::Type{T}, ip_geo, qr::QuadratureRule)
Create a GeometryMapping
object which contains the geometric
- shape values
- gradient values (if DiffOrder ≥ 1)
- hessians values (if DiffOrder ≥ 2)
T<:AbstractFloat
gives the numeric type of the values.
Ferrite.MappingValues
— TypeMappingValues(J, H)
The mapping values are calculated based on a geometric_mapping::GeometryMapping
along with the cell coordinates, and the stored jacobian, J
, and potentially hessian, H
, are used when mapping the FunctionValues
to the current cell during reinit!
.
Ferrite.FunctionValues
— TypeFunctionValues{DiffOrder}(::Type{T}, ip_fun, qr::QuadratureRule, ip_geo::VectorizedInterpolation)
Create a FunctionValues
object containing the shape values and gradients (up to order DiffOrder
) for both the reference cell (precalculated) and the real cell (updated in reinit!
).
Ferrite.BCValues
— TypeBCValues(func_interpol::Interpolation, geom_interpol::Interpolation, boundary_type::Union{Type{<:BoundaryIndex}})
BCValues
stores the shape values at all faces/edges/vertices (depending on boundary_type
) for the geomatric interpolation (geom_interpol
), for each dof-position determined by the func_interpol
. Used mainly by the ConstrainHandler
.
Custom FEValues
Custom FEValues, fe_v::AbstractValues
, should normally implement the reinit!
method. Subtypes of AbstractValues
have default implementations for some functions, but require some lower-level access functions, specifically
function_value
, requiresfunction_gradient
,function_divergence
,function_symmetric_gradient
, andfunction_curl
requiresspatial_coordinate
, requiresgeometric_value
getngeobasefunctions
getnquadpoints
Array bounds
- Asking for the
n
th quadrature point must be inside array bounds if1 <= n <= getnquadpoints(fe_v)
. (checkquadpoint
can, alternatively, be dispatched to check thatn
is inbounds.) - Asking for the
i
th shape value or gradient must be inside array bounds if1 <= i <= getnbasefunctions(fe_v)
- Asking for the
i
th geometric value must be inside array bounds if1 <= i <= getngeobasefunctions(fe_v)