template<class TrialFES, class TestFES>
Problem<TrialFES, TestFES, Math::SparseMatrix<typename FormLanguage::Mult<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TrialFES>::ScalarType> ::Type>, Math::Vector<typename FormLanguage::Traits<TestFES>::ScalarType>> class
General class to assemble linear systems with Math::
and Math::
types in a sequential context.
Base classes
-
template<class Operator, class Vector, class Scalar>class ProblemBase<Math::SparseMatrix<FormLanguage::Mult<FormLanguage::Traits<TrialFES>::ScalarType, FormLanguage::Traits<TrialFES>::ScalarType> ::Type>, Math::Vector<FormLanguage::Traits<TestFES>::ScalarType>, FormLanguage::Mult<FormLanguage::Traits<TrialFES>::ScalarType, FormLanguage::Traits<TrialFES>::ScalarType> ::Type>
- Base class for variational problem objects.
Constructors, destructors, conversion operators
- Problem(TrialFunction<TrialFES>& u, TestFunction<TestFES>& v) constexpr
- Constructs an empty problem involving the trial function and the test function .
- Problem(const Problem& other) deleted
- Deleted copy constructor.
Public functions
- void operator=(const Problem& other) deleted
- Deleted copy assignment operator.
- auto assemble() -> Problem& 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 -> Problem* override noexcept
- Copies the object and returns a non-owning pointer to the copied object.
Function documentation
template<class TrialFES, class TestFES>
Rodin:: Variational:: Problem<TrialFES, TestFES, Math:: SparseMatrix<typename FormLanguage:: Mult<typename FormLanguage:: Traits<TrialFES>:: ScalarType, typename FormLanguage:: Traits<TrialFES>:: ScalarType> :: Type>, Math:: Vector<typename FormLanguage:: Traits<TestFES>:: ScalarType>><TrialFES, TestFES>:: Problem(TrialFunction<TrialFES>& u,
TestFunction<TestFES>& v) constexpr
Constructs an empty problem involving the trial function and the test function .
Parameters | |
---|---|
u in/out | Trial function |
v in/out | Test function |
template<class TrialFES, class TestFES>
VectorType& Rodin:: Variational:: Problem<TrialFES, TestFES, Math:: SparseMatrix<typename FormLanguage:: Mult<typename FormLanguage:: Traits<TrialFES>:: ScalarType, typename FormLanguage:: Traits<TrialFES>:: 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:: Problem<TrialFES, TestFES, Math:: SparseMatrix<typename FormLanguage:: Mult<typename FormLanguage:: Traits<TrialFES>:: ScalarType, typename FormLanguage:: Traits<TrialFES>:: 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:: Problem<TrialFES, TestFES, Math:: SparseMatrix<typename FormLanguage:: Mult<typename FormLanguage:: Traits<TrialFES>:: ScalarType, typename FormLanguage:: Traits<TrialFES>:: 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:: Problem<TrialFES, TestFES, Math:: SparseMatrix<typename FormLanguage:: Mult<typename FormLanguage:: Traits<TrialFES>:: ScalarType, typename FormLanguage:: Traits<TrialFES>:: 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>
Problem* Rodin:: Variational:: Problem<TrialFES, TestFES, Math:: SparseMatrix<typename FormLanguage:: Mult<typename FormLanguage:: Traits<TrialFES>:: ScalarType, typename FormLanguage:: Traits<TrialFES>:: 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. |
---|