Loading...
Searching...
No Matches
Dune::NonoverlappingSchwarzOperator< M, X, Y, C > Class Template Reference
Iterative Solvers Template Library (ISTL) » Iterative Solvers » Operator concept

A nonoverlapping operator with communication object. More...

`#include <dune/istl/novlpschwarz.hh>`

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

## 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.
typedef C::PIS | PIS
typedef C::RI | RI
typedef RI::RemoteIndexList | RIL
typedef RI::const_iterator | RIIterator
typedef RIL::const_iterator | RILIterator
typedef M::ConstColIterator | ColIterator
typedef M::ConstRowIterator | RowIterator
typedef std::multimap< int, int > | MM
typedef std::multimap< int, std::pair< int, RILIterator > > | RIMap
typedef RIMap::iterator | RIMapit

## Public Member Functions

| NonoverlappingSchwarzOperator (const matrix_type &A, const communication_type &com)
| constructor: just store a reference to a matrix.
| NonoverlappingSchwarzOperator (std::shared_ptr< const matrix_type > A, const communication_type &com)
void | apply (const X &x, Y &y) const override
| apply operator to x:
void | applyscaleadd (field_type alpha, const X &x, Y &y) const override
| apply operator to x, scale and add:
const M & | getmat () const override
| get reference to matrix
void | novlp_op_apply (const X &x, Y &y, field_type alpha) const
SolverCategory::Category | category () const override
| Category of the linear operator (see SolverCategory::Category).
const communication_type & | getCommunication () const
| Get the object responsible for communication.

## Detailed Description

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

A nonoverlapping operator with communication object.

## Member Typedef Documentation

## ColIterator

template<class M, class X, class Y, class C>

typedef M::ConstColIterator Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::ColIterator

## communication_type

template<class M, class X, class Y, class C>

typedef C Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::communication_type

The type of the communication object.

## domain_type

template<class M, class X, class Y, class C>

typedef X Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::domain_type

The type of the domain.

## field_type

template<class M, class X, class Y, class C>

typedef X::field_type Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::field_type

The field type of the range.

## matrix_type

template<class M, class X, class Y, class C>

typedef M Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::matrix_type

The type of the matrix we operate on.

## MM

template<class M, class X, class Y, class C>

typedef std::multimap<int,int> Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::MM

## PIS

template<class M, class X, class Y, class C>

typedef C::PIS Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::PIS

## range_type

template<class M, class X, class Y, class C>

typedef Y Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::range_type

The type of the range.

## RI

template<class M, class X, class Y, class C>

typedef C::RI Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::RI

## RIIterator

template<class M, class X, class Y, class C>

typedef RI::const_iterator Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::RIIterator

## RIL

template<class M, class X, class Y, class C>

typedef RI::RemoteIndexList Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::RIL

## RILIterator

template<class M, class X, class Y, class C>

typedef RIL::const_iterator Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::RILIterator

## RIMap

template<class M, class X, class Y, class C>

typedef std::multimap<int,std::pair<int,RILIterator> > Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::RIMap

## RIMapit

template<class M, class X, class Y, class C>

typedef RIMap::iterator Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::RIMapit

## RowIterator

template<class M, class X, class Y, class C>

typedef M::ConstRowIterator Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::RowIterator

## Constructor & Destructor Documentation

## NonoverlappingSchwarzOperator() [1/2]

template<class M, class X, class Y, class C>

Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::NonoverlappingSchwarzOperator | ( | const matrix_type & | A,
|  | const communication_type & | com )

inline

constructor: just store a reference to a matrix.

Parameters

  A | The assembled matrix.
  com | The communication object for syncing owner and copy data points. (E.~g. OwnerOverlapCommunication )

## NonoverlappingSchwarzOperator() [2/2]

template<class M, class X, class Y, class C>

Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::NonoverlappingSchwarzOperator | ( | std::shared_ptr< const matrix_type > | A,
|  | const communication_type & | com )

inline

## Member Function Documentation

## apply()

template<class M, class X, class Y, class C>

void Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::apply | ( | const X & | x,
|  | Y & | y ) const

inline override virtual

apply operator to x:

Implements Dune::LinearOperator< X, Y >.

## applyscaleadd()

template<class M, class X, class Y, class C>

void Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::applyscaleadd | ( | field_type | alpha,
|  | const X & | x,
|  | Y & | y ) const

inline override virtual

apply operator to x, scale and add:

Implements Dune::LinearOperator< X, Y >.

## category()

template<class M, class X, class Y, class C>

SolverCategory::Category Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::category | ( |  | ) | const

inline override virtual

Category of the linear operator (see SolverCategory::Category).

Implements Dune::LinearOperator< X, Y >.

## getCommunication()

template<class M, class X, class Y, class C>

const communication_type & Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::getCommunication | ( |  | ) | const

inline

Get the object responsible for communication.

## getmat()

template<class M, class X, class Y, class C>

const M & Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::getmat | ( |  | ) | const

inline override virtual

get reference to matrix

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

## novlp_op_apply()

template<class M, class X, class Y, class C>

void Dune::NonoverlappingSchwarzOperator< M, X, Y, C >::novlp_op_apply | ( | const X & | x,
|  | Y & | y,
|  | field_type | alpha ) const

inline

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

- novlpschwarz.hh