Skip to Content
InstallationBuild on Local Machine

Build on Local Machine

This page provides the source-build installation path for SurfATT. This path is recommended when you need maximum control over compiler versions, MPI stack, and optimization flags.

Typical use cases:

  • Performance tuning on HPC clusters.
  • Reproducible builds with pinned toolchains.
  • Debugging and developer workflows.

Requirements

LibraryMinimum VersionRecommended VersionRole
CMake≥ 3.18≥ 3.25Build system (required)
C++ compilerGCC ≥ 13 / Clang ≥ 14GCC ≥ 14 / Clang ≥ 17C++17 (required)
Fortran compilerGFortran ≥ 10GFortran ≥ 12Fortran-based routines and toolchain compatibility (required)
MPI≥ 3.0Open MPI ≥ 4.0Parallelism with shared-memory windows (required)
HDF5≥ 1.10≥ 1.14Model I/O (required)
Eigen3≥ 3.4≥ 3.4.0Linear algebra (required)
yaml-cpp≥ 0.6≥ 0.8Parameter file parsing (bundled fallback)
spdlog≥ 1.5≥ 1.15Logging (bundled fallback)

1. Install Dependencies on Local Machine

Use this option for isolated and reproducible environments, especially for laptops, shared servers, and CI workflows. It avoids conflicts with system packages.

Create the environment

conda create -n surfatt -c conda-forge -y

Activate the environment

conda activate surfatt

Install dependencies

conda install -c conda-forge -y cxx-compiler fortran-compiler cmake openmpi hdf5 eigen yaml-cpp spdlog

2. Clone Source Code

Clone the official repository and enter the project directory. If you are on a shared system, use your own workspace path to avoid permission issues.

git clone https://github.com/TomoATT/SurfATT.git cd SurfATT

3. Build SurfATT

Create a clean build directory, then configure and compile from there. If dependencies are installed in non-default locations, add the corresponding CMake prefix/path options during configuration.

mkdir -p build && cd build

Then configure and compile:

cmake .. make -j
Last updated on