Event Modeling Risk Assessment using Linked Diagrams (EMRALD)
Event Modeling Risk Assessment using Linked Diagrams (EMRALD) is a software tool developed at INL for researching the capabilities of dynamic PRA (Probabilistic Risk Assessment). In order to promote the effective use of dynamic PRA by the general community, EMRALD focuses on the following key aspects:
- Simplifying the modeling process by providing a structure that corresponds to traditional PRA modeling methods.
- Providing a user interface (UI) that makes it easy for the user to model and visualize complex interactions.
- Allowing the user to couple with other analysis applications such as physics based simulations. This includes one-way communication for most applications and two-way loose coupling for customizable applications.
- Providing the sequence and timing of events that lead to the specified outcomes when calculating results.
- Traditional aspects of components with basic events, fault trees, and event trees are all captured in a dynamic framework of state diagrams, which are displayed.
- Clone this repository to your machine using
git clone https://github.com/idaholab/EMRALD.git
- To avoid unexpected problems during setup, it is strongly recommended to NOT use Visual Studio to clone the repository
- When the cloning is complete, open "EMRALD.sln" in Visual Studio.
- This project uses .NET 6, which is not supported in versions of Visual Studio below Visual Studio 2022. Click here for more info on .NET 6 support. If .NET 6 is not installed, it can be downloaded from https://dotnet.microsoft.com/en-us/download/dotnet/6.0. Please ensure this is installed before attempting to run any of the EMRALD projects.
- If needed, a .NET 5 version of EMRALD exists on the legacy/dotnet5 branch.
- In Visual Studio's Solution Explorer, there will be several projects listed. These are shown in the EMRALD Projects section below. The three primary projects are the website used for building models, the desktop application used for running simulations, and the documentation project for getting started with EMRALD and learning how to use it.
- To run (debug) the Website project:
- After loading the solution in Visual Studio and all packages have been restored, run the
RunFirst.bat
file in theEmrald_Site
folder. After doing this step one time, it only needs to be done when NuGet packages have been changed or updated (if the site fails to load properly, this may be an indicator that this script needs to be run again).- To run this file from Visual Studio, right-click on the
Emrald_Site
project and selectOpen in Terminal
. - In the terminal window that appears, type
.\RunFirst.bat
and hit enter. - This will copy the needed dependencies for the Emrald_Site project that could not be restored by Visual Studio
- Upon completion, a success message should appear.
- To run this file from Visual Studio, right-click on the
- Right-click on "Emrald_Site" in the Solution Explorer
- Select "View in Browser"
- After loading the solution in Visual Studio and all packages have been restored, run the
- To run (debug) the Simulator Project:
- Right-click on "EMRALD_Sim" in the Solution Explorer
- Under "Debug," select "Start New Instance"
- To run the Documentation Project:
- Download and install Node.js from https://nodejs.org/en/ (This will also install npm)
- Once Node.js is installed, navigate to the "emrald-docs" directory (i.e. \EMRALD\emrald-docs) in a terminal window (such as Command Prompt)
- Run the commmand
npm install
to install the project's dependencies - Start the local dev server by running the command
npm run dev
- Once the server is running, this message should appear:
VuePress dev server listening at http://localhost:8080/
- Navigate to http://localhost:8080/ to view the EMRALD Documentation.
- To build the offline executable:
- Install C++ Build Tools, from within Visual Studio or from https://visualstudio.microsoft.com/visual-cpp-build-tools/
- Install WebView2 by downloading the Evergreen Standalone Installer from https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section
- Install Rust from https://www.rust-lang.org/tools/install
- Install Node.js & NPM from https://nodejs.org/en/
- Build dependencies by running
npm install
in the root directory - Build the executable by running
npm run build
in the root directory
- To run JavaScript unit tests:
- Install Node.js & NPM from https://nodejs.org/en/
- Build dependencies by running
npm install
in the root directory - Start the testing app by running
npm test
in the root directory - Visit https://localhost:8080/ to view the test results
- To generate a JavaScript coverage report:
- Install Node.js & NPM from https://nodejs.org/en/
- Build dependencies by running
npm install
in the root directory - Generate files required for coverage by running
npm run coverage
in the root directory - Visit https://localhost:8080/ to view the test results and generate the coverage data
- Run
npx nyx report --reporter=html
to generate the HTML coverage report - Visit ./coverage/index.html to view the coverage results
- To compile the Sankey diagrams:
- Install Node.js & NPM from https://nodejs.org/en/
- Install Yarn by running
corepack enable
in the root directory - In the d3-sankey-timeline directory, run
yarn build
to compile the project
- To run (debug) the Website project:
- EMRALD_Sim
- Emrald_Site
- emrald-docs
- MessageDefLib
- SimulationDAL
- SimulationEngine
- src-tauri
- Testing
- XmppClient
- XmppServerController
Idaho National Laboratory is a cutting edge research facility which is a constantly producing high quality research and software. Feel free to take a look at our other software and scientific offerings at:
Primary Technology Offerings Page
Supported Open Source Software
Raw Experiment Open Source Software
Unsupported Open Source Software
Copyright 2021 Battelle Energy Alliance, LLC
Licensed under the MIT (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://opensource.org/licenses/MIT
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This software is licensed under the terms you may find in the file named "LICENSE" in this directory.
By contributing to this software project, you are agreeing to the following terms and conditions for your contributions:
You agree your contributions are submitted under the Apache-2 license. You represent you are authorized to make the contributions and grant the license. If your employer has rights to intellectual property that includes your contributions, you represent that you have received permission to make contributions and grant the required license on behalf of that employer.