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

A nonoverlapping operator with communication object. More...

#include <dune/istl/novlpschwarz.hh>

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

Public Types

enum  { category =SolverCategory::nonoverlapping }
 
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...
 
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. 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 matrix via * More...
 
void novlp_op_apply (const X &x, Y &y, field_type alpha) const
 

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

Member Enumeration Documentation

◆ anonymous enum

template<class M, class X, class Y, class C>
anonymous enum
Enumerator
category 

The solver category.

Constructor & Destructor Documentation

◆ NonoverlappingSchwarzOperator()

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
AThe assembled matrix.
comThe communication object for syncing owner and copy data points. (E.~g. OwnerOverlapCommunication )

Member Function Documentation

◆ apply()

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

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

Implements Dune::LinearOperator< X, Y >.

◆ applyscaleadd()

template<class M, class X, class Y, class C>
virtual void Dune::NonoverlappingSchwarzOperator< 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 >.

◆ getmat()

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

get matrix via *

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: