|
opm-simulators
|
DILU preconditioner on the GPU. More...
#include <GpuDILU.hpp>
Public Types | |
| 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 | GPUMatrix = GpuSparseMatrixWrapper< field_type > |
| using | FloatMat = GpuSparseMatrixWrapper< float > |
| using | FloatVec = GpuVector< float > |
| using | matrix_type = GPUMatrix |
| The matrix type the preconditioner is for. | |
Public Member Functions | |
| GpuDILU (const GPUMatrix &gpuMatrix, const CPUMatrixT &cpuMatrix, bool splitMatrix, bool tuneKernels, int mixedPrecisionScheme, bool reorder) | |
| 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.
| CPUMatrixT | Type of the matrix on the CPU |
| 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.
|
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 >.