Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
#
# Copyright:: Copyright 2012-2016 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC,
# Ghent University / The Francis Crick Institute
# Authors::
# * Wiktor Jurkowski <wiktor.jurkowski@gmail.com>
# * Fotis Georgatos <fotis@cern.ch>
# * George Tsouloupas <g.tsouloupas@cyi.ac.cy>
# * Kenneth Hoste <kenneth.hoste@ugent.be>
# * Adam Huffman <adam.huffman@crick.ac.uk>
# * Ake Sandgren <ake.sandgren@hpc2n.umu.se>
# * J. Sassmannshausen <Crick HPC team>
# * Dugan Witherick <dugan.witherick@warwick.ac.uk>
# * Christoph Siegert <christoph.siegert@uni-leipzig.de>
# License:: MIT/GPL

name = 'GROMACS'
version = '2024.4'
versionsuffix = '-PLUMED-2.9.2'

homepage = 'https://www.gromacs.org'
description = """
GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
Newtonian equations of motion for systems with hundreds to millions of
particles.

This is a CPU only build, containing both MPI and threadMPI binaries
for both single and double precision.

It also contains the gmxapi extension for the single precision MPI build.
"""

toolchain = {'name': 'foss', 'version': '2024a'}
toolchainopts = {'openmp': True, 'usempi': True}

source_urls = [
'https://ftp.gromacs.org/pub/gromacs',
'ftp://ftp.gromacs.org/pub/gromacs',
]
sources = [SOURCELOWER_TAR_GZ]
patches = [
'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch',
'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch',
'GROMACS-2023.3_skip_test_for_plumed.patch',
'GROMACS-2024.1_workaround-arm-sve512.patch',
]
checksums = [
{'gromacs-2024.4.tar.gz': 'ac618ece2e58afa86b536c5a2c4fcb937f0760318f12d18f10346b6bdebd86a8'},
{'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch':
'7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'},
{'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch':
'6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'},
{'GROMACS-2023.3_skip_test_for_plumed.patch': '6c541ee74f71f6a63950134d9d0e3afb176a2e25e76e017b4d1986a59163c083'},
{'GROMACS-2024.1_workaround-arm-sve512.patch': '0dfa82a9425322d2b2c250d698ac2065f8c0ce0143df0057e7ec21686d60e5f7'},
]

builddependencies = [
('CMake', '3.29.3'),
('scikit-build-core', '0.10.6'),
]
dependencies = [
('Python', '3.12.3'),
('SciPy-bundle', '2024.05'),
('networkx', '3.4.2'),
('mpi4py', '4.0.1'),
('pybind11', '2.12.0'),
('PLUMED', '2.9.3'),
]

# be a bit more forgiving w.r.t. timeouts for GROMACS test suite,
# see also https://gitlab.com/gromacs/gromacs/-/issues/5062
configopts = '-DGMX_TEST_TIMEOUT_FACTOR=3'

exts_defaultclass = 'PythonPackage'
# PLUMED 2.9.2 is compatible with GROMACS 2024.2; 2024.4 seems to work fine too
ignore_plumed_version_check = True

exts_default_options = {
'source_urls': [PYPI_SOURCE],
}

exts_list = [
('gmxapi', '0.4.2', {
'patches': ['GROMACS-2025.2_gmxapi-remove-builddependencies.patch'],
'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s ' +
'-C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ',
'checksums': [
{'gmxapi-0.4.2.tar.gz': 'c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'},
{'GROMACS-2025.2_gmxapi-remove-builddependencies.patch':
'd35eedea75167a88cd1c74df4c201b666ec9f8aef00f0fc6136380e36eb1e0e5'},
],
}),
]

moduleclass = 'bio'