Dune::LinearOperator< X, Y > Class Template Reference
[Operator concept]

#include <operators.hh>

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

Dune::AssembledLinearOperator< M, X, Y > Dune::Amg::ParallelMatrix< M, IS, X, Y > Dune::MatrixAdapter< M, X, Y > Dune::OverlappingSchwarzOperator< M, X, Y, C >

List of all members.


Detailed Description

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

A linear operator.

Abstract base class defining a linear operator $ A : X\to Y$, i.e. $ A(\alpha x) = \alpha A(x) $ and $ A(x+y) = A(x)+A(y)$ hold. The simplest solvers just need the application $ A(x)$ 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

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: $ y = A(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: $ y = y + \alpha A(x) $
virtual ~LinearOperator ()
 every abstract base class has a virtual destructor

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

Generated on 6 Nov 2008 with Doxygen (ver 1.5.6) [logfile].