Adding PLYSHLOG related to PolymerProperies.

This commit is contained in:
Kai Bao 2015-06-02 14:17:41 +02:00
parent 39ec480ce2
commit db420faf75
2 changed files with 88 additions and 1 deletions

View File

@ -69,6 +69,38 @@ namespace Opm
return water_vel_vals_;
}
const std::vector<double>&
PolymerProperties::shearViscosityReductionFactor() const
{
return shear_vrf_vals_;
}
double PolymerProperties:: plyshlogRefConc() const
{
return plyshlog_ref_conc_;
}
bool PolymerProperties::hasPlyshlogRefSalinity() const
{
return has_plyshlog_ref_salinity_;
}
bool PolymerProperties::hasPlyshlogRefTemp() const
{
return has_plyshlog_ref_temp_;
}
double PolymerProperties::plyshlogRefSalinity() const
{
return plyshlog_ref_salinity_;
}
double PolymerProperties::plyshlogRefTemp() const
{
return plyshlog_ref_temp_;
}
double
PolymerProperties::shearVrf(const double velocity) const
{

View File

@ -153,6 +153,32 @@ namespace Opm
c_vals_ads_ = plyadsTable.getPolymerConcentrationColumn();
ads_vals_ = plyadsTable.getAdsorbedPolymerColumn();
plyshlog_ = deck->hasKeyword("PLYSHLOG");
if(plyshlog_){
// Assuming NTPVT == 1 always due to the limitation of the parser
const auto& plyshlogTable = eclipseState->getPlyshlogTables()[0];
water_vel_vals_ = plyshlogTable.getWaterVelocityColumn();
shear_vrf_vals_ = plyshlogTable.getShearMultiplierColumn();
plyshlog_ref_conc_ = plyshlogTable.getRefPolymerConcentration();
if(plyshlogTable.hasRefSalinity()) {
has_plyshlog_ref_salinity_ = true;
plyshlog_ref_salinity_ = plyshlogTable.getRefSalinity();
} else {
has_plyshlog_ref_salinity_ = false;
}
if(plyshlogTable.hasRefTemperature()) {
has_plyshlog_ref_temp_ = true;
plyshlog_ref_temp_ = plyshlogTable.getRefTemperature();
} else {
has_plyshlog_ref_temp_ = false;
}
}
}
double cMax() const;
@ -169,8 +195,27 @@ namespace Opm
int adsIndex() const;
/// the water velocity or water shear rate in PLYSHLOG table
const std::vector<double>& shearWaterVelocity() const;
/// the viscosity reduction factor PLYSHLOG table
const std::vector<double>& shearViscosityReductionFactor() const;
/// the reference polymer concentration in PLYSHLOG
double plyshlogRefConc() const;
/// indicate wheter reference salinity is specified in PLYSHLOG
bool hasPlyshlogRefSalinity() const;
/// indicate whether reference temperature is specified in PLYSHLOG
bool hasPlyshlogRefTemp() const;
/// the reference salinity in PLYSHLOG
double plyshlogRefSalinity() const;
/// the reference temperature in PLYSHLOG
double plyshlogRefTemp() const;
double shearVrf(const double velocity) const;
double shearVrfWithDer(const double velocity, double& der) const;
@ -279,6 +324,8 @@ namespace Opm
double dead_pore_vol_;
double res_factor_;
double c_max_ads_;
bool plyshlog_;
AdsorptionBehaviour ads_index_;
std::vector<double> c_vals_visc_;
std::vector<double> visc_mult_vals_;
@ -286,6 +333,14 @@ namespace Opm
std::vector<double> ads_vals_;
std::vector<double> water_vel_vals_;
std::vector<double> shear_vrf_vals_;
double plyshlog_ref_conc_;
double plyshlog_ref_salinity_;
double plyshlog_ref_temp_;
bool has_plyshlog_ref_salinity_;
bool has_plyshlog_ref_temp_;
void simpleAdsorptionBoth(double c, double& c_ads,
double& dc_ads_dc, bool if_with_der) const;
void adsorptionBoth(double c, double cmax,