Class DebottleneckAnalyzer
java.lang.Object
neqsim.process.util.optimizer.DebottleneckAnalyzer
- All Implemented Interfaces:
Serializable
Systematically identifies and ranks equipment bottlenecks in a process system.
Scans all equipment implementing CapacityConstrainedEquipment, collects utilization data,
ranks equipment by how close they are to design limits, and provides actionable suggestions for
debottlenecking.
Builds on the existing capacity constraint framework in
neqsim.process.equipment.capacity.
Usage example:
DebottleneckAnalyzer analyzer = new DebottleneckAnalyzer(process);
analyzer.setWarningThreshold(0.85);
analyzer.analyze();
List<EquipmentStatus> ranked = analyzer.getRankedEquipment();
String primary = analyzer.getPrimaryBottleneck();
String json = analyzer.toJson();
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classStatus report for a single piece of equipment. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate double(package private) static org.apache.logging.log4j.LoggerLogger object for class.private final ProcessSystemprivate final List<DebottleneckAnalyzer.EquipmentStatus> private static final longprivate double -
Constructor Summary
ConstructorsConstructorDescriptionDebottleneckAnalyzer(ProcessSystem processSystem) Creates a debottleneck analyzer for the given process system. -
Method Summary
Modifier and TypeMethodDescriptionvoidanalyze()Runs the debottleneck analysis.private StringgenerateSuggestion(ProcessEquipmentInterface equip, String constraintName, double utilization) Generates a debottleneck suggestion for the given equipment.Gets only equipment above the warning threshold.doubleGets the overall process capacity utilization (based on highest equipment utilization).intGets the number of overloaded equipment items.Gets the primary bottleneck equipment name.Gets all equipment ranked by utilization (highest first).voidsetCriticalThreshold(double threshold) Sets the critical threshold (fraction).voidsetWarningThreshold(double threshold) Sets the warning threshold (fraction).toJson()Returns the analysis results as a JSON string.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
logger
static org.apache.logging.log4j.Logger loggerLogger object for class. -
processSystem
-
warningThreshold
private double warningThreshold -
criticalThreshold
private double criticalThreshold -
rankedEquipment
-
analyzed
private boolean analyzed
-
-
Constructor Details
-
DebottleneckAnalyzer
Creates a debottleneck analyzer for the given process system.- Parameters:
processSystem- the process system to analyze
-
-
Method Details
-
setWarningThreshold
public void setWarningThreshold(double threshold) Sets the warning threshold (fraction).- Parameters:
threshold- warning threshold (default 0.85 = 85%)
-
setCriticalThreshold
public void setCriticalThreshold(double threshold) Sets the critical threshold (fraction).- Parameters:
threshold- critical threshold (default 0.95 = 95%)
-
analyze
public void analyze()Runs the debottleneck analysis. -
generateSuggestion
private String generateSuggestion(ProcessEquipmentInterface equip, String constraintName, double utilization) Generates a debottleneck suggestion for the given equipment.- Parameters:
equip- the equipmentconstraintName- the limiting constraint nameutilization- current utilization- Returns:
- suggestion text
-
getPrimaryBottleneck
Gets the primary bottleneck equipment name.- Returns:
- name of the equipment with highest utilization, or empty string if none
-
getRankedEquipment
Gets all equipment ranked by utilization (highest first).- Returns:
- list of EquipmentStatus ordered by utilization
-
getConstrainedEquipment
Gets only equipment above the warning threshold.- Returns:
- list of equipment that are at warning level or above
-
getOverloadedCount
public int getOverloadedCount()Gets the number of overloaded equipment items.- Returns:
- count of equipment exceeding design limit
-
getOverallUtilization
public double getOverallUtilization()Gets the overall process capacity utilization (based on highest equipment utilization).- Returns:
- maximum utilization fraction across all equipment
-
toJson
Returns the analysis results as a JSON string.- Returns:
- JSON representation of debottleneck analysis
-