Class ArtificialLiftScreener
java.lang.Object
neqsim.process.fielddevelopment.screening.ArtificialLiftScreener
- All Implemented Interfaces:
Serializable
Artificial lift screening and selection tool.
This class provides comprehensive artificial lift method comparison and selection based on reservoir and well conditions. Supported methods include:
- Natural Flow: Baseline case with no artificial lift
- Gas Lift: Continuous or intermittent gas injection
- ESP (Electrical Submersible Pump): Downhole electric pump
- Rod Pump: Sucker rod pump (beam pump)
- PCP (Progressive Cavity Pump): For viscous fluids
- Jet Pump: Hydraulic power fluid system
Screening Methodology
The screening process follows industry best practices:
- Technical Screening: Eliminates infeasible methods based on operating envelope
- Performance Calculation: Estimates production rate for each method
- Economic Ranking: Ranks methods by NPV or cost per barrel lifted
- Risk Assessment: Considers reliability and operational complexity
Operating Envelope Limits
| Method | Max Depth (m) | Max Rate (Sm3/d) | Max GOR | Max Temp (°C) | Max Visc (cP) |
|---|---|---|---|---|---|
| Gas Lift | 5000 | 5000 | 5000 | 200 | 50 |
| ESP | 4500 | 15000 | 500 | 180 | 200 |
| Rod Pump | 3000 | 500 | 200 | 150 | 1000 |
| PCP | 2500 | 800 | 100 | 130 | 10000 |
| Jet Pump | 5000 | 2000 | 1000 | 200 | 50 |
Usage Example
ArtificialLiftScreener screener = new ArtificialLiftScreener();
screener.setReservoirPressure(250.0, "bara");
screener.setReservoirTemperature(90.0, "C");
screener.setWellheadPressure(15.0, "bara");
screener.setWellDepth(2800.0, "m");
screener.setProductivityIndex(8.0);
screener.setOilGravity(32.0, "API");
screener.setWaterCut(0.40);
screener.setFormationGOR(150.0);
screener.setOilViscosity(5.0, "cP");
screener.setGasLiftAvailable(true);
screener.setElectricityAvailable(true);
ScreeningResult result = screener.screen();
System.out.println("Recommended: " + result.getRecommendedMethod());
for (MethodResult method : result.getAllMethods()) {
System.out.println(method);
}
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumArtificial lift method types.static classResult for a single artificial lift method.static classScreening result containing all evaluated methods. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate doubleprivate intprivate booleanprivate doubleprivate doubleprivate doubleprivate doubleprivate booleanprivate doubleprivate booleanprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate static final longprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate double -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate doublecalculateAverageFluidDensity(double glr) private doublecalculateGVF(double pressure) private doublecalculateHydraulicPower(double rate) private doubleEvaluates ESP performance.Evaluates gas lift performance using GasLiftCalculator.Evaluates jet pump performance.Evaluates natural flow performance.Evaluates PCP (progressive cavity pump) performance.Evaluates rod pump (beam pump) performance.screen()Performs artificial lift screening.setBubblePointPressure(double pressure) Sets bubble point pressure.setElectricityAvailable(boolean available) Sets electricity availability.setElectricityPower(double power) Sets available electricity power.setFormationGOR(double gor) Sets formation GOR.setGasLiftAvailable(boolean available) Sets gas lift availability.setGasLiftPressure(double pressure) Sets gas lift pressure.setOilGravity(double gravity, String unit) Sets oil gravity.setOilPrice(double price) Sets oil price.setOilViscosity(double viscosity, String unit) Sets oil viscosity.setProductivityIndex(double pi) Sets productivity index.setReservoirPressure(double pressure, String unit) Sets reservoir pressure.setReservoirTemperature(double temperature, String unit) Sets reservoir temperature.setTubingID(double diameter) Sets tubing ID.setWaterCut(double waterCut) Sets water cut.setWellDepth(double depth, String unit) Sets well depth (TVD).setWellheadPressure(double pressure, String unit) Sets wellhead pressure.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
reservoirPressure
private double reservoirPressure -
reservoirTemperature
private double reservoirTemperature -
wellheadPressure
private double wellheadPressure -
wellheadTemperature
private double wellheadTemperature -
wellDepth
private double wellDepth -
tubingID
private double tubingID -
productivityIndex
private double productivityIndex -
bubblePointPressure
private double bubblePointPressure -
oilDensityStd
private double oilDensityStd -
waterDensity
private double waterDensity -
formationGOR
private double formationGOR -
waterCut
private double waterCut -
oilViscosity
private double oilViscosity -
gasLiftAvailable
private boolean gasLiftAvailable -
electricityAvailable
private boolean electricityAvailable -
hydraulicPowerAvailable
private boolean hydraulicPowerAvailable -
gasLiftPressure
private double gasLiftPressure -
electricityPower
private double electricityPower -
oilPrice
private double oilPrice -
gasCost
private double gasCost -
electricityCost
private double electricityCost -
discountRate
private double discountRate -
economicLife
private int economicLife -
targetRate
private double targetRate
-
-
Constructor Details
-
ArtificialLiftScreener
public ArtificialLiftScreener()Creates a new artificial lift screener.
-
-
Method Details
-
screen
Performs artificial lift screening.- Returns:
- screening result with ranked methods
-
evaluateNaturalFlow
Evaluates natural flow performance.- Returns:
- method result
-
evaluateGasLift
Evaluates gas lift performance using GasLiftCalculator.- Returns:
- method result or null if infeasible
-
evaluateESP
Evaluates ESP performance.- Returns:
- method result or null if infeasible
-
evaluateRodPump
Evaluates rod pump (beam pump) performance.- Returns:
- method result
-
evaluatePCP
Evaluates PCP (progressive cavity pump) performance.- Returns:
- method result
-
evaluateJetPump
Evaluates jet pump performance.- Returns:
- method result
-
calculateAverageFluidDensity
private double calculateAverageFluidDensity(double glr) -
estimateIntakePressure
private double estimateIntakePressure() -
calculateGVF
private double calculateGVF(double pressure) -
calculateHydraulicPower
private double calculateHydraulicPower(double rate) -
setReservoirPressure
Sets reservoir pressure.- Parameters:
pressure- pressure valueunit- unit ("bara", "psia")- Returns:
- this for chaining
-
setReservoirTemperature
Sets reservoir temperature.- Parameters:
temperature- temperature valueunit- unit ("K", "C", "F")- Returns:
- this for chaining
-
setWellheadPressure
Sets wellhead pressure.- Parameters:
pressure- pressure valueunit- unit- Returns:
- this for chaining
-
setWellDepth
Sets well depth (TVD).- Parameters:
depth- depth valueunit- unit ("m", "ft")- Returns:
- this for chaining
-
setProductivityIndex
Sets productivity index.- Parameters:
pi- productivity index (Sm3/day/bar)- Returns:
- this for chaining
-
setOilGravity
Sets oil gravity.- Parameters:
gravity- gravity valueunit- unit ("API", "SG")- Returns:
- this for chaining
-
setWaterCut
Sets water cut.- Parameters:
waterCut- water cut fraction (0-1)- Returns:
- this for chaining
-
setFormationGOR
Sets formation GOR.- Parameters:
gor- formation GOR (Sm3/Sm3)- Returns:
- this for chaining
-
setOilViscosity
Sets oil viscosity.- Parameters:
viscosity- viscosity valueunit- unit ("cP", "Pa.s")- Returns:
- this for chaining
-
setGasLiftAvailable
Sets gas lift availability.- Parameters:
available- true if gas lift is available- Returns:
- this for chaining
-
setElectricityAvailable
Sets electricity availability.- Parameters:
available- true if electricity is available- Returns:
- this for chaining
-
setGasLiftPressure
Sets gas lift pressure.- Parameters:
pressure- pressure (bara)- Returns:
- this for chaining
-
setElectricityPower
Sets available electricity power.- Parameters:
power- power (kW)- Returns:
- this for chaining
-
setOilPrice
Sets oil price.- Parameters:
price- price (USD/bbl)- Returns:
- this for chaining
-
setBubblePointPressure
Sets bubble point pressure.- Parameters:
pressure- bubble point (bara)- Returns:
- this for chaining
-
setTubingID
Sets tubing ID.- Parameters:
diameter- diameter (m)- Returns:
- this for chaining
-