Package neqsim.process.mechanicaldesign.valve.choke


package neqsim.process.mechanicaldesign.valve.choke
Multiphase choke flow correlations for production operations.

This package provides models for calculating two-phase (gas-liquid) flow through production chokes. These models are essential for:

  • Wellhead choke sizing and performance prediction
  • Production optimization and allocation
  • Critical flow detection and management
  • Flow metering and back-allocation

Available Models

Mechanistic Models

Empirical Correlations

  • GilbertChokeFlow - Classic correlation with variants (Gilbert, Baxendell, Ros, Achong)

Usage Example

// Create a two-phase fluid
SystemInterface fluid = new SystemSrkEos(300.0, 100.0);
fluid.addComponent("methane", 0.8);
fluid.addComponent("n-heptane", 0.2);
fluid.setMixingRule(2);
fluid.init(0);
fluid.init(1);

// Create Sachdeva choke model
MultiphaseChokeFlow choke = MultiphaseChokeFlowFactory.createModel(ModelType.SACHDEVA);
choke.setChokeDiameter(32, "64ths"); // 32/64" = 0.5 inch

// Calculate mass flow rate
double P1 = 100e5; // 100 bar upstream
double P2 = 30e5; // 30 bar downstream
double massFlow = choke.calculateMassFlowRate(fluid, P1, P2);

// Get detailed results
Map<String, Object> results = choke.calculateSizingResults(fluid, P1, P2);
System.out.println("Flow regime: " + results.get("flowRegime"));
System.out.println("Gas quality: " + results.get("gasQuality"));

Integration with ThrottlingValve

These models integrate with the ThrottlingValve unit operation for process simulation:

// Create production choke using ThrottlingValve
ThrottlingValve choke = new ThrottlingValve("Production Choke", wellStream);
choke.setOutletPressure(30.0, "bara");
choke.setPercentValveOpening(50.0);

// Configure multiphase model via mechanical design
ValveMechanicalDesign design = choke.getMechanicalDesign();
design.setValveSizingStandard("Sachdeva"); // or "Gilbert", "Baxendell", "Ros", "Achong"
design.setChokeDiameter(0.5, "in");

// Run in transient mode to calculate flow
choke.setCalculateSteadyState(false);
choke.runTransient(0.1);
double calculatedFlow = choke.getOutletStream().getFlowRate("kg/hr");

Model Selection

Model Selection Guide
Condition Recommended Model Reason
General purpose Sachdeva Mechanistic, handles all flow regimes
Quick field estimate Gilbert Simple, widely used in operations
High GLR (>5000) Achong Developed for gas-rich conditions
Subcritical flow Sachdeva Only mechanistic model for subcritical

References

  • Sachdeva, R., et al. (1986). "Two-Phase Flow Through Chokes." SPE 15657.
  • Gilbert, W.E. (1954). "Flowing and Gas-Lift Well Performance." API DPP.
  • Baxendell, P.B. (1958). "Bean Performance - Lake Wells." Trans. AIME.
  • Ros, N.C.J. (1960). "An Analysis of Critical Simultaneous Gas/Liquid Flow." Trans. AIME.
  • Achong, I.B. (1961). "Revised Bean Performance Formula." Internal Report.
Version:
1.0
Author:
esol
See Also: