28#ifndef OPM_FLOW_PROBLEM_PROPERTIES_HPP
29#define OPM_FLOW_PROBLEM_PROPERTIES_HPP
31#include <opm/input/eclipse/Parser/ParserKeywords/E.hpp>
33#include <opm/material/fluidmatrixinteractions/EclMaterialLawManager.hpp>
34#include <opm/material/thermal/EclThermalLawManager.hpp>
36#include <opm/models/discretization/ecfv/ecfvdiscretization.hh>
37#include <opm/models/utils/propertysystem.hh>
55template <
class TypeTag>
64 using InheritsFrom = std::tuple<VtkTracer, OutputBlackOil, CpGridVanguard>;
69template<
class TypeTag,
class MyTypeTag>
71 using type = UndefinedProperty;
76template<
class TypeTag,
class MyTypeTag>
78 using type = UndefinedProperty;
82template<
class TypeTag,
class MyTypeTag>
84 using type = UndefinedProperty;
89template<
class TypeTag,
class MyTypeTag>
91 using type = UndefinedProperty;
97template<
class TypeTag,
class MyTypeTag>
99 using type = UndefinedProperty;
104template<
class TypeTag,
class MyTypeTag>
106 using type = UndefinedProperty;
111template<
class TypeTag,
class MyTypeTag>
113 using type = UndefinedProperty;
117template<
class TypeTag,
class MyTypeTag>
119 using type = UndefinedProperty;
122template<
class TypeTag,
class MyTypeTag>
124 using type = UndefinedProperty;
127template<
class TypeTag,
class MyTypeTag>
129 using type = UndefinedProperty;
132template<
class TypeTag,
class MyTypeTag>
134 using type = UndefinedProperty;
140template<
class TypeTag>
141struct Problem<TypeTag, TTag::FlowBaseProblem> {
145template<
class TypeTag>
146struct Model<TypeTag, TTag::FlowBaseProblem> {
151template<
class TypeTag>
152struct SpatialDiscretizationSplice<TypeTag, TTag::FlowBaseProblem> {
153 using type = TTag::EcfvDiscretization;
157template<
class TypeTag>
158struct LocalLinearizerSplice<TypeTag, TTag::FlowBaseProblem> {
159 using type = TTag::AutoDiffLocalLinearizer;
162template<
class TypeTag>
163struct BaseDiscretizationType<TypeTag, TTag::FlowBaseProblem> {
164 using type = FvBaseDiscretizationNoAdapt<TypeTag>;
167template<
class TypeTag>
168struct DiscreteFunction<TypeTag, TTag::FlowBaseProblem> {
170 using type =
typename BaseDiscretization::BlockVectorWrapper;
173template<
class TypeTag>
174struct GridView<TypeTag, TTag::FlowBaseProblem>
176 using type =
typename GetPropType<TypeTag, Properties::Grid>::LeafGridView;
180template<
class TypeTag>
181struct MaterialLaw<TypeTag, TTag::FlowBaseProblem>
184 using Scalar = GetPropType<TypeTag, Properties::Scalar>;
185 using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
187 using Traits = ThreePhaseMaterialTraits<Scalar,
188 FluidSystem::waterPhaseIdx,
189 FluidSystem::oilPhaseIdx,
190 FluidSystem::gasPhaseIdx>;
195 using type =
typename EclMaterialLawManager::MaterialLaw;
199template<
class TypeTag>
200struct SolidEnergyLaw<TypeTag, TTag::FlowBaseProblem>
203 using Scalar = GetPropType<TypeTag, Properties::Scalar>;
204 using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
209 using type =
typename EclThermalLawManager::SolidEnergyLaw;
213template<
class TypeTag>
214struct ThermalConductionLaw<TypeTag, TTag::FlowBaseProblem>
217 using Scalar = GetPropType<TypeTag, Properties::Scalar>;
218 using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
223 using type =
typename EclThermalLawManager::ThermalConductionLaw;
228template<
class TypeTag>
229struct Stencil<TypeTag, TTag::FlowBaseProblem>
232 using Scalar = GetPropType<TypeTag, Properties::Scalar>;
233 using GridView = GetPropType<TypeTag, Properties::GridView>;
236 using type = EcfvStencil<Scalar,
243template<
class TypeTag>
249template<
class TypeTag>
250struct EnableGravity<TypeTag, TTag::FlowBaseProblem> {
251 static constexpr bool value =
true;
255template<
class TypeTag>
256struct EnableDiffusion<TypeTag, TTag::FlowBaseProblem> {
257 static constexpr bool value =
true;
261template<
class TypeTag>
262struct EnableDispersion<TypeTag, TTag::FlowBaseProblem> {
263 static constexpr bool value =
false;
267template<
class TypeTag>
269 static constexpr bool value =
false;
273template<
class TypeTag>
275 static constexpr bool value =
false;
283template<
class TypeTag>
284struct EndTime<TypeTag, TTag::FlowBaseProblem> {
285 using type = GetPropType<TypeTag, Scalar>;
286 static constexpr type value = 1e100;
294template<
class TypeTag>
295struct InitialTimeStepSize<TypeTag, TTag::FlowBaseProblem> {
296 using type = GetPropType<TypeTag, Scalar>;
297 static constexpr type value = 3600*24;
301template<
class TypeTag>
302struct NewtonTolerance<TypeTag, TTag::FlowBaseProblem> {
303 using type = GetPropType<TypeTag, Scalar>;
304 static constexpr type value = 1e-2;
308template<
class TypeTag>
309struct EnableVtkOutput<TypeTag, TTag::FlowBaseProblem> {
310 static constexpr bool value =
false;
314template<
class TypeTag>
316 static constexpr bool value =
true;
320template<
class TypeTag>
322 static constexpr bool value =
false;
325template<
class TypeTag>
326struct DamarisOutputHdfCollective<TypeTag, TTag::FlowBaseProblem> {
327 static constexpr bool value =
true;
330template<
class TypeTag>
331struct DamarisSaveMeshToHdf<TypeTag, TTag::FlowBaseProblem> {
332 static constexpr bool value =
false;
335template<
class TypeTag>
336struct DamarisSaveToHdf<TypeTag, TTag::FlowBaseProblem> {
337 static constexpr bool value =
true;
340template<
class TypeTag>
341struct DamarisPythonScript<TypeTag, TTag::FlowBaseProblem> {
342 static constexpr auto value =
"";
345template<
class TypeTag>
346struct DamarisPythonParaviewScript<TypeTag, TTag::FlowBaseProblem> {
347 static constexpr auto value =
"";
350template<
class TypeTag>
351struct DamarisSimName<TypeTag, TTag::FlowBaseProblem> {
352 static constexpr auto value =
"";
361template<
class TypeTag>
362struct DamarisDedicatedCores<TypeTag, TTag::FlowBaseProblem> {
363 static constexpr int value = 1;
366template<
class TypeTag>
367struct DamarisDedicatedNodes<TypeTag, TTag::FlowBaseProblem> {
368 static constexpr int value = 0;
371template<
class TypeTag>
372struct DamarisSharedMemoryName<TypeTag, TTag::FlowBaseProblem> {
373 static constexpr auto value =
"" ;
376template<
class TypeTag>
377struct DamarisSharedMemorySizeBytes<TypeTag, TTag::FlowBaseProblem> {
378 static constexpr long value = 536870912;
381template<
class TypeTag>
382struct DamarisLogLevel<TypeTag, TTag::FlowBaseProblem> {
383 static constexpr auto value =
"info";
386template<
class TypeTag>
387struct DamarisDaskFile<TypeTag, TTag::FlowBaseProblem> {
388 static constexpr auto value =
"";
392template<
class TypeTag>
394 static constexpr bool value =
true;
398template<
class TypeTag>
400 static constexpr bool value =
false;
404template<
class TypeTag>
406 static constexpr bool value =
false;
410template<
class TypeTag>
411struct OutputDir<TypeTag, TTag::FlowBaseProblem> {
412 static constexpr auto value =
".";
417template<
class TypeTag>
418struct EnableIntensiveQuantityCache<TypeTag, TTag::FlowBaseProblem> {
419 static constexpr bool value =
true;
423template<
class TypeTag>
424struct EnableStorageCache<TypeTag, TTag::FlowBaseProblem> {
425 static constexpr bool value =
true;
429template<
class TypeTag>
430struct FluxModule<TypeTag, TTag::FlowBaseProblem> {
435template<
class TypeTag>
436struct GradientCalculator<TypeTag, TTag::FlowBaseProblem> {
442template<
class TypeTag>
444 static constexpr int value = 0xffffff;
450template<
class TypeTag>
452 static constexpr bool value =
true;
456template<
class TypeTag>
458 static constexpr bool value =
true;
462template<
class TypeTag>
463struct EnableTemperature<TypeTag, TTag::FlowBaseProblem> {
464 static constexpr bool value =
true;
467template<
class TypeTag>
468struct EnableMech<TypeTag, TTag::FlowBaseProblem> {
469 static constexpr bool value =
false;
473template<
class TypeTag>
474struct EnablePolymer<TypeTag, TTag::FlowBaseProblem> {
475 static constexpr bool value =
false;
477template<
class TypeTag>
478struct EnableSolvent<TypeTag, TTag::FlowBaseProblem> {
479 static constexpr bool value =
false;
481template<
class TypeTag>
482struct EnableEnergy<TypeTag, TTag::FlowBaseProblem> {
483 static constexpr bool value =
false;
485template<
class TypeTag>
486struct EnableFoam<TypeTag, TTag::FlowBaseProblem> {
487 static constexpr bool value =
false;
489template<
class TypeTag>
490struct EnableExtbo<TypeTag, TTag::FlowBaseProblem> {
491 static constexpr bool value =
false;
493template<
class TypeTag>
494struct EnableMICP<TypeTag, TTag::FlowBaseProblem> {
495 static constexpr bool value =
false;
499template<
class TypeTag>
501 static constexpr bool value =
false;
506template<
class TypeTag>
507struct EnableExperiments<TypeTag, TTag::FlowBaseProblem> {
508 static constexpr bool value =
false;
511template<
class TypeTag>
513 static constexpr auto value =
"all";
516template<
class TypeTag>
518 static constexpr int value = ParserKeywords::EQLDIMS::DEPTH_NODES_P::defaultValue;
521template<
class TypeTag>
523 static constexpr bool value =
false;
This file contains the flux module which is used for flow problems.
The base class which specifies the API of aquifer models.
Definition: BaseAquiferModel.hpp:50
This is a "dummy" gradient calculator which does not do anything.
Definition: DummyGradientCalculator.hpp:50
Definition: FIBlackoilModel.hpp:44
This problem simulates an input file given in the data format used by the commercial ECLiPSE simulato...
Definition: FlowProblem.hpp:112
Definition: AluGridVanguard.hpp:57
Definition: BlackoilPhases.hpp:27
Specifies a flux module which uses ECL transmissibilities.
Definition: NewTranFluxModule.hpp:67
Definition: FlowProblemProperties.hpp:118
UndefinedProperty type
Definition: FlowProblemProperties.hpp:119
FvBaseDiscretizationNoAdapt< TypeTag > type
Definition: FlowProblemProperties.hpp:164
FvBaseDiscretization< TypeTag > BaseDiscretization
Definition: FlowProblemProperties.hpp:169
typename BaseDiscretization::BlockVectorWrapper type
Definition: FlowProblemProperties.hpp:170
Definition: EclWriter.hpp:64
Definition: FlowProblemProperties.hpp:112
UndefinedProperty type
Definition: FlowProblemProperties.hpp:113
Definition: EclWriter.hpp:60
Definition: DamarisProperties.hpp:39
Definition: FlowProblemProperties.hpp:98
UndefinedProperty type
Definition: FlowProblemProperties.hpp:99
Definition: FlowProblemProperties.hpp:90
UndefinedProperty type
Definition: FlowProblemProperties.hpp:91
Definition: EclWriter.hpp:56
Definition: EclWriter.hpp:68
Definition: FlowProblemProperties.hpp:105
UndefinedProperty type
Definition: FlowProblemProperties.hpp:106
Definition: FlowProblemProperties.hpp:77
UndefinedProperty type
Definition: FlowProblemProperties.hpp:78
GetPropType< TypeTag, Scalar > type
Definition: FlowProblemProperties.hpp:285
Definition: FlowProblemProperties.hpp:133
UndefinedProperty type
Definition: FlowProblemProperties.hpp:134
typename GetPropType< TypeTag, Properties::Grid >::LeafGridView type
Definition: FlowProblemProperties.hpp:176
GetPropType< TypeTag, Scalar > type
Definition: FlowProblemProperties.hpp:296
TTag::AutoDiffLocalLinearizer type
Definition: FlowProblemProperties.hpp:159
::Opm::EclMaterialLawManager< Traits > EclMaterialLawManager
Definition: FlowProblemProperties.hpp:193
typename EclMaterialLawManager::MaterialLaw type
Definition: FlowProblemProperties.hpp:195
GetPropType< TypeTag, Scalar > type
Definition: FlowProblemProperties.hpp:303
Definition: FlowProblemProperties.hpp:128
UndefinedProperty type
Definition: FlowProblemProperties.hpp:129
Definition: FlowProblemProperties.hpp:123
UndefinedProperty type
Definition: FlowProblemProperties.hpp:124
Definition: FlowProblemProperties.hpp:83
UndefinedProperty type
Definition: FlowProblemProperties.hpp:84
typename EclThermalLawManager::SolidEnergyLaw type
Definition: FlowProblemProperties.hpp:209
::Opm::EclThermalLawManager< Scalar, FluidSystem > EclThermalLawManager
Definition: FlowProblemProperties.hpp:207
TTag::EcfvDiscretization type
Definition: FlowProblemProperties.hpp:153
EcfvStencil< Scalar, GridView, false, false > type
Definition: FlowProblemProperties.hpp:239
Definition: FlowProblemProperties.hpp:63
std::tuple< VtkTracer, OutputBlackOil, CpGridVanguard > InheritsFrom
Definition: FlowProblemProperties.hpp:64
::Opm::EclThermalLawManager< Scalar, FluidSystem > EclThermalLawManager
Definition: FlowProblemProperties.hpp:221
typename EclThermalLawManager::ThermalConductionLaw type
Definition: FlowProblemProperties.hpp:223
Definition: FlowProblemProperties.hpp:70
UndefinedProperty type
Definition: FlowProblemProperties.hpp:71