Skip to the content.

This documentation covers NeqSim’s comprehensive Operational Risk Simulation Framework for equipment failure analysis, production impact assessment, and process topology analysis.


πŸ“š Documentation Structure

Core Framework

Section Description
Overview Framework architecture and key concepts
Equipment Failure Modeling Failure modes, types, and reliability data
Risk Matrix 5Γ—5 risk matrix with probability, consequence, and cost
Monte Carlo Simulation Stochastic simulation for availability analysis
Production Impact Analysis Analyzing failure effects on production
Degraded Operation Optimizing plant operation during outages
Process Topology Graph structure extraction and analysis
STID & Functional Location Equipment tagging following ISO 14224
Dependency Analysis Cascade failure and cross-installation effects
Mathematical Reference Formulas and statistical methods
API Reference Complete Java API documentation

Advanced Risk Framework (P1-P7)

Section Description
Advanced Framework Overview Overview of the implemented risk-analysis packages
P1: Dynamic Simulation Monte Carlo with transient modeling
P2: SIS/SIF Integration IEC 61508/61511, LOPA, SIL verification
P4: Bow-Tie Analysis Barrier analysis, threat/consequence visualization
P6: Condition-Based Reliability Health monitoring, RUL estimation

Quick start: a traceable LOPA calculation

The example below is a complete Java 8 program. It applies a BPCS protection layer and a SIL 2 safety instrumented function (SIF) to an initiating-event frequency. The numerical result is transparent:

\[f_{\mathrm{mitigated}} = f_{\mathrm{IE}}\,\mathrm{PFD}_{\mathrm{BPCS}}\,\mathrm{PFD}_{\mathrm{SIF}} = 0.1 \times 0.1 \times 0.005 = 5.0 \times 10^{-5}\ \mathrm{yr}^{-1}\]
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import neqsim.process.safety.risk.RiskEvent;
import neqsim.process.safety.risk.sis.LOPAResult;
import neqsim.process.safety.risk.sis.SISIntegratedRiskModel;
import neqsim.process.safety.risk.sis.SafetyInstrumentedFunction;

public final class RiskFrameworkQuickStart {
  private static final Logger logger = LogManager.getLogger(RiskFrameworkQuickStart.class);

  private RiskFrameworkQuickStart() {}

  public static void main(String[] args) {
    String eventName = "HP vessel overpressure";

    SISIntegratedRiskModel model = new SISIntegratedRiskModel("HP vessel LOPA");
    model.addInitiatingEvent(eventName, 0.1, RiskEvent.ConsequenceCategory.MAJOR);

    SISIntegratedRiskModel.IndependentProtectionLayer bpcs =
        new SISIntegratedRiskModel.IndependentProtectionLayer(
            "BPCS pressure control",
            0.1,
            SISIntegratedRiskModel.IndependentProtectionLayer.IPLType.BPCS);
    bpcs.addApplicableEvent(eventName);
    model.addIPL(bpcs);

    SafetyInstrumentedFunction esd = SafetyInstrumentedFunction.builder()
        .id("SIF-001")
        .name("High-pressure ESD")
        .description("Isolate the HP vessel on confirmed high pressure")
        .sil(2)
        .pfd(0.005)
        .initiatingEvent(eventName)
        .addProtectedEquipment("HP vessel")
        .safeState("Isolated")
        .build();
    model.addSIF(esd);

    LOPAResult result = model.performLOPA(eventName);
    double expectedFrequency = 0.1 * 0.1 * 0.005;
    if (Math.abs(result.getMitigatedFrequency() - expectedFrequency) > 1.0e-12) {
      throw new IllegalStateException("LOPA layer multiplication did not close");
    }

    logger.info("Mitigated frequency: {} per year", result.getMitigatedFrequency());
    logger.info("Total risk-reduction factor: {}", result.getTotalRRF());
  }
}

This calculation demonstrates software behavior, not approval of an initiating-event frequency, IPL independence, SIL target, test interval, or safe state. Those inputs require a traceable hazard study and accountable review. For a process-coupled study, continue with Monte Carlo simulation, dynamic risk, SIS integration, and process topology. Python users should access these Java classes through the supported from neqsim import jneqsim gateway; see the advanced risk notebook for the complete setup.


πŸ“Š Framework Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    NeqSim Process Simulation                        β”‚
β”‚                         ProcessSystem                               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚
           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
           β–Ό                   β–Ό                   β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Equipment      β”‚  β”‚  Production     β”‚  β”‚  Process        β”‚
β”‚  Failure        β”‚  β”‚  Impact         β”‚  β”‚  Topology       β”‚
β”‚  Modeling       β”‚  β”‚  Analysis       β”‚  β”‚  Analysis       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                    β”‚                    β”‚
         β–Ό                    β–Ό                    β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Reliability    β”‚  β”‚  Degraded       β”‚  β”‚  Dependency     β”‚
β”‚  Data           β”‚  β”‚  Operation      β”‚  β”‚  Analysis       β”‚
β”‚  (OREDA)        β”‚  β”‚  Optimizer      β”‚  β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                    β”‚                    β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β–Ό
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚      Risk Assessment          β”‚
              β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
              β”‚  β”‚    Monte Carlo          β”‚  β”‚
              β”‚  β”‚    Simulation           β”‚  β”‚
              β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
              β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
              β”‚  β”‚    Risk Matrix          β”‚  β”‚
              β”‚  β”‚    (5Γ—5 Visualization)  β”‚  β”‚
              β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“¦ Package Structure

neqsim.process
β”œβ”€β”€ equipment.failure
β”‚   β”œβ”€β”€ EquipmentFailureMode      - Failure type definitions
β”‚   β”œβ”€β”€ ReliabilityDataSource     - OREDA reliability data
β”‚   └── package-info.java
β”œβ”€β”€ safety.risk
β”‚   β”œβ”€β”€ OperationalRiskSimulator  - Monte Carlo engine
β”‚   β”œβ”€β”€ OperationalRiskResult     - Simulation results
β”‚   └── RiskMatrix                - 5Γ—5 risk matrix
└── util
    β”œβ”€β”€ optimizer
    β”‚   β”œβ”€β”€ ProductionImpactAnalyzer   - Impact analysis
    β”‚   β”œβ”€β”€ ProductionImpactResult     - Impact results
    β”‚   β”œβ”€β”€ DegradedOperationOptimizer - Degraded optimization
    β”‚   └── DegradedOperationResult    - Optimization results
    └── topology
        β”œβ”€β”€ ProcessTopologyAnalyzer    - Graph extraction
        β”œβ”€β”€ FunctionalLocation         - STID parsing
        β”œβ”€β”€ DependencyAnalyzer         - Cascade analysis
        └── package-info.java