Class MultiphaseFlowIntegrator

java.lang.Object
neqsim.process.fielddevelopment.network.MultiphaseFlowIntegrator
All Implemented Interfaces:
Serializable

public class MultiphaseFlowIntegrator extends Object implements Serializable
Integrates field development with multiphase pipeline hydraulics.

Provides tight coupling between field development screening and detailed multiphase flow calculations. Used for tieback feasibility, pipeline sizing, and flow assurance analysis.

Capabilities

  • Pipeline pressure drop calculation using Beggs & Brill
  • Two-phase flow regime identification
  • Liquid holdup and velocity profiles
  • Arrival temperature prediction
  • Slug frequency estimation
  • Riser hydraulics for platform tie-in

Example Usage

MultiphaseFlowIntegrator integrator = new MultiphaseFlowIntegrator();

// Configure pipeline
integrator.setPipelineLength(25.0); // km
integrator.setPipelineDiameter(0.254); // 10 inch
integrator.setSeabedTemperature(4.0); // C
integrator.setOverallHeatTransferCoeff(5.0); // W/m2K

// Calculate hydraulics
PipelineResult result = integrator.calculateHydraulics(wellheadStream, 30.0);

System.out.println("Arrival pressure: " + result.getArrivalPressureBar() + " bara");
System.out.println("Arrival temperature: " + result.getArrivalTemperatureC() + " C");
System.out.println("Flow regime: " + result.getFlowRegime());
System.out.println("Liquid holdup: " + result.getLiquidHoldup());
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • logger

      private static final org.apache.logging.log4j.Logger logger
      Logger instance.
    • pipelineLengthKm

      private double pipelineLengthKm
      Pipeline length (km).
    • pipelineDiameterM

      private double pipelineDiameterM
      Pipeline inner diameter (m).
    • pipelineRoughnessM

      private double pipelineRoughnessM
      Pipeline roughness (m).
    • seabedTemperatureC

      private double seabedTemperatureC
      Seabed temperature (C).
    • overallHtcWm2K

      private double overallHtcWm2K
      Overall heat transfer coefficient (W/m2K).
    • elevationChangeM

      private double elevationChangeM
      Elevation change (m, positive = uphill).
    • numberOfSegments

      private int numberOfSegments
      Number of calculation segments.
    • minArrivalPressureBar

      private double minArrivalPressureBar
      Minimum arrival pressure (bara).
    • erosionalConstant

      private double erosionalConstant
      Erosional velocity constant (API RP 14E).
  • Constructor Details

    • MultiphaseFlowIntegrator

      public MultiphaseFlowIntegrator()
      Creates a new integrator with default parameters.
  • Method Details

    • calculateHydraulics

      public MultiphaseFlowIntegrator.PipelineResult calculateHydraulics(StreamInterface inlet, double arrivalPressureBar)
      Calculate pipeline hydraulics using Beggs and Brill correlation.
      Parameters:
      inlet - inlet stream
      arrivalPressureBar - required arrival pressure (bara)
      Returns:
      pipeline result
    • calculateHydraulicsCurve

      public List<MultiphaseFlowIntegrator.PipelineResult> calculateHydraulicsCurve(SystemInterface baseFluid, double inletPressureBar, double[] flowRatesKgHr)
      Calculate hydraulics for a range of flow rates.
      Parameters:
      baseFluid - base fluid composition
      inletPressureBar - inlet pressure
      flowRatesKgHr - array of flow rates to evaluate
      Returns:
      list of results for each flow rate
    • sizePipeline

      public double sizePipeline(StreamInterface inlet, double minArrivalP, double maxVelocityRatio)
      Size pipeline diameter for given constraints.
      Parameters:
      inlet - inlet stream
      minArrivalP - minimum arrival pressure (bara)
      maxVelocityRatio - maximum erosional velocity ratio
      Returns:
      recommended diameter in meters
    • estimateLiquidHoldup

      private double estimateLiquidHoldup(SystemInterface fluid, double mixVel)
      Estimate liquid holdup using simplified Beggs-Brill.
    • identifyFlowRegime

      private MultiphaseFlowIntegrator.FlowRegime identifyFlowRegime(SystemInterface fluid, double mixVel, double liquidHoldup)
      Identify flow regime.
    • calculateErosionalVelocity

      private double calculateErosionalVelocity(double mixtureDensity)
      Calculate erosional velocity (API RP 14E).
    • estimateSlugFrequency

      private double estimateSlugFrequency(double mixVel, double diameter)
      Estimate slug frequency (Gregory correlation).
    • checkFeasibility

      private void checkFeasibility(MultiphaseFlowIntegrator.PipelineResult result, double minArrivalP)
      Check feasibility against constraints.
    • setPipelineLength

      public void setPipelineLength(double km)
      Set pipeline length.
      Parameters:
      km - length in kilometers
    • setPipelineDiameter

      public void setPipelineDiameter(double m)
      Set pipeline diameter.
      Parameters:
      m - diameter in meters
    • setPipelineRoughness

      public void setPipelineRoughness(double m)
      Set pipeline roughness.
      Parameters:
      m - roughness in meters
    • setSeabedTemperature

      public void setSeabedTemperature(double c)
      Set seabed temperature.
      Parameters:
      c - temperature in Celsius
    • setOverallHeatTransferCoeff

      public void setOverallHeatTransferCoeff(double htc)
      Set overall heat transfer coefficient.
      Parameters:
      htc - HTC in W/m2K
    • setElevationChange

      public void setElevationChange(double m)
      Set elevation change.
      Parameters:
      m - elevation change in meters (positive = uphill)
    • setNumberOfSegments

      public void setNumberOfSegments(int n)
      Set number of calculation segments.
      Parameters:
      n - number of segments
    • setMinArrivalPressure

      public void setMinArrivalPressure(double bar)
      Set minimum arrival pressure.
      Parameters:
      bar - pressure in bara
    • setErosionalConstant

      public void setErosionalConstant(double c)
      Set erosional velocity constant (API RP 14E).
      Parameters:
      c - constant value (typically 100-150)
    • getPipelineLengthKm

      public double getPipelineLengthKm()
      Get pipeline length.
    • getPipelineDiameterM

      public double getPipelineDiameterM()
      Get pipeline diameter.