operator implementation of the inverse of the Schur complement w.r.t. the "Delta unknowns"
More...
|
virtual bool | apply (vector_type &u, const vector_type &f) |
| applies inverse operator, i.e. returns u = A^{-1} f More...
|
|
virtual bool | apply_return_defect (vector_type &u, vector_type &f) |
| applies inverse operator, i.e. returns u = A^{-1} f and returns defect d := f - A*u More...
|
|
void | clear_total_itercnt_of_inner_solvers () |
|
int | get_total_itercnt_of_inner_solvers () |
|
virtual bool | init (SmartPtr< ILinearOperator< vector_type > > J, const vector_type &u) |
|
virtual bool | init (SmartPtr< ILinearOperator< vector_type > > L) |
|
virtual const char * | name () const |
| name of class More...
|
|
| PrimalSubassembledMatrixInverse () |
| constructor More...
|
|
void | print_statistic_of_inner_solver (bool bPrintOnlyAverages) |
| prints some convergence statistic of inner solvers More...
|
|
void | set_coarse_problem_solver (SmartPtr< ILinearOperatorInverse< vector_type > > coarseProblemSolver) |
| sets the coarse problem solver More...
|
|
void | set_feti_layouts (FetiLayouts< algebra_type > &fetiLayouts) |
| sets the primal layouts More...
|
|
void | set_neumann_solver (SmartPtr< ILinearOperatorInverse< vector_type > > neumannSolver) |
| sets the Neumann solver More...
|
|
void | set_statistic_type (std::string type) |
| sets statistic slot where next iterate should be counted More...
|
|
void | set_test_one_to_many_layouts (bool bTest) |
| set 'm_bTestOneToManyLayouts' More...
|
|
virtual bool | supports_parallel () const |
| returns if parallel solving is supported More...
|
|
virtual | ~PrimalSubassembledMatrixInverse () |
|
virtual bool | apply_update_defect (TAlgebra::vector_type &u, TAlgebra::vector_type &f) |
|
virtual SmartPtr< ILinearIterator< TAlgebra::vector_type, TAlgebra::vector_type > > | clone () |
| clone More...
|
|
virtual std::string | config_string () const |
| returns information about configuration parameters More...
|
|
SmartPtr< IConvergenceCheck< TAlgebra::vector_type > > | convergence_check () |
| returns the convergence check More...
|
|
ConstSmartPtr< IConvergenceCheck< TAlgebra::vector_type > > | convergence_check () const |
| returns the convergence check More...
|
|
number | defect () const |
| returns the current defect More...
|
|
| ILinearOperatorInverse () |
| constructor setting convergence check to (100, 1e-12, 1e-12, true) More...
|
|
| ILinearOperatorInverse (SmartPtr< IConvergenceCheck< TAlgebra::vector_type > > spConvCheck) |
| Default constructor. More...
|
|
virtual bool | init (SmartPtr< ILinearOperator< TAlgebra::vector_type, TAlgebra::vector_type > > J, const TAlgebra::vector_type &u) |
| initializes for the inverse for a linearized operator at linearization point u More...
|
|
virtual bool | init (SmartPtr< ILinearOperator< TAlgebra::vector_type, TAlgebra::vector_type > > L) |
| initializes for the inverse for a linear operator More...
|
|
SmartPtr< ILinearOperator< TAlgebra::vector_type, TAlgebra::vector_type > > | linear_operator () |
| returns the current Operator this Inverse Operator is initialized for More...
|
|
number | reduction () const |
| returns the current relative reduction More...
|
|
void | set_convergence_check (SmartPtr< IConvergenceCheck< TAlgebra::vector_type > > spConvCheck) |
| set the convergence check More...
|
|
virtual int | standard_offset () const |
| returns the standard offset for output More...
|
|
int | step () const |
| returns the current number of steps More...
|
|
virtual | ~ILinearOperatorInverse () |
| virtual destructor More...
|
|
virtual bool | apply (Y &c, const X &d)=0 |
| compute new correction c = B*d More...
|
|
virtual bool | apply_update_defect (Y &c, X &d)=0 |
| compute new correction c = B*d and update defect d := d - A*c More...
|
|
SmartPtr< IDamping< X, Y > > | damping () |
| returns the scaling More...
|
|
| ILinearIterator () |
| constructor More...
|
|
| ILinearIterator (const ILinearIterator< X, Y > &parent) |
| copy constructor More...
|
|
virtual bool | init (SmartPtr< ILinearOperator< Y, X > > J, const Y &u)=0 |
| initialize for operator J(u) and linearization point u More...
|
|
virtual bool | init (SmartPtr< ILinearOperator< Y, X > > L)=0 |
| initialize for linear operator L More...
|
|
void | set_damp (number factor) |
| sets the damping to a constant factor More...
|
|
void | set_damp (SmartPtr< IDamping< X, Y > > spScaling) |
| sets a scaling for the correction More...
|
|
virtual | ~ILinearIterator () |
| virtual destructor More...
|
|
SmartPtr< IDebugWriter< algebra_type > > | debug_writer () |
| returns the debug writer More...
|
|
ConstSmartPtr< IDebugWriter< algebra_type > > | debug_writer () const |
|
bool | debug_writer_valid () const |
| returns true if the debug writer is set More...
|
|
| DebugWritingObject () |
|
| DebugWritingObject (const DebugWritingObject< algebra_type > &parent) |
| clone constructor More...
|
|
| DebugWritingObject (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter) |
|
virtual void | set_debug (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter) |
| set debug writer More...
|
|
virtual | ~DebugWritingObject () |
| virtual destructor More...
|
|
virtual void | set_debug (SmartPtr< IVectorDebugWriter< vector_type > > spDebugWriter) |
| set debug writer More...
|
|
SmartPtr< IVectorDebugWriter< vector_type > > | vector_debug_writer () |
| returns the debug writer More...
|
|
ConstSmartPtr< IVectorDebugWriter< vector_type > > | vector_debug_writer () const |
|
bool | vector_debug_writer_valid () const |
| returns true if the debug writer is set More...
|
|
| VectorDebugWritingObject () |
|
| VectorDebugWritingObject (SmartPtr< IVectorDebugWriter< vector_type > > spDebugWriter) |
|
void | write_debug (const vector_type &vec, const char *filename) |
| writing debug output for a vector (if debug writer set) More...
|
|
virtual | ~VectorDebugWritingObject () |
| virtual destructor More...
|
|
template<typename TAlgebra>
class ug::PrimalSubassembledMatrixInverse< TAlgebra >
operator implementation of the inverse of the Schur complement w.r.t. the "Delta unknowns"
This operator provides the application of the inverse of the Schur complement w.r.t. the "Delta unknowns", \({\tilde{S}_{\Delta \Delta}}^{-1}\).
template<typename TAlgebra >
applies inverse operator, i.e. returns u = A^{-1} f and returns defect d := f - A*u
This method applies the inverse operator, i.e. u = A^{-1} f. The domain function f is changed in the way, that the defect d := f - A*u is returned in the function. This is always useful, when the inverting algorithm can (or must) update the defect during computation (this is e.g. the case for the geometric multigrid method). Note, that this method can always be implemented by calling apply and then computing d := f - A*u.
- Parameters
-
[in,out] | f | right-hand side |
[out] | u | solution |
- Returns
- bool success flag
Implements ug::ILinearOperatorInverse< TAlgebra::vector_type, TAlgebra::vector_type >.
References pcl::AllProcsTrue(), FETI_PROFILE_BEGIN, FETI_PROFILE_END, ug::PrimalSubassembledMatrixInverse< TAlgebra >::StepConv::lastDef2a, ug::PrimalSubassembledMatrixInverse< TAlgebra >::StepConv::lastDef7, ug::PrimalSubassembledMatrixInverse< TAlgebra >::StepConv::numIter2a, ug::PrimalSubassembledMatrixInverse< TAlgebra >::StepConv::numIter7, pcl::ProcRank(), ug::PST_ADDITIVE, ug::PST_CONSISTENT, UG_LOG, UG_LOG_ALL_PROCS, ug::VecBroadcast(), and ug::VecGather().