Skip to content

ADS-IDAC Process Overview ​

This page describes Figure 1 of the ADS-IDAC manual: the top-level process overview flowchart. It provides a high-level map of the entire simulation program, from initialization through the main RELAP/operator scheduling loop, branch generation, and output.

Figure 1Figure 1 from original manual: "ADS-IDAC Process Overview"


Flowchart ​


Block Descriptions ​

Block 1 — Initialize RELAP Model and Read ADS-IDAC Input Data ​

This step initializes both the RELAP program and reads the ADS-IDAC input deck. The location of the RELAP input deck and of the ADS-IDAC input files is given on the command line (--input-deck, --project-dir) or in the options file ZiniADS.txt.

This step includes several input file consistency checks:

  • Presence of required input files
  • Completeness of the system decomposition file (KB_OAT(ODM)_System_Decomposition.txt)
  • Consistency in procedure step file names

Input Verification Limitation

Successful execution of ADS-IDAC initialization does not guarantee error-free input. Always examine the log file err messages.txt to determine if errors occurred during input file processing.

Block 2 — Initialize ADS-IDAC for Initial Accident Sequence ​

Initializes ADS-IDAC to begin the initial accident sequence (Sequence 0).

RELAP Input Deck Errors

Because a RELAP input deck error results in immediate RELAP termination, generation of the message "All sequences have been simulated" during this step generally indicates a RELAP input deck error. Identify such errors by running RELAP in standalone mode and examining its output file for syntax or formatting problems.

Block 3 — Initialize Counter (Set tcounter = 0) ​

The ADS-IDAC scheduler provides supervisory control over RELAP execution using two main time step parameters:

ParameterDescriptionSpecification
RELAP5 time step (ΔtRELAP)Incremental step for thermal-hydraulic calculationCards 200–299 in the RELAP input deck
ADS-IDAC time step (ΔtADS-IDAC)Incremental step for the ADS-IDAC schedulerDefault: 0.5 s (see dtstep.f line 1505 and CommandControlCenter.cpp line 205)

The RELAP5 time step must be equal to or less than the ADS-IDAC time step. Each ADS-IDAC time step, the scheduler pauses RELAP to update operator model data, activate failures and initiating events, and manipulate controls.

Block 4 — Run One RELAP Time Step ​

The RELAP5 thermal-hydraulic model executes for one time step as established by Cards 200–299 in the RELAP input deck.

Block 5 — Advance RELAP Counter ​

The accumulated time counter for RELAP5 execution is incremented by one RELAP time step (ΔtRELAP).

Block 6 — Pause RELAP Run? (tcounter > ΔtADS-IDAC?) ​

The accumulated counter is compared to the ADS-IDAC time step:

  • No (tcounter ≤ ΔtADS-IDAC): Return to Block 4 and run another RELAP time step.
  • Yes (tcounter > ΔtADS-IDAC): Proceed to the scheduler steps (Blocks 7–14).

Changing the ADS-IDAC Time Step

The default value of 0.5 s can be modified by editing two locations in tandem:

  • Line 1505 of Fortran module dtstep.f: if((timehy - timesno) .ge. ADS-IDAC_time_step) then
  • Line 205 of CommandControlCenter.cpp: this->reduceRemainingTime(ADS-IDAC_time_step)

Both locations must be set to the same value to keep the scheduler synchronized with RELAP5.

Block 7 — Check and Actuate Initiating Events / Update Control Panel ​

Two activities are performed:

  1. Initiating Events: The scheduler checks whether any initiating events specified in Initiating_Event.txt need to be activated.
  2. Update Control Panel: All indicators in ControlPanel.txt are refreshed from current RELAP thermal-hydraulic data.

Control Panel Update vs. Operator Perception

Updating control panel indicators does not automatically update the operator's perceived plant state. The operator must first perceive and memorize the information before it can be used in decision-making.

Block 8 — Check and Actuate Component Failures ​

The ADS-IDAC scheduler checks whether any hardware reliability failures specified in SystemReliability.txt need to be activated.

Block 9 — Execute Control Panel Actions ​

The scheduler checks for queued control manipulations. If any are pending, new control values are passed to the RELAP thermal-hydraulic code through the interactive controls defined in ControlPanel.txt and RELAP5_channels.txt.

Block 10 — Process Information (Decision Maker) ​

The Decision Maker (ODM) executes the Information Processing step. See the Information Processing flowchart for details.

Block 11 — Process Information (Action Taker) ​

The Action Taker (OAT) executes the Information Processing step. See the Information Processing flowchart for details.

Block 12 — Decision-Making (Decision Maker) ​

The Decision Maker executes the Decision-Making process. See the Decision-Making Process (Decision Maker) flowchart.

Block 13 — Decision-Making (Action Taker) ​

The Action Taker executes the Decision-Making process. See the Decision-Making Process (Action Taker) flowchart.

Block 14 — Were Two or More New Branches Generated? ​

A branch is generated each time a discrete event occurs during the simulation. Events include:

  • Changes in alarm states
  • Hardware actuations or failures
  • Control manipulations
  • Operator decisions
  • Performance of procedure step activities

A new sequence path is generated only when all of the following conditions are met:

  1. The branches are associated with one of the qualifying branch types:
    • Hardware reliability events, or
    • Operator-related events (action, procedure step expectation, goal, strategy, mental belief, or information gathering)
  2. Two or more branches of the same branch type are generated during the same time step.

Constraint on Multi-Type Branching

In the current version of ADS-IDAC it is not possible to generate multiple sequences for more than one operator-related branch type in a single time step. Operator-related branch type generation is therefore constrained so that only one operator branch type can be generated per time step (e.g., a goal branch and an action branch cannot both be generated simultaneously).

When a new sequence is generated, the events associated with each branch are partitioned among the new sequences. For example, if the Decision Maker generates two goal branches, the first is applied to one sequence and the second to the other.

Certain branch types (e.g., changes in alarm states) never generate new sequences regardless of how many branches are activated. Branches of different branch types also do not generate new sequences; their events are applied to the current sequence.

Block 15 — Output Event Sequence Data / Queue New Sequences ​

When a new sequence is identified, the ADS-IDAC scheduler saves the current plant and operator state information:

  • Console version: Information is copied to computer memory.
  • Multiple-processor version: Information is written to the computer hard disk.

Saved information includes:

  • Identity of the parent sequence branch
  • Number of new sequences generated
  • Events to be partitioned among the new sequences

New sequences are placed in a holding queue to await later simulation.

Block 16 — Current Accident Sequence Complete? ​

Four criteria can trigger sequence termination:

#Termination CriterionSource
1Simulation time reaches the truncation timeZCtrlPar.txt
2Sequence executed the non-response exit condition VSTOPProcedure non-response action
3Sequence probability reaches the probability cutoff valueZCtrlPar.txt
4An alarm condition with name prefix A_ENDSEQ is actuatedControlPanel.txt

Thermal-Hydraulic Error

A RELAP thermal-hydraulic error condition will also terminate a sequence. However, unlike the criteria above, a thermal-hydraulic error precludes restart of a new sequence and terminates the entire simulation.

Block 17 — Have All Accident Sequences Been Run? ​

Checks whether sequences remain in the simulation queue:

  • No: Proceed to Block 19 to initialize and run the next queued sequence.
  • Yes: Proceed to Block 18 (Simulation Done).

Block 18 — Initialize ADS-IDAC to Restart with a New Accident Sequence ​

Using the information stored at Block 15, ADS-IDAC re-initializes the operator and plant models to restart a queued sequence. This includes re-initialization of the RELAP5 thermal-hydraulic model back to the point when the new sequence was originally generated.

Block 19 — Simulation Done ​

The end-state file, the key parameter histories and the analysis logs of a sequence are written when that sequence ends. Once all sequences have been simulated, ADS-IDAC writes the pivotal-event files (a serial run) and ES_summary.txt; an MPI run merges the outputs of its ranks.


Output Files ​

ES File Folder ​

FileContents
ESFolder_<n>/ZESNode_<sequence_number>.txtEnd state of one sequence: time, probability, consequence code and description
ES_summary.txtSummarizes all sequences: sequence length, probability, and termination criteria
Scenario info.txtDetailed description of all sequences including all branching points and associated events
Procedure data.txtProcedure-step data of all sequences
Scan data.txtScan-queue data of all sequences

KPS File Folder ​

Output is arranged into folders (KPSFolder_0, KPSFolder_1, …). Each folder holds up to 1,000 files. For each sequence:

FileContents
ZDIA_<sequence_number>.txtTime history of the diagnostic engine event confidence level for each operator
ZKPS_<sequence_number>.txtTime history of all indicators specified in ControlPanel.txt
ZPIF_<sequence_number>.txtTime history of dynamic PIF values: system criticality, time-constrained loading, and information loading

PE File Folder ​

Output is arranged into folders (PEFolder_0, PEFolder_1, …). Each folder holds up to 1,000 files. The collection of PENode data files provides sufficient information to reconstruct the Discrete Dynamic Event Tree (DDET) for the simulation.

FileContents
ZPENode_<node_number>.txtBranch event type, time of event, and sequence number associated with the PE node

Data Analysis

The output files can be imported into a third-party program such as Microsoft Excel for data analysis and visualization.

ADS-IDAC Engine Documentation