ug4
|
#include <matrix_operator.h>
Public Types | |
typedef Y | codomain_function_type |
typedef X | domain_function_type |
typedef M | matrix_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 M & | get_matrix () |
virtual void | init () |
init operator | |
virtual void | init (const X &u) |
init operator depending on a function u | |
![]() | |
virtual void | prepare (X &u) |
default implementation for IOperator interface | |
virtual | ~ILinearOperator () |
virtual destructor | |
![]() | |
virtual | ~IOperator () |
virtual destructor | |
typedef Y ug::MatrixOperator< M, X, Y >::codomain_function_type |
typedef X ug::MatrixOperator< M, X, Y >::domain_function_type |
typedef M ug::MatrixOperator< M, X, Y >::matrix_type |
|
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 >.
Reimplemented in ug::AssembledLinearOperator< TAlgebra >, ug::AssembledLinearOperator< algebra_type >, ug::AssembledLinearOperator< ug::CPUAlgebra >, and ug::SchurComplementMatrixOperator< TAlgebra, M, X, Y >.
|
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 >.
Reimplemented in ug::AssembledLinearOperator< TAlgebra >, ug::AssembledLinearOperator< algebra_type >, ug::AssembledLinearOperator< ug::CPUAlgebra >, and ug::SchurComplementMatrixOperator< TAlgebra, M, X, Y >.
Referenced by ug::AssembledMultiGridCycle< TDomain, TAlgebra >::base_solve(), ug::AssembledMultiGridCycle< TDomain, TAlgebra >::presmooth_and_restriction(), and ug::AssembledMultiGridCycle< TDomain, TAlgebra >::prolongation_and_postsmooth().
|
inlinevirtual |
Reimplemented in ug::SchurComplementMatrixOperator< TAlgebra, M, X, Y >, and ug::SchurComplementMatrixOperator< TAlgebra, matrix_type, vector_type >.
Referenced by ug::IExternalSolver< TAlgebra >::init(), ug::LU< TAlgebra >::init(), ug::DebugIterator< TAlgebra >::init(), ug::SchurInverseWithFullMatrix< TAlgebra >::init(), ug::AgglomeratingBase< TBase, TAlgebra >::init_collected_vec(), ug::AgglomeratingBase< TBase, TAlgebra >::init_mat(), ug::MatAdd(), ug::MatIdentity(), ug::MatScale(), ug::MatTranspose(), ug::SchurPrecond< TAlgebra >::num_global_skeleton(), ug::SaveMatrixToMTX(), and ug::SchurComplementOperator< TAlgebra >::sub_matrix().
|
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 >.
Reimplemented in ug::SchurComplementMatrixOperator< TAlgebra, M, X, Y >, ug::SchurComplementMatrixOperator< TAlgebra, matrix_type, vector_type >, ug::AssembledLinearOperator< TAlgebra >, ug::AssembledLinearOperator< algebra_type >, and ug::AssembledLinearOperator< ug::CPUAlgebra >.
|
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 >.
Reimplemented in ug::AssembledLinearOperator< TAlgebra >, ug::AssembledLinearOperator< algebra_type >, ug::AssembledLinearOperator< ug::CPUAlgebra >, and ug::SchurComplementMatrixOperator< TAlgebra, M, X, Y >.