Class ProductionImpactAnalyzer

java.lang.Object
neqsim.process.util.optimizer.ProductionImpactAnalyzer
All Implemented Interfaces:
Serializable

public class ProductionImpactAnalyzer extends Object implements Serializable
Analyzer for assessing production impact of equipment failures.

This class provides comprehensive analysis of how equipment failures affect production rates and helps determine optimal operating strategies during degraded conditions.

Key Capabilities

  • Analyze impact of single equipment failure
  • Compare degraded operation vs. full plant shutdown
  • Find optimized operating point with failed equipment
  • Rank equipment by criticality
  • Identify bottleneck shifts

Example Usage


// Create analyzer
ProductionImpactAnalyzer analyzer = new ProductionImpactAnalyzer(processSystem);
analyzer.setFeedStreamName("Well Feed");
analyzer.setProductStreamName("Export Gas");

// Analyze compressor failure
ProductionImpactResult result = analyzer.analyzeFailureImpact("HP Compressor");
System.out.println("Production loss: " + result.getPercentLoss() + "%");
System.out.println("Recommendation: " + result.getRecommendedAction());

// Get criticality ranking
List<ProductionImpactResult> ranking = analyzer.rankEquipmentByCriticality();

Version:
1.0
Author:
NeqSim Development Team
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • logger

      private static final org.apache.logging.log4j.Logger logger
      Logger.
    • processSystem

      private ProcessSystem processSystem
      The process system to analyze.
    • feedStreamName

      private String feedStreamName
      Name of the feed stream for flow rate calculations.
    • productStreamName

      private String productStreamName
      Name of the product/outlet stream for production measurement.
    • productPricePerKg

      private double productPricePerKg
      Product price for economic calculations ($/kg).
    • optimizeDegradedOperation

      private boolean optimizeDegradedOperation
      Whether to include optimization of degraded operation.
    • optimizationTolerance

      private double optimizationTolerance
      Tolerance for flow rate optimization.
    • maxOptimizationIterations

      private int maxOptimizationIterations
      Maximum iterations for optimization.
    • cachedBaselineProduction

      private transient Double cachedBaselineProduction
      Cache for baseline values.
    • cachedBaselinePower

      private transient Double cachedBaselinePower
    • cachedBaselineBottleneck

      private transient String cachedBaselineBottleneck
    • cachedBaselineBottleneckUtil

      private transient Double cachedBaselineBottleneckUtil
  • Constructor Details

    • ProductionImpactAnalyzer

      public ProductionImpactAnalyzer(ProcessSystem processSystem)
      Creates a production impact analyzer for the given process system.
      Parameters:
      processSystem - the process system to analyze
    • ProductionImpactAnalyzer

      public ProductionImpactAnalyzer(ProcessSystem processSystem, String feedStreamName, String productStreamName)
      Creates a production impact analyzer with specified streams.
      Parameters:
      processSystem - the process system
      feedStreamName - name of the feed stream
      productStreamName - name of the product stream
  • Method Details

    • autoDetectStreams

      private void autoDetectStreams()
      Auto-detects feed and product streams from the process system.
    • setFeedStreamName

      public ProductionImpactAnalyzer setFeedStreamName(String name)
      Sets the feed stream name.
      Parameters:
      name - the feed stream name
      Returns:
      this analyzer for chaining
    • setProductStreamName

      public ProductionImpactAnalyzer setProductStreamName(String name)
      Sets the product stream name.
      Parameters:
      name - the product stream name
      Returns:
      this analyzer for chaining
    • setProductPricePerKg

      public ProductionImpactAnalyzer setProductPricePerKg(double pricePerKg)
      Sets the product price for economic calculations.
      Parameters:
      pricePerKg - price per kg of product
      Returns:
      this analyzer for chaining
    • setOptimizeDegradedOperation

      public ProductionImpactAnalyzer setOptimizeDegradedOperation(boolean optimize)
      Sets whether to optimize degraded operation.
      Parameters:
      optimize - true to optimize
      Returns:
      this analyzer for chaining
    • clearCache

      public void clearCache()
      Clears the baseline cache, forcing recalculation.
    • analyzeFailureImpact

      public ProductionImpactResult analyzeFailureImpact(String equipmentName)
      Analyzes the production impact of failing a specific equipment.
      Parameters:
      equipmentName - name of the equipment to fail
      Returns:
      production impact result
    • analyzeFailureImpact

      public ProductionImpactResult analyzeFailureImpact(String equipmentName, EquipmentFailureMode failureMode)
      Analyzes the production impact of a specific failure mode.
      Parameters:
      equipmentName - name of the equipment
      failureMode - the failure mode to simulate
      Returns:
      production impact result
    • calculateBaseline

      private void calculateBaseline(ProductionImpactResult result)
      Calculates baseline (normal operation) values.
    • applyFailure

      private void applyFailure(ProcessSystem process, String equipmentName, EquipmentFailureMode failureMode, ProductionImpactResult result)
      Applies a failure mode to equipment in the process.
    • identifyAffectedEquipment

      private void identifyAffectedEquipment(ProcessSystem process, String failedEquipment, ProductionImpactResult result)
      Identifies equipment affected by the failure.
    • optimizeDegradedOperation

      private void optimizeDegradedOperation(ProcessSystem failedProcess, String failedEquipment, ProductionImpactResult result)
      Optimizes operation with failed equipment.
    • getProductionRate

      private double getProductionRate(ProcessSystem process)
      Gets the production rate from a process system.
    • getTotalPower

      private double getTotalPower(ProcessSystem process)
      Gets the total power consumption from a process system.
    • findBottleneck

      private BottleneckResult findBottleneck(ProcessSystem process)
      Finds the current bottleneck in the process.
    • compareToPlantStop

      public ProductionImpactResult compareToPlantStop(String equipmentName)
      Compares running with failed equipment vs. full plant shutdown.
      Parameters:
      equipmentName - name of the failed equipment
      Returns:
      comparison result with recommendation
    • rankEquipmentByCriticality

      public List<ProductionImpactResult> rankEquipmentByCriticality()
      Ranks all equipment by criticality (production impact of failure).
      Returns:
      list of results sorted by production impact (highest first)
    • analyzeMultipleFailures

      public ProductionImpactResult analyzeMultipleFailures(List<String> equipmentNames)
      Analyzes multiple simultaneous equipment failures.
      Parameters:
      equipmentNames - list of equipment names to fail
      Returns:
      combined production impact result
    • compareFailureScenarios

      public List<ProductionImpactResult> compareFailureScenarios(List<String> equipmentNames)
      Gets what-if analysis comparing different failure scenarios.
      Parameters:
      equipmentNames - list of equipment to compare
      Returns:
      list of results for each scenario
    • getProcessSystem

      public ProcessSystem getProcessSystem()
      Gets the process system.
      Returns:
      the process system
    • setProcessSystem

      public void setProcessSystem(ProcessSystem processSystem)
      Sets a new process system.
      Parameters:
      processSystem - the new process system