Linux system with glibc version 2.17 or higher:
You will need GCC/Gfortran version 11 or higher, Cmake version 2.8 or higher, and GNU make.
Install as sudo or root
RHEL 8, CentOS Stream 8, Rocky Linux 8
dnf install gcc-toolset-11-toolchain
dnf install gcc-toolset-11-libasan-devel
dnf install gcc-toolset-11-libubsan-devel
dnf install libasan
dnf install libasan6
dnf install libubsan
dnf install make
dnf install cmake
dnf install python
dnf install perl
dnf install git-lfs
Installed python is Python3. To create the link from python3 to python,
type:
alternatives --config python
Select python3.
To enable the devtoolset-11, you can run source /opt/rh/gcc-toolset-11/enable
apt-get update
apt-get upgrade
apt-get install build-essential
apt-get install libasan6
apt-get install libubsan1
apt-get install gfortran
apt-get install cmake
apt-get install perl
apt-get install python3
apt-get install python-is-python3
apt-get install git-lfs
OpenMPI is needed to build OpenRadioss with OpenMPI support. It is recommended to build and install OpenMPI from OpenMPI website using gcc compiler.
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.2.tar.gz
tar -xvzf openmpi-4.1.2.tar.gz
cd openmpi-4.1.2
you need root or sudo rights on your computer.
./configure --prefix=/opt/openmpi
make
make install
This version works on ARMv8-A and higher architectures using Linux OS:
For the supported Hardware list, visit :
https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Linux#Supported-Devices
The Linux ARM64 version is built using armflang and armclang compiler. They are available for following Linux version :
As root or sudo user:
On RHEL 8, Rocky Linux8, Suse...
dnf install cmake dnf install python dnf install perl dnf install git dnf install git-lfs dnf install environment-modules
On Ubuntu 20.x, 22.x, 23.x...
apt-get update apt-get upgrade apt-get install build-essential apt-get install gfortran apt-get install cmake apt-get install perl apt-get install python3 apt-get install python-is-python3 apt-get install git apt-get install git-lfs apt-get install environment-modules
ARM compilers and ARM PErformance libraries are used to build OpenRadioss. ArmFlang 24.04 is recommended to build OpenRadioss. It uses the module system to setup the compiler.
module list module load acfl/24.04
Note:
source /etc/profile
export MODULEPATH=$MODULEPATH:/opt/arm/modulefiles
OpenMPI is needed to build OpenRadioss with OpenMPI support. It is recommended to build and install OpenMPI from OpenMPI website using gcc compiler.
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.2.tar.gz
tar -xvzf openmpi-4.1.2.tar.gz
cd openmpi-4.1.2
Load the gcc/gfortran compiler module from ArmFlang installation using module environment tool:
module avail
module load gnu/11.2.0
you need root or sudo rights on your computer.
./configure --prefix=/opt/openmpi make make install
OpenRadioss was tested with OneAPI 2025.0.1 + Visual Studio 2022. It is recommended to use this compiler or more recent to build OpenRadioss.
This chapter explains how to setup Windows on different build configuration
Install Toolkits
Minimum required packages are
Notes:
git lfs install
git config --global core.autocrlf true
Create the ssh key & set it in GitHub
ssh-keygen -t rsa
Note: Accept all defaults, Standard directory, no passphrase
Building using cmd.exe is using cmake.exe and ninja.exe Both are shipped with Visual Studio 2019.
Setup the compiler Load compiler settings in cmd.exe using following command :
call "c:\Program Files (x86)\Intel\oneAPI\setvars.bat"
cmd.exe can be launched using a batch script to ease usage
@echo off call "c:\Program Files (x86)\Intel\oneAPI\setvars.bat" cmd.exe
Notes:
See here if you want to contribute to OpenRadioss.
Architecture settings are designed to give best performance for OpenRadioss on the different processors.
Choose the architecture depending on your hardware and Operating system:
| CPU type | Compiler | -arch setting |
|---|---|---|
| All CPUs | GFortran compiler | -arch=linux64_gf |
| Intel/AMD with AVX-2: All AMD, INTEL Haswell processors or higher) | Intel OneAPI 2025.0 or higher | -arch=linux64_ifx |
| Intel/AMD with AVX-512: AMD Genoa, AMD Turin, INTEL Xeon Silver/Gold/Platinium processors) | Intel OneAPI 2025.0 or higher | -arch=linux64_ifx |
| All CPUs | Intel OneAPI 2024.2 or older / ifort legacy compiler | -arch=linux64_ifort |
| All CPUs | AMD AOCC | -arch=linux64_AOCC |
| CPU type | Compiler | -arch setting |
|---|---|---|
| All CPUs | ArmFlang 24.04 or higher | -arch=linuxa64 |
| All CPUs | GFortran compiler | -arch=linux64a_gf |
| CPU type | Compiler | -arch setting |
|---|---|---|
| Intel/AMD with AVX-2: All AMD, INTEL Haswell processors or higher) | Intel OneAPI 2025.0 or higher | -arch=win64 |
| Intel/AMD with AVX-512: AMD Genoa, AMD Turin, INTEL Xeon Silver/Gold/Platinium processors) | Intel OneAPI 2025.0 or higher | -arch=win64 |
| Intel CPUs without AVX-2 (Intel Ivy Bridge or older) | Intel OneAPI 2025.0 or higher | -arch=win64_sse3 |
| All CPUs | Intel OneAPI 2024.2 or older / ifort legacy compiler | -arch=win64_ifort |
The default for OpenRadioss builds are:
Recommendations for developers are to build OpenRadioss with :
OpenRadioss releases packs different executables for Linux & Windows. Those bellongs to the most commonly used architectures:
cd OpenRadioss/starter
Launch build_script.sh to proceed to the compilation
Usual build is make with:
./build_script.sh -arch=linux64_gf -release
Advanced script flags can be used to build OpenRadioss: run ./build_script.sh without arguments:
[]$ ./build_script.sh
Use with arguments :
-arch=[build architecture]
-arch=linux64_gf (SMP executable / Gfortran compiler)
-arch=linux64_AOCC (SMP executable / AOCC compiler)
-arch=linuxa64 (SMP executable / ARM Linux - Armflang compiler)
-arch=win64 (SMP executable / Windows X86-64 - Intel OneAPI)
-prec=[dp|sp] : set precision - dp (default) |sp
-static-link : Fortran, C & C++ runtime are linked in binary
-debug=[0|1|asan] : debug version for gfortran
0 : no debug flags (default)
1 : usual debug flag
asan : gfortran address sanitizer (default)
-release : Set build for release (optimized)
-addflag="list of additional flags" : add compiler flags to usual set
Execution control
-nt=[threads] : number of threads for build
-verbose : Verbose build
-clean : clean build directory
-no-python : do not link with python
Execution Control
Launch build_script.sh to proceed to the compilation To build OpenRadioss Engine with OpenMPI support
./build_script.sh -arch=linux64_gf -mpi=ompi -release
To build OpenRadioss without OpenMPI support (SMP parallelism):
./build_script.sh -arch=linux64_gf -release
Advanced script flags can be used to build OpenRadioss Engine: launch ./build_script.sh without arguments:
[]$ ./build_script.sh
build_script
------------
Use with arguments :
-arch=[build architecture]
-arch=linux64_gf (SMP executable / Gfortran compiler / Linux X86-64)
-arch=linux64_gf -mpi=ompi (OpenMPI executable / Gfortran compiler / Linux X86-64)
-arch=linux64_AOCC -mpi=ompi (OpenMPI executable / AOCC compiler / Linux X86-64)
-arch=linux64_intel (SMP executable / Intel compiler / Linux X86-64)
-arch=linux64_intel -mpi=impi (MPI executable / Intel compiler / Linux X86-64)
-arch=linuxa64_gf (SMP executable / Armflang compiler / Linux ARM64)
-arch=linuxa64_gf -mpi=ompi (OpenMPI executable / Armflang compiler / Linux X86-64)
-arch=win64 (SMP executable / Intel OneAPI / Windows X86-64)
-arch=win64 -mpi=impi (Intel MPI OneAPI executable / Intel OneAPI / Windows X86-64)
MPI libraries
-mpi=[mpi]
not set : SMP (default)
-mpi=ompi : OpenMPI
Controlling MPI Libraries - if need choose one of the 3 Option Set
If no options set, recommended OpenMPI directories are used (default)
1. -mpi-os : link with default MPI version installed on system
libraries are in default installation
2. -mpi-root=[directory] : set rootname to link with specific MPI installation
3. -mpi-include=[directory] : set include directory where to find mpif.h and mpi.h
-mpi-libdir=[directory] : set library directory where to find mpi libraries
-prec=[dp|sp] : set precision - dp (default) |sp
-static-link : Fortran, C & C++ runtime are linked in binary
-debug=[0|1|asan] : debug version for gfortran
0 : no debug flags
1 : usual debug flag
asan : gfortran address sanitizer (default)
-release : Set build for release (optimized)
-addflag="list of additional flags" : add compiler flags to usual set
Execution control
-nt=[threads] : number of threads for build
-verbose : Verbose build
-clean : clean build directory
MUMPS linear solver: available only for dp, with mpi
-mumps_root=[path_to_mumps] : path_to_mumps/lib/libdmumps.a must exist
-scalapack_root=[path to scalapack] : path_to_scalapack/libscalapack.a must exist
-lapack_root=[path to lapack] : path_to_lapack/liblapack.a must exist
-no-python : do not link with python
MPI libraries
More Flags to control the MPI installation. Per default OpenMPI is installed in /opt/openmpi.
Additional ways are possible:
Other controls
Execution Control
cd OpenRadioss/starter
Launch build_script.sh to proceed to the compilation
Usual build is make with:
./build_script.sh -arch=linuxa64 -release
Advanced script flags can be used to build OpenRadioss: run ./build_script.sh without arguments:
[]$ ./build_script.sh
Use with arguments :
-arch=[build architecture]
-arch=linux64_gf (SMP executable / Gfortran compiler)
-arch=linux64_AOCC (SMP executable / AOCC compiler)
-arch=linuxa64 (SMP executable / ARM Linux - Armflang compiler)
-arch=win64 (SMP executable / Windows X86-64 - Intel OneAPI)
-prec=[dp|sp] : set precision - dp (default) |sp
-static-link : Fortran, C & C++ runtime are linked in binary
-debug=[0|1|asan] : debug version for gfortran
0 : no debug flags (default)
1 : usual debug flag
asan : gfortran address sanitizer (default)
-release : Set build for release (optimized)
-addflag="list of additional flags" : add compiler flags to usual set
Execution control
-nt=[threads] : number of threads for build
-verbose : Verbose build
-clean : clean build directory
-no-python : do not link with python
Execution Control
Launch build_script.sh to proceed to the compilation To build OpenRadioss Engine with OpenMPI support
./build_script.sh -arch=linuxa64 -mpi=ompi -release
To build OpenRadioss without OpenMPI support (SMP parallelism):
./build_script.sh -arch=linuxa64 -release
Advanced script flags can be used to build OpenRadioss Engine: launch ./build_script.sh without arguments:
[]$ ./build_script.sh
build_script
------------
Use with arguments :
-arch=[build architecture]
-arch=linux64_gf (SMP executable / Gfortran compiler / Linux X86-64)
-arch=linux64_gf -mpi=ompi (OpenMPI executable / Gfortran compiler / Linux X86-64)
-arch=linux64_AOCC -mpi=ompi (OpenMPI executable / AOCC compiler / Linux X86-64)
-arch=linux64_intel (SMP executable / Intel compiler / Linux X86-64)
-arch=linux64_intel -mpi=impi (MPI executable / Intel compiler / Linux X86-64)
-arch=linuxa64_gf (SMP executable / Armflang compiler / Linux ARM64)
-arch=linuxa64_gf -mpi=ompi (OpenMPI executable / Armflang compiler / Linux X86-64)
-arch=win64 (SMP executable / Intel OneAPI / Windows X86-64)
-arch=win64 -mpi=impi (Intel MPI OneAPI executable / Intel OneAPI / Windows X86-64)
MPI libraries
-mpi=[mpi]
not set : SMP (default)
-mpi=ompi : OpenMPI
Controlling MPI Libraries - if need choose one of the 3 Option Set
If no options set, recommended OpenMPI directories are used (default)
1. -mpi-os : link with default MPI version installed on system
libraries are in default installation
2. -mpi-root=[directory] : set rootname to link with specific MPI installation
3. -mpi-include=[directory] : set include directory where to find mpif.h and mpi.h
-mpi-libdir=[directory] : set library directory where to find mpi libraries
-prec=[dp|sp] : set precision - dp (default) |sp
-static-link : Fortran, C & C++ runtime are linked in binary
-debug=[0|1|asan] : debug version for gfortran
0 : no debug flags
1 : usual debug flag
asan : gfortran address sanitizer (default)
-release : Set build for release (optimized)
-addflag="list of additional flags" : add compiler flags to usual set
Execution control
-nt=[threads] : number of threads for build
-verbose : Verbose build
-clean : clean build directory
MUMPS linear solver: available only for dp, with mpi
-mumps_root=[path_to_mumps] : path_to_mumps/lib/libdmumps.a must exist
-scalapack_root=[path to scalapack] : path_to_scalapack/libscalapack.a must exist
-lapack_root=[path to lapack] : path_to_lapack/liblapack.a must exist
-no-python : do not link with python
MPI libraries
More Flags to control the MPI installation. Per default OpenMPI is installed in /opt/openmpi.
Additional ways are possible:
Other controls
Execution Control
cd OpenRadioss/starter
build_windows.bat -arch=win64 -release
Use with arguments :
-arch=[build architecture] : set architecture : default Windows 64 bit
-prec=[dp,sp] : set precision - dp (default),sp
-static-link : Compiler runtime is linked in binary
-debug=[0,1,chkb] : debug version
0: no debug flags
1: usual debug flags
chkb: Check bounds build (default)
-release : set build for release (optimized)
Execution control
-nt [N,all] : Run build with N Threads, all : takes all resources of machine
-verbose : Verbose build
-clean : clean build directory
Launch build_windows.bat to proceed to the compilation To build OpenRadioss Engine with Intel MPI support
./build_windows.bat -arch=win64 -mpi=impi
To build OpenRadioss without Intel MPI support (SMP parallelism):
../build_windows.bat -arch=win64 -release
Use with arguments :
-arch=[build architecture] : set architecture : default Windows 64 bit
-mpi=[smp,impi] : set MPI version
-prec=[dp,sp] : set precision - dp (default),sp
-static-link : Compiler runtime is linked in binary
-debug=[0,1,chkb] : debug version
0: no debug flags
1: usual debug flag
chkb: check bounds build (default)
-release : set build for release (optimized)
Execution control
-nt [N,all] : Run build with N Threads, all : consumes all resources of machine
-verbose : Verbose build
-clean : clean build directory
This sections assumes, that Intel OneAPI Compiler was successfully installed. Procedure was tested on Visual Studio 2019 and Visual Studio 2022


Compiler installation is same than for Starter. No further installation task is need.
To build Starter with Open_Reader, add: -open_reader to build command line:
./build_linux.sh -arch=linux64_gf -open_reader
build_windows.bat -arch=win64 -open_reader
The built library will be copied in exec directory. Starter is linked against this library
To execute Starter with Open_Reader set PATH (for Windows) or LD_LIBRARY (for Linux):
export LD_LIBRARY_PATH=[PATH to OpenRadioss clone]/exec:$LD_LIBRARY_PATH
set PATH=[PATH to OpenRadioss clone]\exec:%PATH%
Linux system with Apptainer:
cd OpenRadioss/Apptainer
sudo apptainer build openradioss.sif openradioss.def
sudo cp openradioss.sif /usr/local/bin
OpenRadioss Starter and Engine use third party libraries in build process. Those third party libraries are stored in OpenRadioss/OpenRadioss_extlib repository.
During compilation process, the needed "Release asset" is downloaded and installed if not already in the repository.