Class RiskMatrix

java.lang.Object
neqsim.process.safety.risk.RiskMatrix
All Implemented Interfaces:
Serializable

public class RiskMatrix extends Object implements Serializable
Risk Matrix for equipment failure analysis.

Combines probability (from reliability data) with consequence (from NeqSim simulation) to create a visual risk matrix. Calculates economic cost of different failure scenarios.

Risk Categories

  • Probability: Very Low (1) to Very High (5) based on failure frequency
  • Consequence: Negligible (1) to Catastrophic (5) based on production loss
  • Risk Level: Low (green), Medium (yellow), High (orange), Critical (red)

Example Usage


RiskMatrix matrix = new RiskMatrix(processSystem);
matrix.setProductPrice(500.0, "USD/tonne");
matrix.setDowntimeCostPerHour(10000.0);

// Build risk matrix for all equipment
matrix.buildRiskMatrix();

// Get risk assessment for specific equipment
RiskAssessment risk = matrix.getRiskAssessment("HP Compressor");
System.out.println("Risk Level: " + risk.getRiskLevel());
System.out.println("Annual Cost: $" + risk.getAnnualRiskCost());

// Get matrix data for visualization
String json = matrix.toJson();

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
      Process system for simulation.
    • impactAnalyzer

      private transient ProductionImpactAnalyzer impactAnalyzer
      Production impact analyzer.
    • reliabilitySource

      private transient ReliabilityDataSource reliabilitySource
      Reliability data source.
    • riskAssessments

      private Map<String, RiskMatrix.RiskAssessment> riskAssessments
      Risk assessments for each equipment.
    • feedStreamName

      private String feedStreamName
      Feed stream name.
    • productStreamName

      private String productStreamName
      Product stream name.
    • productPricePerKg

      private double productPricePerKg
      Product price (per kg).
    • downtimeCostPerHour

      private double downtimeCostPerHour
      Downtime cost per hour (fixed costs, personnel, etc.).
    • operatingHoursPerYear

      private double operatingHoursPerYear
      Hours of operation per year.
  • Constructor Details

    • RiskMatrix

      public RiskMatrix(ProcessSystem processSystem)
      Creates a risk matrix for the process system.
      Parameters:
      processSystem - the process system
  • Method Details

    • autoDetectStreams

      private void autoDetectStreams()
    • setFeedStreamName

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

      public RiskMatrix setProductStreamName(String name)
      Sets the product stream name.
      Parameters:
      name - the product stream name
      Returns:
      this matrix for chaining
    • setProductPrice

      public RiskMatrix setProductPrice(double price, String unit)
      Sets the product price.
      Parameters:
      price - the price
      unit - the unit (e.g., "USD/tonne", "USD/kg", "NOK/Sm3")
      Returns:
      this matrix for chaining
    • setDowntimeCostPerHour

      public RiskMatrix setDowntimeCostPerHour(double costPerHour)
      Sets the downtime cost per hour (fixed costs during shutdown).
      Parameters:
      costPerHour - cost per hour
      Returns:
      this matrix for chaining
    • setOperatingHoursPerYear

      public RiskMatrix setOperatingHoursPerYear(double hours)
      Sets operating hours per year.
      Parameters:
      hours - operating hours
      Returns:
      this matrix for chaining
    • addEquipmentRisk

      public RiskMatrix addEquipmentRisk(String equipmentName, double failuresPerYear, double mttr)
      Adds custom equipment risk data (overrides database).
      Parameters:
      equipmentName - equipment name
      failuresPerYear - expected failures per year
      mttr - mean time to repair in hours
      Returns:
      this matrix for chaining
    • buildRiskMatrix

      public void buildRiskMatrix()
      Builds the risk matrix by analyzing all equipment.
    • analyzeEquipment

      public void analyzeEquipment(String equipmentName, String equipmentType)
      Analyzes a specific equipment.
      Parameters:
      equipmentName - equipment name
      equipmentType - equipment type for reliability lookup
    • calculateCost

      private void calculateCost(RiskMatrix.RiskAssessment assessment)
    • guessEquipmentType

      private String guessEquipmentType(ProcessEquipmentInterface unit)
    • getRiskAssessment

      public RiskMatrix.RiskAssessment getRiskAssessment(String equipmentName)
      Gets risk assessment for specific equipment.
      Parameters:
      equipmentName - equipment name
      Returns:
      risk assessment or null
    • getRiskAssessments

      public Map<String, RiskMatrix.RiskAssessment> getRiskAssessments()
      Gets all risk assessments.
      Returns:
      map of equipment name to risk assessment
    • getRiskAssessmentsSortedByRisk

      public List<RiskMatrix.RiskAssessment> getRiskAssessmentsSortedByRisk()
      Gets risk assessments sorted by risk score (highest first).
      Returns:
      sorted list of risk assessments
    • getRiskAssessmentsSortedByCost

      public List<RiskMatrix.RiskAssessment> getRiskAssessmentsSortedByCost()
      Gets risk assessments sorted by annual cost (highest first).
      Returns:
      sorted list of risk assessments
    • getEquipmentByRiskLevel

      public List<String> getEquipmentByRiskLevel(RiskMatrix.RiskLevel level)
      Gets equipment in a specific risk level.
      Parameters:
      level - the risk level
      Returns:
      list of equipment names
    • getTotalAnnualRiskCost

      public double getTotalAnnualRiskCost()
      Gets total annual risk cost.
      Returns:
      total annual cost
    • getMatrixData

      public List<Map<String,Object>> getMatrixData()
      Gets risk matrix data for visualization.
      Returns:
      list of matrix points (x=probability level, y=consequence level)
    • toMap

      public Map<String,Object> toMap()
      Generates a summary map.
      Returns:
      summary map
    • toJson

      public String toJson()
      Serializes to JSON.
      Returns:
      JSON string
    • toString

      public String toString()
      Overrides:
      toString in class Object