예제 #1
0
void PolymerProperties::adsorptionBoth(double c, double cmax,
                                       double& c_ads, double& dc_ads_dc,
                                       bool if_with_der) const
{
    if (ads_index_ == Desorption) {
        simpleAdsorptionBoth(c, c_ads, dc_ads_dc, if_with_der);
    } else if (ads_index_ == NoDesorption) {
        simpleAdsorptionBoth(std::max(c, cmax), c_ads, dc_ads_dc, if_with_der);
    } else {
        OPM_THROW(std::runtime_error, "Invalid Adsoption index");
    }
}
예제 #2
0
 void PolymerProperties::adsorptionBoth(double c, double cmax,
                                        double& c_ads, double& dc_ads_dc,
                                        bool if_with_der) const
 {
     if (ads_index_ == Desorption) {
         simpleAdsorptionBoth(c, c_ads, dc_ads_dc, if_with_der);
     } else if (ads_index_ == NoDesorption) {
         if (c < cmax) {
             simpleAdsorption(cmax, c_ads);
             dc_ads_dc = 0.;
         } else {
             simpleAdsorptionBoth(c, c_ads, dc_ads_dc, if_with_der);
         }
     } else {
         THROW("Invalid Adsoption index");
     }
 }
예제 #3
0
 void PolymerProperties::simpleAdsorptionWithDer(double c, double& c_ads,
                                                 double& dc_ads_dc) const
 {
     simpleAdsorptionBoth(c, c_ads, dc_ads_dc, true);
 }
예제 #4
0
 void PolymerProperties::simpleAdsorption(double c, double& c_ads) const
 {
     double dummy;
     simpleAdsorptionBoth(c, c_ads, dummy, false);
 }