33 #ifndef SCHUR_COMPLEMENT_INVERSE_H_
34 #define SCHUR_COMPLEMENT_INVERSE_H_
51 template<
typename TAlgebra>
82 std::stringstream ss; ss <<
"SchurInverseWithOperator\n";
97 template<
typename TAlgebra>
134 PROFILE_BEGIN(SchurInverseWithFullMatrix_apply_return_defect)
140 std::stringstream ss; ss <<
"SchurInverseWithFullMatrix\n";
156 template<
typename TAlgebra>
176 m_linSolver->preconditioner().template cast_dynamic< IPreconditioner<TAlgebra> > ();
192 PROFILE_BEGIN(SchurInverseWithAGammaGamma_apply_return_defect)
197 std::stringstream ss; ss <<
"SchurInverseWithAGammaGamma\n";
211 template <
typename TAlgebra,
typename M,
typename X,
typename Y = X>
249 virtual void apply(Y& f,
const X& u) {
m_op->apply(f,u);}
259 template<
typename TAlgebra>
293 std::stringstream ss; ss <<
"SchurInverseWithAutoFullMatrix\n";
Definition: smart_pointer.h:108
bool valid() const
returns true if the pointer is valid, false if not.
Definition: smart_pointer.h:206
describes an inverse linear mapping X->Y
Definition: linear_operator_inverse.h:80
describes an inverse linear mapping X->X
Definition: preconditioned_linear_operator_inverse.h:63
Definition: schur_complement_inverse_interface.h:46
Definition: matrix_operator.h:49
Definition: schur_complement_inverse.h:213
void set_op(SmartPtr< SchurComplementOperator< TAlgebra > > op)
Definition: schur_complement_inverse.h:224
virtual M & get_matrix()
Definition: schur_complement_inverse.h:255
virtual void calculate_matrix()
Definition: schur_complement_inverse.h:243
SchurComplementMatrixOperator(SmartPtr< SchurComplementOperator< TAlgebra > > op)
Definition: schur_complement_inverse.h:219
SmartPtr< SchurComplementOperator< TAlgebra > > m_op
Definition: schur_complement_inverse.h:216
virtual void apply_sub(Y &f, const X &u)
Definition: schur_complement_inverse.h:252
virtual void init()
init operator
Definition: schur_complement_inverse.h:234
virtual void apply(Y &f, const X &u)
Definition: schur_complement_inverse.h:249
bool invalid
Definition: schur_complement_inverse.h:218
M matrix_type
Definition: schur_complement_inverse.h:214
virtual void init(const X &u)
init operator depending on a function u
Definition: schur_complement_inverse.h:231
Definition: schur_complement_operator.h:69
Definition: schur_complement_inverse.h:158
SmartPtr< IPreconditionedLinearOperatorInverse< vector_type > > m_linSolver
Definition: schur_complement_inverse.h:206
virtual bool supports_parallel() const
Definition: schur_complement_inverse.h:201
TAlgebra::vector_type vector_type
Definition: schur_complement_inverse.h:161
SchurInverseWithAGammaGamma(SmartPtr< IPreconditionedLinearOperatorInverse< vector_type > > linSolver)
Definition: schur_complement_inverse.h:164
TAlgebra algebra_type
Definition: schur_complement_inverse.h:160
virtual bool apply(vector_type &u, const vector_type &f)
Definition: schur_complement_inverse.h:184
virtual bool init(SmartPtr< SchurComplementOperator< TAlgebra > > op)
Definition: schur_complement_inverse.h:170
virtual std::string config_string() const
Definition: schur_complement_inverse.h:195
virtual bool apply_return_defect(vector_type &u, vector_type &f)
Definition: schur_complement_inverse.h:190
TAlgebra::matrix_type matrix_type
Definition: schur_complement_inverse.h:162
Definition: schur_complement_inverse.h:261
virtual std::string config_string() const
Definition: schur_complement_inverse.h:291
TAlgebra::vector_type vector_type
Definition: schur_complement_inverse.h:264
SmartPtr< SchurComplementMatrixOperator< TAlgebra, matrix_type, vector_type > > m_exactSchurOp
Definition: schur_complement_inverse.h:303
SchurInverseWithAutoFullMatrix(SmartPtr< ILinearOperatorInverse< vector_type > > linOpInv)
Definition: schur_complement_inverse.h:267
SmartPtr< ILinearOperatorInverse< vector_type > > m_linOpInv
Definition: schur_complement_inverse.h:304
virtual bool init(SmartPtr< SchurComplementOperator< TAlgebra > > op)
Definition: schur_complement_inverse.h:272
virtual bool apply_return_defect(vector_type &u, vector_type &f)
Definition: schur_complement_inverse.h:286
TAlgebra::matrix_type matrix_type
Definition: schur_complement_inverse.h:265
virtual bool supports_parallel() const
Definition: schur_complement_inverse.h:297
virtual bool apply(vector_type &u, const vector_type &f)
Definition: schur_complement_inverse.h:281
TAlgebra algebra_type
Definition: schur_complement_inverse.h:263
Definition: schur_complement_inverse.h:99
TAlgebra::matrix_type matrix_type
Definition: schur_complement_inverse.h:103
SchurInverseWithFullMatrix(SmartPtr< ILinearOperatorInverse< vector_type > > linOpInv)
Definition: schur_complement_inverse.h:105
virtual bool apply_return_defect(vector_type &u, vector_type &f)
Definition: schur_complement_inverse.h:132
SmartPtr< MatrixOperator< matrix_type, vector_type > > m_exactSchurOp
Definition: schur_complement_inverse.h:150
SmartPtr< ILinearOperatorInverse< vector_type > > m_linOpInv
Definition: schur_complement_inverse.h:151
virtual bool init(SmartPtr< SchurComplementOperator< TAlgebra > > op)
Definition: schur_complement_inverse.h:110
virtual bool supports_parallel() const
Definition: schur_complement_inverse.h:144
TAlgebra::vector_type vector_type
Definition: schur_complement_inverse.h:102
virtual bool apply(vector_type &u, const vector_type &f)
Definition: schur_complement_inverse.h:126
virtual std::string config_string() const
Definition: schur_complement_inverse.h:138
TAlgebra algebra_type
Definition: schur_complement_inverse.h:101
Definition: schur_complement_inverse.h:53
SmartPtr< ILinearOperatorInverse< vector_type > > m_linOpInv
Definition: schur_complement_inverse.h:92
virtual bool supports_parallel() const
Definition: schur_complement_inverse.h:86
virtual bool apply_return_defect(vector_type &u, vector_type &f)
Definition: schur_complement_inverse.h:75
virtual std::string config_string() const
Definition: schur_complement_inverse.h:80
TAlgebra algebra_type
Definition: schur_complement_inverse.h:55
SchurInverseWithOperator(SmartPtr< ILinearOperatorInverse< vector_type > > linOpInv)
Definition: schur_complement_inverse.h:59
virtual bool init(SmartPtr< SchurComplementOperator< TAlgebra > > op)
Definition: schur_complement_inverse.h:64
virtual bool apply(vector_type &u, const vector_type &f)
Definition: schur_complement_inverse.h:70
TAlgebra::matrix_type matrix_type
Definition: schur_complement_inverse.h:57
TAlgebra::vector_type vector_type
Definition: schur_complement_inverse.h:56
Definition: auto_linear_solver.h:49
#define UG_COND_THROW(cond, msg)
UG_COND_THROW(cond, msg) : performs a UG_THROW(msg) if cond == true.
Definition: error.h:61
string ConfigShift(string s)
Definition: string_util.cpp:457
@ SD_SKELETON
Definition: schur.h:63
#define PROFILE_BEGIN(name)
Definition: profiler.h:254
#define PROFILE_END()
Definition: profiler.h:256
SmartPtr< T, FreePolicy > make_sp(T *inst)
returns a SmartPtr for the passed raw pointer
Definition: smart_pointer.h:836