ug4
ug::MatrixOperator< M, X, Y > Class Template Reference

#include <matrix_operator.h>

+ Inheritance diagram for ug::MatrixOperator< M, X, Y >:

Public Types

typedef Y codomain_function_type
 
typedef X domain_function_type
 
typedef M matrix_type
 
- Public Types inherited from ug::ILinearOperator< X, X >
typedef X codomain_function_type
 Range space. More...
 
typedef X domain_function_type
 Domain space. More...
 
- Public Types inherited from ug::IOperator< X, X >
typedef X codomain_function_type
 Range space. More...
 
typedef X domain_function_type
 Domain space. More...
 

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 More...
 
virtual void init (const X &u)
 init operator depending on a function u More...
 
- Public Member Functions inherited from ug::ILinearOperator< X, X >
virtual void apply (X &f, const X &u)=0
 
virtual void apply_sub (X &f, const X &u)=0
 
virtual void prepare (X &u)
 default implementation for IOperator interface More...
 
virtual ~ILinearOperator ()
 virtual destructor More...
 
- Public Member Functions inherited from ug::IOperator< X, X >
virtual ~IOperator ()
 virtual destructor More...
 

Member Typedef Documentation

◆ codomain_function_type

template<typename M , typename X , typename Y = X>
typedef Y ug::MatrixOperator< M, X, Y >::codomain_function_type

◆ domain_function_type

template<typename M , typename X , typename Y = X>
typedef X ug::MatrixOperator< M, X, Y >::domain_function_type

◆ matrix_type

template<typename M , typename X , typename Y = X>
typedef M ug::MatrixOperator< M, X, Y >::matrix_type

Member Function Documentation

◆ apply()

template<typename M , typename X , typename Y = X>
virtual void ug::MatrixOperator< M, X, Y >::apply ( Y &  f,
const X &  u 
)
inlinevirtual

◆ apply_sub()

template<typename M , typename X , typename Y = X>
virtual void ug::MatrixOperator< M, X, Y >::apply_sub ( Y &  f,
const X &  u 
)
inlinevirtual

◆ get_matrix()

template<typename M , typename X , typename Y = X>
virtual M& ug::MatrixOperator< M, X, Y >::get_matrix ( )
inlinevirtual

◆ init() [1/2]

template<typename M , typename X , typename Y = X>
virtual void ug::MatrixOperator< M, X, Y >::init ( )
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.

Returns
bool success flag

Implements ug::ILinearOperator< X, X >.

Reimplemented in ug::AssembledLinearOperator< TAlgebra >, and ug::SchurComplementMatrixOperator< TAlgebra, M, X, Y >.

◆ init() [2/2]

template<typename M , typename X , typename Y = X>
virtual void ug::MatrixOperator< M, X, Y >::init ( const X &  u)
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.

Parameters
[in]ufunction (linearization point)
Returns
bool success flag

Implements ug::ILinearOperator< X, X >.

Reimplemented in ug::SchurComplementMatrixOperator< TAlgebra, M, X, Y >, and ug::AssembledLinearOperator< TAlgebra >.


The documentation for this class was generated from the following file: