Class MultiphaseFlowIntegrator
java.lang.Object
neqsim.process.fielddevelopment.network.MultiphaseFlowIntegrator
- All Implemented Interfaces:
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumFlow regime classification.static classPipeline hydraulics result. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleElevation change (m, positive = uphill).private doubleErosional velocity constant (API RP 14E).private static final org.apache.logging.log4j.LoggerLogger instance.private doubleMinimum arrival pressure (bara).private intNumber of calculation segments.private doubleOverall heat transfer coefficient (W/m2K).private doublePipeline inner diameter (m).private doublePipeline length (km).private doublePipeline roughness (m).private doubleSeabed temperature (C).private static final long -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new integrator with default parameters. -
Method Summary
Modifier and TypeMethodDescriptionprivate doublecalculateErosionalVelocity(double mixtureDensity) Calculate erosional velocity (API RP 14E).calculateHydraulics(StreamInterface inlet, double arrivalPressureBar) Calculate pipeline hydraulics using Beggs and Brill correlation.calculateHydraulicsCurve(SystemInterface baseFluid, double inletPressureBar, double[] flowRatesKgHr) Calculate hydraulics for a range of flow rates.private voidcheckFeasibility(MultiphaseFlowIntegrator.PipelineResult result, double minArrivalP) Check feasibility against constraints.private doubleestimateLiquidHoldup(SystemInterface fluid, double mixVel) Estimate liquid holdup using simplified Beggs-Brill.private doubleestimateSlugFrequency(double mixVel, double diameter) Estimate slug frequency (Gregory correlation).doubleGet pipeline diameter.doubleGet pipeline length.identifyFlowRegime(SystemInterface fluid, double mixVel, double liquidHoldup) Identify flow regime.voidsetElevationChange(double m) Set elevation change.voidsetErosionalConstant(double c) Set erosional velocity constant (API RP 14E).voidsetMinArrivalPressure(double bar) Set minimum arrival pressure.voidsetNumberOfSegments(int n) Set number of calculation segments.voidsetOverallHeatTransferCoeff(double htc) Set overall heat transfer coefficient.voidsetPipelineDiameter(double m) Set pipeline diameter.voidsetPipelineLength(double km) Set pipeline length.voidsetPipelineRoughness(double m) Set pipeline roughness.voidsetSeabedTemperature(double c) Set seabed temperature.doublesizePipeline(StreamInterface inlet, double minArrivalP, double maxVelocityRatio) Size pipeline diameter for given constraints.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
logger
private static final org.apache.logging.log4j.Logger loggerLogger instance. -
pipelineLengthKm
private double pipelineLengthKmPipeline length (km). -
pipelineDiameterM
private double pipelineDiameterMPipeline inner diameter (m). -
pipelineRoughnessM
private double pipelineRoughnessMPipeline roughness (m). -
seabedTemperatureC
private double seabedTemperatureCSeabed temperature (C). -
overallHtcWm2K
private double overallHtcWm2KOverall heat transfer coefficient (W/m2K). -
elevationChangeM
private double elevationChangeMElevation change (m, positive = uphill). -
numberOfSegments
private int numberOfSegmentsNumber of calculation segments. -
minArrivalPressureBar
private double minArrivalPressureBarMinimum arrival pressure (bara). -
erosionalConstant
private double erosionalConstantErosional 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 streamarrivalPressureBar- 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 compositioninletPressureBar- inlet pressureflowRatesKgHr- array of flow rates to evaluate- Returns:
- list of results for each flow rate
-
sizePipeline
Size pipeline diameter for given constraints.- Parameters:
inlet- inlet streamminArrivalP- minimum arrival pressure (bara)maxVelocityRatio- maximum erosional velocity ratio- Returns:
- recommended diameter in meters
-
estimateLiquidHoldup
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
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.
-