Class FlowRateOptimizer.LiftCurveConfiguration
java.lang.Object
neqsim.process.util.optimizer.FlowRateOptimizer.LiftCurveConfiguration
- All Implemented Interfaces:
Serializable
- Enclosing class:
FlowRateOptimizer
Configuration class for professional lift curve generation.
This builder class encapsulates best practices for generating lift curves suitable for integration with reservoir simulators like Eclipse E300. It provides sensible defaults while allowing customization of all parameters.
Example Usage
LiftCurveConfiguration config =
new LiftCurveConfiguration().withInletPressureRange(50.0, 90.0, 5) // 50-90 bara, 5 points
.withOutletPressureRange(130.0, 160.0, 4) // 130-160 bara, 4 points
.withSurgeMargin(0.15) // 15% surge margin
.withMaxPowerLimit(5000.0) // 5 MW limit
.withMaxUtilization(0.95) // 95% max utilization
.withProgressLogging(true);
LiftCurveResult result = optimizer.generateProfessionalLiftCurves(config);
System.out.println(result.getCapacityTable().toEclipseFormat());
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate Stringprivate booleanprivate booleanprivate booleanprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate intprivate intprivate intprivate Stringprivate static final longprivate double -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor with sensible defaults for offshore gas compression. -
Method Summary
Modifier and TypeMethodDescriptionprivate double[]generateLinearArray(double min, double max, int points) double[]Generates the flow rate array based on configuration.double[]Generates the inlet pressure array based on configuration.doubledoubledoubledoubledoubledouble[]Generates the outlet pressure array based on configuration.doublebooleanbooleanbooleanbooleanwithFlowRateRange(double minFlow, double maxFlow, int numPoints) Sets the flow rate range.withFlowRateUnit(String unit) Sets the flow rate unit.withInletPressureRange(double minPressure, double maxPressure, int numPoints) Sets the inlet pressure range.withMaxPowerLimit(double powerKw) Sets the maximum power limit per compressor.withMaxTotalPowerLimit(double powerKw) Sets the maximum total power limit for all compressors.withMaxUtilization(double utilization) Sets the maximum equipment utilization.withOutletPressureRange(double minPressure, double maxPressure, int numPoints) Sets the outlet pressure range.withPressureUnit(String unit) Sets the pressure unit.Sets a progress callback.withProgressLogging(boolean enabled) Enables or disables progress logging.withSpeedLimits(double minSpeed, double maxSpeed) Sets compressor speed limits.withSurgeMargin(double margin) Sets the minimum surge margin for compressors.withTables(boolean capacity, boolean liftCurve, boolean performance) Configures which tables to generate.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
minInletPressure
private double minInletPressure -
maxInletPressure
private double maxInletPressure -
numInletPressurePoints
private int numInletPressurePoints -
minOutletPressure
private double minOutletPressure -
maxOutletPressure
private double maxOutletPressure -
numOutletPressurePoints
private int numOutletPressurePoints -
pressureUnit
-
minFlowRate
private double minFlowRate -
maxFlowRate
private double maxFlowRate -
numFlowRatePoints
private int numFlowRatePoints -
flowRateUnit
-
surgeMargin
private double surgeMargin -
maxPowerLimit
private double maxPowerLimit -
maxTotalPowerLimit
private double maxTotalPowerLimit -
maxSpeedLimit
private double maxSpeedLimit -
minSpeedLimit
private double minSpeedLimit -
maxUtilization
private double maxUtilization -
enableProgressLogging
private boolean enableProgressLogging -
progressCallback
-
generateCapacityTable
private boolean generateCapacityTable -
generateLiftCurveTable
private boolean generateLiftCurveTable -
generatePerformanceTable
private boolean generatePerformanceTable
-
-
Constructor Details
-
LiftCurveConfiguration
public LiftCurveConfiguration()Default constructor with sensible defaults for offshore gas compression.
-
-
Method Details
-
withInletPressureRange
public FlowRateOptimizer.LiftCurveConfiguration withInletPressureRange(double minPressure, double maxPressure, int numPoints) Sets the inlet pressure range.- Parameters:
minPressure- minimum inlet pressuremaxPressure- maximum inlet pressurenumPoints- number of pressure points- Returns:
- this configuration for chaining
-
withOutletPressureRange
public FlowRateOptimizer.LiftCurveConfiguration withOutletPressureRange(double minPressure, double maxPressure, int numPoints) Sets the outlet pressure range.- Parameters:
minPressure- minimum outlet pressuremaxPressure- maximum outlet pressurenumPoints- number of pressure points- Returns:
- this configuration for chaining
-
withFlowRateRange
public FlowRateOptimizer.LiftCurveConfiguration withFlowRateRange(double minFlow, double maxFlow, int numPoints) Sets the flow rate range.- Parameters:
minFlow- minimum flow ratemaxFlow- maximum flow ratenumPoints- number of flow rate points- Returns:
- this configuration for chaining
-
withPressureUnit
Sets the pressure unit.- Parameters:
unit- pressure unit (e.g., "bara", "barg", "psia")- Returns:
- this configuration for chaining
-
withFlowRateUnit
Sets the flow rate unit.- Parameters:
unit- flow rate unit (e.g., "kg/hr", "Sm3/day", "MMscfd")- Returns:
- this configuration for chaining
-
withSurgeMargin
Sets the minimum surge margin for compressors.- Parameters:
margin- surge margin as fraction (0.15 = 15%)- Returns:
- this configuration for chaining
-
withMaxPowerLimit
Sets the maximum power limit per compressor.- Parameters:
powerKw- maximum power in kW- Returns:
- this configuration for chaining
-
withMaxTotalPowerLimit
Sets the maximum total power limit for all compressors.- Parameters:
powerKw- maximum total power in kW- Returns:
- this configuration for chaining
-
withSpeedLimits
Sets compressor speed limits.- Parameters:
minSpeed- minimum speed in RPMmaxSpeed- maximum speed in RPM- Returns:
- this configuration for chaining
-
withMaxUtilization
Sets the maximum equipment utilization.- Parameters:
utilization- maximum utilization as fraction (0.95 = 95%)- Returns:
- this configuration for chaining
-
withProgressLogging
Enables or disables progress logging.- Parameters:
enabled- true to enable- Returns:
- this configuration for chaining
-
withProgressCallback
public FlowRateOptimizer.LiftCurveConfiguration withProgressCallback(FlowRateOptimizer.ProgressCallback callback) Sets a progress callback.- Parameters:
callback- the callback- Returns:
- this configuration for chaining
-
withTables
public FlowRateOptimizer.LiftCurveConfiguration withTables(boolean capacity, boolean liftCurve, boolean performance) Configures which tables to generate.- Parameters:
capacity- generate capacity tableliftCurve- generate lift curve tableperformance- generate performance table- Returns:
- this configuration for chaining
-
getInletPressures
public double[] getInletPressures()Generates the inlet pressure array based on configuration.- Returns:
- array of inlet pressures
-
getOutletPressures
public double[] getOutletPressures()Generates the outlet pressure array based on configuration.- Returns:
- array of outlet pressures
-
getFlowRates
public double[] getFlowRates()Generates the flow rate array based on configuration.- Returns:
- array of flow rates
-
generateLinearArray
private double[] generateLinearArray(double min, double max, int points) -
getPressureUnit
- Returns:
- the pressure unit
-
getFlowRateUnit
- Returns:
- the flow rate unit
-
getSurgeMargin
public double getSurgeMargin()- Returns:
- the surge margin
-
getMaxPowerLimit
public double getMaxPowerLimit()- Returns:
- the max power limit
-
getMaxTotalPowerLimit
public double getMaxTotalPowerLimit()- Returns:
- the max total power limit
-
getMaxSpeedLimit
public double getMaxSpeedLimit()- Returns:
- the max speed limit
-
getMinSpeedLimit
public double getMinSpeedLimit()- Returns:
- the min speed limit
-
getMaxUtilization
public double getMaxUtilization()- Returns:
- the max utilization
-
isEnableProgressLogging
public boolean isEnableProgressLogging()- Returns:
- whether progress logging is enabled
-
getProgressCallback
- Returns:
- the progress callback
-
isGenerateCapacityTable
public boolean isGenerateCapacityTable()- Returns:
- whether to generate capacity table
-
isGenerateLiftCurveTable
public boolean isGenerateLiftCurveTable()- Returns:
- whether to generate lift curve table
-
isGeneratePerformanceTable
public boolean isGeneratePerformanceTable()- Returns:
- whether to generate performance table
-