|
My Project
|
DILU preconditioner on the GPU. More...
#include <GpuDILU.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. | |
| using | CuMat = GpuSparseMatrix< field_type > |
| The GPU matrix type. | |
| using | FloatMat = GpuSparseMatrix< float > |
| using | FloatVec = GpuVector< float > |
Public Member Functions | |
| GpuDILU (const M &A, bool splitMatrix, bool tuneKernels, int mixedPrecisionScheme) | |
| Constructor. | |
| void | pre (X &x, Y &b) override |
| Prepare the preconditioner. | |
| void | apply (X &v, const Y &d) override |
| Apply the preconditoner. | |
| void | post (X &x) override |
| Post processing. | |
| Dune::SolverCategory::Category | category () const override |
| Category of the preconditioner (see SolverCategory::Category) | |
| void | update () final |
| Updates the matrix data. | |
| void | reorderAndSplitMatrix (int moveThreadBlockSize) |
| perform matrix splitting and reordering | |
| void | computeDiagonal (int factorizationThreadBlockSize) |
| Compute the diagonal of the DILU, and update the data of the reordered matrix. | |
| void | tuneThreadBlockSizes () |
| function that will experimentally tune the thread block sizes of the important cuda kernels | |
| virtual bool | hasPerfectUpdate () const override |
Static Public Member Functions | |
| static constexpr bool | shouldCallPre () |
| static constexpr bool | shouldCallPost () |
DILU preconditioner on the GPU.
| 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. |
|
explicit |
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 >.
|
override |
Post processing.
|
override |
Prepare the preconditioner.
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
|
finalvirtual |
Updates the matrix data.
Implements Dune::PreconditionerWithUpdate< X, Y >.