The easiest way to set up your development environment is using the provided .devcontainer configuration with VS Code and Docker.
Prerequisites:
Setup:
Clone the repository and open it in VS Code
When prompted, click “Reopen in Container” or use Command Palette: Dev Containers: Reopen in Container
VS Code will automatically build the container with all dependencies pre-installed
The container includes:
Ubuntu environment with gcc-14, CMake, MPI, OpenMP
Pre-configured C++ and Python development tools
All project dependencies ready to use
This provides a consistent development environment across all platforms without manual dependency installation.
If you prefer manual setup or cannot use containers, follow the instructions below.
Windows: Download and install CMake from https://cmake.org/download (select the Windows installer) or install using Chocolatey:
choco install cmake
Linux (Ubuntu/Debian): Install using package manager:
sudo apt update
sudo apt install -y cmake
macOS: Install using Homebrew:
brew update
brew install cmake
Please follow the Google C++ Style Guide.
Code style is checked using the clang-format tool.
Install these to match the CI toolchain for static analysis and coverage reports.
Linux (Ubuntu/Debian):
# clang-tidy 21 (recommended)
sudo apt update && sudo apt install -y clang-tidy-21
# gcovr via pip (or use your distro package)
python3 -m pip install gcovr
# GCC 14 coverage helper (used in CI)
which gcov-14 || echo "Install GCC 14 to use gcov-14"
macOS (Homebrew):
brew install llvm gcovr
# clang-tidy path (if not on PATH):
echo "$(brew --prefix)/opt/llvm/bin/clang-tidy"
Windows:
choco install llvm
py -m pip install gcovr
# Ensure clang-tidy.exe is available in PATH
MPIWindows (MSVC):
Installers link. You have to install msmpisdk.msi and msmpisetup.exe.
Linux (gcc and clang):
sudo apt install -y mpich openmpi-bin libopenmpi-dev
MacOS (apple clang):
brew install open-mpi
OpenMPOpenMP is included in gcc and msvc, but some components should be installed additionally:
Linux (gcc and clang):
sudo apt install -y libomp-dev
MacOS (llvm):
brew install llvm
brew install libomp
brew link libomp --overwrite --force
TBBWindows (MSVC), Linux (gcc and clang), MacOS (apple clang): Build as 3rdparty in the current project.
std::threadstd::thread is included in STL libraries.