This repository is a supplementary branch to the main SimuBridge project. It contains the source code for the web application that is the heart piece of the project. Please refer to the SimuBridge project root repository for overall project documentation.
This project focuses on sustainability related information on SimuBridge. The extensions made allows users to assign probabilistic distributions to cost driver concretizations. The platform facilitates a deeper understanding of the environmental implications of different operational choices, providing valuable insights for sustainable decision-making. To this end, it communicates with the sustainability database software openLCA and the business process simulation engine Scylla using a tailored plugin.
Have a look at the demo folder for a little demonstration how the extension works.
The fastest way to setup the system is to use the provided docker-compose file provided with this repository - no git checkout needed. As a prerequisite, Docker needs to be installed
To do so, first download the docker-compose.yml.
Then run the following command in the folder where you downloaded the compose file:
docker-compose -f docker-compose.yml upThis will set-up SimuBridge as well as Scylla (including the necessary plugins) and the Simod simulation model discovery tool.
To install openLCA, go to https://www.openlca.org/download/ and download and run the respective installer.
Download the demo data we provide at ./demo/LCA/demo_dataset.zolca and import into openLCA via File > Import > File > demo_dataset.zolca. Open the demo database by double-clicking on it. Start the IPC server of openLCA by clicking Tools > Developer tools > IPC Server, entering port 8081 and clicking run. Open SimuBridge in the browser at http://localhost:3000 and select the OpenLCA Integration menu entry. Click Fetch Impact Methods, select an impact method such as ReCiPe 2016 Endpoint (H) and click Calculate. Proceed to configure the simulation scenario and environmental cost variants. The demo folder of this repository provides three sample process models and event logs you can use to test out the main functionalities of the SOPA-SimuBridge integration.
This extension adds and extends multiple pages to the basic SimuBridge UI.
This step only fetches the impact method and normalization set. The cost computation is taken out in this step.
- Parameter Configuration: Configure distribution parameters for each concrete driver:
- Information Tooltips: Access detailed descriptions of concrete cost drivers via info icons
Shows a comparison of the environmental impact score of previously run scenarios.
The system supports various statistical distributions for parameterizing concrete cost drivers:
- Constant: Fixed value distribution with configurable target unit (e.g., kgkm, tkm)
- Normal: Gaussian distribution with mean and variance parameters
- Exponential: Exponential distribution with mean parameter
- Uniform: Uniform distribution with lower and upper bounds
- Triangular: Triangular distribution with lower, peak, and upper bounds
- Erlang: Erlang distribution with order and mean parameters
- Binomial: Binomial distribution with probability and amount parameters
- Arbitrary Finite Probability Distribution: Custom probability distributions
Each distribution type includes appropriate parameter validation and supports different target units for environmental impact calculations.
This repository adds the following components and logic classes to the base SimuBridge project:
Lca/
├── Components/
│ ├── BasicSpinner.jsx
│ ├── FormattedConcreteDriver.jsx
│ ├── LcaIntegration.jsx
│ ├── LcaVariantsConfiguration.jsx
│ ├── OlcaConnectionAlert.jsx
│ └── VariantEditor.jsx
└── Logic/
├── LcaDataManager.js
├── LcaIntegrationUtils.js
└── OpenLcaConnector.js
### Components
- `BasicSpinner.jsx`: Auxiliary React component for the loading spinner.
- `FormattedConcreteDriver.jsx`: Component to display formatted data of concrete cost drivers.
- `LcaIntegration.jsx`: Interface for configuring external LCA data integration.
- `LcaVariantsConfiguration.jsx`: Manages the mapping of abstract and concrete cost drivers for variants.
- `VariantEditor.jsx`: UI component for creating or editing variants.
- `OlcaConnectionAlert.jsx`: Notifies about the OpenLCA connection status.
### Logic
- `LcaDataManager.js`: Manages app data storage.
- `LcaIntegrationUtils.js`: Handles requests to external LCA systems.
- `OpenLcaConnector.js`: Specialized connector for OpenLCA software integration.
