template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>
Rodin::Variational::Integral<Dot<ShapeFunctionBase<LHSDerived, TrialFES, TrialSpace>, ShapeFunctionBase<RHSDerived, TestFES, TestSpace>>> class final

Integration of the dot product of a trial and test operators.

Given two operators defined over trial and test spaces $ U_h $ and $ V_h $ ,

\[ A : U_h \rightarrow \mathbb{R}^{p \times q}, \quad B : V_h \rightarrow \mathbb{R}^{p \times q}, \]

this class represents the integral of their dot product:

\[ \int_{\mathcal{T}_h} A(u) : B(v) \ dx \ . \]

Base classes

template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>
class QuadratureRule<Dot<ShapeFunctionBase<LHSDerived, TrialFES, TrialSpace>, ShapeFunctionBase<RHSDerived, TestFES, TestSpace>>>
Approximation of the integral of the the dot product between a trial shape function and a test shape function.

Public types

using LHSType = ShapeFunctionBase<LHSDerived, TrialFES, TrialSpace>
Type of the left operand of the dot product.
using RHSType = ShapeFunctionBase<RHSDerived, TestFES, TestSpace>
Type of the right operand of the dot product.
using IntegrandType = Dot<LHSType, RHSType>
Type of the integrand.
using Parent = QuadratureRule<IntegrandType>
Parent class.

Constructors, destructors, conversion operators

Integral(const LHSType& lhs, const RHSType& rhs)
Integral of the dot product of trial and test operators.
Integral(const IntegrandType& prod)
Integral of the dot product of trial and test operators.

Public functions

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

Function documentation

template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>
Rodin::Variational::Integral<Dot<ShapeFunctionBase<LHSDerived, TrialFES, TrialSpace>, ShapeFunctionBase<RHSDerived, TestFES, TestSpace>>><LHSDerived, TrialFES, RHSDerived, TestFES>::Integral(const LHSType& lhs, const RHSType& rhs)

Integral of the dot product of trial and test operators.

Parameters
lhs in Trial operator $ A(u) $
rhs in Test operator $ B(v) $

Constructs an object representing the following integral:

\[ \int_\Omega A(u) : B(v) \ dx \]

template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>
Rodin::Variational::Integral<Dot<ShapeFunctionBase<LHSDerived, TrialFES, TrialSpace>, ShapeFunctionBase<RHSDerived, TestFES, TestSpace>>><LHSDerived, TrialFES, RHSDerived, TestFES>::Integral(const IntegrandType& prod)

Integral of the dot product of trial and test operators.

Parameters
prod in Dot product instance

Constructs the object representing the following integral:

\[ \int_\Omega A(u) : B(v) \ dx \]

template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>
Integral* Rodin::Variational::Integral<Dot<ShapeFunctionBase<LHSDerived, TrialFES, TrialSpace>, ShapeFunctionBase<RHSDerived, TestFES, TestSpace>>><LHSDerived, TrialFES, RHSDerived, TestFES>::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.