dune-pdelab
2.5-dev
|
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. More... | |
Public Member Functions | |
SolverCategory::Category | category () const override |
template<typename GFS > | |
NonoverlappingJacobi (const GFS &gfs, const A &m) | |
Constructor. More... | |
virtual void | pre (X &x, Y &b) override |
Prepare the preconditioner. More... | |
virtual void | apply (X &v, const Y &d) override |
Apply the precondioner. More... | |
virtual void | post (X &x) override |
Clean up. More... | |
parallel non-overlapping Jacobi preconditioner
Diagonal | Vector type used to store the diagonal of the matrix |
X | Vector type used to store the result of applying the preconditioner. |
Y | Vector type used to store the defect. |
A | The 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.
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.
typedef X::ElementType Dune::PDELab::NonoverlappingJacobi< A, X, Y >::field_type |
The field type of the preconditioner.
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.
|
inline |
Constructor.
gfs | The GridFunctionSpace the matrix and the vectors live on. |
m | The 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.
|
inlineoverridevirtual |
Apply the precondioner.
|
inlineoverride |
|
inlineoverridevirtual |
Clean up.
|
inlineoverridevirtual |
Prepare the preconditioner.