dune-istl
3.0-git
|
An overlapping schwarz operator. More...
#include <dune/istl/paamg/construction.hh>
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: ![]() | |
virtual void | applyscaleadd (field_type alpha, const X &x, Y &y) const |
apply operator to x, scale and add: ![]() | |
virtual const matrix_type & | getmat () const |
get the sequential assembled linear operator. More... | |
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.
M | The type of the sequential matrix to use, e.g. BCRSMatrix or another matrix type fulfilling the matrix interface of ISTL. |
X | The type of the sequential vector to use for the left hand side, e.g. BlockVector or another type fulfilling the ISTL vector interface. |
Y | The type of the sequential vector to use for the right hand side, e..g. BlockVector or another type fulfilling the ISTL vector interface. |
C | The type of the communication object. This must either be OwnerOverlapCopyCommunication or a type implementing the same interface. |
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.
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.
typedef X::field_type Dune::OverlappingSchwarzOperator< M, X, Y, C >::field_type |
The field type of the range.
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
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.
|
inline |
constructor: just store a reference to a matrix.
A | The assembled matrix. |
com | The communication object for syncing overlap and copy data points. (E.~g. OwnerOverlapCopyCommunication ) |
|
inlinevirtual |
apply operator to x:
Implements Dune::LinearOperator< X, Y >.
|
inlinevirtual |
apply operator to x, scale and add:
Implements Dune::LinearOperator< X, Y >.
|
inlinevirtual |
get the sequential assembled linear operator.
Implements Dune::AssembledLinearOperator< M, X, Y >.