00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00027 #ifndef OPM_ECL_STONE2_MATERIAL_PARAMS_HPP
00028 #define OPM_ECL_STONE2_MATERIAL_PARAMS_HPP
00029
00030 #include <opm/material/common/EnsureFinalized.hpp>
00031
00032 #include <type_traits>
00033 #include <cassert>
00034 #include <memory>
00035
00036 namespace Opm {
00037
00046 template<class Traits, class GasOilParamsT, class OilWaterParamsT>
00047 class EclStone2MaterialParams : public EnsureFinalized
00048 {
00049 typedef typename Traits::Scalar Scalar;
00050 enum { numPhases = 3 };
00051 public:
00052 using EnsureFinalized :: finalize;
00053
00054 typedef GasOilParamsT GasOilParams;
00055 typedef OilWaterParamsT OilWaterParams;
00056
00060 EclStone2MaterialParams()
00061 {
00062 }
00063
00067 const GasOilParams& gasOilParams() const
00068 { EnsureFinalized::check(); return *gasOilParams_; }
00069
00073 GasOilParams& gasOilParams()
00074 { EnsureFinalized::check(); return *gasOilParams_; }
00075
00079 void setGasOilParams(std::shared_ptr<GasOilParams> val)
00080 { gasOilParams_ = val; }
00081
00085 const OilWaterParams& oilWaterParams() const
00086 { EnsureFinalized::check(); return *oilWaterParams_; }
00087
00091 OilWaterParams& oilWaterParams()
00092 { EnsureFinalized::check(); return *oilWaterParams_; }
00093
00097 void setOilWaterParams(std::shared_ptr<OilWaterParams> val)
00098 { oilWaterParams_ = val; }
00099
00111 void setSwl(Scalar val)
00112 { Swl_ = val; }
00113
00117 Scalar Swl() const
00118 { EnsureFinalized::check(); return Swl_; }
00119
00120 private:
00121 std::shared_ptr<GasOilParams> gasOilParams_;
00122 std::shared_ptr<OilWaterParams> oilWaterParams_;
00123
00124 Scalar Swl_;
00125 };
00126 }
00127
00128 #endif