Skip to content
Snippets Groups Projects
Commit 49d2621f authored by Sebastian Achilles's avatar Sebastian Achilles
Browse files

Merge branch 'CP2K-2023.1' into '2023'

CP2K 2023.1

See merge request software-team/easybuild!1819
parents c0234753 4194db4b
Branches
No related tags found
No related merge requests found
...@@ -106,6 +106,7 @@ class EB_CP2K(EasyBlock): ...@@ -106,6 +106,7 @@ class EB_CP2K(EasyBlock):
'typeopt': [True, "Enable optimization", CUSTOM], 'typeopt': [True, "Enable optimization", CUSTOM],
'dbcsr_version': ['2.0.1',"DBCSR version used",CUSTOM], 'dbcsr_version': ['2.0.1',"DBCSR version used",CUSTOM],
'libvori_version': ['-210412',"libvori version used",CUSTOM], 'libvori_version': ['-210412',"libvori version used",CUSTOM],
'spglib_version': ['1.16.2',"spglib version used",CUSTOM],
} }
return EasyBlock.extra_options(extra_vars) return EasyBlock.extra_options(extra_vars)
...@@ -133,15 +134,18 @@ class EB_CP2K(EasyBlock): ...@@ -133,15 +134,18 @@ class EB_CP2K(EasyBlock):
cpstringb="cp -r %s../dbcsr-%s/.cp2k %sexts/dbcsr/" %(self.cfg['start_dir'],self.cfg['dbcsr_version'],self.cfg['start_dir']) cpstringb="cp -r %s../dbcsr-%s/.cp2k %sexts/dbcsr/" %(self.cfg['start_dir'],self.cfg['dbcsr_version'],self.cfg['start_dir'])
vorbis="cd %s../libvori%s/ && mkdir build && cd build && cmake .. && gmake && cp libvori.a %s/ " %(self.cfg['start_dir'],self.cfg['libvori_version'], self.cfg['start_dir']) vorbis="cd %s../libvori%s/ && mkdir build && cd build && cmake .. && gmake && cp libvori.a %s/ " %(self.cfg['start_dir'],self.cfg['libvori_version'], self.cfg['start_dir'])
spglib="cd %s../spglib-%s/ && mkdir build && cd build && cmake .. && gmake && cp libsymspg.* %s/ " %(self.cfg['start_dir'],self.cfg['spglib_version'],self.cfg['start_dir'])
# run_cmd(cpstring) # run_cmd(cpstring)
self.log.info(cpstring) self.log.info(cpstring)
# self.log.info(cpstringb) # self.log.info(cpstringb)
self.log.info(vorbis) self.log.info(vorbis)
self.log.info(spglib)
os.system(cpstring) os.system(cpstring)
if self.cfg['dbcsr_version'] == '2.1.0': if self.cfg['dbcsr_version'] == '2.1.0':
os.system(cpstringb) os.system(cpstringb)
os.system(vorbis) os.system(vorbis)
os.system(spglib)
# correct start dir, if needed # correct start dir, if needed
# recent CP2K versions have a 'cp2k' dir in the unpacked 'cp2k' dir # recent CP2K versions have a 'cp2k' dir in the unpacked 'cp2k' dir
...@@ -260,6 +264,8 @@ class EB_CP2K(EasyBlock): ...@@ -260,6 +264,8 @@ class EB_CP2K(EasyBlock):
options['LIBS'] = "-Wl,--start-group %s -Wl,--end-group" % options['LIBS'] options['LIBS'] = "-Wl,--start-group %s -Wl,--end-group" % options['LIBS']
options['LIBS'] = "%s %slibvori.a " % (options['LIBS'], self.cfg['start_dir']) options['LIBS'] = "%s %slibvori.a " % (options['LIBS'], self.cfg['start_dir'])
# spglib
options['LIBS'] = "%s %slibsymspg.a " % (options['LIBS'], self.cfg['start_dir'])
# specify correct location for 'data' directory in final installation # specify correct location for 'data' directory in final installation
options['DATA_DIR'] = os.path.join(self.installdir, 'data') options['DATA_DIR'] = os.path.join(self.installdir, 'data')
......
name = 'CP2K'
version = '2023.1'
homepage = 'http://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.
The default eigensolver is set to Scalapack. This setting can be overridden by specifiying
PREFERRED_DIAG_LIBRARY ELPA in the global section of the cp2k input. Note, that application-dependent
- in particular for small basis sizes - the use of the ELPA eigensolver library can cause dead-locks:
the program might be killed with a corresponding message from the MPI library ( parastation mpi)
or even hang (openmpi). The user is advised to check whether the particular application is prone to
deadlocks if ELPA is switched on.
The Libvori library for Voronoi integration and the BQB compressed volumetric trajectory data is included
(https://brehm-research.de/voronoi, https://brehm-research.de/bqb).
Tree-Monte-Carlo is disfunctional; this is the hybrid MPI/OpenMP version of CP2K.
"""
toolchain = {'name': 'intel-para', 'version': '2022a'}
toolchainopts = {'pic': True, 'openmp': True}
# which dbcsr_version
dbcsr_version = '2.5.0'
libvori_version = '-220621'
spglib_version = '1.16.2'
local_libvori_version = '-220621'
sources = [
'cp2k/archive/v%(version)s.tar.gz',
'dbcsr/archive/refs/tags/v%s.tar.gz' % dbcsr_version,
'libvori%s.tar.gz' % local_libvori_version,
'spglib-1.16.2.tar.gz',
]
source_urls = [
'https://github.com/cp2k/',
'https://github.com/cp2k/',
'https://www.brehm-research.de/files/',
]
patches = [
'CP2K-2023.1_fftw3_lib.patch',
'CP2K-2023.1_elpa.patch',
'CP2K-2023.1_dbcsr.patch',
]
checksums = [
'b837f3f8329e92b98959edfd198dc83447737098844a5102e19c83748af9ec2e',
'24138461cf0b347ab6df0fba192bca6a026f22c3f0bc29abdae2df9e830809ca',
'1cfa98c564814bddacf1c0e7f11582137d758668f6307e6eb392c72317984c14',
'5723789bee7371ebba91d78c729d2a608f198fad5e1c95eebe18fda9f2914ec8',
'1b7674b0046d329f9913ed99e92b53481e878a04a4856c817228d4816d0ea624',
'33c765f5e119541d943c0d9386059e1ef6f82ca1f2e9490adeca6b86656b5b2d',
'c480c46d31290056079f6a9d5fa17454d34169d1a7850af22378dd794257c3b7'
]
dependencies = [
('libxc', '5.2.3', '', ('intel-compilers', '2022.1.0')),
('FFTW', '3.3.10', ''),
('Libint', '2.7.2', '_cp2k_lmax5', ('intel-compilers', '2022.1.0')),
('ELPA', '2022.11.001.rc1'),
('libxsmm', '1.17', '', ('intel-compilers', '2022.1.0')),
('PLUMED', '2.8.1'),
]
builddependencies = [
('flex', '2.6.4'),
('CMake', '3.23.1'),
('Python', '3.10.4', '', ('GCCcore', '11.3.0')),
]
# Add PLUMED support
plumed = True
# Disable CUDA
cuda = False
# explicit unrolled loops up to __MAX_CONTR, 4 gives excessive compiler times
configopts = '-D__MAX_CONTR=3'
# popt or psmp
type = 'psmp'
# run tests separately (2 nodes of juwels approx 1 hour)
runtest = False
# additional DFLAGS
extradflags = '-D__MKL -D__LIBVORI -D__SPGLIB'
# regression test reports failures
ignore_regtest_fails = False
modextravars = {
'CP2K_DATA_DIR': '%(installdir)s/data',
}
moduleclass = 'chem'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment