Class template Dune::GDT::MatrixOperator

template<class AGV, size_t s_r, size_t s_rC, size_t r_r, size_t r_rC, class F, class M, class SGV, class RGV>
class Dune::GDT::MatrixOperator

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.

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.

See also: DisccreteOperatorInterface, BilinearFormInterface, ConstMatrixOperator, XT::Grid::ElementAndIntersectionFunctor, XT::Grid::Walker

BaseFunctorType *Dune::GDT::MatrixOperator::copy() final override

\ {

Required by ElementAndIntersectionFunctor.

void Dune::GDT::MatrixOperator::apply_local(const E &element) final override

No documentation provided.

void Dune::GDT::MatrixOperator::apply_local(const I &intersection, const E &inside_element, const E &outside_element) final override

No documentation provided.

void Dune::GDT::MatrixOperator::finalize() final override

No documentation provided.

void Dune::GDT::MatrixOperator::assemble(const bool use_tbb = false) final override

\ }

Required by BilinearFormInterface

\ {

MatrixType &Dune::GDT::MatrixOperator::matrix()

\ }

These methods extend the ones from ConstantMatrixOperator

\ {

ThisType &Dune::GDT::MatrixOperator::append(const BilinearFormType &bilinear_form, const XT::Common::Parameter &param = <recovery-expr>({}))

\ }

These methods allow to append the local bilinear forms from a BilinearForm

\ {

ThisType &Dune::GDT::MatrixOperator::append(const int &local_operator, const VectorType &source, const XT::Common::Parameter &param = <recovery-expr>({}), const ElementFilterType &filter = ApplyOnAllElements())
ThisType &Dune::GDT::MatrixOperator::append(const int &local_operator, const VectorType &source, const XT::Common::Parameter &param = <recovery-expr>({}), const IntersectionFilterType &filter = ApplyOnAllIntersections())

No documentation provided.

template<>
Dune::GDT::MatrixOperator::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 = <recovery-expr>(""), const std::array<bool, 3> &logging_state = <recovery-expr>())

No documentation provided.

template<>
Dune::GDT::MatrixOperator::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 = <recovery-expr>(""), const std::array<bool, 3> &logging_state = <recovery-expr>())

No documentation provided.

template<>
Dune::GDT::MatrixOperator::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>(const ThisType&) = delete

No documentation provided.

template<>
Dune::GDT::MatrixOperator::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

template<>
Dune::GDT::MatrixOperator::MatrixOperator<AGV, s_r, s_rC, r_r, r_rC, F, M, SGV, RGV>(ThisType &&source) noexcept = default

No documentation provided.

FieldType Dune::GDT::MatrixOperator::scaling

Defines the scaling of the to-be-appended jacobian contributions

See also: ConstantMatrixOperator::jacobian, OperatorInterface::apply_inverse

type Dune::GDT::MatrixOperator::MatrixStorage

No documentation provided.

type Dune::GDT::MatrixOperator::ThisType

No documentation provided.

type Dune::GDT::MatrixOperator::BaseOperatorType

No documentation provided.

type Dune::GDT::MatrixOperator::BaseFunctorType

No documentation provided.

type Dune::GDT::MatrixOperator::ElementFilterType

No documentation provided.

type Dune::GDT::MatrixOperator::IntersectionFilterType

No documentation provided.

type Dune::GDT::MatrixOperator::ApplyOnAllElements

No documentation provided.

type Dune::GDT::MatrixOperator::ApplyOnAllIntersections

No documentation provided.

type Dune::GDT::MatrixOperator::LocalElementBilinearFormAssemblerType

No documentation provided.

type Dune::GDT::MatrixOperator::LocalCouplingIntersectionBilinearFormAssemblerType

No documentation provided.

type Dune::GDT::MatrixOperator::LocalIntersectionBilinearFormAssemblerType

No documentation provided.

type Dune::GDT::MatrixOperator::LocalElementOperatorFiniteDifferenceJacobianAssemblerType

No documentation provided.

type Dune::GDT::MatrixOperator::LocalIntersectionOperatorFiniteDifferenceJacobianAssemblerType

No documentation provided.

type Dune::GDT::MatrixOperator::BilinearFormType

No documentation provided.