My Project
|
Sequential ILU0 preconditioner on the GPU through the CuSparse library. More...
#include <GpuSeqILU0.hpp>
Public Types | |
using | matrix_type = typename std::remove_const< M >::type |
The matrix type the preconditioner is for. | |
using | domain_type = X |
The domain type of the preconditioner. | |
using | range_type = Y |
The range type of the preconditioner. | |
using | field_type = typename X::field_type |
The field type of the preconditioner. | |
Public Member Functions | |
GpuSeqILU0 (const M &A, field_type w) | |
Constructor. | |
virtual void | pre (X &x, Y &b) override |
Prepare the preconditioner. | |
virtual void | apply (X &v, const Y &d) override |
Apply the preconditoner. | |
virtual void | post (X &x) override |
Post processing. | |
virtual Dune::SolverCategory::Category | category () const override |
Category of the preconditioner (see SolverCategory::Category) | |
virtual void | update () override |
Updates the matrix data. | |
virtual bool | hasPerfectUpdate () const override |
Static Public Member Functions | |
static constexpr bool | shouldCallPre () |
static constexpr bool | shouldCallPost () |
Sequential ILU0 preconditioner on the GPU through the CuSparse library.
This implementation calls the CuSparse functions, which in turn essentially does a level decomposition to get some parallelism.
M | The matrix type to operate on |
X | Type of the update |
Y | Type of the defect |
l | Ignored. Just there to have the same number of template arguments as other preconditioners. |
Opm::gpuistl::GpuSeqILU0< M, X, Y, l >::GpuSeqILU0 | ( | const M & | A, |
field_type | w | ||
) |
Constructor.
Constructor gets all parameters to operate the prec.
A | The matrix to operate on. |
w | The relaxation factor. |
|
inlineoverridevirtual |
Implements Dune::PreconditionerWithUpdate< X, Y >.
|
overridevirtual |
Post processing.
|
overridevirtual |
Prepare the preconditioner.
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
overridevirtual |
Updates the matrix data.
Implements Dune::PreconditionerWithUpdate< X, Y >.