27 #ifndef OPM_ECL_TWO_PHASE_MATERIAL_PARAMS_HPP
28 #define OPM_ECL_TWO_PHASE_MATERIAL_PARAMS_HPP
36 enum class EclTwoPhaseApproach {
49 template<
class Traits,
class GasOilParamsT,
class OilWaterParamsT,
class GasWaterParamsT>
52 using Scalar =
typename Traits::Scalar;
53 enum { numPhases = 3 };
57 using GasOilParams = GasOilParamsT;
58 using OilWaterParams = OilWaterParamsT;
59 using GasWaterParams = GasWaterParamsT;
68 void setApproach(EclTwoPhaseApproach newApproach)
69 { approach_ = newApproach; }
71 EclTwoPhaseApproach approach()
const
78 { EnsureFinalized::check();
return *gasOilParams_; }
84 { EnsureFinalized::check();
return *gasOilParams_; }
90 { gasOilParams_ = val; }
96 { EnsureFinalized::check();
return *oilWaterParams_; }
102 { EnsureFinalized::check();
return *oilWaterParams_; }
108 { oilWaterParams_ = val; }
114 { EnsureFinalized::check();
return *gasWaterParams_; }
120 { EnsureFinalized::check();
return *gasWaterParams_; }
126 { gasWaterParams_ = val; }
129 EclTwoPhaseApproach approach_;
131 std::shared_ptr<GasOilParams> gasOilParams_;
132 std::shared_ptr<OilWaterParams> oilWaterParams_;
133 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:51
void setGasWaterParams(std::shared_ptr< GasWaterParams > val)
Set the parameter object for the gas-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:125
const GasOilParams & gasOilParams() const
The parameter object for the gas-oil twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:77
OilWaterParams & oilWaterParams()
The parameter object for the oil-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:101
void setGasOilParams(std::shared_ptr< GasOilParams > val)
Set the parameter object for the gas-oil twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:89
const OilWaterParams & oilWaterParams() const
The parameter object for the oil-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:95
GasWaterParams & gasWaterParams()
The parameter object for the gas-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:119
void setOilWaterParams(std::shared_ptr< OilWaterParams > val)
Set the parameter object for the oil-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:107
EclTwoPhaseMaterialParams()
The default constructor.
Definition: EclTwoPhaseMaterialParams.hpp:64
const GasWaterParams & gasWaterParams() const
The parameter object for the gas-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:113
GasOilParams & gasOilParams()
The parameter object for the gas-oil twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:83
Default implementation for asserting finalization of parameter objects.
Definition: EnsureFinalized.hpp:47
void finalize()
Mark the object as finalized.
Definition: EnsureFinalized.hpp:75