Beispiel #1
0
    Evaluation saturatedInverseFormationVolumeFactor(unsigned regionIdx,
                                                     const Evaluation& temperature,
                                                     const Evaluation& pressure) const
    {
        const auto& b =
            isothermalPvt_->saturatedInverseFormationVolumeFactor(regionIdx, temperature, pressure);
        if (!enableThermalDensity())
            return b;

        // the Eclipse TD/RM do not explicitly specify the relation of the gas
        // density and the temperature, but equation (69.49) (for Eclipse 2011.1)
        // implies that the temperature dependence of the gas phase is rho(T, p) =
        // rho(tref_, p)*T/T_ref ...
        return b*temperature/refTemp_;
    }
Beispiel #2
0
    Evaluation inverseFormationVolumeFactor(unsigned regionIdx,
                                            const Evaluation& temperature,
                                            const Evaluation& pressure) const
    {
        if (!enableThermalDensity())
            return isothermalPvt_->inverseFormationVolumeFactor(regionIdx, temperature, pressure);

        Scalar BwRef = pvtwRefB_[regionIdx];
        Scalar TRef = watdentRefTemp_[regionIdx];
        const Evaluation& X = pvtwCompressibility_[regionIdx]*(pressure - pvtwRefPress_[regionIdx]);
        Scalar cT1 = watdentCT1_[regionIdx];
        Scalar cT2 = watdentCT2_[regionIdx];
        const Evaluation& Y = temperature - TRef;

        return ((1 - X)*(1 + cT1*Y + cT2*Y*Y))/BwRef;
    }
Beispiel #3
0
    Evaluation saturatedInverseFormationVolumeFactor(unsigned regionIdx,
            const Evaluation& temperature,
            const Evaluation& pressure) const
    {
        const auto& b =
            isothermalPvt_->saturatedInverseFormationVolumeFactor(regionIdx, temperature, pressure);
        if (!enableThermalDensity())
            return b;

        // we use equation (3.208) from the Eclipse 2011.1 Reference Manual, but we
        // calculate rho_ref using the isothermal keyword instead of using the value for
        // the components, so the oil compressibility is already dealt with there. Note
        // that we only do the part for the oil component here, the part for dissolved
        // gas is ignored so far.
        const auto& alpha = 1.0/(1 + thermex1_*(temperature - refTemp_));
        return alpha*b;
    }