|
virtual bool | apply (Y &u, const X &f)=0 |
| applies the inverse operator, i.e. returns u = A^{-1} * f More...
|
|
virtual bool | apply_return_defect (Y &u, X &f)=0 |
| applies the inverse operator and updates the defect More...
|
|
virtual bool | init (SmartPtr< ILinearOperator< Y, X > > A) |
| initializes this inverse operator for a linear operator More...
|
|
virtual bool | init (SmartPtr< ILinearOperator< Y, X > > A, const Y &u) |
| initializes this inverse operator for a linear operator More...
|
|
virtual bool | init (SmartPtr< MatrixOperator< M, Y, X > > A)=0 |
| initializes this inverse operator for a matrix-based operator More...
|
|
virtual | ~IMatrixOperatorInverse () |
| virtual destructor More...
|
|
virtual bool | apply (X &u, const X &f)=0 |
| applies inverse operator, i.e. returns u = A^{-1} f More...
|
|
virtual bool | apply_return_defect (X &u, X &f)=0 |
| applies inverse operator, i.e. returns u = A^{-1} f and returns defect d := f - A*u More...
|
|
virtual bool | apply_update_defect (X &u, X &f) |
|
virtual SmartPtr< ILinearIterator< X, X > > | clone () |
| clone More...
|
|
virtual std::string | config_string () const |
| returns information about configuration parameters More...
|
|
SmartPtr< IConvergenceCheck< X > > | convergence_check () |
| returns the convergence check More...
|
|
ConstSmartPtr< IConvergenceCheck< X > > | 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< X > > spConvCheck) |
| Default constructor. More...
|
|
virtual bool | init (SmartPtr< ILinearOperator< X, X > > J, const X &u) |
| initializes for the inverse for a linearized operator at linearization point u More...
|
|
virtual bool | init (SmartPtr< ILinearOperator< X, X > > L) |
| initializes for the inverse for a linear operator More...
|
|
SmartPtr< ILinearOperator< X, X > > | linear_operator () |
| returns the current Operator this Inverse Operator is initialized for More...
|
|
virtual const char * | name () const=0 |
| returns the name of the operator inverse More...
|
|
number | reduction () const |
| returns the current relative reduction More...
|
|
void | set_convergence_check (SmartPtr< IConvergenceCheck< X > > 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 bool | supports_parallel () const=0 |
| returns if parallel solving is supported More...
|
|
virtual | ~ILinearOperatorInverse () |
| virtual destructor More...
|
|
SmartPtr< IDamping< X, X > > | damping () |
| returns the scaling More...
|
|
| ILinearIterator () |
| constructor More...
|
|
| ILinearIterator (const ILinearIterator< X, X > &parent) |
| copy constructor More...
|
|
void | set_damp (number factor) |
| sets the damping to a constant factor More...
|
|
void | set_damp (SmartPtr< IDamping< X, X > > spScaling) |
| sets a scaling for the correction More...
|
|
virtual | ~ILinearIterator () |
| virtual destructor More...
|
|
template<typename M, typename X, typename Y = X>
class ug::IMatrixOperatorInverse< M, X, Y >
describes an inverse linear mapping X->Y based on a matrix
This class is the base class for the inversion of linear matrix-based operator given in form of the IMatrixOperator interface class. Given a operator L, the basic usage of this class is to invert this operator, i.e. to compute the solution u of
L*u = f i.e. u := L^{-1} f
- Template Parameters
-
X | domain space (i.e. a vector corresponding to the matrix) |
Y | range space (i.e. a vector corresponding to the matrix) |
M | matrix type used to represent linear mapping |
template<typename M , typename X , typename Y = X>
template<typename M , typename X , typename Y = X>
template<typename M , typename X , typename Y = X>
initializes this inverse operator for a linear operator
This method implements the ILinearOperatorInverse interface method. Basically, the request is forwarded to the matrix-based init method, if the the operator is matrix-based. If the operator is not matrix-based this inverse can not be used and false is returned
- Parameters
-
[in] | A | linear matrix-based operator to invert |
[in] | u | linearization point |
- Returns
- bool success flag
References ug::IMatrixOperatorInverse< M, X, Y >::init().