opm-simulators
BlackoilModelProperties.hpp
1 /*
2  Copyright 2013, 2015 SINTEF ICT, Applied Mathematics.
3  Copyright 2014, 2015 Dr. Blatt - HPC-Simulation-Software & Services
4  Copyright 2014, 2015 Statoil ASA.
5  Copyright 2015 NTNU
6  Copyright 2015, 2016, 2017 IRIS AS
7 
8  This file is part of the Open Porous Media project (OPM).
9 
10  OPM is free software: you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation, either version 3 of the License, or
13  (at your option) any later version.
14 
15  OPM is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with OPM. If not, see <http://www.gnu.org/licenses/>.
22 */
23 
24 #ifndef OPM_BLACKOILMODEL_PROPERTIES_HEADER_INCLUDED
25 #define OPM_BLACKOILMODEL_PROPERTIES_HEADER_INCLUDED
26 
28 #include <tuple>
29 
30 namespace Opm {
31 template<class TypeTag> class BlackoilAquiferModel;
32 template<class TypeTag> class BlackoilWellModel;
33 }
34 
35 namespace Opm::Properties {
36 
37 namespace TTag {
38 
39 struct FlowIstlSolver;
40 struct FlowBaseProblemBlackoil;
41 struct FlowProblem { using InheritsFrom = std::tuple<FlowBaseProblemBlackoil, BlackOilModel>; };
42 
43 }
44 
45 // default in flow is to formulate the equations in surface volumes
46 template<class TypeTag>
48 { static constexpr bool value = true; };
49 
50 template<class TypeTag>
51 struct UseVolumetricResidual<TypeTag, TTag::FlowProblem>
52 { static constexpr bool value = false; };
53 
54 template<class TypeTag>
55 struct AquiferModel<TypeTag, TTag::FlowProblem>
57 
58 // disable all extensions supported by black oil model. this should not really be
59 // necessary but it makes things a bit more explicit
60 template<class TypeTag>
61 struct EnablePolymer<TypeTag, TTag::FlowProblem>
62 { static constexpr bool value = false; };
63 
64 template<class TypeTag>
65 struct EnableSolvent<TypeTag, TTag::FlowProblem>
66 { static constexpr bool value = false; };
67 
68 template<class TypeTag>
69 struct EnableFoam<TypeTag, TTag::FlowProblem>
70 { static constexpr bool value = false; };
71 
72 template<class TypeTag>
73 struct EnableBrine<TypeTag, TTag::FlowProblem>
74 { static constexpr bool value = false; };
75 
76 template<class TypeTag>
77 struct EnableSaltPrecipitation<TypeTag, TTag::FlowProblem>
78 { static constexpr bool value = false; };
79 
80 template<class TypeTag>
81 struct EnableBioeffects<TypeTag, TTag::FlowProblem>
82 { static constexpr bool value = false; };
83 
84 template<class TypeTag>
85 struct EnableDispersion<TypeTag, TTag::FlowProblem>
86 { static constexpr bool value = false; };
87 
88 template<class TypeTag>
89 struct EnableConvectiveMixing<TypeTag, TTag::FlowProblem>
90 { static constexpr bool value = true; };
91 
92 template<class TypeTag>
93 struct WellModel<TypeTag, TTag::FlowProblem>
94 { using type = BlackoilWellModel<TypeTag>; };
95 
96 template<class TypeTag>
97 struct LinearSolverSplice<TypeTag, TTag::FlowProblem>
98 { using type = TTag::FlowIstlSolver; };
99 
100 template<class TypeTag>
101 struct EnableDebuggingChecks<TypeTag, TTag::FlowProblem>
102 { static constexpr bool value = false; };
103 
104 } // namespace Opm::Properties
105 
106 #endif // OPM_BLACKOILMODEL_PROPERTIES_HEADER_INCLUDED
Enable dispersive fluxes?
Definition: multiphasebaseproperties.hh:95
Definition: FlowBaseProblemProperties.hpp:68
This problem simulates an input file given in the data format used by the commercial ECLiPSE simulato...
Definition: FlowProblem.hpp:92
Class for handling the blackoil well model.
Definition: BlackoilModelProperties.hpp:32
Enable the ECL-blackoil extension for polymer.
Definition: blackoilproperties.hh:51
Class for handling the blackoil aquifer model.
Definition: BlackoilAquiferModel.hpp:49
Definition: BlackoilModelProperties.hpp:41
Enable the ECL-blackoil extension for salt precipitation.
Definition: blackoilproperties.hh:71
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: blackoilbioeffectsmodules.hh:45
Enable the ECL-blackoil extension for solvents. ("Second gas")
Definition: blackoilproperties.hh:43
Enable the ECL-blackoil extension for foam.
Definition: blackoilproperties.hh:63
Definition: FlowBaseProblemProperties.hpp:98
Enable the ECL-blackoil extension for bioeffects (biofilm/MICP)
Definition: blackoilproperties.hh:83
Definition: fvbaseproperties.hh:53
Enable surface volume scaling.
Definition: blackoilproperties.hh:59
Definition: FlowBaseProblemProperties.hpp:79
Enable the ECL-blackoil extension for salt.
Definition: blackoilproperties.hh:67
Definition: blackoilmodel.hh:80
Definition: ISTLSolver.hpp:68
Enable convective mixing?
Definition: multiphasebaseproperties.hh:99
Specify whether to use volumetric residuals or not.
Definition: fvbaseproperties.hh:241