Accelerator-based Real Time Smoke Simulator
ARTSS is a real-time and prognosis capable CFD code basis simulating buoyancy-driven turbulent smoke spread based on finite differences and a large eddy simulation turbulence model. The open source code is portable on CPU and GPU and successfully verified using analytical and semi-analytical tests. It is also successfully validated with scenarios relevant for fire protection. ARTSS is based on JuROr, which was originally developed within the ORPHEUS project (funded by BMBF) by Dr. Anne Küsters.
The serial CPU version of ARTSS can be compiled on Linux or MacOS systems with very few tools, whereas the multicore and GPU version needs an OpenACC capable compiler. Detailed requirements are listed in the table below (general requirements for serial version, specific for multicore and GPU version).
Purpose | Tool | Version | |
---|---|---|---|
General | Version control system (optional) | git | >= 2.0 |
Build processor using a compiler-independent method | CMake | >= 2.8 | |
Compiler fully supporting C++-17 (gcc or clang) | gcc | >= 7.0 | |
Visualization of output | vtk | >= 5.8 | |
Testing for consistency of output while developing | Python | >= 3.6 | |
Libraries | Logging | spdlog | |
String formatting in output | fmt | ||
Specific | Compiler fully supporting C++-17 and OpenACC | NVHPC | >= 20.9.0 |
Once the code has been checked out and all required software has been installed, ARTSS can be built from the terminal by first running cmake to configure the build, then running make. The steps are summarized below.
git clone --recurse-submodules https://github.com/FireDynamics/ARTSS.git
cd ARTSS
if you already have a local copy of ARTSS and are missing spdlog or fmt do a recursive submodule init.
git submodule update --init --recursive
./compile.sh [OPTIONS]
Note: Without options all executables will be compiled using the NVHPC compiler and CUDA 10.1.
OPTIONS (selection; show all by using --help flag):
EXAMPLE:
./compile.sh -s --jobs 4 --gcc
./compile.sh -m
Extra: It is also possible to work with ARTSS by using Docker. Instructions and further information can be found in DOCKER.md.
ARTSS
│ compile.sh
│ README
│ CMakeLists.txt
│ LICENSE
│
└───examples
│ # simple examples to demonstrate the capabilities of ARTSS
|
└───src
│ # source code
│
└───tests
│ # files to test individual modules of ARTSS
│
└───tools
│ # different tools that make your life easier
We are working constantly on this project, which above all means we are not finished yet: continuous improvements are made, new features are implemented and bugs getting fixed. If you find any errors or you have a suggestions, please feel free to write an issue here. If you want to work on the project, please refer to the contributing guidelines.