Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
 /// <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);   // Не работает
 }
Exemplo n.º 3
0
        /// <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;
        }
Exemplo n.º 4
0
 /// <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;
 }
Exemplo n.º 5
0
        /// <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;
        }
Exemplo n.º 6
0
 /// <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)
 {
 }