Loading...
Searching...
No Matches
Dune::LinearOperator< X, Y > Class Template Referenceabstract
Iterative Solvers Template Library (ISTL) » Iterative Solvers » Operator concept

A linear operator. More...

`#include <dune/istl/operators.hh>`

Inheritance diagram for Dune::LinearOperator< X, Y >:

## Public Types

typedef X | domain_type
| The type of the domain of the operator.
typedef Y | range_type
| The type of the range of the operator.
typedef X::field_type | field_type
| The field type of the operator.

## Public Member Functions

virtual void | apply (const X &x, Y &y) const =0
| apply operator to x: The input vector is consistent and the output must also be consistent on the interior+border partition.
virtual void | applyscaleadd (field_type alpha, const X &x, Y &y) const =0
| apply operator to x, scale and add:
virtual | ~LinearOperator ()
| every abstract base class has a virtual destructor
virtual SolverCategory::Category | category () const =0
| Category of the linear operator (see SolverCategory::Category).

## Detailed Description

template<class X, class Y>
class Dune::LinearOperator< X, Y >

A linear operator.

Abstract base class defining a linear operator , i.e. and hold. The simplest solvers just need the application of the operator.

- enables on the fly computation through operator concept. If explicit representation of the operator is required use AssembledLinearOperator
- Some inverters may need an explicit formation of the operator as a matrix, e.g. BiCGStab, ILU, AMG, etc. In that case use the derived class

## Member Typedef Documentation

## domain_type

template<class X, class Y>

typedef X Dune::LinearOperator< X, Y >::domain_type

The type of the domain of the operator.

## field_type

template<class X, class Y>

typedef X::field_type Dune::LinearOperator< X, Y >::field_type

The field type of the operator.

## range_type

template<class X, class Y>

typedef Y Dune::LinearOperator< X, Y >::range_type

The type of the range of the operator.

## Constructor & Destructor Documentation

## ~LinearOperator()

template<class X, class Y>

virtual Dune::LinearOperator< X, Y >::~LinearOperator | ( |  | ) |

inline virtual

every abstract base class has a virtual destructor

## Member Function Documentation

## apply()

template<class X, class Y>

virtual void Dune::LinearOperator< X, Y >::apply | ( | const X & | x,
|  | Y & | y ) const

pure virtual

apply operator to x: The input vector is consistent and the output must also be consistent on the interior+border partition.

Implemented in Dune::MatrixAdapter< M, X, Y >, Dune::NonoverlappingSchwarzOperator< M, X, Y, C >, and Dune::OverlappingSchwarzOperator< M, X, Y, C >.

## applyscaleadd()

template<class X, class Y>

virtual void Dune::LinearOperator< X, Y >::applyscaleadd | ( | field_type | alpha,
|  | const X & | x,
|  | Y & | y ) const

pure virtual

apply operator to x, scale and add:

Implemented in Dune::MatrixAdapter< M, X, Y >, Dune::NonoverlappingSchwarzOperator< M, X, Y, C >, and Dune::OverlappingSchwarzOperator< M, X, Y, C >.

## category()

template<class X, class Y>

virtual SolverCategory::Category Dune::LinearOperator< X, Y >::category | ( |  | ) | const

pure virtual

Category of the linear operator (see SolverCategory::Category).

Implemented in Dune::MatrixAdapter< M, X, Y >, Dune::MatrixAdapter< BCRSMatrix, BlockVector, BlockVector >, Dune::NonoverlappingSchwarzOperator< M, X, Y, C >, and Dune::OverlappingSchwarzOperator< M, X, Y, C >.

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

- operators.hh