27 #ifndef OPM_ECL_TWO_PHASE_MATERIAL_PARAMS_HPP
28 #define OPM_ECL_TWO_PHASE_MATERIAL_PARAMS_HPP
30 #include <type_traits>
37 enum class EclTwoPhaseApproach {
50 template<
class Traits,
class GasOilParamsT,
class OilWaterParamsT,
class GasWaterParamsT>
53 typedef typename Traits::Scalar Scalar;
54 enum { numPhases = 3 };
59 typedef GasOilParamsT GasOilParams;
60 typedef OilWaterParamsT OilWaterParams;
61 typedef GasWaterParamsT GasWaterParams;
70 void setApproach(EclTwoPhaseApproach newApproach)
71 { approach_ = newApproach; }
73 EclTwoPhaseApproach approach()
const
80 { EnsureFinalized::check();
return *gasOilParams_; }
86 { EnsureFinalized::check();
return *gasOilParams_; }
92 { gasOilParams_ = val; }
98 { EnsureFinalized::check();
return *oilWaterParams_; }
104 { EnsureFinalized::check();
return *oilWaterParams_; }
110 { oilWaterParams_ = val; }
116 { EnsureFinalized::check();
return *gasWaterParams_; }
122 { EnsureFinalized::check();
return *gasWaterParams_; }
128 { gasWaterParams_ = val; }
131 EclTwoPhaseApproach approach_;
133 std::shared_ptr<GasOilParams> gasOilParams_;
134 std::shared_ptr<OilWaterParams> oilWaterParams_;
135 std::shared_ptr<GasWaterParams> gasWaterParams_;
Default implementation for asserting finalization of parameter objects.
Implementation for the parameters required by the material law for two-phase simulations.
Definition: EclTwoPhaseMaterialParams.hpp:52
void setGasWaterParams(std::shared_ptr< GasWaterParams > val)
Set the parameter object for the gas-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:127
const GasOilParams & gasOilParams() const
The parameter object for the gas-oil twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:79
OilWaterParams & oilWaterParams()
The parameter object for the oil-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:103
void setGasOilParams(std::shared_ptr< GasOilParams > val)
Set the parameter object for the gas-oil twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:91
const OilWaterParams & oilWaterParams() const
The parameter object for the oil-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:97
GasWaterParams & gasWaterParams()
The parameter object for the gas-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:121
void setOilWaterParams(std::shared_ptr< OilWaterParams > val)
Set the parameter object for the oil-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:109
EclTwoPhaseMaterialParams()
The default constructor.
Definition: EclTwoPhaseMaterialParams.hpp:66
const GasWaterParams & gasWaterParams() const
The parameter object for the gas-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:115
GasOilParams & gasOilParams()
The parameter object for the gas-oil twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:85
Default implementation for asserting finalization of parameter objects.
Definition: EnsureFinalized.hpp:47
void finalize()
Mark the object as finalized.
Definition: EnsureFinalized.hpp:75