Class BottleneckAnalyzer

java.lang.Object
neqsim.process.fielddevelopment.evaluation.BottleneckAnalyzer
All Implemented Interfaces:
Serializable

public class BottleneckAnalyzer extends Object implements Serializable
Bottleneck identification and debottlenecking analysis for process facilities.

Identifies production-limiting constraints in process systems and evaluates debottlenecking options. This is a key tool for production optimization and field development planning.

Constraint Types Analyzed

  • Separator capacity - Gas velocity, liquid retention time
  • Compressor limits - Power, surge, stonewall
  • Pump capacity - Head, power, NPSH
  • Heat exchanger duty - Thermal capacity
  • Valve Cv - Control valve sizing

Example Usage


BottleneckAnalyzer analyzer = new BottleneckAnalyzer(facility);
List<BottleneckResult> bottlenecks = analyzer.identifyBottlenecks();

// Show most limiting constraint
BottleneckResult limiting = bottlenecks.get(0);
System.out.println("Bottleneck: " + limiting.getEquipmentName());
System.out.println("Utilization: " + limiting.getUtilization() + "%");

Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • facility

      private final ProcessSystem facility
      Process system to analyze.
    • utilizationThreshold

      private double utilizationThreshold
      Minimum utilization to flag as potential bottleneck.
  • Constructor Details

    • BottleneckAnalyzer

      public BottleneckAnalyzer(ProcessSystem facility)
      Creates a bottleneck analyzer for a process system.
      Parameters:
      facility - process system to analyze
  • Method Details

    • setUtilizationThreshold

      public BottleneckAnalyzer setUtilizationThreshold(double threshold)
      Sets the utilization threshold for bottleneck flagging.
      Parameters:
      threshold - threshold (0.0-1.0), default 0.80
      Returns:
      this for chaining
    • identifyBottlenecks

      public List<BottleneckAnalyzer.BottleneckResult> identifyBottlenecks()
      Identifies all bottlenecks in the facility.

      Returns a list sorted by utilization (highest first), showing the most limiting equipment at the top.

      Returns:
      list of bottleneck results
    • getPrimaryBottleneck

      public BottleneckAnalyzer.BottleneckResult getPrimaryBottleneck()
      Gets the primary (most limiting) bottleneck.
      Returns:
      most limiting bottleneck, or null if none found
    • getActiveBottlenecks

      public List<BottleneckAnalyzer.BottleneckResult> getActiveBottlenecks()
      Gets bottlenecks above the utilization threshold.
      Returns:
      list of equipment above threshold
    • analyzeEquipment

      Analyzes a single equipment for bottleneck potential.
      Parameters:
      equip - equipment to analyze
      Returns:
      bottleneck result, or null if not applicable
    • analyzeSeparator

      Analyzes separator constraints.
      Parameters:
      sep - the separator to analyze
      Returns:
      the bottleneck analysis result for the separator
    • analyzeCompressor

      private BottleneckAnalyzer.BottleneckResult analyzeCompressor(Compressor comp)
      Analyzes compressor constraints.
      Parameters:
      comp - the compressor to analyze
      Returns:
      the bottleneck analysis result for the compressor
    • analyzePump

      private BottleneckAnalyzer.BottleneckResult analyzePump(Pump pump)
      Analyzes pump constraints.
      Parameters:
      pump - the pump to analyze
      Returns:
      the bottleneck analysis result for the pump
    • analyzeHeater

      private BottleneckAnalyzer.BottleneckResult analyzeHeater(Heater heater)
      Analyzes heater/cooler constraints.
      Parameters:
      heater - the heater to analyze
      Returns:
      the bottleneck analysis result for the heater
    • analyzeValve

      Analyzes valve constraints.
      Parameters:
      valve - the throttling valve to analyze
      Returns:
      the bottleneck analysis result for the valve
    • evaluateDebottleneckOptions

      public List<BottleneckAnalyzer.DebottleneckOption> evaluateDebottleneckOptions(String equipmentName, double targetCapacityIncrease)
      Evaluates debottlenecking options for a specific equipment.
      Parameters:
      equipmentName - name of bottleneck equipment
      targetCapacityIncrease - target capacity increase (0.0-1.0, e.g., 0.20 for 20%)
      Returns:
      list of debottlenecking options
    • generateReport

      public String generateReport()
      Generates a bottleneck analysis report.
      Returns:
      markdown formatted report