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_DEFAULT_MATERIAL_PARAMS_HPP
00028 #define OPM_ECL_DEFAULT_MATERIAL_PARAMS_HPP
00029
00030 #include <type_traits>
00031 #include <cassert>
00032 #include <memory>
00033
00034 #include <opm/material/common/EnsureFinalized.hpp>
00035
00036 namespace Opm {
00037
00046 template<class Traits, class GasOilParamsT, class OilWaterParamsT>
00047 class EclDefaultMaterialParams : 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 EclDefaultMaterialParams()
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
00129 bool inconsistentHysteresisUpdate() const
00130 { return true; }
00131
00132 private:
00133 std::shared_ptr<GasOilParams> gasOilParams_;
00134 std::shared_ptr<OilWaterParams> oilWaterParams_;
00135
00136 Scalar Swl_;
00137 };
00138 }
00139
00140 #endif