diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2024.3-foss-2024a.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2024.3-foss-2024a.eb new file mode 100644 index 000000000000..1c29d5a28c39 --- /dev/null +++ b/easybuild/easyconfigs/c/CP2K/CP2K-2024.3-foss-2024a.eb @@ -0,0 +1,43 @@ +name = 'CP2K' +version = '2024.3' + +homepage = 'https://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'foss', 'version': '2024a'} +toolchainopts = {'pic': True, 'openmp': True} + +source_urls = ['https://github.com/cp2k/cp2k/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['a6eeee773b6b1fb417def576e4049a89a08a0ed5feffcd7f0b33c7d7b48f19ba'] + +builddependencies = [ + ('flex', '2.6.4'), + ('Bison', '3.8.2'), +] + +dependencies = [ + ('Libint', '2.9.0', '-lmax-6-cp2k'), + ('libxc', '6.2.2'), + ('libvori', '220621'), + ('FFTW', '3.3.10'), + ('PLUMED', '2.9.3'), +] + +if ARCH == 'x86_64': + # LIBXSMM is not supported supported on ARM with GCC 12.2.0 and 12.3.0 + # see https://www.cp2k.org/dev:compiler_support + dependencies += [ + ('libxsmm', '1.17'), + ] + +type = 'psmp' + +# regression test reports handful of failures, +# we're assuming those are OK to ignore... +ignore_regtest_fails = True + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/Libint/Libint-2.9.0-GCC-13.3.0-lmax-6-cp2k.eb b/easybuild/easyconfigs/l/Libint/Libint-2.9.0-GCC-13.3.0-lmax-6-cp2k.eb new file mode 100644 index 000000000000..1f33e511ec0e --- /dev/null +++ b/easybuild/easyconfigs/l/Libint/Libint-2.9.0-GCC-13.3.0-lmax-6-cp2k.eb @@ -0,0 +1,50 @@ +# # +# This easyconfig is based on the easy config written originally by Robert Mijakovic +# Author: Ben Czaja (SURF) +# # +name = 'Libint' +version = '2.9.0' +local_lmax = 6 +# custom configuration, to be used as dependency for CP2K +versionsuffix = '-lmax-%s-cp2k' % local_lmax + +homepage = 'https://github.com/evaleev/libint' +description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body + matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" + +toolchain = {'name': 'GCC', 'version': '13.3.0'} +toolchainopts = {'pic': True, 'cstd': 'c++11'} + +source_urls = ['https://github.com/evaleev/%(namelower)s/archive'] +sources = ['v%(version)s.tar.gz'] +patches = [ + 'Libint-2.9.0_remove-test-eri.patch', +] +checksums = [ + {'v2.9.0.tar.gz': '4929b2f2d3e53479270be052e366e8c70fa154a7f309e5c2c23b7d394159687d'}, + {'Libint-2.9.0_remove-test-eri.patch': '9d18dbf23818dc4150c80bbcc1510f5c98da19a661bed60c5e46a2384319ceb7'}, +] + +builddependencies = [ + ('Autotools', '20231222'), + ('GMP', '6.3.0'), + ('Boost', '1.85.0'), + ('Eigen', '3.4.0'), + ('Python', '3.12.3'), + ('CMake', '3.29.3'), +] + +# configure options as required by CP2K, +# see Jenkinsfile in https://github.com/cp2k/libint-cp2k +local_eri_max_am = '%s,%s' % (local_lmax, local_lmax - 1) +local_eri23_max_am = '%s,%s' % (local_lmax + 2, local_lmax + 1) + +libint_compiler_configopts = '--enable-eri=1 --enable-eri2=1 --enable-eri3=1 --with-max-am=%s ' % local_lmax +libint_compiler_configopts += '--with-eri-max-am=%s ' % local_eri_max_am +libint_compiler_configopts += '--with-eri2-max-am=%s ' % local_eri23_max_am +libint_compiler_configopts += '--with-eri3-max-am=%s ' % local_eri23_max_am +libint_compiler_configopts += '--enable-generic-code --disable-unrolling' + +with_fortran = True + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/Libint/Libint-2.9.0_remove-test-eri.patch b/easybuild/easyconfigs/l/Libint/Libint-2.9.0_remove-test-eri.patch new file mode 100644 index 000000000000..e6f7effe2d3f --- /dev/null +++ b/easybuild/easyconfigs/l/Libint/Libint-2.9.0_remove-test-eri.patch @@ -0,0 +1,16 @@ +# Disable Fortran ERI tests as those have very strict error tolerances. This patch is updated from Libint-2.6.0_remove-test-eri.patch +# See https://github.com/evaleev/libint/issues/188 +# Author: Ben Czaja (SURF) based on orginal patch from Alex Domingo (Vrije Universiteit Brussel) +# Updated for v2.9.0 by maxim-masterov (SURF) +diff -Nru libint-2.9.0.orig/export/cmake/CMakeLists.txt.export libint-2.9.0/export/cmake/CMakeLists.txt.export +--- libint-2.9.0.orig/export/cmake/CMakeLists.txt.export 2024-10-15 15:36:02.806588000 +0200 ++++ libint-2.9.0/export/cmake/CMakeLists.txt.export 2024-10-15 15:37:37.562090555 +0200 +@@ -568,7 +568,7 @@ + PROPERTIES FIXTURES_REQUIRED LIBINT2_FORTRAN_EXAMPLE_EXEC) + + if (LIBINT_HAS_CXX_API) +- add_executable(fortran_test-libint2 EXCLUDE_FROM_ALL fortran/test.cc fortran/test-eri.cc $) ++ add_executable(fortran_test-libint2 EXCLUDE_FROM_ALL fortran/test.cc $) + target_link_libraries(fortran_test-libint2 libint2_cxx libint_f) + target_include_directories(fortran_test-libint2 PRIVATE $) + add_test(libint2/fortran_test/build "${CMAKE_COMMAND}" --build ${PROJECT_BINARY_DIR} --target fortran_test-libint2) diff --git a/easybuild/easyconfigs/l/libvori/libvori-220621-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libvori/libvori-220621-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..58351c1b0cce --- /dev/null +++ b/easybuild/easyconfigs/l/libvori/libvori-220621-GCCcore-13.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'CMakeMake' + +name = 'libvori' +version = '220621' + +homepage = 'https://brehm-research.de/libvori.php' +description = """C++ library implementing the Voronoi integration as well as the compressed bqb +file format. The present version of libvori is a very early development +version, which is hard-coded to work with the CP2k program package.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://brehm-research.de/files/'] +sources = [SOURCE_TAR_GZ] +checksums = ['1cfa98c564814bddacf1c0e7f11582137d758668f6307e6eb392c72317984c14'] + +builddependencies = [ + ('CMake', '3.29.3'), + ('binutils', '2.42'), +] + + +sanity_check_paths = { + 'files': ['lib/%(name)s.a'], + 'dirs': ['lib'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxsmm/libxsmm-1.17-GCC-13.3.0.eb b/easybuild/easyconfigs/l/libxsmm/libxsmm-1.17-GCC-13.3.0.eb new file mode 100644 index 000000000000..8e20d3f1a7ec --- /dev/null +++ b/easybuild/easyconfigs/l/libxsmm/libxsmm-1.17-GCC-13.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'libxsmm' +version = '1.17' + +homepage = 'https://github.com/hfp/libxsmm' +description = """LIBXSMM is a library for small dense and small sparse matrix-matrix multiplications +targeting Intel Architecture (x86).""" + +toolchain = {'name': 'GCC', 'version': '13.3.0'} + +source_urls = ['https://github.com/hfp/%(name)s/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['8b642127880e92e8a75400125307724635ecdf4020ca4481e5efe7640451bb92'] + +# install both static and dynamic version +installopts = ['PREFIX=%(installdir)s', 'PREFIX=%(installdir)s STATIC=0'] + +skipsteps = ['configure'] +maxparallel = 1 + +sanity_check_paths = { + 'files': ['bin/libxsmm_gemm_generator', 'include/libxsmm.h', 'lib/libxsmm.a', 'lib/libxsmm.%s' % SHLIB_EXT], + 'dirs': ['share'] +} + +moduleclass = 'math'