Class AutomaticScenarioGenerator
java.lang.Object
neqsim.process.safety.scenario.AutomaticScenarioGenerator
- All Implemented Interfaces:
Serializable
Automatically generates safety scenarios from equipment failure modes.
This class creates comprehensive what-if scenarios by:
- Failure Mode Analysis: Identify equipment-specific failure modes
- Combination Generation: Create multi-failure scenarios
- HAZOP Integration: Map to standard HAZOP deviations
- Prioritization: Rank scenarios by severity and likelihood
Usage Example:
ProcessSystem process = new ProcessSystem();
// ... configure process ...
AutomaticScenarioGenerator generator = new AutomaticScenarioGenerator(process);
// Generate all single-failure scenarios
List<ProcessSafetyScenario> scenarios = generator
.addFailureModes(FailureMode.COOLING_LOSS, FailureMode.VALVE_STUCK).generateSingleFailures();
// Generate combination scenarios (up to 2 simultaneous failures)
List<ProcessSafetyScenario> combinations = generator.generateCombinations(2);
// Run all scenarios
for (ProcessSafetyScenario scenario : scenarios) {
scenario.applyTo(process.copy());
process.run();
// Analyze results
}
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classRepresents a potential equipment failure.static enumStandard equipment failure modes.static enumStandard HAZOP deviation types.static classResult of running a single safety scenario. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Set<AutomaticScenarioGenerator.FailureMode> private final List<AutomaticScenarioGenerator.EquipmentFailure> private final ProcessSystemprivate static final long -
Constructor Summary
ConstructorsConstructorDescriptionAutomaticScenarioGenerator(ProcessSystem processSystem) Creates a scenario generator for a process system. -
Method Summary
Modifier and TypeMethodDescriptionAdds failure modes to consider.captureKeyResults(ProcessSystem process) Captures key result values from a process system after running a scenario.private ProcessSafetyScenarioprivate ProcessSafetyScenarioEnables all failure modes.generateCombinations(int maxCombinationSize) Generates combination scenarios (multiple simultaneous failures).Generates single-failure scenarios for all enabled failure modes.Gets a summary of identified failure modes by equipment type.Gets all identified equipment failures.private voidprivate voidRuns all single-failure scenarios for enabled failure modes.runScenarios(List<ProcessSafetyScenario> scenarios) Runs all generated scenarios and collects results.static StringGenerates a summary of scenario run results.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
processSystem
-
enabledFailureModes
-
identifiedFailures
-
equipmentToDeviations
-
-
Constructor Details
-
AutomaticScenarioGenerator
Creates a scenario generator for a process system.- Parameters:
processSystem- the process system to analyze
-
-
Method Details
-
addFailureModes
Adds failure modes to consider.- Parameters:
modes- failure modes to enable- Returns:
- this generator for chaining
-
enableAllFailureModes
Enables all failure modes.- Returns:
- this generator for chaining
-
generateSingleFailures
Generates single-failure scenarios for all enabled failure modes.- Returns:
- list of scenarios
-
generateCombinations
Generates combination scenarios (multiple simultaneous failures).- Parameters:
maxCombinationSize- maximum number of simultaneous failures- Returns:
- list of combination scenarios
-
getIdentifiedFailures
Gets all identified equipment failures.- Returns:
- list of potential failures
-
getFailureModeSummary
Gets a summary of identified failure modes by equipment type.- Returns:
- formatted summary string
-
identifyEquipmentFailureModes
private void identifyEquipmentFailureModes() -
identifyFailuresForEquipment
-
createScenario
-
createCombinationScenario
private ProcessSafetyScenario createCombinationScenario(AutomaticScenarioGenerator.EquipmentFailure... failures) -
runScenarios
public List<AutomaticScenarioGenerator.ScenarioRunResult> runScenarios(List<ProcessSafetyScenario> scenarios) Runs all generated scenarios and collects results.This method runs each scenario on a copy of the process system and captures key result values. Scenarios that fail to converge are recorded with their error messages.
- Parameters:
scenarios- list of scenarios to run- Returns:
- list of results for each scenario
-
runAllSingleFailures
Runs all single-failure scenarios for enabled failure modes.- Returns:
- list of results
-
captureKeyResults
Captures key result values from a process system after running a scenario.- Parameters:
process- the process system after scenario execution- Returns:
- map of result name to value
-
summarizeResults
Generates a summary of scenario run results.- Parameters:
results- list of scenario results- Returns:
- formatted summary string
-