27#ifndef OPM_ECL_TWO_PHASE_MATERIAL_PARAMS_HPP
28#define OPM_ECL_TWO_PHASE_MATERIAL_PARAMS_HPP
36enum class EclTwoPhaseApproach {
49template<
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; }
128 template<
class Serializer>
133 serializer(*gasOilParams_);
134 serializer(*oilWaterParams_);
135 serializer(*gasWaterParams_);
138 void setSwl(Scalar) {}
141 EclTwoPhaseApproach approach_;
143 std::shared_ptr<GasOilParams> gasOilParams_;
144 std::shared_ptr<OilWaterParams> oilWaterParams_;
145 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
void setGasOilParams(std::shared_ptr< GasOilParams > val)
Set the parameter object for the gas-oil twophase law.
Definition EclTwoPhaseMaterialParams.hpp:89
const GasWaterParams & gasWaterParams() const
The parameter object for the gas-water twophase law.
Definition EclTwoPhaseMaterialParams.hpp:113
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
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 OilWaterParams & oilWaterParams() const
The parameter object for the oil-water twophase law.
Definition EclTwoPhaseMaterialParams.hpp:95
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
Class for (de-)serializing.
Definition Serializer.hpp:84
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30