mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-12 02:55:38 -06:00
Introduced enum for adsorption behaviour to make code more self-documenting.
This commit is contained in:
parent
252fada2b4
commit
724645b3f8
@ -566,7 +566,7 @@ main(int argc, char** argv)
|
||||
double dead_pore_vol = param.getDefault("dead_pore_vol", 0.15);
|
||||
double res_factor = param.getDefault("res_factor", 1.) ; // res_factor = 1 gives no change in permeability
|
||||
double c_max_ads = param.getDefault("c_max_ads", 1.);
|
||||
int ads_index = param.getDefault("ads_index", 2);
|
||||
int ads_index = param.getDefault<int>("ads_index", Opm::PolymerProperties::NoDesorption);
|
||||
std::vector<double> c_vals_visc(2, -1e100);
|
||||
c_vals_visc[0] = 0.0;
|
||||
c_vals_visc[1] = 7.0;
|
||||
@ -584,7 +584,8 @@ main(int argc, char** argv)
|
||||
ads_vals[1] = 0.0015;
|
||||
ads_vals[2] = 0.0025;
|
||||
polyprop.set(c_max, mix_param, rock_density, dead_pore_vol, res_factor, c_max_ads,
|
||||
ads_index, c_vals_visc, visc_mult_vals, c_vals_ads, ads_vals);
|
||||
static_cast<Opm::PolymerProperties::AdsorptionBehaviour>(ads_index),
|
||||
c_vals_visc, visc_mult_vals, c_vals_ads, ads_vals);
|
||||
}
|
||||
|
||||
// Initialize polymer inflow function.
|
||||
|
@ -37,13 +37,15 @@ namespace Opm
|
||||
{
|
||||
}
|
||||
|
||||
enum AdsorptionBehaviour { Desorption = 1, NoDesorption = 2 };
|
||||
|
||||
PolymerProperties(double c_max,
|
||||
double mix_param,
|
||||
double rock_density,
|
||||
double dead_pore_vol,
|
||||
double res_factor,
|
||||
double c_max_ads,
|
||||
int ads_index,
|
||||
AdsorptionBehaviour ads_index,
|
||||
const std::vector<double>& c_vals_visc,
|
||||
const std::vector<double>& visc_mult_vals,
|
||||
const std::vector<double>& c_vals_ads,
|
||||
@ -74,7 +76,7 @@ namespace Opm
|
||||
double dead_pore_vol,
|
||||
double res_factor,
|
||||
double c_max_ads,
|
||||
int ads_index,
|
||||
AdsorptionBehaviour ads_index,
|
||||
const std::vector<double>& c_vals_visc,
|
||||
const std::vector<double>& visc_mult_vals,
|
||||
const std::vector<double>& c_vals_ads,
|
||||
@ -108,7 +110,7 @@ namespace Opm
|
||||
dead_pore_vol_ = plyrock[0];
|
||||
res_factor_ = plyrock[2];
|
||||
rock_density_ = plyrock[3];
|
||||
ads_index_ = plyrock[4];
|
||||
ads_index_ = static_cast<AdsorptionBehaviour>(plyrock[4]);
|
||||
c_max_ads_ = plyrock[5];
|
||||
|
||||
// We assume NTPVT=1
|
||||
@ -182,9 +184,9 @@ namespace Opm
|
||||
|
||||
double adsorption(double c, double cmax) const
|
||||
{
|
||||
if (ads_index_ == 1) {
|
||||
if (ads_index_ == Desorption) {
|
||||
return simpleAdsorption(c);
|
||||
} else if (ads_index_ == 2) {
|
||||
} else if (ads_index_ == NoDesorption) {
|
||||
return simpleAdsorption(std::max(c, cmax));
|
||||
} else {
|
||||
THROW("Invalid Adsoption index");
|
||||
@ -193,9 +195,9 @@ namespace Opm
|
||||
|
||||
double adsorptionWithDer(double c, double cmax, double* der) const
|
||||
{
|
||||
if (ads_index_ == 1) {
|
||||
if (ads_index_ == Desorption) {
|
||||
return simpleAdsorptionWithDer(c, der);
|
||||
} else if (ads_index_ == 2) {
|
||||
} else if (ads_index_ == NoDesorption) {
|
||||
if (c < cmax) {
|
||||
*der = 0;
|
||||
return simpleAdsorption(cmax);
|
||||
@ -277,7 +279,7 @@ namespace Opm
|
||||
double dead_pore_vol_;
|
||||
double res_factor_;
|
||||
double c_max_ads_;
|
||||
int ads_index_;
|
||||
AdsorptionBehaviour ads_index_;
|
||||
std::vector<double> c_vals_visc_;
|
||||
std::vector<double> visc_mult_vals_;
|
||||
std::vector<double> c_vals_ads_;
|
||||
|
Loading…
Reference in New Issue
Block a user