24 #include <opm/material/constraintsolvers/PTFlash.hpp> 25 #include <opm/material/fluidsystems/GenericOilGasWaterFluidSystem.hpp> 31 #include <opm/simulators/flow/Main.hpp> 37 #include <flowexperimental/comp/EmptyModel.hpp> 38 #include <flowexperimental/comp/wells/CompWellModel.hpp> 47 template<
int numComp,
bool EnableWater>
48 int dispatchFlowComp(
int argc,
char** argv);
54 template <
class TypeTag,
class MyTypeTag>
55 struct DiscNewtonMethod;
57 template <
class TypeTag,
class MyTypeTag>
60 template <
class TypeTag,
class MyTypeTag>
65 template<
int NumComp,
bool EnableWater>
67 using InheritsFrom = std::tuple<FlowBaseProblemComp, FlashModel>;
72 template<
class TypeTag,
int NumComp,
bool EnableWater>
77 enum { numEq = getPropValue<TypeTag, Properties::NumEq>() };
88 template<
class TypeTag>
96 using EclThermalLawManager = ::Opm::EclThermalLawManager<Scalar, FluidSystem>;
98 using type =
typename EclThermalLawManager::SolidEnergyLaw;
102 template<
class TypeTag>
103 struct ThermalConductionLaw<TypeTag, TTag::FlowCompProblem>
110 using EclThermalLawManager = ::Opm::EclThermalLawManager<Scalar, FluidSystem>;
112 using type =
typename EclThermalLawManager::ThermalConductionLaw;
116 template <
class TypeTag>
117 struct SpatialDiscretizationSplice<TypeTag, TTag::FlowCompProblem>
119 using type = TTag::EcfvDiscretization;
122 template <
class TypeTag>
123 struct LocalLinearizerSplice<TypeTag, TTag::FlowCompProblem>
125 using type = TTag::AutoDiffLocalLinearizer;
130 template <
class TypeTag,
int NumComp,
bool EnableWater>
131 struct Problem<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>>
136 template<
class TypeTag,
int NumComp,
bool EnableWater>
137 struct AquiferModel<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>> {
141 template<
class TypeTag,
int NumComp,
bool EnableWater>
142 struct WellModel<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>> {
146 template<
class TypeTag,
int NumComp,
bool EnableWater>
147 struct TracerModel<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>> {
152 template <
class TypeTag,
int NumComp,
bool EnableWater>
153 struct FlashSolver<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>> {
160 using type = Opm::PTFlash<Scalar, FluidSystem>;
164 template <
class TypeTag,
class MyTypeTag>
168 template <
class TypeTag,
int NumComp_,
bool EnableWater_>
169 struct NumComp<TypeTag, TTag::FlowCompProblem<NumComp_, EnableWater_>> {
170 static constexpr
int value = NumComp_;
173 template <
class TypeTag,
class MyTypeTag>
176 template <
class TypeTag,
int NumComp_,
bool EnableWater_>
178 static constexpr
bool value = EnableWater_;
183 template <
class TypeTag>
184 struct Temperature<TypeTag, TTag::FlowCompProblem> {
186 static constexpr type value = 423.25;
190 template <
class TypeTag,
int NumComp_,
bool EnableWater_>
191 struct FluidSystem<TypeTag, TTag::FlowCompProblem<NumComp_, EnableWater_>>
195 static constexpr
int num_comp = getPropValue<TypeTag, Properties::NumComp>();
196 static constexpr
bool enable_water = getPropValue<TypeTag, Properties::EnableDummyWater>();
199 using type = Opm::GenericOilGasWaterFluidSystem<Scalar, num_comp, enable_water>;
201 template<
class TypeTag,
int NumComp,
bool EnableWater>
202 struct EnableMech<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>> {
203 static constexpr
bool value =
false;
206 template<
class TypeTag,
int NumComp,
bool EnableWater>
208 static constexpr
bool value =
false;
211 template<
class TypeTag,
int NumComp,
bool EnableWater>
212 struct Stencil<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>>
222 template<
class TypeTag,
int NumComp,
bool EnableWater>
224 static constexpr
bool value =
false;
227 template<
class TypeTag,
int NumComp,
bool EnableWater>
229 static constexpr
bool value =
false;
231 template<
class TypeTag,
int NumComp,
bool EnableWater>
233 static constexpr
bool value =
false;
236 template<
class TypeTag,
int NumComp,
bool EnableWater>
237 struct EnablePolymer<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>> {
238 static constexpr
bool value =
false;
241 template<
class TypeTag,
int NumComp,
bool EnableWater>
243 static constexpr
bool value =
false;
246 template<
class TypeTag,
int NumComp,
bool EnableWater>
247 struct EnableBrine<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>> {
248 static constexpr
bool value =
false;
250 template<
class TypeTag,
int NumComp,
bool EnableWater>
251 struct EnableVapwat<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>> {
252 static constexpr
bool value =
false;
255 template<
class TypeTag,
int NumComp,
bool EnableWater>
256 struct EnableSolvent<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>> {
257 static constexpr
bool value =
false;
259 template<
class TypeTag,
int NumComp,
bool EnableWater>
260 struct EnableFoam<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>> {
261 static constexpr
bool value =
false;
263 template<
class TypeTag,
int NumComp,
bool EnableWater>
264 struct EnableExtbo<TypeTag, TTag::FlowCompProblem<NumComp, EnableWater>> {
265 static constexpr
bool value =
false;
267 template<
class TypeTag,
int NumComp,
bool EnableWater>
269 static constexpr
bool value =
false;
272 template<
class TypeTag,
int NumComp,
bool EnableWater>
274 static constexpr
bool value =
false;
279 template<
class TypeTag>
281 static constexpr
bool value =
false;
Definition: flow_comp.hpp:174
The multi-dimensional Newton method.
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
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: FlowBaseProblemProperties.hpp:79
Definition: flow_comp.hpp:66
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