21#ifndef OPM_GPU_BLACKOIL_INTENSIVE_QUANTITIES_DISPATCHER_HPP
22#define OPM_GPU_BLACKOIL_INTENSIVE_QUANTITIES_DISPATCHER_HPP
36struct ExperimentalComputePropertiesOnGpu {
static constexpr bool value =
false; };
41 struct FlowGasWaterEnergyProblem;
42 struct FlowGasWaterEnergyProblemGPU;
52template <
class CpuTypeTag>
53struct GpuBlackoilIntensiveQuantitiesDispatcherSupport {
54 static constexpr bool value =
false;
58struct GpuBlackoilIntensiveQuantitiesDispatcherSupport<
59 Opm::Properties::TTag::FlowGasWaterEnergyProblem> {
60 static constexpr bool value =
true;
68struct GpuBlackoilIntensiveQuantitiesDispatcherSupport<
69 Opm::Properties::TTag::FlowGasWaterEnergyProblemGPU> {
70 static constexpr bool value =
true;
86template <
class CpuTypeTag>
87class GpuBlackoilIntensiveQuantitiesDispatcher
94 GpuBlackoilIntensiveQuantitiesDispatcher();
95 ~GpuBlackoilIntensiveQuantitiesDispatcher();
97 GpuBlackoilIntensiveQuantitiesDispatcher(
const GpuBlackoilIntensiveQuantitiesDispatcher&) =
delete;
98 GpuBlackoilIntensiveQuantitiesDispatcher&
99 operator=(
const GpuBlackoilIntensiveQuantitiesDispatcher&) =
delete;
108 void update(
const Problem& cpuProblem,
109 const PrimaryVariables*
const* cpuPriVars,
110 IntensiveQuantities*
const* outIQ,
115 std::unique_ptr<Impl> impl_;
Definition: blackoilnewtonmethodparams.hpp:31
The generic type tag for problems using the immiscible multi-phase model.
Definition: blackoilmodel.hh:76
A small, fixed‑dimension MiniVector class backed by std::array that can be used in both host and CUDA...
Definition: GpuFlowProblem.hpp:48
Definition: blackoilbioeffectsmodules.hh:45
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition: propertysystem.hh:233
The Opm property system, traits with inheritance.