예제 #1
0
        /// <summary>
        /// Вычисление коэффициента s0 для обводнённой скважины
        /// Гриценко стр. 140
        /// </summary>
        /// <param name="gasFlow">Поток</param>
        /// <returns>Значение коэффициента s0</returns>
        private double CalcS0Coeff(GasFlow gasFlow, LiquidFlow liquidFlow)
        {
            double rho = gasFlow.RelativeDensity;
            double L   = Depth;
            double Z   = gasFlow.SupercompressibilityFactor;
            double T   = gasFlow.AvgTemperature;
            double gasContentParametr = Tubing.CalcGasContentParameter(gasFlow, liquidFlow.Rate, liquidFlow.Density);
            double s0 = 0.03415 * gasContentParametr * rho * L / (Z * T);

            return(s0);
        }
예제 #2
0
        /// <summary>
        /// Вычисление Тета коэффициента (обводненнная скважина)
        /// Гриценко стр. 141
        /// </summary>
        /// <param name="gasFlow">Поток протекающий по трубе</param>
        /// <param name="pipe">Труба</param>
        /// <returns>Значение Тета коэффициента</returns>
        public double CalcTetaCoeff(GasFlow gasFlow, LiquidFlow liquidFlow, double s0Coeff = 0)
        {
            double Z  = gasFlow.SupercompressibilityFactor;
            double T  = gasFlow.AvgTemperature;
            double D  = Diameter;
            double s0 = s0Coeff;

            if (s0Coeff == 0)
            {
                s0 = CalcS0Coeff(gasFlow, liquidFlow);
            }
            double lambda             = CalcHydraulicResistance(gasFlow);
            double gasContentParametr = Tubing.CalcGasContentParameter(gasFlow, liquidFlow.Rate, liquidFlow.Density);
            double Teta = 0.01413 * Math.Pow(10, -10) * Z * Z * T * T * (Math.Exp(2 * s0) - 1) * lambda
                          / (gasContentParametr * Math.Pow(D, 5));

            return(Teta);
        }