ug4
|
#include <matrix_diagonal.h>
Public Types | |
typedef Y | codomain_function_type |
typedef X | domain_function_type |
typedef M | matrix_type |
typedef MatrixOperator< M, X, Y > | mo_type |
![]() | |
typedef Y | codomain_function_type |
Range space. | |
typedef X | domain_function_type |
Domain space. | |
![]() | |
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) | |
![]() | |
virtual void | prepare (X &u) |
default implementation for IOperator interface | |
virtual | ~ILinearOperator () |
virtual destructor | |
![]() | |
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 |