template<class CoefficientDerived, class LHSDerived, class RHSDerived, class LHSRange, class RHSRange, class LHSMesh, class RHSMesh>
Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<Mult<FunctionBase<CoefficientDerived>, ShapeFunctionBase<ShapeFunction<LHSDerived, P1<LHSRange, LHSMesh>, TrialSpace>, P1<LHSRange, LHSMesh>, TrialSpace>>, P1<LHSRange, LHSMesh>, TrialSpace>, ShapeFunctionBase<ShapeFunction<RHSDerived, P1<RHSRange, RHSMesh>, TestSpace>, P1<RHSRange, RHSMesh>, TestSpace>>> class

Integration of the anisotropic Dot product of two instances of the P1 ShapeFunction.

This class represents the CTAD for the expression:

\[ \int (A u) \cdot v \ dx \: , \]

where $ u \in \mathbb{P}_1 $ and $ v \in \mathbb{P}_1 $ , and $ A $ is a coefficient function.

Judgement

The following judgement specifies that the expression is a well formed type of QuadratureRule.

\[ \dfrac {\vdash \int (A u) \cdot v \ dx : \texttt{QuadratureRule}} {\vdash u, v : \mathbb{P}_1} \]

Public functions

auto copy() const -> QuadratureRule* override noexcept
Copies the object and returns a non-owning pointer to the copied object.

Function documentation

template<class CoefficientDerived, class LHSDerived, class RHSDerived, class LHSRange, class RHSRange, class LHSMesh, class RHSMesh>
QuadratureRule* Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<Mult<FunctionBase<CoefficientDerived>, ShapeFunctionBase<ShapeFunction<LHSDerived, P1<LHSRange, LHSMesh>, TrialSpace>, P1<LHSRange, LHSMesh>, TrialSpace>>, P1<LHSRange, LHSMesh>, TrialSpace>, ShapeFunctionBase<ShapeFunction<RHSDerived, P1<RHSRange, RHSMesh>, TestSpace>, P1<RHSRange, RHSMesh>, TestSpace>>><CoefficientDerived, LHSDerived, RHSDerived, LHSRange, RHSRange, LHSMesh, RHSMesh>::copy() const override noexcept

Copies the object and returns a non-owning pointer to the copied object.

Returns Non-owning pointer to the copied object.