Class SISIntegratedRiskModel
java.lang.Object
neqsim.process.safety.risk.RiskModel
neqsim.process.safety.risk.sis.SISIntegratedRiskModel
- All Implemented Interfaces:
Serializable
Risk model integrated with Safety Instrumented Systems (SIS).
Extends the standard RiskModel with SIS-specific features:
- SIF definitions and PFD calculations
- Residual risk after SIF mitigation
- Layer of Protection Analysis (LOPA) support
- SIL verification against risk targets
Example Usage
SISIntegratedRiskModel model = new SISIntegratedRiskModel("Process Risk Study");
model.setProcessSystem(processSystem);
// Add initiating events
model.addInitiatingEvent("Overpressure", 0.1, ConsequenceCategory.MAJOR);
// Add SIFs
SafetyInstrumentedFunction hipps =
SafetyInstrumentedFunction.builder().name("HIPPS-001").sil(3).pfd(0.001)
.protectedEquipment(Arrays.asList("Pipeline")).initiatingEvent("Overpressure").build();
model.addSIF(hipps);
// Calculate residual risk
SISRiskResult result = model.calculateResidualRisk();
System.out.println("Residual frequency: " + result.getResidualFrequency());
- Version:
- 1.0
- Author:
- NeqSim Development Team
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumConsequence types for risk criteria.static classIndependent Protection Layer (IPL) for LOPA.static classRisk tolerance criteria for SIL determination.Nested classes/interfaces inherited from class RiskModel
RiskModel.Builder -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Map<String, List<SafetyInstrumentedFunction>> Mapping of equipment to protecting SIFs.private Map<String, List<SafetyInstrumentedFunction>> Mapping of initiating events to mitigating SIFs.Independent Protection Layers (non-SIS barriers).private static final longprivate List<SafetyInstrumentedFunction> List of SIFs in the model.Risk tolerance criteria. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds an Independent Protection Layer.voidAdds a SIF to the model.Calculates residual risk after SIF mitigation.intdetermineRequiredSIL(String eventName, SISIntegratedRiskModel.ConsequenceType consequenceType) Determines required SIL for an event to meet risk criteria.getIPLs()Gets all IPLs.getSIFs()Gets all SIFs in the model.getSIFsForEquipment(String equipmentName) Gets SIFs protecting specific equipment.getSIFsForEvent(String eventName) Gets SIFs mitigating a specific initiating event.Gets risk tolerance criteria.performLOPA(String eventName) Performs Layer of Protection Analysis (LOPA) for an event.voidSets risk tolerance criteria.toJson()Converts to JSON string.toMap()Converts to map for JSON serialization.Verifies that SIFs meet required SIL for all events.Methods inherited from class RiskModel
addConditionalEvent, addEvent, addInitiatingEvent, builder, getEvents, getInitiatingEvents, getName, runDeterministicAnalysis, runMonteCarloAnalysis, runSensitivityAnalysis, runSensitivityAnalysis, runSimulationBasedAnalysis, setFrequencyUncertaintyFactor, setProbabilityUncertaintyStdDev, setProcessSystem, setRandomSeed, setStoreMonteCarloSamples, toString
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
sifs
List of SIFs in the model. -
equipmentSIFs
Mapping of equipment to protecting SIFs. -
eventSIFs
Mapping of initiating events to mitigating SIFs. -
ipls
Independent Protection Layers (non-SIS barriers). -
toleranceCriteria
Risk tolerance criteria.
-
-
Constructor Details
-
SISIntegratedRiskModel
Creates a SIS-integrated risk model.- Parameters:
name- study name
-
-
Method Details
-
addSIF
Adds a SIF to the model.- Parameters:
sif- safety instrumented function
-
getSIFs
-
getSIFsForEquipment
Gets SIFs protecting specific equipment.- Parameters:
equipmentName- equipment name- Returns:
- list of protecting SIFs
-
getSIFsForEvent
Gets SIFs mitigating a specific initiating event.- Parameters:
eventName- event name- Returns:
- list of mitigating SIFs
-
addIPL
Adds an Independent Protection Layer.- Parameters:
ipl- the IPL
-
getIPLs
Gets all IPLs.- Returns:
- list of IPLs
-
calculateResidualRisk
Calculates residual risk after SIF mitigation.- Returns:
- SIS risk result
-
performLOPA
Performs Layer of Protection Analysis (LOPA) for an event.- Parameters:
eventName- initiating event name- Returns:
- LOPA result
-
determineRequiredSIL
public int determineRequiredSIL(String eventName, SISIntegratedRiskModel.ConsequenceType consequenceType) Determines required SIL for an event to meet risk criteria.- Parameters:
eventName- event nameconsequenceType- consequence type for criteria- Returns:
- required SIL (0 if no SIF needed, -1 if SIL4 insufficient)
-
verifySILRequirements
Verifies that SIFs meet required SIL for all events.- Returns:
- verification results as a map (or null if no SIFs)
-
setToleranceCriteria
Sets risk tolerance criteria.- Parameters:
criteria- tolerance criteria
-
getToleranceCriteria
Gets risk tolerance criteria.- Returns:
- tolerance criteria
-
toMap
-
toJson
-