/// <summary> /// Задание компонентов сухой скважины /// </summary> /// <param name="wellheadPressure">Давление на устье (МПа)</param> /// <param name="wellheadTemperature">Температура на устье (К)</param> /// <param name="bottomholeTemperature">Температура на забое (К)</param> /// <param name="nglDensity">Плотность газового конденсата (кг/м3)</param> public void InitWell(double wellheadPressure, double wellheadTemperature, double bottomholeTemperature, double nglDensity) { if (wellheadPressure < PhysicalConstants.AtmosphericPressure || wellheadPressure > 100) { throw new ArgumentException("Устьевое давление должно быть меньше 100 МПа и больше атмосферного!"); } WellheadPressure = wellheadPressure; if (wellheadTemperature < 220 || wellheadTemperature > 400) { throw new ArgumentException("Устьевая температура должна быть меньше 400 К и больше 220 К !"); } WellheadTemperature = wellheadTemperature; if (bottomholeTemperature < 220 || bottomholeTemperature > 400) { throw new ArgumentException("Забойная температура должна быть меньше 400 К и больше 220 К !"); } BottomholeTemperature = bottomholeTemperature; Tubing = TubingBuilder.One.BuildTubing(); GasFluid = GasFluid.GetFluid(); Layer = LayerBuilder.One.BuildLayer(); NglFluid = new NaturalGasLiquidsFluid(nglDensity); }
/// <summary> /// Задание компонентов обводненной скважины /// </summary> /// <param name="wellheadPressure">Давление на устье (МПа)</param> /// <param name="wellheadTemperature">Температура на устье (К)</param> /// <param name="bottomholeTemperature">Температура на забое (К)</param> public void InitWell(double wellheadPressure, double wellheadTemperature, double bottomholeTemperature, double nglDensity, double waterDensity) { base.InitWell(wellheadPressure, wellheadTemperature, bottomholeTemperature, nglDensity); WaterFluid = new WaterFluid(waterDensity); // Не работает NglFluid = new NaturalGasLiquidsFluid(nglDensity); // Не работает }
/// <summary> /// Жидкостной поток /// </summary> /// <param name="nglDischarge">Расход газового конденсата (м3/сут)</param> /// <param name="nglDensity">Плотность газового конденсата (кг/м3)</param> public LiquidFlow(double nglDischarge, NaturalGasLiquidsFluid naturalGasLiquidsFluid) { NaturalGasLiquidsFluid = naturalGasLiquidsFluid; NaturalGasLiquidsRate = nglDischarge; Rate = NaturalGasLiquidsRate + WaterRate; Density = NaturalGasLiquidsFluid.Density; }
/// <summary> /// Сухая скважина /// </summary> /// <param name="layer">Пласт</param> /// <param name="gasFluid">Газовый флюид</param> /// <param name="tubing">Обсадная колонна и НКТ</param> /// <param name="wellheadPressure">Устьевое давление (МПа)</param> /// <param name="wellheadTemperature">Устьевая температура (К)</param> /// <param name="bottomholeTemperature">Забойная температура (К)</param> /// <param name="nglFluid">Флюид конденсата</param> public DryWell(Layer layer, GasFluid gasFluid, Tubing tubing, double wellheadPressure, double wellheadTemperature, double bottomholeTemperature, NaturalGasLiquidsFluid nglFluid) { Layer = layer; GasFluid = gasFluid; Tubing = tubing; WellheadPressure = wellheadPressure; WellheadTemperature = wellheadTemperature; BottomholeTemperature = bottomholeTemperature; NglFluid = nglFluid; }
/// <summary> /// Жидкостной поток /// </summary> /// <param name="nglRate">Расход газового конденсата (м3/сут)</param> /// <param name="naturalGasLiquidsFluid">Газовый конденсат</param> /// <param name="waterRate">Расход пластовой воды (м3/сут)</param> /// <param name="waterFluid">Водный конденсат</param> public LiquidFlow(double nglRate, NaturalGasLiquidsFluid naturalGasLiquidsFluid, double waterRate, WaterFluid waterFluid) { WaterFluid = waterFluid; NaturalGasLiquidsFluid = naturalGasLiquidsFluid; WaterRate = waterRate; NaturalGasLiquidsRate = nglRate; Rate = NaturalGasLiquidsRate + WaterRate; double k1 = NaturalGasLiquidsRate / Rate; double k2 = WaterRate / Rate; Density = k1 * NaturalGasLiquidsFluid.Density + k2 * WaterFluid.Density; }
/// <summary> /// Обводненная скважина /// </summary> /// <param name="layer">Пласт</param> /// <param name="gasFluid">Газовый флюид</param> /// <param name="tubing">Обсадная колонна и НКТ</param> /// <param name="wellheadPressure">Давление на устье (МПа)</param> /// <param name="wellheadTemperature">Температура на устье (К)</param> /// <param name="bottomholeTemperature">Температура на забое (К)</param> /// <param name="nglFluid">Флиюд газового конденсата</param> public WateredWell(Layer layer, GasFluid gasFluid, Tubing tubing, double wellheadPressure, double wellheadTemperature, double bottomholeTemperature, NaturalGasLiquidsFluid nglFluid) : base(layer, gasFluid, tubing, wellheadPressure, wellheadTemperature, bottomholeTemperature, nglFluid) { }