/// <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); }
/// <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); }