19 #ifndef FLOWEXP_COMP_HPP 20 #define FLOWEXP_COMP_HPP 22 #include <opm/material/constraintsolvers/PTFlash.hpp> 23 #include <opm/material/fluidsystems/GenericOilGasWaterFluidSystem.hpp> 33 #include <flowexperimental/comp/EmptyModel.hpp> 34 #include <flowexperimental/comp/wells/CompWellModel.hpp> 43 template<
int numComp,
bool EnableWater>
44 int dispatchFlowExpComp(
int argc,
char** argv);
51 template<
int NumComp,
bool EnableWater>
53 using InheritsFrom = std::tuple<FlowBaseProblemComp, FlashModel>;
58 template<
class TypeTag,
int NumComp,
bool EnableWater>
63 enum { numEq = getPropValue<TypeTag, Properties::NumEq>() };
71 template<
class TypeTag>
79 using EclThermalLawManager = ::Opm::EclThermalLawManager<Scalar, FluidSystem>;
81 using type =
typename EclThermalLawManager::SolidEnergyLaw;
85 template<
class TypeTag>
86 struct ThermalConductionLaw<TypeTag, TTag::FlowExpCompProblem>
93 using EclThermalLawManager = ::Opm::EclThermalLawManager<Scalar, FluidSystem>;
95 using type =
typename EclThermalLawManager::ThermalConductionLaw;
99 template <
class TypeTag>
100 struct SpatialDiscretizationSplice<TypeTag, TTag::FlowExpCompProblem>
102 using type = TTag::EcfvDiscretization;
105 template <
class TypeTag>
106 struct LocalLinearizerSplice<TypeTag, TTag::FlowExpCompProblem>
108 using type = TTag::AutoDiffLocalLinearizer;
113 template <
class TypeTag,
int NumComp,
bool EnableWater>
114 struct Problem<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>>
119 template<
class TypeTag,
int NumComp,
bool EnableWater>
120 struct AquiferModel<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>> {
124 template<
class TypeTag,
int NumComp,
bool EnableWater>
125 struct WellModel<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>> {
129 template<
class TypeTag,
int NumComp,
bool EnableWater>
130 struct TracerModel<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>> {
135 template <
class TypeTag,
int NumComp,
bool EnableWater>
136 struct FlashSolver<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>> {
143 using type = Opm::PTFlash<Scalar, FluidSystem>;
147 template <
class TypeTag,
class MyTypeTag>
151 template <
class TypeTag,
int NumComp_,
bool EnableWater_>
152 struct NumComp<TypeTag, TTag::FlowExpCompProblem<NumComp_, EnableWater_>> {
153 static constexpr
int value = NumComp_;
156 template <
class TypeTag,
class MyTypeTag>
159 template <
class TypeTag,
int NumComp_,
bool EnableWater_>
161 static constexpr
bool value = EnableWater_;
166 template <
class TypeTag>
167 struct Temperature<TypeTag, TTag::FlowExpCompProblem> {
169 static constexpr type value = 423.25;
173 template <
class TypeTag,
int NumComp_,
bool EnableWater_>
174 struct FluidSystem<TypeTag, TTag::FlowExpCompProblem<NumComp_, EnableWater_>>
178 static constexpr
int num_comp = getPropValue<TypeTag, Properties::NumComp>();
179 static constexpr
bool enable_water = getPropValue<TypeTag, Properties::EnableDummyWater>();
182 using type = Opm::GenericOilGasWaterFluidSystem<Scalar, num_comp, enable_water>;
184 template<
class TypeTag,
int NumComp,
bool EnableWater>
185 struct EnableMech<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>> {
186 static constexpr
bool value =
false;
189 template<
class TypeTag,
int NumComp,
bool EnableWater>
191 static constexpr
bool value =
false;
194 template<
class TypeTag,
int NumComp,
bool EnableWater>
195 struct Stencil<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>>
205 template<
class TypeTag,
int NumComp,
bool EnableWater>
207 static constexpr
bool value =
false;
210 template<
class TypeTag,
int NumComp,
bool EnableWater>
212 static constexpr
bool value =
false;
214 template<
class TypeTag,
int NumComp,
bool EnableWater>
216 static constexpr
bool value =
false;
219 template<
class TypeTag,
int NumComp,
bool EnableWater>
220 struct EnablePolymer<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>> {
221 static constexpr
bool value =
false;
224 template<
class TypeTag,
int NumComp,
bool EnableWater>
226 static constexpr
bool value =
false;
229 template<
class TypeTag,
int NumComp,
bool EnableWater>
230 struct EnableBrine<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>> {
231 static constexpr
bool value =
false;
233 template<
class TypeTag,
int NumComp,
bool EnableWater>
234 struct EnableVapwat<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>> {
235 static constexpr
bool value =
false;
238 template<
class TypeTag,
int NumComp,
bool EnableWater>
239 struct EnableSolvent<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>> {
240 static constexpr
bool value =
false;
242 template<
class TypeTag,
int NumComp,
bool EnableWater>
243 struct EnableFoam<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>> {
244 static constexpr
bool value =
false;
246 template<
class TypeTag,
int NumComp,
bool EnableWater>
247 struct EnableExtbo<TypeTag, TTag::FlowExpCompProblem<NumComp, EnableWater>> {
248 static constexpr
bool value =
false;
250 template<
class TypeTag,
int NumComp,
bool EnableWater>
252 static constexpr
bool value =
false;
257 template<
class TypeTag>
259 static constexpr
bool value =
false;
Definition: flow_comp.hpp:174
Definition: FlowBaseProblemProperties.hpp:103
The class describing the stencil of the spatial discretization.
Definition: fvbaseproperties.hh:76
Implements a generic linear solver abstraction.
Definition: blackoilproperties.hh:86
Enable dispersive fluxes?
Definition: multiphasebaseproperties.hh:95
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
Definition: FlowBaseProblemProperties.hpp:68
Enable the ECL-blackoil extension for polymer.
Definition: blackoilproperties.hh:51
A compositional multi-phase model based on flash-calculations
Represents the stencil (finite volume geometry) of a single element in the ECFV discretization.
Definition: ecfvstencil.hh:68
Definition: FlowBaseProblemProperties.hpp:73
Base class for specifying auxiliary equations.
Enable the ECL-blackoil extension for disolution of gas into water.
Definition: blackoilproperties.hh:79
Enable the ECL-blackoil extension for water evaporation.
Definition: blackoilproperties.hh:75
a tag to mark properties as undefined
Definition: propertysystem.hh:38
Definition: matrixblock.hh:228
This problem simulates an input file given in the data format used by the commercial ECLiPSE simulato...
Definition: FlowProblemComp.hpp:59
The class that allows to manipulate sparse matrices.
Definition: linalgproperties.hh:50
Enable the ECL-blackoil extension for salt precipitation.
Definition: blackoilproperties.hh:71
Structs needed for tpfalinearizer and its gpuparams struct extracted to be defined in one place that ...
Definition: blackoilbioeffectsmodules.hh:45
Definition: FlowBaseProblemProperties.hpp:94
Enable the ECL-blackoil extension for solvents. ("Second gas")
Definition: blackoilproperties.hh:43
The fluid systems including the information about the phases.
Definition: multiphasebaseproperties.hh:79
Enable the ECL-blackoil extension for foam.
Definition: blackoilproperties.hh:63
Enable the ECL-blackoil extension for extended BO. ("Second gas" - alternative approach) ...
Definition: blackoilproperties.hh:47
Definition: FlowBaseProblemProperties.hpp:98
Enable the ECL-blackoil extension for bioeffects (biofilm/MICP)
Definition: blackoilproperties.hh:83
Property to specify the type of scalar values.
Definition: basicproperties.hh:76
Definition: flowexp_comp.hpp:52
The type of the problem.
Definition: fvbaseproperties.hh:87
Definition: flow_comp.hpp:165
A sparse matrix interface backend for BCRSMatrix from dune-istl.
Definition: istlsparsematrixadapter.hh:42
Definition: EmptyModel.hpp:33
Definition: CompWellModel.hpp:51
Enable the ECL-blackoil extension for salt.
Definition: blackoilproperties.hh:67
The material law for the energy stored in the solid matrix.
Definition: multiphasebaseproperties.hh:63
This problem simulates an input file given in the data format used by the commercial ECLiPSE simulato...
Definition: blackoilmodel.hh:75
The type of the flash constraint solver.
Definition: flashproperties.hh:39
Enable the tracking polymer molecular weight tracking and related functionalities.
Definition: blackoilproperties.hh:55