Quadrature

Usually quadrature is a hidden layer as quadrature rules are chosen automatically based on the polynomial degree of the ansatz functions and the specified quadorder of the user data.

Hence, quadrature rules are only needed if the user wants write his own low-level assembly.

Quadrature rules consist of points (coordinates of evaluation points with respect to reference geometry) and weights. There are constructors for several AbstractElementGeometries (from ExtendableGrids) and different order (some have generic formulas for arbitrary order), see below for a detailed list.

GradientRobustMultiPhysics.QuadratureRuleType
abstract type QuadratureRule{T<:Real, ET<:AbstractElementGeometry}

A struct that contains the name of the quadrature rule, the reference points and the weights for the parameter-determined element geometry.

source
Base.eltypeMethod
eltype(
    _::QuadratureRule{T<:Real, ET<:AbstractElementGeometry}
) -> Any

Custom eltype function for QuadratureRule{T,ET}.

source
Base.showMethod
show(io::IO, Q::QuadratureRule)

Custom show function for QuadratureRule{T,ET} that prints some information.

source
GradientRobustMultiPhysics.integrate!Method
integrate!(
    integral4items::AbstractArray{T},
    grid::ExtendableGrid,
    AT::Type{<:AssemblyType},
    integrand::GradientRobustMultiPhysics.AbstractUserDataType;
    index_offsets,
    time,
    items,
    force_quadrature_rule
)

Integration that writes result on every item into integral4items.

source
GradientRobustMultiPhysics.integrateMethod
integrate(
    grid::ExtendableGrid,
    AT::Type{<:AssemblyType},
    integrand!::GradientRobustMultiPhysics.AbstractUserDataType,
    resultdim::Int64;
    T,
    items,
    force_quadrature_rule
) -> Union{Float64, Vector{Float64}}

Integration that returns total integral.

source
GradientRobustMultiPhysics.ref_integrate!Method
ref_integrate!(
    integral::AbstractArray,
    EG::Type{<:AbstractElementGeometry},
    order::Int64,
    integrand::Function
)

Integration for reference basis functions on reference domains (merely for testing stuff).

Note: area of reference geometry is not multiplied

source