Rodin/Variational/H1/QuadratureRule.h file

H1 quadrature rules with point-local reference-table borrowing.

Coefficient evaluation and reference data

A coefficient callback may query unrelated reference formulas and evict a bounded reference-table slot. Coefficient-bearing rules evaluate owned coefficient values before borrowing the tables consumed by that stage. No table contents are read across a later arbitrary coefficient callback. This protocol preserves the bounded store and requires no new cache, coordinate comparisons or distributed communication.

Namespaces

namespace Rodin
The Rodin library for finite element methods and shape optimization.
namespace Rodin::Variational
Finite element spaces, fields, and variational problems.

Classes

template<size_t K, class NestedDerived, class Scalar, class Mesh>
class Rodin::Variational::QuadratureRule<ShapeFunctionBase<ShapeFunction<NestedDerived, H1<K, Scalar, Mesh>, TestSpace>, H1<K, Scalar, Mesh>, TestSpace>>
Specialization for $\int v \ dx$ with an H1 test shape function.
template<size_t K, class LHSDerived, class RHSDerived, class Scalar, class Mesh>
class Rodin::Variational::QuadratureRule<ShapeFunctionBase<Dot<FunctionBase<LHSDerived>, ShapeFunctionBase<ShapeFunction<RHSDerived, H1<K, Scalar, Mesh>, TestSpace>, H1<K, Scalar, Mesh>, TestSpace>>, H1<K, Scalar, Mesh>, TestSpace>>
Specialization for $\int f \cdot v \ dx$ with an H1 test shape function.
template<size_t KTrial, size_t KTest, class LHSDerived, class RHSDerived, class Scalar, class Mesh>
class Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<ShapeFunction<LHSDerived, H1<KTrial, Scalar, Mesh>, TrialSpace>, H1<KTrial, Scalar, Mesh>, TrialSpace>, ShapeFunctionBase<ShapeFunction<RHSDerived, H1<KTest, Scalar, Mesh>, TestSpace>, H1<KTest, Scalar, Mesh>, TestSpace>>>
Specialization for $\int u \cdot v \ dx$ with H1 trial and test shape functions.
template<class Expression>
struct Rodin::Variational::H1MassOperands
Certifies the plain-leaf operands of an H1 weighted mass expression.
template<size_t K, class CoefficientDerived, class Derived, class Range, class Mesh>
struct Rodin::Variational::H1MassOperands<Mult<FunctionBase<CoefficientDerived>, ShapeFunctionBase<ShapeFunction<Derived, H1<K, Range, Mesh>, TrialSpace>, H1<K, Range, Mesh>, TrialSpace>>>
Retains the existing left-coefficient mass applicability.
template<size_t K, class Derived, class Range, class Mesh, class CoefficientDerived>
struct Rodin::Variational::H1MassOperands<Mult<ShapeFunctionBase<ShapeFunction<Derived, H1<K, Range, Mesh>, TrialSpace>, H1<K, Range, Mesh>, TrialSpace>, FunctionBase<CoefficientDerived>>>
Certifies scalar right scaling of aggregate H1 carriers.
template<size_t KTrial, size_t KTest, class LeftOperand, class RightOperand, class RHSDerived, class Scalar, class Mesh>
class Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<Mult<LeftOperand, RightOperand>, H1<KTrial, Scalar, Mesh>, TrialSpace>, ShapeFunctionBase<ShapeFunction<RHSDerived, H1<KTest, Scalar, Mesh>, TestSpace>, H1<KTest, Scalar, Mesh>, TestSpace>>>
Weighted mass quadrature for plain H1 trial and test leaves.
template<size_t KTrial, size_t KTest, class CoefficientDerived, class LHSDerived, class RHSDerived, class Scalar, class Mesh>
class Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<Mult<FunctionBase<CoefficientDerived>, ShapeFunctionBase<Grad<ShapeFunction<LHSDerived, H1<KTrial, Scalar, Mesh>, TrialSpace>>, H1<KTrial, Scalar, Mesh>, TrialSpace>>, H1<KTrial, Scalar, Mesh>, TrialSpace>, ShapeFunctionBase<Grad<ShapeFunction<RHSDerived, H1<KTest, Scalar, Mesh>, TestSpace>>, H1<KTest, Scalar, Mesh>, TestSpace>>>
Specialization for $\int (A \nabla u) \cdot \nabla v \ dx$ with H1 trial and test shape functions.
template<size_t KTrial, size_t KTest, class CoefficientDerived, class LHSDerived, class RHSDerived, class Scalar, class Mesh>
class Rodin::Variational::QuadratureRule<Mult<FunctionBase<CoefficientDerived>, Dot<ShapeFunctionBase<ShapeFunction<LHSDerived, H1<KTrial, Scalar, Mesh>, TrialSpace>, H1<KTrial, Scalar, Mesh>, TrialSpace>, ShapeFunctionBase<ShapeFunction<RHSDerived, H1<KTest, Scalar, Mesh>, TestSpace>, H1<KTest, Scalar, Mesh>, TestSpace>>>>
Specialization for $\int c \, (u \cdot v) \ dx$ with H1 trial and test shape functions.
template<size_t KTrial, size_t KTest, class LHSDerived, class RHSDerived, class TrialRange, class TestRange, class Mesh>
class Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<Div<ShapeFunction<LHSDerived, H1<KTrial, TrialRange, Mesh>, TrialSpace>>, H1<KTrial, TrialRange, Mesh>, TrialSpace>, ShapeFunctionBase<ShapeFunction<RHSDerived, H1<KTest, TestRange, Mesh>, TestSpace>, H1<KTest, TestRange, Mesh>, TestSpace>>>
Specialization for $\int \nabla \cdot u \, q \ dx$ with H1 trial and test shape functions.
template<size_t KTrial, size_t KTest, class LHSDerived, class RHSDerived, class TrialRange, class TestRange, class Mesh>
class Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<ShapeFunction<LHSDerived, H1<KTrial, TrialRange, Mesh>, TrialSpace>, H1<KTrial, TrialRange, Mesh>, TrialSpace>, ShapeFunctionBase<Div<ShapeFunction<RHSDerived, H1<KTest, TestRange, Mesh>, TestSpace>>, H1<KTest, TestRange, Mesh>, TestSpace>>>
Specialization for $\int p \, \nabla \cdot v \ dx$ with H1 trial and test shape functions.
template<size_t KTrial, size_t KTest, class CoefficientDerived, class LHSDerived, class RHSDerived, class Scalar, class Mesh>
class Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<Mult<FunctionBase<CoefficientDerived>, ShapeFunctionBase<Jacobian<ShapeFunction<LHSDerived, H1<KTrial, Scalar, Mesh>, TrialSpace>>, H1<KTrial, Scalar, Mesh>, TrialSpace>>, H1<KTrial, Scalar, Mesh>, TrialSpace>, ShapeFunctionBase<Jacobian<ShapeFunction<RHSDerived, H1<KTest, Scalar, Mesh>, TestSpace>>, H1<KTest, Scalar, Mesh>, TestSpace>>>
Specialization for $\int (A J u) : J v \ dx$ with H1 trial and test shape functions.
template<size_t KTrial, size_t KTest, class LHSDerived, class RHSDerived, class Scalar, class Mesh>
class Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<Grad<ShapeFunction<LHSDerived, H1<KTrial, Scalar, Mesh>, TrialSpace>>, H1<KTrial, Scalar, Mesh>, TrialSpace>, ShapeFunctionBase<Grad<ShapeFunction<RHSDerived, H1<KTest, Scalar, Mesh>, TestSpace>>, H1<KTest, Scalar, Mesh>, TestSpace>>>
Specialization for $\int \nabla u \cdot \nabla v \ dx$ with H1 trial and test shape functions.
template<size_t KTrial, size_t KTest, class LHSDerived, class RHSDerived, class Scalar, class Mesh>
class Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<Jacobian<ShapeFunction<LHSDerived, H1<KTrial, Scalar, Mesh>, TrialSpace>>, H1<KTrial, Scalar, Mesh>, TrialSpace>, ShapeFunctionBase<Jacobian<ShapeFunction<RHSDerived, H1<KTest, Scalar, Mesh>, TestSpace>>, H1<KTest, Scalar, Mesh>, TestSpace>>>
Specialization for $\int J u : J v \ dx$ with H1 trial and test shape functions.
template<size_t KTrial, size_t KTest, class CoeffDerived, class LHSDerived, class RHSDerived, class Scalar, class Mesh>
class Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<Dot<FunctionBase<CoeffDerived>, ShapeFunctionBase<Jacobian<ShapeFunction<LHSDerived, H1<KTrial, Scalar, Mesh>, TrialSpace>>, H1<KTrial, Scalar, Mesh>, TrialSpace>>, H1<KTrial, Scalar, Mesh>, TrialSpace>, ShapeFunctionBase<Dot<FunctionBase<CoeffDerived>, ShapeFunctionBase<Jacobian<ShapeFunction<RHSDerived, H1<KTest, Scalar, Mesh>, TestSpace>>, H1<KTest, Scalar, Mesh>, TestSpace>>, H1<KTest, Scalar, Mesh>, TestSpace>>>
Integration of a rank-one form in the H1 Jacobian of ShapeFunction.
template<size_t KTrial, size_t KTest, class CoefficientDerived, class LHSDerived, class RHSDerived, class Scalar, class Mesh>
class Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<Mult<ShapeFunctionBase<Jacobian<ShapeFunction<LHSDerived, H1<KTrial, Scalar, Mesh>, TrialSpace>>, H1<KTrial, Scalar, Mesh>, TrialSpace>, FunctionBase<CoefficientDerived>>, H1<KTrial, Scalar, Mesh>, TrialSpace>, ShapeFunctionBase<ShapeFunction<RHSDerived, H1<KTest, Scalar, Mesh>, TestSpace>, H1<KTest, Scalar, Mesh>, TestSpace>>>
Specialization for $\int (\mathbf{J}\,u \cdot f) \cdot v \ dx$ with H1 trial and test shape functions.