HAL’s MD package allowed me to do simulations of breath-taking quality and I have obtained new scientific insight. How shall I give credit to your work?

Please acknowledge the use of HAL’s MD package in your publications by citing our article:

P. H. Colberg and F. Höfling, Highly accelerated simulations of glassy dynamics using GPUs: Caveats on limited floating-point precision, Comput. Phys. Commun. 182, 1120 (2011).

Why does HALMD abort with “[ERROR] potential energy diverged”?

An infinite potential energy sum of one or more particles indicates that the integration time-step is too large.

Try lowering the --timestep value.

Linking fails with: undefined reference to `boost::filesystem3::detail::copy_file(…)’

Check that the ABI version of the installed Boost C++ library conforms to C++11. This can be achieved by building Boost C++ with the GCC option --std=c++11.

Configuring emits a warning on missing Boost C++ dependencies, e.g., `Imported targets not available for Boost version 106500’

The CMake version used needs to be newer than the employed Boost C++ release. It is a good idea to stick with the combination shipped by your Linux distribution. For details check the CMake Boost compatibility table.

How to enable the static CUDA runtime library?

By default the CUDA runtime is linked dynamically and the HALMD_USE_STATIC_LIBS flag doesn’t affect that.

To use the static CUDA runtime use CUDA_USE_STATIC_CUDA_RUNTIME.

Why does HALMD abort with “Program hit cudaErrorInvalidDeviceFunction (error 8) due to “invalid device function” on CUDA API call to cudaLaunch”?

This error occurs when using the static CUDA runtime library together with CUDA 9.2. As far as we are concerned there is no way to fix this, other than using the shared library or another CUDA version. See commit 5f1801bca.