dune-istl  2.4.1
Public Types | Public Member Functions | List of all members
Dune::OverlappingSchwarzOperator< M, X, Y, C > Class Template Reference

An overlapping schwarz operator. More...

#include <dune/istl/paamg/construction.hh>

Inheritance diagram for Dune::OverlappingSchwarzOperator< M, X, Y, C >:
Inheritance graph

Public Types

enum  { category =SolverCategory::overlapping }
 
typedef M matrix_type
 The type of the matrix we operate on. More...
 
typedef X domain_type
 The type of the domain. More...
 
typedef Y range_type
 The type of the range. More...
 
typedef X::field_type field_type
 The field type of the range. More...
 
typedef C communication_type
 The type of the communication object. More...
 

Public Member Functions

 OverlappingSchwarzOperator (const matrix_type &A, const communication_type &com)
 constructor: just store a reference to a matrix. More...
 
virtual void apply (const X &x, Y &y) const
 apply operator to x: $ y = A(x) $ More...
 
virtual void applyscaleadd (field_type alpha, const X &x, Y &y) const
 apply operator to x, scale and add: $ y = y + \alpha A(x) $ More...
 
virtual const matrix_typegetmat () const
 get the sequential assembled linear operator. More...
 

Detailed Description

template<class M, class X, class Y, class C>
class Dune::OverlappingSchwarzOperator< M, X, Y, C >

An overlapping schwarz operator.

This operator represents a parallel matrix product using sequential data structures together with a parallel index set describing an overlapping domain decomposition and the communication.

Template Parameters
MThe type of the sequential matrix to use, e.g. BCRSMatrix or another matrix type fulfilling the matrix interface of ISTL.
XThe type of the sequential vector to use for the left hand side, e.g. BlockVector or another type fulfilling the ISTL vector interface.
YThe type of the sequential vector to use for the right hand side, e..g. BlockVector or another type fulfilling the ISTL vector interface.
CThe type of the communication object. This must either be OwnerOverlapCopyCommunication or a type implementing the same interface.

Member Typedef Documentation

template<class M, class X, class Y, class C>
typedef C Dune::OverlappingSchwarzOperator< M, X, Y, C >::communication_type

The type of the communication object.

This must either be OwnerOverlapCopyCommunication or a type implementing the same interface.

template<class M, class X, class Y, class C>
typedef X Dune::OverlappingSchwarzOperator< M, X, Y, C >::domain_type

The type of the domain.

E.g. BlockVector or another type fulfilling the ISTL vector interface.

template<class M, class X, class Y, class C>
typedef X::field_type Dune::OverlappingSchwarzOperator< M, X, Y, C >::field_type

The field type of the range.

template<class M, class X, class Y, class C>
typedef M Dune::OverlappingSchwarzOperator< M, X, Y, C >::matrix_type

The type of the matrix we operate on.

E.g. BCRSMatrix or another matrix type fulfilling the matrix interface of ISTL

template<class M, class X, class Y, class C>
typedef Y Dune::OverlappingSchwarzOperator< M, X, Y, C >::range_type

The type of the range.

E.g. BlockVector or another type fulfilling the ISTL vector interface.

Constructor & Destructor Documentation

template<class M, class X, class Y, class C>
Dune::OverlappingSchwarzOperator< M, X, Y, C >::OverlappingSchwarzOperator ( const matrix_type A,
const communication_type com 
)
inline

constructor: just store a reference to a matrix.

Parameters
AThe assembled matrix.
comThe communication object for syncing overlap and copy data points. (E.~g. OwnerOverlapCopyCommunication )

Member Function Documentation

template<class M, class X, class Y, class C>
virtual void Dune::OverlappingSchwarzOperator< M, X, Y, C >::apply ( const X &  x,
Y &  y 
) const
inlinevirtual

apply operator to x: $ y = A(x) $

Implements Dune::LinearOperator< X, Y >.

template<class M, class X, class Y, class C>
virtual void Dune::OverlappingSchwarzOperator< M, X, Y, C >::applyscaleadd ( field_type  alpha,
const X &  x,
Y &  y 
) const
inlinevirtual

apply operator to x, scale and add: $ y = y + \alpha A(x) $

Implements Dune::LinearOperator< X, Y >.

template<class M, class X, class Y, class C>
virtual const matrix_type& Dune::OverlappingSchwarzOperator< M, X, Y, C >::getmat ( ) const
inlinevirtual

get the sequential assembled linear operator.

Implements Dune::AssembledLinearOperator< M, X, Y >.


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