DUNE PDELab (git)

Dune::OverlappingSchwarzOperator< M, X, Y, C > Class Template Reference

An overlapping Schwarz operator. More...

#include <dune/istl/schwarz.hh>

Public Types

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.
 
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...
 
void apply (const X &x, Y &y) const override
 apply operator to x: \( y = A(x) \)
 
void applyscaleadd (field_type alpha, const X &x, Y &y) const override
 apply operator to x, scale and add: \( y = y + \alpha A(x) \)
 
const matrix_typegetmat () const override
 get the sequential assembled linear operator.
 
SolverCategory::Category category () const override
 Category of the linear operator (see SolverCategory::Category)
 
const communication_typegetCommunication () const
 Get the object responsible for communication.
 

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

◆ communication_type

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.

◆ domain_type

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.

◆ matrix_type

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

◆ range_type

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

◆ OverlappingSchwarzOperator()

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 )

The documentation for this class was generated from the following files:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 23, 23:29, 2024)