Class GilbertChokeFlow
java.lang.Object
neqsim.process.mechanicaldesign.valve.choke.MultiphaseChokeFlow
neqsim.process.mechanicaldesign.valve.choke.GilbertChokeFlow
- All Implemented Interfaces:
Serializable
Gilbert (1954) empirical correlation for two-phase critical choke flow.
This is the pioneering empirical correlation for multiphase flow through production chokes, developed from California oil field data. It is widely used for quick estimates and field calculations.
Gilbert Equation:
q_L = (P_wh * d ^ 1.89) / (C * GLR ^ 0.546)
where:
- q_L = liquid flow rate (STB/day)
- P_wh = upstream/wellhead pressure (psig)
- d = choke diameter (64ths of an inch)
- GLR = gas-liquid ratio (scf/STB)
- C = 10 (Gilbert's original constant)
Key Assumptions:
- Critical (choked) flow only - downstream pressure has no effect
- No slip between gas and liquid phases
- Based on California oil wells with specific fluid properties
Applicability Range:
- GLR: 300 - 50,000 scf/STB
- Oil gravity: API 20-40
- Pressure: 100-5000 psig
Related correlations with different constants:
- Baxendell (1958): C = 9.56, exponents: d^1.93, GLR^0.546
- Ros (1960): C = 17.4, exponents: d^2.0, GLR^0.5
- Achong (1961): C = 3.82, exponents: d^1.88, GLR^0.65
Reference: Gilbert, W.E. (1954). "Flowing and Gas-Lift Well Performance." API Drilling and Production Practice.
- Version:
- 1.0
- Author:
- esol
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumCorrelation type for identifying which variant is used.Nested classes/interfaces inherited from class MultiphaseChokeFlow
MultiphaseChokeFlow.FlowRegime -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleCorrelation constant (Gilbert = 10, Baxendell = 9.56, Ros = 17.4, Achong = 3.82).private GilbertChokeFlow.CorrelationTypeprivate doubleDiameter exponent (Gilbert = 1.89, Baxendell = 1.93, Ros = 2.0, Achong = 1.88).private doubleGLR exponent (Gilbert = 0.546, Baxendell = 0.546, Ros = 0.5, Achong = 0.65).private static final longFields inherited from class MultiphaseChokeFlow
chokeDiameter, dischargeCoefficient, polytropicExponent, upstreamDiameter -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor using Gilbert's original constants.GilbertChokeFlow(double chokeDiameter) Constructor with choke diameter.GilbertChokeFlow(GilbertChokeFlow.CorrelationType correlationType) Constructor with correlation type selection. -
Method Summary
Modifier and TypeMethodDescriptiondoublecalculateCriticalPressureRatio(double gasQuality, double specificHeatRatio) Calculates the critical pressure ratio for two-phase flow.doublecalculateDownstreamPressure(SystemInterface fluid, double upstreamPressure, double massFlowRate) Calculates the downstream pressure for a given mass flow rate.private doubleCalculates GLR in field units (scf/STB).private doublecalculateLiquidOnlyMassFlow(SystemInterface fluid, double P1, double P2) Calculates liquid-only mass flow (pure liquid case).doublecalculateMassFlowRate(SystemInterface fluid, double upstreamPressure, double downstreamPressure) Calculates the mass flow rate through the choke.doublecalculateRequiredChokeDiameter(SystemInterface fluid, double upstreamPressure, double liquidFlowRate) Calculates the required choke size for a given flow rate.doubleGets the correlation constant.Gets the correlation type.doubleGets the diameter exponent.doubleGets the GLR exponent.private doublegetLiquidDensity(SystemInterface fluid) Gets liquid density from fluid.Returns the name of this choke flow model.voidsetCorrelationConstant(double constant) Sets the correlation constant.voidSets the correlation type and updates constants accordingly.voidsetDiameterExponent(double exponent) Sets the diameter exponent.voidsetGlrExponent(double exponent) Sets the GLR exponent.Methods inherited from class MultiphaseChokeFlow
calculateGasQuality, calculateGLR, calculateSizingResults, determineFlowRegime, getChokeArea, getChokeDiameter, getDischargeCoefficient, getPolytropicExponent, getUpstreamDiameter, setChokeDiameter, setChokeDiameter, setDischargeCoefficient, setPolytropicExponent, setUpstreamDiameter
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
correlationConstant
private double correlationConstantCorrelation constant (Gilbert = 10, Baxendell = 9.56, Ros = 17.4, Achong = 3.82). -
diameterExponent
private double diameterExponentDiameter exponent (Gilbert = 1.89, Baxendell = 1.93, Ros = 2.0, Achong = 1.88). -
glrExponent
private double glrExponentGLR exponent (Gilbert = 0.546, Baxendell = 0.546, Ros = 0.5, Achong = 0.65). -
correlationType
-
-
Constructor Details
-
GilbertChokeFlow
public GilbertChokeFlow()Default constructor using Gilbert's original constants. -
GilbertChokeFlow
public GilbertChokeFlow(double chokeDiameter) Constructor with choke diameter.- Parameters:
chokeDiameter- choke throat diameter in meters
-
GilbertChokeFlow
Constructor with correlation type selection.- Parameters:
correlationType- the correlation variant to use
-
-
Method Details
-
setCorrelationType
Sets the correlation type and updates constants accordingly.- Parameters:
type- correlation type
-
getCorrelationType
Gets the correlation type.- Returns:
- correlation type
-
calculateMassFlowRate
public double calculateMassFlowRate(SystemInterface fluid, double upstreamPressure, double downstreamPressure) Calculates the mass flow rate through the choke.- Specified by:
calculateMassFlowRatein classMultiphaseChokeFlow- Parameters:
fluid- the thermodynamic system representing the fluidupstreamPressure- upstream pressure in PadownstreamPressure- downstream pressure in Pa- Returns:
- mass flow rate in kg/s
-
calculateGLR_scf_stb
Calculates GLR in field units (scf/STB).- Parameters:
fluid- thermodynamic system- Returns:
- GLR in scf/STB
-
getLiquidDensity
Gets liquid density from fluid.- Parameters:
fluid- thermodynamic system- Returns:
- liquid density in kg/m3
-
calculateLiquidOnlyMassFlow
Calculates liquid-only mass flow (pure liquid case).- Parameters:
fluid- thermodynamic systemP1- upstream pressure in PaP2- downstream pressure in Pa- Returns:
- mass flow rate in kg/s
-
calculateDownstreamPressure
public double calculateDownstreamPressure(SystemInterface fluid, double upstreamPressure, double massFlowRate) Calculates the downstream pressure for a given mass flow rate.- Specified by:
calculateDownstreamPressurein classMultiphaseChokeFlow- Parameters:
fluid- the thermodynamic system representing the fluidupstreamPressure- upstream pressure in PamassFlowRate- mass flow rate in kg/s- Returns:
- downstream pressure in Pa
-
calculateCriticalPressureRatio
public double calculateCriticalPressureRatio(double gasQuality, double specificHeatRatio) Calculates the critical pressure ratio for two-phase flow.- Specified by:
calculateCriticalPressureRatioin classMultiphaseChokeFlow- Parameters:
gasQuality- gas mass fraction (0 to 1)specificHeatRatio- ratio of specific heats (Cp/Cv)- Returns:
- critical pressure ratio (P2/P1 at choking)
-
calculateRequiredChokeDiameter
public double calculateRequiredChokeDiameter(SystemInterface fluid, double upstreamPressure, double liquidFlowRate) Calculates the required choke size for a given flow rate.Inverts the Gilbert equation to find choke diameter.
- Parameters:
fluid- thermodynamic systemupstreamPressure- upstream pressure in PaliquidFlowRate- liquid flow rate in m3/s- Returns:
- required choke diameter in meters
-
setCorrelationConstant
public void setCorrelationConstant(double constant) Sets the correlation constant.- Parameters:
constant- correlation constant C
-
getCorrelationConstant
public double getCorrelationConstant()Gets the correlation constant.- Returns:
- correlation constant
-
setDiameterExponent
public void setDiameterExponent(double exponent) Sets the diameter exponent.- Parameters:
exponent- diameter exponent
-
getDiameterExponent
public double getDiameterExponent()Gets the diameter exponent.- Returns:
- diameter exponent
-
setGlrExponent
public void setGlrExponent(double exponent) Sets the GLR exponent.- Parameters:
exponent- GLR exponent
-
getGlrExponent
public double getGlrExponent()Gets the GLR exponent.- Returns:
- GLR exponent
-
getModelName
Returns the name of this choke flow model.- Specified by:
getModelNamein classMultiphaseChokeFlow- Returns:
- model name
-