Software prerequisites

The following software packages are required for building HALMD. For an automated installation procedure, refer to the next section, Automatic installation. A detailed step-by-step guide for manual installation is given in section Manual installation.

Build environment

  • a C++ compiler with C++14 support, builds have been tested with GCC and Clang

    HALMD makes extensive use of C++14 features. Instructions for a semi-automated build of GCC are given in Automatic installation.

  • CMake ≥ 3.8, latest version tested: 3.22.2

    The build process of HALMD depends on CMake, a cross-platform, open-source build system.

  • NVIDIA CUDA toolkit ≥ 9.0, latest version tested: 11.2

    Please refer to the installation instructions shipped with the toolkit. The toolkit is not needed for builds without GPU acceleration.

Third-party libraries

  • Boost C++ Libraries ≥ 1.61.0, latest version tested: 1.78.0

    The C++ part of HALMD uses libraries in the Boost C++ collection.

    Note

    The the release of the Boost C++ library must not be newer than the CMake release used. Otherwise, indirect library dependencies may not be resolved properly, see FAQ.

    On older distributions based on GCC 4, the shipped Boost C++ Libraries can not be used due to an ABI incompatibility (C++98 vs. C++11). For instructions how to build Boost C++ with the C++11 ABI, see Automatic installation.

  • Lua interpreter ≥ 5.1, < 5.3 or Lua Just-In-Time compiler ≥ 2.0

    Note

    Lua 5.3 is not supported. The Lua JIT compiler is recommended for advanced simulation scripts containing loops, user-defined correlation functions, etc.

    A simulation with HALMD is set up and configured by means of the Lua scripting language. The fast and lightweight Lua interpreter is embedded in the HALMD executable.

  • HDF5 C++ Library ≥ 1.8.13, latest version tested: 1.12.1

    “HDF5 is a data model, library, and file format for storing and managing data. It supports an unlimited variety of datatypes, and is designed for flexible and efficient I/O and for high volume and complex data.”

Documentation

Documentation is generated optionally in HTML and PDF format if these prerequisites are met:

  • Sphinx documentation generator ≥ 1.4, latest version tested: 1.8.5

    “Sphinx is a tool that makes it easy to create intelligent and beautiful documentation.”

  • LaTeX including pdflatex and dvipng

  • graphviz