|
dune-istl 2.10
|
An overlapping Schwarz operator. More...
#include <dune/istl/schwarz.hh>

Public Types | |
| typedef M | matrix_type |
| The type of the matrix we operate on. | |
| typedef X | domain_type |
| The type of the domain. | |
| typedef Y | range_type |
| The type of the range. | |
| typedef X::field_type | field_type |
| The field type of the range. | |
| typedef C | communication_type |
| The type of the communication object. | |
Public Member Functions | |
| OverlappingSchwarzOperator (const matrix_type &A, const communication_type &com) | |
| constructor: just store a reference to a matrix. | |
| OverlappingSchwarzOperator (const std::shared_ptr< matrix_type > A, const communication_type &com) | |
| 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. | |
| virtual SolverCategory::Category | category () const |
| Category of the linear operator (see SolverCategory::Category). | |
| const communication_type & | getCommunication () const |
| Get the object responsible for communication. | |
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 ) |
|
inline |
|
inlinevirtual |
apply operator to x: 
Implements Dune::LinearOperator< X, Y >.
|
inlinevirtual |
apply operator to x, scale and add: 
Implements Dune::LinearOperator< X, Y >.
|
inlinevirtual |
Category of the linear operator (see SolverCategory::Category).
Implements Dune::LinearOperator< X, Y >.
|
inline |
Get the object responsible for communication.
|
inlinevirtual |
get the sequential assembled linear operator.
Implements Dune::AssembledLinearOperator< M, X, Y >.