Exemplo n.º 1
0
 void PolymerProperties::effectiveRelpermBoth(const double c,
                                              const double cmax,
                                              const double* relperm,
                                              const double* drelperm_ds,
                                              double& eff_relperm_wat,
                                              double& deff_relperm_wat_ds,
                                              double& deff_relperm_wat_dc,
                                              bool if_with_der) const {
     double c_ads;
     double dc_ads_dc;
     adsorptionBoth(c, cmax, c_ads, dc_ads_dc, if_with_der);
     double rk = 1 + (res_factor_ - 1)*c_ads/c_max_ads_;
     eff_relperm_wat = relperm[0]/rk;
     if (if_with_der) {
         deff_relperm_wat_ds = (drelperm_ds[0]-drelperm_ds[2])/rk; //derivative with respect to sw
         deff_relperm_wat_dc = dc_ads_dc*relperm[0]/(rk*rk*c_max_ads_);
     } else {
         deff_relperm_wat_ds = -1.0;
         deff_relperm_wat_dc = -1.0;
     }
 }
Exemplo n.º 2
0
void PolymerProperties::effectiveRelpermBoth(const double c,
        const double cmax,
        const double* relperm,
        const double* drelperm_ds,
        double& eff_relperm_wat,
        double& deff_relperm_wat_ds,
        double& deff_relperm_wat_dc,
        bool if_with_der) const {
    double c_ads;
    double dc_ads_dc;
    adsorptionBoth(c, cmax, c_ads, dc_ads_dc, if_with_der);
    double rk = 1 + (res_factor_ - 1)*c_ads/c_max_ads_;
    eff_relperm_wat = relperm[0]/rk;
    if (if_with_der) {
        deff_relperm_wat_ds = (drelperm_ds[0]-drelperm_ds[2])/rk; //derivative with respect to sw
        //\frac{\partial k_{rw_eff}}{\parital c} = -\frac{krw}{rk^2}\frac{(RRF-1)}{c^a_{max}}\frac{\partial c^a}{\partial c}.
        deff_relperm_wat_dc = -(res_factor_ - 1)*dc_ads_dc*relperm[0]/(rk*rk*c_max_ads_);
    } else {
        deff_relperm_wat_ds = -1.0;
        deff_relperm_wat_dc = -1.0;
    }
}
Exemplo n.º 3
0
 void PolymerProperties::adsorption(double c, double cmax, double& c_ads) const
 {
     double dummy;
     adsorptionBoth(c, cmax, c_ads, dummy, false);
 }
Exemplo n.º 4
0
 void PolymerProperties::adsorptionWithDer(double c, double cmax,
                                           double& c_ads, double& dc_ads_dc) const
 {
     adsorptionBoth(c, cmax, c_ads, dc_ads_dc, true);
 }