|
ug4
|
#include <matrix_diagonal.h>
Inheritance diagram for ug::MatrixDiagonalInverse< M, X, Y >:Public Types | |
| typedef Y | codomain_function_type |
| typedef X | domain_function_type |
| typedef M | matrix_type |
| typedef MatrixOperator< M, X, Y > | mo_type |
Public Types inherited from ug::ILinearOperator< X, Y > | |
| typedef Y | codomain_function_type |
| Range space. | |
| typedef X | domain_function_type |
| Domain space. | |
Public Types inherited from ug::IOperator< X, Y > | |
| typedef Y | codomain_function_type |
| Range space. | |
| typedef X | domain_function_type |
| Domain space. | |
Public Member Functions | |
| virtual void | apply (Y &f, const X &u) |
| virtual void | apply_sub (Y &f, const X &u) |
| virtual void | init () |
| init operator | |
| virtual void | init (const X &u) |
| init operator depending on a function u | |
| MatrixDiagonalInverse (SmartPtr< mo_type > mo) | |
Public Member Functions inherited from ug::ILinearOperator< X, Y > | |
| virtual void | prepare (X &u) |
| default implementation for IOperator interface | |
| virtual | ~ILinearOperator () |
| virtual destructor | |
Public Member Functions inherited from ug::IOperator< X, Y > | |
| virtual | ~IOperator () |
| virtual destructor | |
Public Attributes | |
| SmartPtr< mo_type > | m_mo |
Dinv = MatrixDiagonalInverse(mat) creates a LinearOperator which acts like Dinv = diag(mat)^{-1}
| typedef Y ug::MatrixDiagonalInverse< M, X, Y >::codomain_function_type |
| typedef X ug::MatrixDiagonalInverse< M, X, Y >::domain_function_type |
| typedef M ug::MatrixDiagonalInverse< M, X, Y >::matrix_type |
| typedef MatrixOperator<M, X, Y> ug::MatrixDiagonalInverse< M, X, Y >::mo_type |
|
inline |
References ug::MatrixDiagonalInverse< M, X, Y >::m_mo.
|
inlinevirtual |
This method applies the operator, i.e. f = L*u (or d = J(u)*c in iterative schemes). Note, that the operator must have been initialized once before this method can be used.
| [in] | u | domain function |
| [out] | f | codomain function |
Implements ug::ILinearOperator< X, Y >.
References ug::InverseMatMult(), and ug::MatrixDiagonalInverse< M, X, Y >::m_mo.
|
inlinevirtual |
This method applies the operator and subracts the result from the input codomain function, i.e. f -= L*u (or d -= J(u)*c in iterative schemes). Note, that the operator must have been initialized once before this method can be used.
| [in] | u | domain function |
| [in,out] | f | codomain function |
Implements ug::ILinearOperator< X, Y >.
References ug::InverseMatMult(), and ug::MatrixDiagonalInverse< M, X, Y >::m_mo.
|
inlinevirtual |
init operator
This method initializes the operator. Once initialized the 'apply'-method can be called. If the operator is a linearization this function returns false.
Implements ug::ILinearOperator< X, Y >.
References ug::MatrixDiagonalInverse< M, X, Y >::m_mo.
|
inlinevirtual |
init operator depending on a function u
This method initializes the operator. Once initialized the 'apply'-method can be called. The function u is passed here, since the linear operator may be the linearization of some non-linear operator. Thus, the operator depends on the linearization point. If the operator is not a linearization, this method can be implemented by simply calling init() and forgetting about the linearization point.
| [in] | u | function (linearization point) |
Implements ug::ILinearOperator< X, Y >.
References ug::MatrixDiagonalInverse< M, X, Y >::m_mo.
| SmartPtr<mo_type> ug::MatrixDiagonalInverse< M, X, Y >::m_mo |