From b8b80c70ed587b7726198ccfd29e9296a5476bd0 Mon Sep 17 00:00:00 2001 From: Jakub Kropacek Date: Fri, 17 Jun 2022 11:27:32 +0200 Subject: [PATCH] new file: v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential-HDF5-Wannier.eb new file: w/Wannier90/Wannier90-3.1.0-intel-2021b-serial.eb --- ...intel-2021b-mkl=sequential-HDF5-Wannier.eb | 86 +++++++++++++++++++ .../Wannier90-3.1.0-intel-2021b-serial.eb | 39 +++++++++ 2 files changed, 125 insertions(+) create mode 100644 v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential-HDF5-Wannier.eb create mode 100644 w/Wannier90/Wannier90-3.1.0-intel-2021b-serial.eb diff --git a/v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential-HDF5-Wannier.eb b/v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential-HDF5-Wannier.eb new file mode 100644 index 00000000..7a36b41a --- /dev/null +++ b/v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential-HDF5-Wannier.eb @@ -0,0 +1,86 @@ +# IT4Innovations 2021 +# LK JK + +easyblock = 'MakeCp' + +name = 'VASP' +version = '6.3.1' +versionsuffix = '-mkl=sequential-HDF5-1.12.1-Wannier90-3.1.0' + +homepage = 'http://www.vasp.at' +description = """The Vienna Ab initio Simulation Package (VASP) is a local_computer program for atomic scale +materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, +from first principles. + +This is a customized compilation which includes HDF5 library and an interface to Wannier90. + +To use VASP, You need academic licenses from University of Wiena. Follow the instructions https://www.vasp.at/index.php/faqs. + +Then send us please a list of authorized users and their ID for which you need this access. Please use only http://support.it4i.cz/rt. We are responsible to verify your licenses. After succesfull verification You will be granted to use VASP in our enviroment.""" + +toolchain = {'name': 'intel', 'version': '2021b'} +toolchainopts = {'pic': True, 'usempi': True} + +# Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on +# how to get access to the code +sources = ['%(namelower)s.%(version)s.tgz'] +checksums = ['113db53c4346287c89982f52887a65d12d246e38de7ccd024e44499c4774dc66'] + +dependencies = [ + ('HDF5', '1.12.1', '-parallel'), + ('Wannier90', '3.1.0', '-serial'), +] + +prebuildopts = 'cp arch/makefile.include.intel ./makefile.include && ' + +# AMD/intel cpu +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + prebuildopts += 'sed -i "s|-xHOST|-march=core-avx2|" makefile.include && ' + +# path to libfftw3xf_intel.a is hardcoded in makefile.include +prebuildopts += 'sed -i "s|\$(MKLROOT)/interfaces/fftw3xf|\$(FFTW_LIB_DIR)|" makefile.include && ' + +# remove mkl flag to prevent mixing dynamic libs with the static libs in +# LIBBLACS/SCALAPACK +prebuildopts += 'sed -i "s|-mkl=sequential ||" makefile.include && ' + +# OFLAG = -O2 -xAVX +prebuildopts += 'sed -i "s|OFLAG = -O2|OFLAG = -O3 -ip -march=xHost|" makefile.include && ' + +# objects add MKLROOT +prebuildopts += 'sed -i "s|OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o|OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o \$(MKLROOT)/lib/intel64_lin/libfftw3xf_intel.a|" makefile.include && ' + +prebuildopts += 'sed -i "s|FFLAGS = -assume byterecl -w|FFLAGS = -FR -assume byterecl|" makefile.include && ' +prebuildopts += 'sed -i "s|BLAS =|BLAS = -mkl=sequential|" makefile.include && ' + +# HDF5-support +prebuildopts += 'sed -i "s|#CPP_OPTIONS+= -DVASP_HDF5|CPP_OPTIONS += -DVASP_HDF5|" makefile.include && ' +prebuildopts += 'sed -i "s|#HDF5_ROOT ?= /path/to/your/hdf5/installation|HDF5_ROOT ?= ${EBROOTHDF5}|" makefile.include && ' +prebuildopts += 'sed -i "s|#LLIBS += -L\$(HDF5_ROOT)/lib -lhdf5_fortran|LLIBS += -L\$(HDF5_ROOT)/lib -lhdf5_fortran|" makefile.include && ' +prebuildopts += 'sed -i "s|#INCS += -I\$(HDF5_ROOT)/include|INCS += -I\$(HDF5_ROOT)/include|" makefile.include && ' + +# Wannier90 interface +prebuildopts += 'sed -i "s|#CPP_OPTIONS += -DVASP2WANNIER90|CPP_OPTIONS += -DVASP2WANNIER90|" makefile.include && ' +prebuildopts += 'sed -i "s|#WANNIER90_ROOT ?= /path/to/your/wannier90/installation|WANNIER90_ROOT ?= ${EBROOTWANNIER90}|" makefile.include && ' +prebuildopts += 'sed -i "s|#LLIBS += -L\$(WANNIER90_ROOT)/lib -lwannier|LLIBS += -L\$(WANNIER90_ROOT)/lib -lwannier|" makefile.include && ' + +# VASP uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +#prebuildopts += 'exit 1' + +buildopts = 'std gam ncl ' # 'BLACS="$LIBBLACS" SCALAPACK="$LIBSCALAPACK" ' + +parallel = 1 + +files_to_copy = [(['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], + 'dirs': [] +} + +modluafooter = 'add_property("state","license")' + +moduleclass = 'phys' diff --git a/w/Wannier90/Wannier90-3.1.0-intel-2021b-serial.eb b/w/Wannier90/Wannier90-3.1.0-intel-2021b-serial.eb new file mode 100644 index 00000000..06695b4f --- /dev/null +++ b/w/Wannier90/Wannier90-3.1.0-intel-2021b-serial.eb @@ -0,0 +1,39 @@ +# IT4Innovations 2022 +# JK + +easyblock = 'MakeCp' + +name = 'Wannier90' +version = '3.1.0' +versionsuffix = '-serial' + +homepage = 'http://www.wannier.org' +description = """A tool for obtaining maximally-localised Wannier functions""" + +toolchain = {'name': 'intel', 'version': '2021b'} +toolchainopts = {'usempi': True} + +github_account = 'wannier-developers' +source_urls = [GITHUB_LOWER_SOURCE] +sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] +patches = ['Wannier90_3x_ignore_makeinc.patch'] +checksums = [ + '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz + '561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch +] + +buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS" LDOPTS="$FFLAGS" ' +buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" ' + +# compile serial version for use with VASP per +# https://www.vasp.at/wiki/index.php/Makefile.include#Wannier90_.28optional.29 +#buildopts += 'COMMS=mpi' + +files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')] + +sanity_check_paths = { + 'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'], + 'dirs': [] +} + +moduleclass = 'chem'