49 using Base::verbosity;
50 using Base::platformID;
53 using Base::tolerance;
54 using Base::initialized;
58 bool useJacMatrix =
false;
60 bool analysis_done =
false;
61 std::shared_ptr<BlockedMatrix> mat =
nullptr;
62 std::shared_ptr<BlockedMatrix> jacMat =
nullptr;
65 rocsparse_direction dir = rocsparse_direction_row;
66 rocsparse_operation operation = rocsparse_operation_none;
67 rocsparse_handle handle;
68 rocblas_handle blas_handle;
69 rocsparse_mat_descr descr_A, descr_M, descr_L, descr_U;
70 rocsparse_mat_info ilu_info;
71#if HIP_VERSION >= 50400000
72 rocsparse_mat_info spmv_info;
76 rocsparse_int *d_Arows, *d_Mrows;
77 rocsparse_int *d_Acols, *d_Mcols;
78 double *d_Avals, *d_Mvals;
79 double *d_x, *d_b, *d_r, *d_rw, *d_p;
80 double *d_pw, *d_s, *d_t, *d_v;
94 void initialize(std::shared_ptr<BlockedMatrix> matrix, std::shared_ptr<BlockedMatrix> jacMatrix);
98 void copy_system_to_gpu(
double *b);
102 void update_system_on_gpu(
double *b);
106 bool analyze_matrix();
110 bool create_preconditioner();
124 rocsparseSolverBackend(
int linear_solver_verbosity,
int maxit,
double tolerance,
unsigned int platformID,
unsigned int deviceID);
139 SolverStatus solve_system(std::shared_ptr<BlockedMatrix> matrix,
double *b,
void get_result(double *x) override
Solve scalar linear system, for example a coarse system of an AMG preconditioner Data is already on t...
Definition rocsparseSolverBackend.cpp:600