new file: a/ANSYS/ANSYS-2023R1-intel-2022a.eb

new file:   b/Boost/Boost-1.79.0-intel-compilers-2022.1.0.eb
	new file:   c/CheMPS2/CheMPS2-1.8.12-intel-2022a.eb
	new file:   g/gau2grid/gau2grid-2.0.7-intel-2022a-lmax-5-psi4.eb
	new file:   m/mctc-lib/mctc-lib-0.3.1-GCC-11.2.0.eb
	new file:   m/msgpack/msgpack-1.0.5-GCCcore-11.3.0.eb
	new file:   p/Pint/Pint-0.20.1-GCCcore-11.3.0.eb
	new file:   p/pydantic/pydantic-1.10.6-GCCcore-11.3.0.eb
	new file:   q/qcengine/qcengine-0.24.1-foss-2021b.eb
	new file:   q/qcengine/qcengine-0.24.1-psi4.patch
	new file:   q/qcengine/qcengine-0.26.0-foss-2021b.eb
	new file:   q/qcengine/qcengine-0.26.0-psi4.patch
	new file:   s/simple-dftd3/simple-dftd3-0.7.0-foss-2021b.eb
	deleted:    c/CheMPS2/CheMPS2-1.8.9-intel-2021a.eb
This commit is contained in:
easybuild 2023-03-13 17:11:24 +01:00
parent 31fd70556d
commit 4fbadeb08a
13 changed files with 422 additions and 5 deletions

View File

@ -0,0 +1,36 @@
# IT4Innovations 2023
# JK
name = 'ANSYS'
version = '2023R1'
homepage = 'http://www.ansys.com'
description = """ANSYS simulation software enables organizations to confidently predict
how their products will operate in the real world. We believe that every product is
a promise of something greater. """
toolchain = {'name': 'intel', 'version': '2022a'}
sources = [
{'filename': '%(name)s%(version)s_LINX64_DISK1.iso', 'extract_cmd': '7z x -aos %s'},
{'filename': '%(name)s%(version)s_LINX64_DISK2.iso', 'extract_cmd': '7z x -aos %s'},
{'filename': '%(name)s%(version)s_LINX64_DISK3.iso', 'extract_cmd': '7z x -aos %s'},
]
checksums = [
{'ANSYS2023R1_LINX64_DISK1.iso': 'fa3f75c1fa14ae7cf2da56e9912151b4'},
{'ANSYS2023R1_LINX64_DISK2.iso': '7cd1c490aeeeede3b8651c747002e4f2'},
{'ANSYS2023R1_LINX64_DISK3.iso': '677341a8fd5cb45535115345c7dd55b9'},
]
dependencies = [
('libGLU', '9.0.2'),
('libnsl', '2.0.0'),
]
osdependencies = [('p7zip', 'p7zip-plugins')]
import os
license_server = os.getenv('EB_ANSYS_LICENSE_SERVER', 'license2021.it4i.cz')
license_server_port = os.getenv('EB_ANSYS_LICENSE_SERVER_PORT', '2325:1055')
moduleclass = 'tools'

View File

@ -0,0 +1,33 @@
# IT4Innovations 2023
# JK
name = 'Boost'
version = '1.79.0'
homepage = 'https://www.boost.org/'
description = """Boost provides free peer-reviewed portable C++ source libraries."""
toolchain = {'name': 'intel-compilers', 'version': '2022.1.0'}
toolchainopts = {'pic': True}
source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
checksums = ['273f1be93238a068aba4f9735a4a2b003019af067b9c183ed227780b8f36062c']
dependencies = [
('bzip2', '1.0.8'),
('zlib', '1.2.12'),
('XZ', '5.2.5'),
('ICU', '71.1'),
]
#preconfigopts = "sed -i 's/-static//g' tools/build/src/engine/build.sh && "
# fix test_toolset function so it works correctly for intel-linux toolset;
# see also https://github.com/boostorg/build/issues/647
#preconfigopts += "sed -i 's/{TOOLSET}/{B2_TOOLSET}/g' tools/build/src/engine/build.sh && "
# disable MPI, build Boost libraries with tagged layout
boost_mpi = False
tagged_layout = True
moduleclass = 'devel'

View File

@ -4,24 +4,24 @@
easyblock = 'CMakeMake'
name = 'CheMPS2'
version = '1.8.9'
version = '1.8.12'
homepage = 'https://github.com/SebWouters/CheMPS2'
description = """CheMPS2 is a scientific library which contains a spin-adapted implementation of the
density matrix renormalization group (DMRG) for ab initio quantum chemistry."""
toolchain = {'name': 'intel', 'version': '2021a'}
toolchain = {'name': 'intel', 'version': '2022a'}
source_urls = ['https://github.com/SebWouters/CheMPS2/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['ccd4c0d9432759d97690bf37a0333440f93513960c62d1f75842f090406a224d']
checksums = ['eef1b92d74ac07fde58c043f64e8cac02b5400c209c44dcbb51641f86e0c7c83']
builddependencies = [
('CMake', '3.20.1'),
('CMake', '3.23.1'),
]
dependencies = [
('HDF5', '1.10.7'),
('HDF5', '1.12.2'),
]
pretestopts = 'export OMP_NUM_THREADS=1 && '

View File

@ -0,0 +1,49 @@
# IT4Innovations 2023
# JK
# J. Sassmannshausen (Imperial College London/UK)
easyblock = 'CMakeMake'
name = 'gau2grid'
version = '2.0.7'
local_lmax = 5
# custom configuration, to be used as dependency for PSI4
versionsuffix = '-lmax-%s-psi4' % local_lmax
homepage = 'https://github.com/dgasmith/gau2grid'
description = """A collocation code for computing gaussians on a grid of the form:
out_Lp = x^l y^m z^n \\sum_i coeff_i e^(exponent_i * (|center - p|)^2)
Where the returned matrix dimension are the angular momentum (L) by number of
requested points (p)."""
toolchain = {'name': 'foss', 'version': '2022a'}
source_urls = ['https://github.com/dgasmith/gau2grid/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['66e7205646e1e3685e5dd4eea8281fc92b0b8b45ce97ae24b72a09e15a3fd62f']
builddependencies = [
('CMake', '3.23.1'),
]
dependencies = [
('Python', '3.10.4'),
('SciPy-bundle', '2022.05'),
]
# preventing system Python to be picked up:
local_common_configopts = '-DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python -DMAX_AM=%s' % local_lmax
# perform iterative build to get both static and shared libraries
configopts = [
local_common_configopts + ' -DBUILD_SHARED_LIBS=OFF',
local_common_configopts + ' -DBUILD_SHARED_LIBS=ON',
]
sanity_check_paths = {
'files': ['lib/libgg.a', 'lib/libgg.%s' % SHLIB_EXT],
'dirs': ['include', 'share'],
}
moduleclass = 'chem'

View File

@ -0,0 +1,24 @@
easyblock = 'CMakeMake'
name = 'mctc-lib'
version = '0.3.1'
homepage = 'https://github.com/grimme-lab/mctc-lib'
description = 'Modular computation tool chain library'
toolchain = {'name': 'GCC', 'version': '11.2.0'}
source_urls = ['https://github.com/grimme-lab/mctc-lib/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['03dc8ccba37413da70e55a07cef8e8de53bce33f5bb52c1f8db5fec326abe083']
builddependencies = [
('CMake', '3.22.1'),
]
sanity_check_paths = {
'files': ['bin/mctc-convert', 'lib/libmctc-lib.a'],
'dirs': ['include/mctc-lib', 'lib/pkgconfig', 'share'],
}
moduleclass = 'tools'

View File

@ -0,0 +1,30 @@
# IT4Innovations 2023
# JK
easyblock = 'PythonPackage'
name = 'msgpack'
version = '1.0.5'
homepage = 'https://github.com/msgpack/msgpack-python'
description="""MessagePack is an efficient binary serialization format.
It lets you exchange data among multiple languages like JSON. But it's faster and smaller.
This package provides CPython bindings for reading and writing MessagePack data."""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
sources = [SOURCELOWER_TAR_GZ]
checksums = ['c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c']
builddependencies = [('binutils', '2.38')]
dependencies = [
('Python', '3.10.4'),
]
download_dep_fail = True
use_pip = True
sanity_pip_check = True
moduleclass = 'lib'

View File

@ -0,0 +1,30 @@
# IT4Innovations 2023
# JK
easyblock = 'PythonPackage'
name = 'Pint'
version = '0.20.1'
homepage = 'https://github.com/hgrecco/pint'
description = """Pint is a Python package to define, operate and
manipulate physical quantities: the product of a numerical value and a
unit of measurement. It allows arithmetic operations between them and
conversions from and to different units."""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
sources = [SOURCE_TAR_GZ]
checksums = ['387cf04078dc7dfe4a708033baad54ab61d82ab06c4ee3d4922b1e45d5626067']
builddependencies = [('binutils', '2.38')]
dependencies = [
('Python', '3.10.4'),
]
download_dep_fail = True
use_pip = True
sanity_pip_check = True
moduleclass = 'numlib'

View File

@ -0,0 +1,32 @@
# IT4Innovations 2023
# JK
easyblock = 'PythonBundle'
name = 'pydantic'
version = '1.10.6'
homepage = 'https://github.com/samuelcolvin/pydantic'
description = """Data validation and settings management using Python type hinting."""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
builddependencies = [('binutils', '2.38')]
dependencies = [
('Python', '3.10.4'),
]
use_pip = True
sanity_pip_check = True
exts_list = [
('typing_extensions', '4.5.0', {
'checksums': ['5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb'],
}),
(name, version, {
'checksums': ['cf95adb0d1671fc38d8c43dd921ad5814a735e7d9b4d9e437c088002863854fd'],
}),
]
moduleclass = 'devel'

View File

@ -0,0 +1,49 @@
# J. Sassmannshausen (Imperial College London/UK)
# Patch: Alexander Grund (TU Dresden/DE)
easyblock = 'PythonBundle'
name = 'qcengine'
version = '0.24.1'
homepage = 'https://github.com/MolSSI/QCEngine'
description = """Quantum chemistry program executor and IO standardizer (QCSchema)
for quantum chemistry."""
toolchain = {'name': 'foss', 'version': '2021b'}
builddependencies = [
('pytest', '7.1.3'),
]
dependencies = [
('Python', '3.9.6'),
('pydantic', '1.10.2'),
('SciPy-bundle', '2021.10'),
('Pint', '0.19.2'),
('simple-dftd3', '0.7.0'),
('PyYAML', '5.4.1'),
]
use_pip = True
sanity_pip_check = True
exts_list = [
('qcelemental', '0.25.0', {
'checksums': ['bf5caeeb2044b6056c85e92effc61a21a5ebb1580ccdc165580bb248f8588324'],
}),
('py-cpuinfo', '9.0.0', {
'checksums': ['3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690'],
'modulename': 'cpuinfo',
}),
(name, version, {
'patches': ['qcengine-0.24.1-psi4.patch'],
'checksums': [
('2943866c641dd5f7d73644225bcc9e53155a9423807ddf2706ff679e4f608955'), # qcengine-0.24.1.tar.gz
('367dc890eef669be1bdbf39b1ab75ad085fe08db24e1eefc95be2069ed4c4662'), # qcengine-0.24.1-psi4.patch
],
}),
]
sanity_check_commands = ['pytest --pyargs qcengine &> /dev/null']
moduleclass = 'tools'

View File

@ -0,0 +1,20 @@
From: Alexander Grund <Flamefire@users.noreply.github.com>
Date: Mon, 5 Dec 2022 17:03:50 +0100
[PATCH] Prepend psiimport path instead of overwriting `$PYTHONPATH`
When `psi4` binary is found but the Python package is not we should not overwrite the `$PYTHONPATH` before importing `psi4` as that may cause other required packages to be not found anymore. Hence prepend it. See #292
---
diff --git a/qcengine-0.24.1.orig/qcengine/programs/psi4.py b/qcengine-0.24.1/qcengine/programs/psi4.py
index 7dd4d5e..437cdea 100644
--- a/qcengine-0.24.1.orig/qcengine/programs/psi4.py
+++ b/qcengine-0.24.1/qcengine/programs/psi4.py
@@ -66,7 +66,9 @@ class Psi4Harness(ProgramHarness):
if psiapi and not psithon:
psiimport = str(Path(which_import("psi4")).parent.parent)
env = os.environ.copy()
- env["PYTHONPATH"] = psiimport
+ pythonpath = env.get("PYTHONPATH")
+ # Prepend psiimport to $PYTHONPATH (carefull if it's empty/unset)
+ env["PYTHONPATH"] = os.pathsep.join([psiimport, pythonpath] if pythonpath else [psiimport])
with popen(["python", "-c", "import psi4; print(psi4.executable[:-5])"], popen_kwargs={"env": env}) as exc:
exc["proc"].wait(timeout=30)
os.environ["PATH"] += os.pathsep + exc["stdout"].split()[-1]

View File

@ -0,0 +1,51 @@
# J. Sassmannshausen (Imperial College London/UK)
# Patch: Alexander Grund (TU Dresden/DE)
easyblock = 'PythonBundle'
name = 'qcengine'
version = '0.26.0'
homepage = 'https://github.com/MolSSI/QCEngine'
description = """Quantum chemistry program executor and IO standardizer (QCSchema)
for quantum chemistry."""
toolchain = {'name': 'foss', 'version': '2021b'}
builddependencies = [
('pytest', '7.1.3'),
]
dependencies = [
('Python', '3.9.6'),
('pydantic', '1.10.2'),
('SciPy-bundle', '2021.10'),
('Pint', '0.19.2'),
('simple-dftd3', '0.7.0'),
('PyYAML', '5.4.1'),
]
use_pip = True
exts_list = [
('qcelemental', '0.25.1', {
'checksums': ['e3e0e53fe047d14756718441040a5d737135f0bdb33efb1d63a1935b95821a74'],
}),
('py-cpuinfo', '9.0.0', {
'checksums': ['3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690'],
'modulename': 'cpuinfo',
}),
(name, version, {
'patches': ['qcengine-0.26.0-psi4.patch'],
'checksums': [
('8c10377b11ffab311a2997ae9af80a0f4b4a9c3a6d65d96fd4aca4c941ecf018'), # qcengine-0.26.0.tar.gz
('ffb51c474eae27777c43ddef264234c1dec4ad7a455cc8ba5051fecbda772f3f'), # qcengine-0.26.0-psi4.patch
],
}),
]
sanity_check_commands = ['pytest --pyargs qcengine &> /dev/null']
moduleclass = 'tools'

View File

@ -0,0 +1,20 @@
From: Alexander Grund <Flamefire@users.noreply.github.com>
Date: Mon, 5 Dec 2022 17:03:50 +0100
[PATCH] Prepend psiimport path instead of overwriting `$PYTHONPATH`
When `psi4` binary is found but the Python package is not we should not overwrite the `$PYTHONPATH` before importing `psi4` as that may cause other required packages to be not found anymore. Hence prepend it. See #292
---
diff --git a/qcengine-0.26.0.orig/qcengine/programs/psi4.py b/qcengine-0.26.0/qcengine/programs/psi4.py
index 7dd4d5e..437cdea 100644
--- a/qcengine-0.26.0.orig/qcengine/programs/psi4.py
+++ b/qcengine-0.26.0/qcengine/programs/psi4.py
@@ -66,7 +66,9 @@ class Psi4Harness(ProgramHarness):
if psiapi and not psithon:
psiimport = str(Path(which_import("psi4")).parent.parent)
env = os.environ.copy()
- env["PYTHONPATH"] = psiimport
+ pythonpath = env.get("PYTHONPATH")
+ # Prepend psiimport to $PYTHONPATH (carefull if it's empty/unset)
+ env["PYTHONPATH"] = os.pathsep.join([psiimport, pythonpath] if pythonpath else [psiimport])
with popen(["python", "-c", "import psi4; print(psi4.executable[:-5])"], popen_kwargs={"env": env}) as exc:
exc["proc"].wait(timeout=30)
os.environ["PATH"] += os.pathsep + exc["stdout"].split()[-1]

View File

@ -0,0 +1,43 @@
# IT4Innovations 2023
# JK
# J. Sassmannshausen (Imperial College London/UK)
easyblock = 'CMakeNinja'
name = 'simple-dftd3'
version = '0.7.0'
homepage = 'https://github.com/dftd3/simple-dftd3'
description = """A simple drop-in replacement for dftd3.
This program provides a small and easy to use implementation of the DFT-D3
dispersion correction (see JCP 132, 154104 (2010) and JCC 32, 1456 (2011)
for details).
It is mostly based on the dftd4 program and borrows one or two ideas from
the implementation in ased3."""
toolchain = {'name': 'foss', 'version': '2021b'}
source_urls = ['https://github.com/dftd3/simple-dftd3/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['19400a176eb4dcee7b89181a5a5f0033fe6b05c52821e54896a98448761d003a']
builddependencies = [
('CMake', '3.22.1'),
('Ninja', '1.10.2'),
]
dependencies = [
('TOML-Fortran', '0.3.1'),
('mctc-lib', '0.3.1'),
('mstore', '0.2.0'),
]
test_cmd = 'ctest'
runtest = ''
sanity_check_paths = {
'files': ['bin/s-dftd3', 'lib/libs-dftd3.a'],
'dirs': ['include', 'share'],
}
moduleclass = 'lib'