12 #ifndef MORTAR_SCHUR_HPP_ 13 #define MORTAR_SCHUR_HPP_ 15 #include <dune/istl/matrixmatrix.hh> 20 namespace Elasticity {
58 Dune::InverseOperatorResult res;
61 op.apply(temp, temp1);
63 B.usmtv(alpha, temp, y);
66 Dune::SolverCategory::Category category()
const override 68 return Dune::SolverCategory::sequential;
Helper class with some matrix operations.
Dune::BlockVector< Dune::FieldVector< double, 1 > > Vector
A vector holding our RHS.
Definition: matrixops.hpp:33
Helper class for abstracting differences between inverse operators and preconditioners in DUNE...
This implements a operator evaluation for the schur mortar-block S = B^T*A^-1*B ! ...
Definition: mortar_schur.hpp:27
const Matrix & B
Reference to the mortar coupling matrix.
Definition: mortar_schur.hpp:73
Class abstracting a preconditioner or an inverse operator.
Definition: applier.hpp:25
Inverting small matrices.
Definition: ImplicitAssembly.hpp:43
T & Ai
Reference to solver or evaluator for inverse operator.
Definition: mortar_schur.hpp:72
void applyscaleadd(field_type alpha, const Vector &x, Vector &y) const override
Apply the multiplier block with an embedded axpy.
Definition: mortar_schur.hpp:52
Dune::BCRSMatrix< Dune::FieldMatrix< double, 1, 1 > > Matrix
A sparse matrix holding our operator.
Definition: matrixops.hpp:27
MortarBlockEvaluator(T &Ai_, const Matrix &B_)
Constructor.
Definition: mortar_schur.hpp:33
void apply(const Vector &x, Vector &y) const override
Apply the multiplier block.
Definition: mortar_schur.hpp:42
OperatorApplier< T > op
Applier for the preconditioner / inverse solver.
Definition: mortar_schur.hpp:74