27 #ifndef OPM_ECL_TWO_PHASE_MATERIAL_PARAMS_HPP
28 #define OPM_ECL_TWO_PHASE_MATERIAL_PARAMS_HPP
30 #include <type_traits>
37 enum EclTwoPhaseApproach {
50 template<
class Traits,
class GasOilParamsT,
class OilWaterParamsT>
53 typedef typename Traits::Scalar Scalar;
54 enum { numPhases = 3 };
59 typedef GasOilParamsT GasOilParams;
60 typedef OilWaterParamsT OilWaterParams;
69 void setApproach(EclTwoPhaseApproach newApproach)
70 { approach_ = newApproach; }
72 EclTwoPhaseApproach approach()
const
79 { EnsureFinalized::check();
return *gasOilParams_; }
85 { EnsureFinalized::check();
return *gasOilParams_; }
91 { gasOilParams_ = val; }
97 { EnsureFinalized::check();
return *oilWaterParams_; }
103 { EnsureFinalized::check();
return *oilWaterParams_; }
109 { oilWaterParams_ = val; }
112 EclTwoPhaseApproach approach_;
114 std::shared_ptr<GasOilParams> gasOilParams_;
115 std::shared_ptr<OilWaterParams> oilWaterParams_;
EclTwoPhaseMaterialParams()
The default constructor.
Definition: EclTwoPhaseMaterialParams.hpp:65
const OilWaterParams & oilWaterParams() const
The parameter object for the oil-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:96
OilWaterParams & oilWaterParams()
The parameter object for the oil-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:102
GasOilParams & gasOilParams()
The parameter object for the gas-oil twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:84
const GasOilParams & gasOilParams() const
The parameter object for the gas-oil twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:78
Default implementation for asserting finalization of parameter objects.
void setGasOilParams(std::shared_ptr< GasOilParams > val)
Set the parameter object for the gas-oil twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:90
void finalize()
Mark the object as finalized.
Definition: EnsureFinalized.hpp:77
Implementation for the parameters required by the material law for two-phase simulations.
Definition: EclTwoPhaseMaterialParams.hpp:51
void setOilWaterParams(std::shared_ptr< OilWaterParams > val)
Set the parameter object for the oil-water twophase law.
Definition: EclTwoPhaseMaterialParams.hpp:108
Default implementation for asserting finalization of parameter objects.
Definition: EnsureFinalized.hpp:46