Class SensitivityResult

java.lang.Object
neqsim.process.safety.risk.SensitivityResult

public class SensitivityResult extends Object
Container for sensitivity analysis results.

Stores the results of varying one or more parameters and observing the effect on risk metrics. Supports tornado diagrams, spider plots, and one-way sensitivity charts.

Author:
NeqSim team
  • Field Details

    • analysisName

      private final String analysisName
    • baseCase

      private final String baseCase
    • parameterSensitivities

      private final Map<String, double[][]> parameterSensitivities
    • tornadoData

      private final Map<String,double[]> tornadoData
    • baseRiskIndex

      private double baseRiskIndex
    • baseFrequency

      private double baseFrequency
  • Constructor Details

    • SensitivityResult

      public SensitivityResult(String analysisName, String baseCase)
      Creates a new sensitivity result container.
      Parameters:
      analysisName - name of the analysis
      baseCase - description of base case
  • Method Details

    • setBaseRiskIndex

      void setBaseRiskIndex(double value)
    • setBaseFrequency

      void setBaseFrequency(double value)
    • addParameterSensitivity

      void addParameterSensitivity(String parameterName, double[] values, double[] risks)
      Adds sensitivity data for a parameter.
      Parameters:
      parameterName - name of the parameter varied
      values - array of parameter values tested
      risks - corresponding risk values at each parameter value
    • getAnalysisName

      public String getAnalysisName()
    • getBaseCase

      public String getBaseCase()
    • getBaseRiskIndex

      public double getBaseRiskIndex()
    • getBaseFrequency

      public double getBaseFrequency()
    • getParameterNames

      public String[] getParameterNames()
      Gets the parameter names that were varied.
      Returns:
      array of parameter names
    • getParameterSensitivity

      public double[][] getParameterSensitivity(String parameterName)
      Gets the sensitivity data for a specific parameter.
      Parameters:
      parameterName - parameter to query
      Returns:
      array of [value, risk] pairs, or null if not found
    • getTornadoData

      public Map<String,double[]> getTornadoData()
      Gets tornado chart data for all parameters.

      Returns a map of parameter names to [low_risk, base_risk, high_risk] arrays. Parameters are ordered by swing (high - low) in descending order for proper tornado display.

      Returns:
      ordered map of tornado data
    • getSensitivityIndex

      public double getSensitivityIndex(String parameterName)
      Calculates the sensitivity index for a parameter.

      The sensitivity index is the ratio of the swing in risk to the base risk: (max - min) / base

      Parameters:
      parameterName - parameter to analyze
      Returns:
      sensitivity index, or 0 if parameter not found
    • getMostSensitiveParameter

      public String getMostSensitiveParameter()
      Gets the most sensitive parameter.
      Returns:
      name of parameter with highest sensitivity index
    • exportToCSV

      public void exportToCSV(String filename)
      Exports results to CSV format.
      Parameters:
      filename - output file path
    • exportToJSON

      public void exportToJSON(String filename)
      Exports results to JSON format.
      Parameters:
      filename - output file path
    • toString

      public String toString()
      Overrides:
      toString in class Object