Class DependencyAnalyzer

java.lang.Object
neqsim.process.util.topology.DependencyAnalyzer
All Implemented Interfaces:
Serializable

public class DependencyAnalyzer extends Object implements Serializable
Analyzes dependencies between equipment and their impact on each other.

Answers questions like:

  • "If pump A fails, what else becomes critical?"
  • "Which equipment should we monitor when we see a weakness in compressor B?"
  • "What's the cascade effect of a separator trip?"
Version:
1.0
Author:
NeqSim Development Team
See Also:
  • Field Details

  • Constructor Details

    • DependencyAnalyzer

      public DependencyAnalyzer(ProcessSystem processSystem)
      Creates a new dependency analyzer.
      Parameters:
      processSystem - the process system
    • DependencyAnalyzer

      public DependencyAnalyzer(ProcessSystem processSystem, ProcessTopologyAnalyzer topologyAnalyzer)
      Creates a dependency analyzer with an existing topology analyzer.
      Parameters:
      processSystem - the process system
      topologyAnalyzer - existing topology analyzer
  • Method Details

    • initialize

      public void initialize()
      Initializes the analyzer (builds topology if not already built).
    • analyzeFailure

      public DependencyAnalyzer.DependencyResult analyzeFailure(String equipmentName)
      Analyzes what happens when a specific equipment fails.
      Parameters:
      equipmentName - the equipment that fails
      Returns:
      dependency analysis result
    • getEquipmentToMonitor

      public Map<String,String> getEquipmentToMonitor(String equipmentName)
      Gets equipment that should be monitored when weakness is detected.

      Answers: "I see a weakness on this equipment, what else must we watch?"

      Parameters:
      equipmentName - equipment with detected weakness
      Returns:
      list of equipment to monitor with priority
    • addCrossInstallationDependency

      public void addCrossInstallationDependency(String sourceEquipment, String targetEquipment, String targetInstallation, String dependencyType)
      Adds a cross-installation dependency.

      Example: Gas export from Gullfaks C to Ã…sgard processing

      Parameters:
      sourceEquipment - source equipment on this installation
      targetEquipment - target equipment on other installation
      targetInstallation - name of target installation
      dependencyType - type (gas_export, oil_export, utility, etc.)
    • addCrossInstallationDependency

      public void addCrossInstallationDependency(FunctionalLocation sourceLocation, FunctionalLocation targetLocation, String dependencyType, double impactFactor)
      Adds a cross-installation dependency with functional locations.
      Parameters:
      sourceLocation - source STID
      targetLocation - target STID
      dependencyType - type of dependency
      impactFactor - impact factor (0-1)
    • findCriticalPaths

      public List<List<String>> findCriticalPaths()
      Finds all critical paths through the process.
      Returns:
      list of critical paths (each path is a list of equipment names)
    • findPaths

      private void findPaths(String current, Set<String> endNodes, List<String> path, List<List<String>> allPaths)
    • calculatePathCriticality

      private double calculatePathCriticality(List<String> path)
    • getTopologyAnalyzer

      public ProcessTopologyAnalyzer getTopologyAnalyzer()
      Gets the topology analyzer.
      Returns:
      topology analyzer
    • getImpactAnalyzer

      public ProductionImpactAnalyzer getImpactAnalyzer()
      Gets the impact analyzer.
      Returns:
      impact analyzer