dune-istl 3.0-git
Public Types | Public Member Functions | List of all members
Dune::NonoverlappingBlockPreconditioner< C, P > Class Template Reference

Nonoverlapping parallel preconditioner. More...

#include <dune/istl/novlpschwarz.hh>

Inheritance diagram for Dune::NonoverlappingBlockPreconditioner< C, P >:
Inheritance graph

Public Types

enum  { category =SolverCategory::nonoverlapping }
 
typedef P::domain_type domain_type
 The domain type of the preconditioner.
 
typedef P::range_type range_type
 The range type of the preconditioner.
 
typedefcommunication_type
 The type of the communication object.
 
typedef X::field_type field_type
 The field type of the preconditioner.
 

Public Member Functions

 NonoverlappingBlockPreconditioner (P &prec, const communication_type &c)
 Constructor.
 
virtual void pre (domain_type &x, range_type &b)
 Prepare the preconditioner.
 
virtual void apply (domain_type &v, const range_type &d)
 Apply the preconditioner.
 
virtual void post (domain_type &x)
 Clean up.
 

Detailed Description

template<class C, class P>
class Dune::NonoverlappingBlockPreconditioner< C, P >

Nonoverlapping parallel preconditioner.

This is essentially a wrapper that take a sequential preconditoner. In each step the sequential preconditioner is applied and then all owner data points are updated on all other processes.

Member Typedef Documentation

◆ communication_type

template<class C , class P >
typedef C Dune::NonoverlappingBlockPreconditioner< C, P >::communication_type

The type of the communication object.

◆ domain_type

template<class C , class P >
typedef P::domain_type Dune::NonoverlappingBlockPreconditioner< C, P >::domain_type

The domain type of the preconditioner.

◆ field_type

typedef X::field_type Dune::Preconditioner< P::domain_type , P::range_type >::field_type
inherited

The field type of the preconditioner.

◆ range_type

template<class C , class P >
typedef P::range_type Dune::NonoverlappingBlockPreconditioner< C, P >::range_type

The range type of the preconditioner.

Member Enumeration Documentation

◆ anonymous enum

template<class C , class P >
anonymous enum
Enumerator
category 

The category the preconditioner is part of.

Constructor & Destructor Documentation

◆ NonoverlappingBlockPreconditioner()

template<class C , class P >
Dune::NonoverlappingBlockPreconditioner< C, P >::NonoverlappingBlockPreconditioner ( P prec,
const communication_type c 
)
inline

Constructor.

constructor gets all parameters to operate the prec.

Parameters
precThe sequential preconditioner.
cThe communication object for syncing owner and copy data points. (E.~g. OwnerOverlapCommunication )

Member Function Documentation

◆ apply()

template<class C , class P >
virtual void Dune::NonoverlappingBlockPreconditioner< C, P >::apply ( domain_type v,
const range_type d 
)
inlinevirtual

Apply the preconditioner.

Implements Dune::Preconditioner< P::domain_type, P::range_type >.

◆ post()

template<class C , class P >
virtual void Dune::NonoverlappingBlockPreconditioner< C, P >::post ( domain_type x)
inlinevirtual

◆ pre()

template<class C , class P >
virtual void Dune::NonoverlappingBlockPreconditioner< C, P >::pre ( domain_type x,
range_type b 
)
inlinevirtual

Prepare the preconditioner.

Implements Dune::Preconditioner< P::domain_type, P::range_type >.


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