template<class TrialFES, class TestFES>
Rodin::Variational::DenseProblem<TrialFES, TestFES, Math::Matrix<typename FormLanguage::Mult<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TestFES>::ScalarType>::Type>, Math::Vector<typename FormLanguage::Traits<TestFES>::ScalarType>> class

General class to assemble linear systems with Math::Matrix and Math::Vector types in a serial context.

Base classes

template<class Operator, class Vector, class Scalar>
class ProblemBase<Math::Matrix<FormLanguage::Mult<FormLanguage::Traits<TrialFES>::ScalarType, FormLanguage::Traits<TestFES>::ScalarType>::Type>, Math::Vector<FormLanguage::Traits<TestFES>::ScalarType>, FormLanguage::Mult<FormLanguage::Traits<TrialFES>::ScalarType, FormLanguage::Traits<TestFES>::ScalarType>::Type>
Base class for variational problem objects.

Constructors, destructors, conversion operators

DenseProblem(TrialFunction<TrialFES>& u, TestFunction<TestFES>& v) constexpr
Constructs an empty DenseProblem involving the trial function $ u $ and the test function $ v $ .
DenseProblem(const DenseProblem& other) deleted
Deleted copy constructor.

Public functions

void operator=(const DenseProblem& other) deleted
Deleted copy assignment operator.
auto assemble() -> DenseProblem& override
Assembles the underlying linear system to solve.
auto getMassVector() -> VectorType& override
auto getMassVector() const -> const VectorType& override
auto getStiffnessOperator() -> OperatorType& override
auto getStiffnessOperator() const -> const OperatorType& override
auto copy() const -> DenseProblem* override noexcept
Copies the object and returns a non-owning pointer to the copied object.

Function documentation

template<class TrialFES, class TestFES>
Rodin::Variational::DenseProblem<TrialFES, TestFES, Math::Matrix<typename FormLanguage::Mult<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TestFES>::ScalarType>::Type>, Math::Vector<typename FormLanguage::Traits<TestFES>::ScalarType>><TrialFES, TestFES>::DenseProblem(TrialFunction<TrialFES>& u, TestFunction<TestFES>& v) constexpr

Constructs an empty DenseProblem involving the trial function $ u $ and the test function $ v $ .

Parameters
in/out Trial function
in/out Test function

template<class TrialFES, class TestFES>
VectorType& Rodin::Variational::DenseProblem<TrialFES, TestFES, Math::Matrix<typename FormLanguage::Mult<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TestFES>::ScalarType>::Type>, Math::Vector<typename FormLanguage::Traits<TestFES>::ScalarType>><TrialFES, TestFES>::getMassVector() override

Returns Reference to the mass vector.

This must be called only after assemble() has been called.

template<class TrialFES, class TestFES>
const VectorType& Rodin::Variational::DenseProblem<TrialFES, TestFES, Math::Matrix<typename FormLanguage::Mult<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TestFES>::ScalarType>::Type>, Math::Vector<typename FormLanguage::Traits<TestFES>::ScalarType>><TrialFES, TestFES>::getMassVector() const override

Returns Constant reference to the mass vector.

This must be called only after assemble() has been called.

template<class TrialFES, class TestFES>
OperatorType& Rodin::Variational::DenseProblem<TrialFES, TestFES, Math::Matrix<typename FormLanguage::Mult<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TestFES>::ScalarType>::Type>, Math::Vector<typename FormLanguage::Traits<TestFES>::ScalarType>><TrialFES, TestFES>::getStiffnessOperator() override

Returns Reference to the stiffness operator.

This must be called only after assemble() has been called.

template<class TrialFES, class TestFES>
const OperatorType& Rodin::Variational::DenseProblem<TrialFES, TestFES, Math::Matrix<typename FormLanguage::Mult<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TestFES>::ScalarType>::Type>, Math::Vector<typename FormLanguage::Traits<TestFES>::ScalarType>><TrialFES, TestFES>::getStiffnessOperator() const override

Returns Constant reference to the stiffness operator.

This must be called only after assemble() has been called.

template<class TrialFES, class TestFES>
DenseProblem* Rodin::Variational::DenseProblem<TrialFES, TestFES, Math::Matrix<typename FormLanguage::Mult<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TestFES>::ScalarType>::Type>, Math::Vector<typename FormLanguage::Traits<TestFES>::ScalarType>><TrialFES, 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.