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_SOMERTON_PARAMS_HPP
00028 #define OPM_SOMERTON_PARAMS_HPP
00029
00030 #include <cassert>
00031
00032 namespace Opm {
00033
00038 template <unsigned numPhases, class ScalarT>
00039 class SomertonParams
00040 {
00041
00042 SomertonParams(const SomertonParams&)
00043 {}
00044
00045 public:
00046 typedef ScalarT Scalar;
00047
00048 SomertonParams()
00049 { }
00050
00058 Scalar fullySaturatedLambda(unsigned phaseIdx) const
00059 {
00060 assert(0 <= phaseIdx && phaseIdx < numPhases);
00061
00062 return fullySaturatedLambda_[phaseIdx];
00063 }
00064
00072 void setFullySaturatedLambda(unsigned phaseIdx, Scalar value)
00073 {
00074 assert(0 <= phaseIdx && phaseIdx < numPhases);
00075 assert(value > 0);
00076
00077 fullySaturatedLambda_[phaseIdx] = value;
00078 }
00079
00084 Scalar vacuumLambda() const
00085 {
00086 return vacuumLambda_;
00087 }
00088
00096 void setVacuumLambda(Scalar value)
00097 {
00098 assert(value > 0);
00099
00100 vacuumLambda_ = value;
00101 }
00102
00103 private:
00104 Scalar fullySaturatedLambda_[numPhases];
00105 Scalar vacuumLambda_;
00106 };
00107
00108 }
00109
00110 #endif