Class template Dune::GDT::MatrixOperator¶
Inherits from Dune::XT::Common::StorageProvider, Dune::GDT::ConstMatrixOperator, Dune::XT::Grid::ElementAndIntersectionFunctor.
-
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
class Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV> : private XT::Common::StorageProvider<M>, public ConstMatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>, public XT::Grid::ElementAndIntersectionFunctor<AGV>¶ Base class for linear operators which are assembled into a matrix.
We derive from the XT::Grid::ElementAndIntersectionFunctor and povide custom append() methods to allow to add local element and intersection operators. We also hold the target matrix into which we want to assemble. The operator is assembled by walking over the given assembly_grid_view. If you want to assemble an operator only on a smaller grid view, consider to append this operator to another walker or provide appropriate filters.
We derive from the XT::Grid::ElementAndIntersectionFunctor and povide custom append() methods to allow to add local element and intersection operators. We also hold the target matrix into which we want to assemble. The operator is assembled by walking over the given assembly_grid_view. If you want to assemble an operator only on a smaller grid view, consider to append this operator to another walker or provide appropriate filters.
We derive from the XT::Grid::ElementAndIntersectionFunctor and povide custom append() methods to allow to add local element and intersection operators. We also hold the target matrix into which we want to assemble. The operator is assembled by walking over the given assembly_grid_view. If you want to assemble an operator only on a smaller grid view, consider to append this operator to another walker or provide appropriate filters.
Note
See ConstMatrixOperator and OperatorInterface for a description of the template arguments.
Note
See ConstMatrixOperator and OperatorInterface for a description of the template arguments.
Note
See ConstMatrixOperator and OperatorInterface for a description of the template arguments.
Note
In compute_locally, the filters are evaluated w.r.t. assembly_grid_view and not the grid view of the walker this operator is appended to. This might not be what we want.
Note
In compute_locally, the filters are evaluated w.r.t. assembly_grid_view and not the grid view of the walker this operator is appended to. This might not be what we want.
Note
In compute_locally, the filters are evaluated w.r.t. assembly_grid_view and not the grid view of the walker this operator is appended to. This might not be what we want.
See also:
DisccreteOperatorInterface,DisccreteOperatorInterface,DisccreteOperatorInterface,BilinearFormInterface,BilinearFormInterface,BilinearFormInterface,ConstMatrixOperator,ConstMatrixOperator,ConstMatrixOperator,XT::Grid::ElementAndIntersectionFunctor,XT::Grid::ElementAndIntersectionFunctor,XT::Grid::ElementAndIntersectionFunctor,XT::Grid::Walker,XT::Grid::Walker,XT::Grid::Walker
Method Dune::GDT::MatrixOperator::copy¶
-
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
BaseFunctorType *Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::copy() final override¶ \ {
Required by ElementAndIntersectionFunctor.
Method Dune::GDT::MatrixOperator::apply_local¶
-
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
void Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::apply_local(const E &element) final override¶ No documentation provided.
Method Dune::GDT::MatrixOperator::apply_local¶
-
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
void Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::apply_local(const I &intersection, const E &inside_element, const E &outside_element) final override¶ No documentation provided.
Method Dune::GDT::MatrixOperator::finalize¶
-
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
void Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::finalize() final override¶ No documentation provided.
Method Dune::GDT::MatrixOperator::assemble¶
-
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
void Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::assemble(const bool use_tbb = false) final override¶ \ }
Required by BilinearFormInterface
\ {
Method Dune::GDT::MatrixOperator::matrix¶
-
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
MatrixType &Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::matrix()¶ \ }
These methods extend the ones from ConstantMatrixOperator
\ {
Method Dune::GDT::MatrixOperator::append¶
-
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
ThisType &Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::append(const BilinearFormType &bilinear_form, const XT::Common::Parameter ¶m)¶ \ }
These methods allow to append the local bilinear forms from a BilinearForm
\ {
Method Dune::GDT::MatrixOperator::append¶
-
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
ThisType &Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::append(const int &local_operator, const VectorType &source, const XT::Common::Parameter ¶m, const ElementFilterType &filter = ApplyOnAllElements())¶
Method Dune::GDT::MatrixOperator::append¶
-
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
ThisType &Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::append(const int &local_operator, const VectorType &source, const XT::Common::Parameter ¶m, const IntersectionFilterType &filter = ApplyOnAllIntersections())¶ No documentation provided.
Constructor Dune::GDT::MatrixOperator::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>¶
-
template<>
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>(const AssemblyGridViewType assembly_grid_vw, const SourceSpaceType &source_spc, const RangeSpaceType &range_spc, MatrixType &mat, const std::string &logging_prefix, const std::array<bool, 3> &logging_state = XT::Common::default_logger_state())¶ No documentation provided.
Constructor Dune::GDT::MatrixOperator::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>¶
-
template<>
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>(const AssemblyGridViewType assembly_grid_vw, const SourceSpaceType &source_spc, const RangeSpaceType &range_spc, MatrixType *&&mat_ptr, const std::string &logging_prefix, const std::array<bool, 3> &logging_state = XT::Common::default_logger_state())¶ No documentation provided.
Constructor Dune::GDT::MatrixOperator::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>¶
-
template<>
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>(const ThisType&) = delete¶ No documentation provided.
Constructor Dune::GDT::MatrixOperator::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>¶
-
template<>
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>(ThisType &other)¶ Note
Performs something like a shallow copy (as required by ElementAndIntersectionFunctor), i.e. the copied operator shares the matrix.
Note
Manual copy required to duplicate the local assemblers
Constructor Dune::GDT::MatrixOperator::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>¶
-
template<>
template<class AGV, size_t s_r = 1, size_t s_rC = 1, size_t r_r = s_r, size_t r_rC = s_rC, class F = double, class M = XT::LA::IstlRowMajorSparseMatrix<F>, class SGV = AGV, class RGV = AGV>
Dune::GDT::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>(ThisType &&source) noexcept = default¶ No documentation provided.
Field Dune::GDT::MatrixOperator::scaling¶
-
FieldType Dune::GDT::MatrixOperator::scaling¶
Defines the scaling of the to-be-appended jacobian contributions
See also:
ConstantMatrixOperator::jacobian,OperatorInterface::apply_inverse
Type alias Dune::GDT::MatrixOperator::MatrixStorage¶
-
type Dune::GDT::MatrixOperator::MatrixStorage¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::ThisType¶
-
type Dune::GDT::MatrixOperator::ThisType¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::BaseOperatorType¶
-
type Dune::GDT::MatrixOperator::BaseOperatorType¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::BaseFunctorType¶
-
type Dune::GDT::MatrixOperator::BaseFunctorType¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::ElementFilterType¶
-
type Dune::GDT::MatrixOperator::ElementFilterType¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::IntersectionFilterType¶
-
type Dune::GDT::MatrixOperator::IntersectionFilterType¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::ApplyOnAllElements¶
-
type Dune::GDT::MatrixOperator::ApplyOnAllElements¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::ApplyOnAllIntersections¶
-
type Dune::GDT::MatrixOperator::ApplyOnAllIntersections¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::LocalElementBilinearFormAssemblerType¶
-
type Dune::GDT::MatrixOperator::LocalElementBilinearFormAssemblerType¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::LocalCouplingIntersectionBilinearFormAssemblerType¶
-
type Dune::GDT::MatrixOperator::LocalCouplingIntersectionBilinearFormAssemblerType¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::LocalIntersectionBilinearFormAssemblerType¶
-
type Dune::GDT::MatrixOperator::LocalIntersectionBilinearFormAssemblerType¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::LocalElementOperatorFiniteDifferenceJacobianAssemblerType¶
-
type Dune::GDT::MatrixOperator::LocalElementOperatorFiniteDifferenceJacobianAssemblerType¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::LocalIntersectionOperatorFiniteDifferenceJacobianAssemblerType¶
-
type Dune::GDT::MatrixOperator::LocalIntersectionOperatorFiniteDifferenceJacobianAssemblerType¶
No documentation provided.
Type alias Dune::GDT::MatrixOperator::BilinearFormType¶
-
type Dune::GDT::MatrixOperator::BilinearFormType¶
No documentation provided.