20 #ifndef OPM_PRECONDITIONER_HEADER_INCLUDED
21 #define OPM_PRECONDITIONER_HEADER_INCLUDED
23 #include <opm/simulators/linalg/bda/opencl/opencl.hpp>
24 #include <opm/simulators/linalg/bda/ILUReorder.hpp>
34 template <
unsigned int block_size>
45 std::shared_ptr<cl::Context> context;
46 std::shared_ptr<cl::CommandQueue> queue;
47 std::vector<cl::Event> events;
55 enum PreconditionerType {
61 static std::unique_ptr<Preconditioner> create(PreconditionerType type,
int verbosity, ILUReorder opencl_ilu_reorder);
64 virtual void setOpencl(std::shared_ptr<cl::Context>& context, std::shared_ptr<cl::CommandQueue>& queue);
67 virtual void apply(
const cl::Buffer& y, cl::Buffer& x) = 0;
77 virtual int* getToOrder() = 0;
78 virtual int* getFromOrder() = 0;
This class implements a Blocked ILU0 preconditioner The decomposition is done on CPU,...
Definition: BILU0.hpp:42
This class implements a Blocked version of the Incomplete Sparse Approximate Inverse (ISAI) precondit...
Definition: BISAI.hpp:40
This struct resembles a blocked csr matrix, like Dune::BCRSMatrix.
Definition: BlockedMatrix.hpp:37
This class implements a Constrained Pressure Residual (CPR) preconditioner.
Definition: CPR.hpp:52
Definition: Preconditioner.hpp:36
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:27