ug4
|
describes an inverse mapping X->Y More...
#include <operator_inverse.h>
Inherited by ug::LimexNewtonSolver< class >.
Public Types | |
typedef Y | codomain_function_type |
Range space. More... | |
typedef X | domain_function_type |
Domain space. More... | |
Public Member Functions | |
virtual bool | apply (X &u)=0 |
apply the operator, i.e. u = N^{-1}(0) More... | |
virtual std::string | config_string () const =0 |
returns information about configuration parameters More... | |
virtual bool | init (SmartPtr< IOperator< Y, X > > N)=0 |
initializes the operator for the inversion of the operator N: Y -> X More... | |
virtual bool | prepare (X &u)=0 |
prepares the function u for application More... | |
virtual | ~IOperatorInverse () |
virtual destructor More... | |
describes an inverse mapping X->Y
This class is the base class for the inversion of the operator given in form of the IOperator interface class. Given a operator N(u), the basic usage of this class is to invert this operator, i.e. to compute
N(u) = 0, i.e. u := N^{-1}(0).
This application has been split up into three steps:
This splitting has been made, since initialization and preparation may be computationally expansive. Thus, the user of this class has the choice when to call this initialization/preparation. E.g. when the operator is applied several times on the same vectors, those have only to be prepared once and the init of the operator is only needed once.
typedef Y ug::IOperatorInverse< X, Y >::codomain_function_type |
Range space.
typedef X ug::IOperatorInverse< X, Y >::domain_function_type |
Domain space.
|
inlinevirtual |
virtual destructor
|
pure virtual |
apply the operator, i.e. u = N^{-1}(0)
This method inverts the operator N and returns the solution u = N^{-1}(0).
[in,out] | u | domain function with solution at output |
Implemented in ug::NLJacobiSolver< TAlgebra >, ug::NLGaussSeidelSolver< TDomain, TAlgebra >, ug::NewtonSolver< TAlgebra >, and ug::NestedIterationSolver< TDomain, TAlgebra >.
|
pure virtual |
returns information about configuration parameters
this should return necessary information about parameters and possibly calling config_string of subcomponents.
Implemented in ug::NLJacobiSolver< TAlgebra >, ug::NLGaussSeidelSolver< TDomain, TAlgebra >, ug::NewtonSolver< TAlgebra >, ug::NestedIterationSolver< TDomain, TAlgebra >, and ug::LimexNewtonSolver< class >.
|
pure virtual |
initializes the operator for the inversion of the operator N: Y -> X
This method sets the (nonlinear) operator that should be inverted by this inverse operator. In addition preparations can be made to facilitate the application of the inverse.
[in] | N | operator that is to be inverted |
|
pure virtual |
prepares the function u for application
This method prepares the function u before it can be used to find the solution of N(u) = 0. Typically, dirichlet values are set here.
[in] | u | domain function |
Implemented in ug::NLJacobiSolver< TAlgebra >, ug::NLGaussSeidelSolver< TDomain, TAlgebra >, ug::NewtonSolver< TAlgebra >, and ug::NestedIterationSolver< TDomain, TAlgebra >.