46 using Base::verbosity;
53 std::unique_ptr<BlockedMatrix<Scalar>> LUmat{};
55 std::unique_ptr<BlockedMatrix<Scalar>>
Lmat{},
Umat{};
57 std::vector<Scalar> invDiagVals;
58 std::vector<int> diagIndex;
59 std::vector<int> rowsPerColor;
60 std::vector<int> rowsPerColorPrefix;
61 std::vector<int> toOrder, fromOrder;
63 std::once_flag pattern_uploaded;
65 bool opencl_ilu_parallel;
68 cl::Buffer invDiagVals;
70 cl::Buffer rowsPerColor;
71 cl::Buffer rowIndices;
78 cl::Buffer LUvals, LUcols, LUrows;
90 openclBILU0(
bool opencl_ilu_parallel,
int verbosity);
105 void apply(
const cl::Buffer&
y, cl::Buffer& x)
override;
107 std::tuple<std::vector<int>, std::vector<int>, std::vector<int>>
108 get_preconditioner_structure()
110 return {{LUmat->rowPointers, LUmat->rowPointers + (Nb + 1)},
111 {LUmat->colIndices, LUmat->colIndices + nnzb}, diagIndex};
114 std::pair<cl::Buffer, cl::Buffer> get_preconditioner_data()
117 return std::make_pair(s.Lvals, s.invDiagVals);
119 return std::make_pair(s.LUvals, s.invDiagVals);
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:242