template<class Operator, class Vector, class Scalar>
Rodin::Variational::ProblemBody class

Accumulated bilinear forms, linear forms and boundary conditions of a Problem.

Base classes

template<class Scalar>
class ProblemBodyBase<Scalar>
Base class representing the body of a variational problem.

Public types

using VectorType = Vector
Vector type of the linear system.
using OperatorType = Operator
Assembled operator type.
using VectorScalarType = typename FormLanguage::Traits<std::remove_reference_t<VectorType>>::ScalarType
Scalar value type of the vector.
using OperatorScalarType = typename FormLanguage::Traits<std::remove_reference_t<OperatorType>>::ScalarType
Scalar value type of the operator.
using LinearFormBaseType = LinearFormBase<VectorType>
Linear form base type.
using BilinearFormBaseType = BilinearFormBase<OperatorType>
Bilinear form base type.
using LinearFormBaseListType = FormLanguage::List<LinearFormBaseType>
List type of linear forms.
using BilinearFormBaseListType = FormLanguage::List<BilinearFormBaseType>
List type of bilinear forms.
using LinearFormIntegratorBaseType = LinearFormIntegratorBase<VectorScalarType>
Linear form integrator base type.
using LocalBilinearFormIntegratorBaseType = LocalBilinearFormIntegratorBase<OperatorScalarType>
Local bilinear form integrator base type.
using GlobalBilinearFormIntegratorBaseType = GlobalBilinearFormIntegratorBase<OperatorScalarType>
Global bilinear form integrator base type.
using LinearFormIntegratorBaseListType = FormLanguage::List<LinearFormIntegratorBaseType>
List type of linear form integrators.
using LocalBilinearFormIntegratorBaseListType = FormLanguage::List<LocalBilinearFormIntegratorBaseType>
List type of local bilinear form integrators.
using GlobalBilinearFormIntegratorBaseListType = FormLanguage::List<GlobalBilinearFormIntegratorBaseType>
List type of global bilinear form integrators.
using Parent = ProblemBodyBase<Scalar>
Parent class type.

Constructors, destructors, conversion operators

ProblemBody(const LocalBilinearFormIntegratorBaseType& bfi)
Constructs the ProblemBody from the given arguments.
ProblemBody(const GlobalBilinearFormIntegratorBaseType& bfi)
Constructs the ProblemBody from the given arguments.
ProblemBody(const LocalBilinearFormIntegratorBaseListType& bfis)
Constructs the ProblemBody from the given arguments.
ProblemBody(const GlobalBilinearFormIntegratorBaseListType& bfis)
Constructs the ProblemBody from the given arguments.
ProblemBody(const ProblemBody<OperatorType, void, Scalar>& pbo)
Constructs the ProblemBody from the given arguments.
ProblemBody(const BilinearFormBaseType& bf)
Constructs the ProblemBody from the given arguments.
ProblemBody(const ProblemBody<void, VectorType, Scalar>& pbv)
Constructs the ProblemBody from the given arguments.
ProblemBody(const ProblemBody<void, void, Scalar>& parent)
Constructs the ProblemBody from the given arguments.
ProblemBody(const ProblemBody& other)
Copy constructor.
ProblemBody(ProblemBody&& other)
Move constructor.

Public functions

auto operator=(const ProblemBody& other) -> ProblemBody&
Copy assignment.
auto operator=(ProblemBody&& other) -> ProblemBody&
Move assignment.
auto getLFs() -> LinearFormBaseListType&
Gets the linear forms of the problem.
auto getBFs() -> BilinearFormBaseListType&
Gets the bilinear forms of the problem.
auto getLFs() const -> const LinearFormBaseListType&
Gets the linear forms of the problem.
auto getBFs() const -> const BilinearFormBaseListType&
Gets the bilinear forms of the problem.
auto copy() const -> ProblemBody* override noexcept
Polymorphically copies this problem body base.