Class FlowRateOptimizer.ProcessCapacityTable
java.lang.Object
neqsim.process.util.optimizer.FlowRateOptimizer.ProcessCapacityTable
- All Implemented Interfaces:
Serializable
- Enclosing class:
FlowRateOptimizer
Represents a 2D capacity table showing maximum flow rates at different pressure boundary
conditions.
This table maps inlet/outlet pressure combinations to maximum achievable flow rates while respecting equipment constraints. It is the inverse of the lift curve representation - instead of "flow vs outlet pressure at fixed inlet pressure", it shows "max flow for each pressure combination".
This format is particularly useful for reservoir simulators where pressures are known from deliverability curves and the question is "what flow rate can the production system handle?"
Table Structure
Pout=130 Pout=140 Pout=150 Pout=160
Pin=60 12000 10500 8000 5000
Pin=70 15000 13000 11000 8500
Pin=80 18000 16000 14000 12000
Pin=90 20000 18500 17000 15500
- Version:
- 1.0
- Author:
- EquinorASA
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Stringprivate double[]private doubleprivate FlowRateOptimizer.ProcessOperatingPoint[][]private double[]private Stringprivate static final longSerialization version UID.private String -
Constructor Summary
ConstructorsConstructorDescriptionProcessCapacityTable(String tableName, double[] inletPressures, double[] outletPressures, List<String> compressorNames) Constructs a capacity table. -
Method Summary
Modifier and TypeMethodDescriptionintGets number of feasible operating points.Finds the operating point with maximum flow rate.Finds the operating point with minimum total power.double[][]Extracts maximum flow rates as a 2D array.double[]doubledouble[][]Extracts maximum utilization values as a 2D array.getOperatingPoint(int inletIndex, int outletIndex) Gets the operating point for a specific inlet/outlet pressure combination.double[]double[][]Extracts total power values as a 2D array.voidsetFlowRateUnit(String flowRateUnit) voidsetMaxUtilization(double maxUtilization) voidsetOperatingPoint(int inletIndex, int outletIndex, FlowRateOptimizer.ProcessOperatingPoint point) Sets the operating point for a specific inlet/outlet pressure combination.voidsetPressureUnit(String pressureUnit) voidsetTableName(String tableName) toCsv()Generates a CSV export of the capacity table for spreadsheet analysis.Generates Eclipse VFP table format output.Generates a formatted string representation.toJson()Generates JSON representation of the capacity table.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
tableName
-
inletPressures
private double[] inletPressures -
outletPressures
private double[] outletPressures -
compressorNames
-
operatingPoints
-
pressureUnit
-
flowRateUnit
-
maxUtilization
private double maxUtilization
-
-
Constructor Details
-
ProcessCapacityTable
public ProcessCapacityTable(String tableName, double[] inletPressures, double[] outletPressures, List<String> compressorNames) Constructs a capacity table.- Parameters:
tableName- the table nameinletPressures- array of inlet pressures (rows)outletPressures- array of outlet pressures (columns)compressorNames- list of compressor names in the process
-
-
Method Details
-
setOperatingPoint
public void setOperatingPoint(int inletIndex, int outletIndex, FlowRateOptimizer.ProcessOperatingPoint point) Sets the operating point for a specific inlet/outlet pressure combination.- Parameters:
inletIndex- index into inlet pressures arrayoutletIndex- index into outlet pressures arraypoint- the operating point (or null if infeasible)
-
getOperatingPoint
Gets the operating point for a specific inlet/outlet pressure combination.- Parameters:
inletIndex- index into inlet pressures arrayoutletIndex- index into outlet pressures array- Returns:
- the operating point, or null if infeasible
-
getFlowRateValues
public double[][] getFlowRateValues()Extracts maximum flow rates as a 2D array.- Returns:
- 2D array [inletPressures][outletPressures] of flow rates
-
getTotalPowerValues
public double[][] getTotalPowerValues()Extracts total power values as a 2D array.- Returns:
- 2D array [inletPressures][outletPressures] of total power (kW)
-
getMaxUtilizationValues
public double[][] getMaxUtilizationValues()Extracts maximum utilization values as a 2D array.- Returns:
- 2D array [inletPressures][outletPressures] of max utilization
-
findMaxFlowRatePoint
Finds the operating point with maximum flow rate.- Returns:
- the operating point with highest flow rate, or null if empty
-
findMinimumPowerPoint
Finds the operating point with minimum total power.- Returns:
- the operating point with lowest total power, or null if empty
-
countFeasiblePoints
public int countFeasiblePoints()Gets number of feasible operating points.- Returns:
- count of feasible points
-
toFormattedString
Generates a formatted string representation.- Returns:
- formatted table string
-
toEclipseFormat
Generates Eclipse VFP table format output.This format is compatible with Eclipse 300 reservoir simulator lift tables. The output generates VFPPROD tables that can be directly included in Eclipse DATA files.
The generated table uses the following Eclipse conventions:
- FLO = flow rate (in flowRateUnit)
- THP = tubing head pressure (inlet pressure / wellhead pressure)
- BHP = bottom hole pressure (outlet pressure in this context)
- Returns:
- Eclipse VFP format string ready for inclusion in Eclipse DATA file
-
toCsv
Generates a CSV export of the capacity table for spreadsheet analysis.- Returns:
- CSV formatted string
-
toJson
-
getTableName
- Returns:
- the tableName
-
setTableName
- Parameters:
tableName- the tableName to set
-
getInletPressures
public double[] getInletPressures()- Returns:
- the inletPressures
-
getOutletPressures
public double[] getOutletPressures()- Returns:
- the outletPressures
-
getCompressorNames
-
getPressureUnit
- Returns:
- the pressureUnit
-
setPressureUnit
- Parameters:
pressureUnit- the pressureUnit to set
-
getFlowRateUnit
- Returns:
- the flowRateUnit
-
setFlowRateUnit
- Parameters:
flowRateUnit- the flowRateUnit to set
-
getMaxUtilization
public double getMaxUtilization()- Returns:
- the maxUtilization
-
setMaxUtilization
public void setMaxUtilization(double maxUtilization) - Parameters:
maxUtilization- the maxUtilization to set
-