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

Integration of the isotropic Frobenius inner product two instances of the P1 Jacobian of ShapeFunction.

This class represents the CTAD for the expression:

\[ \int \mathbf{J} \: u : \mathbf{J} \: v \ dx \: , \]

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

Judgement

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

\[ \dfrac {\vdash \int \mathbf{J} \: u : \mathbf{J} \: 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 LHSDerived, class RHSDerived, class LHSRange, class RHSRange, class LHSMesh, class RHSMesh>
QuadratureRule* Rodin::Variational::QuadratureRule<Dot<ShapeFunctionBase<Jacobian<ShapeFunction<LHSDerived, P1<LHSRange, LHSMesh>, TrialSpace>>, P1<LHSRange, LHSMesh>, TrialSpace>, ShapeFunctionBase<Jacobian<ShapeFunction<RHSDerived, P1<RHSRange, RHSMesh>, TestSpace>>, P1<RHSRange, RHSMesh>, TestSpace>>><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.