|
|
| rocsparseCPR (int verbosity) |
| |
| bool | initialize (std::shared_ptr< BlockedMatrix< Scalar > > matrix, std::shared_ptr< BlockedMatrix< Scalar > > jacMatrix, rocsparse_int *d_Arows, rocsparse_int *d_Acols) override |
| | Initialize GPU and allocate memory.
|
| |
| bool | analyze_matrix (BlockedMatrix< Scalar > *mat) override |
| | Analysis, extract parallelism if specified.
|
| |
| bool | analyze_matrix (BlockedMatrix< Scalar > *mat, BlockedMatrix< Scalar > *jacMat) override |
| | Analysis, extract parallelism if specified.
|
| |
| bool | create_preconditioner (BlockedMatrix< Scalar > *mat) override |
| | Create AMG preconditioner and perform ILU decomposition.
|
| |
| bool | create_preconditioner (BlockedMatrix< Scalar > *mat, BlockedMatrix< Scalar > *jacMat) override |
| | Create AMG preconditioner and perform ILU decomposition.
|
| |
| void | apply (Scalar &y, Scalar &x) override |
| | Apply preconditioner, x = prec(y) applies blocked ilu0 also applies amg for pressure component.
|
| |
| void | copy_system_to_gpu (Scalar *b) override |
| | Copy matrix A values to GPU.
|
| |
| void | update_system_on_gpu (Scalar *b) override |
| | Reassign pointers, in case the addresses of the Dune variables have changed --> TODO: check when/if we need this method.
|
| |
|
void | set_matrix_analysis (rocsparse_mat_descr descr_L, rocsparse_mat_descr descr_U) |
| |
|
void | set_context (rocsparse_handle handle, rocsparse_direction dir, rocsparse_operation operation, hipStream_t stream) |
| |
|
void | setJacMat (const BlockedMatrix< Scalar > &jacMat) |
| |
|
|
static std::unique_ptr< rocsparsePreconditioner< Scalar, block_size > > | create (PreconditionerType type, int verbosity) |
| |
|
static std::unique_ptr< Preconditioner > | create (PreconditionerType type, bool opencl_ilu_parallel, int verbosity) |
| |
|
int | nnzbs_prec = 0 |
| |
|
bool | useJacMatrix = false |
| |
|
std::shared_ptr< BlockedMatrix< Scalar > > | jacMat {} |
| |
|
using | DuneMat = Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > |
| |
|
using | DuneVec = Dune::BlockVector< Dune::FieldVector< Scalar, 1 > > |
| |
|
using | MatrixOperator = Dune::MatrixAdapter< DuneMat, DuneVec, DuneVec > |
| |
|
using | DuneAmg = Dune::Amg::MatrixHierarchy< MatrixOperator, Dune::Amg::SequentialInformation > |
| |
|
| rocsparsePreconditioner (int verbosity_) |
| |
|
| Preconditioner (int verbosity_) |
| |
|
void | analyzeHierarchy () |
| |
|
void | analyzeAggregateMaps () |
| |
|
void | create_preconditioner_amg (BlockedMatrix< Scalar > *mat) |
| |
|
rocsparse_handle | handle |
| |
|
rocsparse_direction | dir = rocsparse_direction_row |
| |
|
rocsparse_operation | operation = rocsparse_operation_none |
| |
|
rocsparse_mat_descr | descr_L |
| |
|
rocsparse_mat_descr | descr_U |
| |
|
hipStream_t | stream |
| |
|
int | N = 0 |
| |
|
int | Nb = 0 |
| |
|
int | nnz = 0 |
| |
|
int | nnzb = 0 |
| |
|
int | verbosity = 0 |
| |
|
int | num_levels |
| |
|
std::vector< Scalar > | weights |
| |
|
std::vector< Scalar > | coarse_vals |
| |
|
std::vector< Scalar > | coarse_x |
| |
|
std::vector< Scalar > | coarse_y |
| |
|
std::vector< Matrix< Scalar > > | Amatrices |
| |
|
std::vector< Matrix< Scalar > > | Rmatrices |
| |
|
std::vector< std::vector< int > > | PcolIndices |
| |
|
std::vector< std::vector< Scalar > > | invDiags |
| |
|
BlockedMatrix< Scalar > * | mat = nullptr |
| |
|
std::unique_ptr< DuneAmg > | dune_amg |
| |
|
std::unique_ptr< DuneMat > | dune_coarse |
| |
|
std::shared_ptr< MatrixOperator > | dune_op |
| |
|
std::vector< int > | level_sizes |
| |
|
std::vector< std::vector< int > > | diagIndices |
| |
|
std::conditional_t< std::is_same_v< Scalar, double >, Dune::UMFPack< DuneMat >, int > | umfpack |
| |
|
bool | always_recalculate_aggregates = false |
| |
|
bool | recalculate_aggregates = true |
| |
|
const int | pressure_idx = 1 |
| |
|
unsigned | num_pre_smooth_steps |
| |
|
unsigned | num_post_smooth_steps |
| |
template<
class Scalar,
unsigned int block_size>
class Opm::Accelerator::rocsparseCPR< Scalar, block_size >
This class implements a Constrained Pressure Residual (CPR) preconditioner.