Skip to content
Merged
Show file tree
Hide file tree
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
43 changes: 43 additions & 0 deletions easybuild/easyconfigs/k/kim-api/kim-api-2.3.0-GCC-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
easyblock = 'CMakeMake'

name = 'kim-api'
version = '2.3.0'

homepage = 'https://openkim.org/'
description = """Open Knowledgebase of Interatomic Models.

KIM is an API and OpenKIM is a collection of interatomic models (potentials) for
atomistic simulations. This is a library that can be used by simulation programs
to get access to the models in the OpenKIM database.

This EasyBuild only installs the API, the models can be installed with the
package openkim-models, or the user can install them manually by running
kim-api-collections-management install user MODELNAME
or
kim-api-collections-management install user OpenKIM
to install them all.
"""

toolchain = {'name': 'GCC', 'version': '13.2.0'}

source_urls = ['https://s3.openkim.org/kim-api/']
sources = ['%(name)s-%(version)s.txz']
checksums = ['93673bb8fbc0625791f2ee67915d1672793366d10cabc63e373196862c14f991']

dependencies = [
('CMake', '3.27.6'), # Also needed to install models, thus not just a builddependency.
]

parallel = 1
separate_build_dir = True

modextravars = {
'KIM_API_CMAKE_PREFIX_DIR': '%(installdir)s/lib64'
}

sanity_check_paths = {
'files': ['bin/kim-api-collections-management', 'lib64/libkim-api.%s' % SHLIB_EXT],
'dirs': []
}

moduleclass = 'chem'
177 changes: 177 additions & 0 deletions easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024-foss-2023b-kokkos.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
name = 'LAMMPS'
version = '29Aug2024'
versionsuffix = '-kokkos'

homepage = 'https://www.lammps.org'
description = """LAMMPS is a classical molecular dynamics code, and an acronym
for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has
potentials for solid-state materials (metals, semiconductors) and soft matter
(biomolecules, polymers) and coarse-grained or mesoscopic systems. It can be
used to model atoms or, more generically, as a parallel particle simulator at
the atomic, meso, or continuum scale. LAMMPS runs on single processors or in
parallel using message-passing techniques and a spatial-decomposition of the
simulation domain. The code is designed to be easy to modify or extend with new
functionality.
"""

toolchain = {'name': 'foss', 'version': '2023b'}
toolchainopts = {'openmp': True, 'usempi': True}

# 'https://github.com/lammps/lammps/archive/'
source_urls = [GITHUB_LOWER_SOURCE]
sources = ['stable_%(version)s.tar.gz']
patches = [
'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch',
]
checksums = [
{'stable_29Aug2024.tar.gz': '6112e0cc352c3140a4874c7f74db3c0c8e30134024164509ecf3772b305fde2e'},
{'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch':
'723c944b62b9d28427d25e80a7a67049631702d344df49268a6846aa0cd0fe04'},
]

builddependencies = [
('CMake', '3.27.6'),
('pkgconf', '2.0.3'),
('archspec', '0.2.2'),
]
dependencies = [
('Python', '3.11.5'),
('libpng', '1.6.40'),
('libjpeg-turbo', '3.0.1'),
('netCDF', '4.9.2'),
('GSL', '2.7'),
('zlib', '1.2.13'),
('gzip', '1.13'),
('cURL', '8.3.0'),
('HDF5', '1.14.3'),
('PCRE', '8.45'),
('libxml2', '2.11.5'),
('FFmpeg', '6.0'),
('Voro++', '0.4.6'),
('kim-api', '2.3.0'),
('Eigen', '3.4.0'),
('PLUMED', '2.9.2'),
('SciPy-bundle', '2023.11'),
# VTK package is auto-disabled if this dep is not available
('VTK', '9.3.0'),
# We use a custom build of MDI
('MDI', '1.4.29'),
]
if ARCH == 'x86_64':
# TBB and ScaFaCos are an optional dependency when building on Intel arch
dependencies += [
('tbb', '2021.13.0'),
('ScaFaCoS', '1.0.4'),
]

# To use additional custom configuration options, use the 'configopts' easyconfig parameter
# See docs and lammps easyblock for more information.
# https://github.com/lammps/lammps/blob/master/cmake/README.md#lammps-configuration-options

# OpenMP-Kokkos build is default in the current easyblock. One can switch to serial backend of Kokkos,
# which is claimed to be faster in pure MPI calculations
# configopts = "-DKokkos_ENABLE_SERIAL=yes "


# packages auto-enabled by easyblock
# 'GPU' - if cuda package is present and kokkos is disabled
# 'KOKKOS' - if kokkos is enabled (by default)
# 'INTEL' - if builing on Intel CPU
# 'OPENMP' - if OpenMP swithed on in 'toolchainopts'

# include the following extra packages into the build
general_packages = [
'AMOEBA',
'ASPHERE',
'ATC',
'AWPMD',
'BOCS',
'BODY',
'BPM',
'BROWNIAN',
'CG-DNA',
'CG-SPICA',
'CLASS2',
'COLLOID',
'COLVARS',
'COMPRESS',
'CORESHELL',
'DIELECTRIC',
'DIFFRACTION',
'DIPOLE',
'DPD-BASIC',
'DPD-MESO',
'DPD-REACT',
'DPD-SMOOTH',
'DRUDE',
'EFF',
'ELECTRODE',
'EXTRA-COMPUTE',
'EXTRA-DUMP',
'EXTRA-FIX',
'EXTRA-MOLECULE',
'EXTRA-PAIR',
'FEP',
'GRANULAR',
'H5MD',
'INTERLAYER',
'KIM',
'KSPACE',
'LATBOLTZ',
'LEPTON',
'MACHDYN',
'MANIFOLD',
'MANYBODY',
'MC',
'MDI',
'MEAM',
'MGPT',
'MISC',
'ML-IAP',
'ML-PACE',
'ML-POD',
'ML-RANN',
'ML-SNAP',
'MOFFF',
'MOLECULE',
'MOLFILE',
'MPIIO',
'NETCDF',
'OPT',
'ORIENT',
'PERI',
'PHONON',
'PLUGIN',
'PLUMED',
'POEMS',
'PTM',
'PYTHON',
'QEQ',
'QTB',
'REACTION',
'REAXFF',
'REPLICA',
'RIGID',
'SCAFACOS',
'SHOCK',
'SMTBQ',
'SPH',
'SPIN',
'SRD',
'TALLY',
'UEF',
'VORONOI',
'VTK',
'YAFF',
]

# Excluded packages due to requiring additional (non-trivial) deps
# - ADIOS
# - LATTE
# - MESONT (requires very large files downloaded during build)
# - ML-HDNNP (requires N2P2)
# - ML-QUIP
# - MSCG
# - QMMM (setup seems complex)

moduleclass = 'chem'
54 changes: 54 additions & 0 deletions easybuild/easyconfigs/m/MDI/MDI-1.4.29-gompi-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# MDI package for LAMMPS
# Author: J. Saßmannshausen (Imperial College London)

easyblock = 'CMakeMake'
name = 'MDI'
version = '1.4.29'

homepage = 'https://github.com/MolSSI-MDI/MDI_Library'
description = """The MolSSI Driver Interface (MDI) project provides a
standardized API for fast, on-the-fly communication between computational
chemistry codes. This greatly simplifies the process of implementing
methods that require the cooperation of multiple software packages and
enables developers to write a single implementation that works across
many different codes. The API is sufficiently general to support a wide
variety of techniques, including QM/MM, ab initio MD, machine learning,
advanced sampling, and path integral MD, while also being straightforwardly
extensible. Communication between codes is handled by the MDI Library, which
enables tight coupling between codes using either the MPI or TCP/IP methods.
"""

toolchain = {'name': 'gompi', 'version': '2023b'}

source_urls = ['https://github.com/MolSSI-MDI/MDI_Library/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['6fb9ab2cf01c1a88a183bb481313f3131f0afd041ddea7aeacabe857fbdcb6ad']

builddependencies = [
('CMake', '3.27.6'),
]

dependencies = [
('Python', '3.11.5'),
]

# perform iterative build to get both static and shared libraries
local_common_configopts = '-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DPython_EXECUTABLE=$EBROOTPYTHON/bin/python '
configopts = [
local_common_configopts + ' -Dlibtype=STATIC',
local_common_configopts + ' -DBUILD_SHARED_LIBS=ON',
]

modextrapaths = {
'LD_LIBRARY_PATH': 'lib/mdi',
'LIBRARY_PATH': 'lib/mdi',
}

sanity_check_paths = {
'files': ['lib/mdi/libmdi.a', 'lib/mdi/libmdi.%s' % SHLIB_EXT],
'dirs': ['include', 'share'],
}

bin_lib_subdirs = ['lib/mdi']

moduleclass = 'chem'
59 changes: 59 additions & 0 deletions easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.2-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
easyblock = 'ConfigureMake'

name = 'PLUMED'
version = '2.9.2'

homepage = 'https://www.plumed.org'
description = """PLUMED is an open source library for free energy calculations in molecular systems which
works together with some of the most popular molecular dynamics engines. Free energy calculations can be
performed as a function of many order parameters with a particular focus on biological problems, using
state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD.
The software, written in C++, can be easily interfaced with both fortran and C/C++ codes.
"""

toolchain = {'name': 'foss', 'version': '2023b'}
toolchainopts = {'usempi': 'True'}

source_urls = ['https://github.com/plumed/plumed2/releases/download/v%(version)s/']
sources = [SOURCE_TGZ]
checksums = ['6fc23fe31074ad6b7a0eb9e2441fce5b3d92514d0d87206594c59c75e4c83d6e']

builddependencies = [
('xxd', '9.1.0307'),
]

dependencies = [
('zlib', '1.2.13'),
('GSL', '2.7'),
('Python', '3.11.5'),
('SciPy-bundle', '2023.11'),
('Boost', '1.83.0'),
]

preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" '
configopts = '--exec-prefix=%(installdir)s --enable-gsl --enable-modules=all --enable-python '
configopts += '--enable-boost_graph --enable-boost_serialization '
prebuildopts = 'source sourceme.sh && '

# make sure that ld.gold linker is used
# required to work around problems like "ld: BFD (GNU Binutils) 2.30 assertion fail elf.c:3564"
# (problem with intel build but maintain consistency between easyconfigs)
buildopts = 'LD_RO="ld.gold -r -o"'

# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed
preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" '

sanity_check_paths = {
'files': ['bin/plumed', 'lib/libplumedKernel.%s' % SHLIB_EXT, 'lib/libplumed.%s' % SHLIB_EXT],
'dirs': [],
}

sanity_check_commands = ["python -c 'import plumed'"]

modextrapaths = {
'PLUMED_KERNEL': 'lib/libplumedKernel.%s' % SHLIB_EXT,
'PLUMED_ROOT': 'lib/plumed',
'PYTHONPATH': 'lib/plumed/python',
}

moduleclass = 'chem'
43 changes: 43 additions & 0 deletions easybuild/easyconfigs/s/ScaFaCoS/ScaFaCoS-1.0.4-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
easyblock = 'ConfigureMake'

name = 'ScaFaCoS'
version = '1.0.4'

homepage = 'http://www.scafacos.de/'
description = """ScaFaCoS is a library of scalable fast coulomb solvers."""

toolchain = {'name': 'foss', 'version': '2023b'}
toolchainopts = {'usempi': True}

source_urls = ['https://github.com/%(namelower)s/%(namelower)s/releases/download/v%(version)s']
sources = [SOURCELOWER_TAR_GZ]
checksums = [
'6634c4202e825e771d1dd75bbe9cac5cee41136c87653fde98fbd634681c1be6', # scafacos-1.0.1.tar.gz
]

builddependencies = [
('Autotools', '20220317'),
('pkgconf', '2.0.3'),
]

dependencies = [
('GMP', '6.3.0'),
('GSL', '2.7'),
]

preconfigopts = 'unset F77 && '

configopts = 'FCFLAGS="-fallow-argument-mismatch $FCFLAGS" '
configopts += '--enable-shared --enable-static --disable-doc '
# tell it where to find provided FFTW
configopts += '--without-internal-fftw --with-fftw3-includedir=$EBROOTFFTW/include --with-fftw3-libdir=$EBROOTFFTW/lib '
# only include the solvers supported for LAMMPS
# (for p2nfft we need an additonal dependency)
configopts += '--enable-fcs-solvers=direct,ewald,fmm,p3m '

sanity_check_paths = {
'files': ['lib/libfcs.a', 'include/fcs.h', 'include/fcs_module.mod'],
'dirs': [],
}

moduleclass = 'math'
Loading