DUNE PDELab (git)

Dune::PDELab::NonoverlappingJacobi< A, X, Y > Class Template Reference

parallel non-overlapping Jacobi preconditioner More...

#include <dune/pdelab/backend/istl/novlpistlsolverbackend.hh>

Public Types

typedef X domain_type
 The domain type of the operator. More...
 
typedef Y range_type
 The range type of the operator. More...
 
typedef X::ElementType field_type
 The field type of the preconditioner.
 

Public Member Functions

SolverCategory::Category category () const override
 Category of the preconditioner (see SolverCategory::Category)
 
template<typename GFS >
 NonoverlappingJacobi (const GFS &gfs, const A &m)
 Constructor. More...
 
virtual void pre (X &x, Y &b) override
 Prepare the preconditioner.
 
virtual void apply (X &v, const Y &d) override
 Apply the precondioner.
 
virtual void post (X &x) override
 Clean up.
 

Detailed Description

template<typename A, typename X, typename Y>
class Dune::PDELab::NonoverlappingJacobi< A, X, Y >

parallel non-overlapping Jacobi preconditioner

Template Parameters
DiagonalVector type used to store the diagonal of the matrix
XVector type used to store the result of applying the preconditioner.
YVector type used to store the defect.
AThe matrix type to be used.

The Jacobi preconditioner approximates the inverse of a matrix M by taking the diagonal diag(M) and inverting that. In the parallel case the matrix M is assumed to be inconsistent, so diagonal entries for dofs on the border are summed up over all relevant processes by this precoditioner before the inverse is computed.

Member Typedef Documentation

◆ domain_type

template<typename A , typename X , typename Y >
typedef X Dune::PDELab::NonoverlappingJacobi< A, X, Y >::domain_type

The domain type of the operator.

The preconditioner is an inverse operator, so this is the output type of the preconditioner.

◆ range_type

template<typename A , typename X , typename Y >
typedef Y Dune::PDELab::NonoverlappingJacobi< A, X, Y >::range_type

The range type of the operator.

The preconditioner is an inverse operator, so this is the input type of the preconditioner.

Constructor & Destructor Documentation

◆ NonoverlappingJacobi()

template<typename A , typename X , typename Y >
template<typename GFS >
Dune::PDELab::NonoverlappingJacobi< A, X, Y >::NonoverlappingJacobi ( const GFS &  gfs,
const A &  m 
)
inline

Constructor.

Parameters
gfsThe GridFunctionSpace the matrix and the vectors live on.
mThe matrix whose inverse the preconditioner should estimate. m is assumed to be inconsistent (i.e. rows for dofs on the border only contain the contribution of the local process).

The preconditioner does not store any reference to the gfs or the matrix m. The diagonal of m is copied, since it has to be made consistent.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (May 13, 22:30, 2024)