49 using Base::verbosity;
56 std::vector<OpenclMatrix<Scalar>> d_Amatrices, d_Rmatrices;
57 std::vector<cl::Buffer> d_PcolIndices;
58 std::vector<cl::Buffer> d_invDiags;
59 std::vector<cl::Buffer> d_t, d_f, d_u;
60 std::unique_ptr<cl::Buffer> d_rs;
61 std::unique_ptr<cl::Buffer> d_weights;
62 std::unique_ptr<OpenclMatrix<Scalar>> d_mat;
63 std::unique_ptr<cl::Buffer> d_coarse_y, d_coarse_x;
64 std::once_flag opencl_buffers_allocated;
66 std::unique_ptr<openclBILU0<Scalar,block_size>> bilu0;
68 std::unique_ptr<openclSolverBackend<Scalar,1>> coarse_solver;
69 bool opencl_ilu_parallel;
72 void init_opencl_buffers();
78 void apply_amg(
const cl::Buffer&
y, cl::Buffer& x);
80 void amg_cycle_gpu(
const int level, cl::Buffer &
y, cl::Buffer &x);
83 openclCPR(
bool opencl_ilu_parallel,
int verbosity);
90 void setOpencl(std::shared_ptr<cl::Context>& context,
91 std::shared_ptr<cl::CommandQueue>& queue)
override;
95 void apply(
const cl::Buffer&
y, cl::Buffer& x)
override;
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:242