33class rocsparsePreconditioner :
public Preconditioner<Scalar, block_size>
37 rocsparse_handle handle;
38 rocblas_handle blas_handle;
39 rocsparse_direction dir = rocsparse_direction_row;
40 rocsparse_operation operation = rocsparse_operation_none;
41 rocsparse_mat_descr descr_L, descr_U;
45 rocsparsePreconditioner(
int verbosity_) :
46 Preconditioner<Scalar, block_size>(verbosity_)
52 bool useJacMatrix =
false;
53 std::shared_ptr<BlockedMatrix<Scalar>> jacMat{};
55 virtual ~rocsparsePreconditioner() =
default;
57 static std::unique_ptr<rocsparsePreconditioner<Scalar, block_size>> create(PreconditionerType type,
62 rocsparse_int* d_Arows,
63 rocsparse_int* d_Acols) = 0;
65 virtual void copy_system_to_gpu(Scalar* b) = 0;
72 void set_matrix_analysis(rocsparse_mat_descr descr_L,
73 rocsparse_mat_descr descr_U);
75 void set_context(rocsparse_handle handle,
76 rocblas_handle blas_handle,
77 rocsparse_direction dir,
78 rocsparse_operation operation,