From 28d1706c8a2e73083f5e0a640cd8d9863b1a3a85 Mon Sep 17 00:00:00 2001 From: Lukas Krupcik Date: Fri, 8 Jul 2022 13:49:39 +0200 Subject: [PATCH] new file: c/CheMPS2/CheMPS2-1.8.9-intel-2021a.eb new file: g/GlobalArrays/GlobalArrays-5.8-intel-2021a.eb new file: h/HDF5/HDF5-1.13.1-gompi-2022a.eb new file: h/HDF5/HDF5-1.13.1-iimpi-2022a.eb new file: o/OpenMolcas/OpenMolcas-22.06-intel-2021a.eb new file: v/VASP/VASP-6.3.1-foss-2022a.eb modified: v/VASP/VASP-6.3.1-intel-2021b.eb new file: w/Wannier90/Wannier90-3.1.0-foss-2022a-serial.eb deleted: v/VASP/VASP-6.3.1-intel-2021b-cluster-independent.patch deleted: v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential.eb --- c/CheMPS2/CheMPS2-1.8.9-intel-2021a.eb | 37 +++++++++ .../GlobalArrays-5.8-intel-2021a.eb | 33 ++++++++ h/HDF5/HDF5-1.13.1-gompi-2022a.eb | 30 +++++++ h/HDF5/HDF5-1.13.1-iimpi-2022a.eb | 30 +++++++ o/OpenMolcas/OpenMolcas-22.06-intel-2021a.eb | 58 ++++++++++++++ v/VASP/VASP-6.3.1-foss-2022a.eb | 80 +++++++++++++++++++ ....3.1-intel-2021b-cluster-independent.patch | 53 ------------ .../VASP-6.3.1-intel-2021b-mkl=sequential.eb | 66 --------------- v/VASP/VASP-6.3.1-intel-2021b.eb | 4 +- .../Wannier90-3.1.0-foss-2022a-serial.eb | 39 +++++++++ 10 files changed, 309 insertions(+), 121 deletions(-) create mode 100644 c/CheMPS2/CheMPS2-1.8.9-intel-2021a.eb create mode 100644 g/GlobalArrays/GlobalArrays-5.8-intel-2021a.eb create mode 100644 h/HDF5/HDF5-1.13.1-gompi-2022a.eb create mode 100644 h/HDF5/HDF5-1.13.1-iimpi-2022a.eb create mode 100644 o/OpenMolcas/OpenMolcas-22.06-intel-2021a.eb create mode 100644 v/VASP/VASP-6.3.1-foss-2022a.eb delete mode 100644 v/VASP/VASP-6.3.1-intel-2021b-cluster-independent.patch delete mode 100644 v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential.eb create mode 100644 w/Wannier90/Wannier90-3.1.0-foss-2022a-serial.eb diff --git a/c/CheMPS2/CheMPS2-1.8.9-intel-2021a.eb b/c/CheMPS2/CheMPS2-1.8.9-intel-2021a.eb new file mode 100644 index 00000000..7ee5a10e --- /dev/null +++ b/c/CheMPS2/CheMPS2-1.8.9-intel-2021a.eb @@ -0,0 +1,37 @@ +# IT4Innovations 2022 +# LK JK + +easyblock = 'CMakeMake' + +name = 'CheMPS2' +version = '1.8.9' + +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'} + +source_urls = ['https://github.com/SebWouters/CheMPS2/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['ccd4c0d9432759d97690bf37a0333440f93513960c62d1f75842f090406a224d'] + +builddependencies = [ + ('CMake', '3.20.1'), +] + +dependencies = [ + ('HDF5', '1.10.7'), +] + +pretestopts = 'export OMP_NUM_THREADS=1 && ' +runtest = 'test' + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['bin/chemps2', 'lib64/libchemps2.%s' % SHLIB_EXT, 'lib64/libchemps2.a'], + 'dirs': ['include/chemps2'] +} + +moduleclass = 'chem' diff --git a/g/GlobalArrays/GlobalArrays-5.8-intel-2021a.eb b/g/GlobalArrays/GlobalArrays-5.8-intel-2021a.eb new file mode 100644 index 00000000..4258f2e5 --- /dev/null +++ b/g/GlobalArrays/GlobalArrays-5.8-intel-2021a.eb @@ -0,0 +1,33 @@ +# IT4Innovations 2022 +# JK + +easyblock = 'ConfigureMake' + +name = 'GlobalArrays' +version = '5.8' + +homepage = 'https://hpc.pnl.gov/globalarrays' +description = "Global Arrays (GA) is a Partitioned Global Address Space (PGAS) programming model" + +toolchain = {'name': 'intel', 'version': '2021a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/GlobalArrays/ga/releases/download/'] +sources = ['v%(version)s/ga-%(version)s.tar.gz'] +checksums = ['64df7d1ea4053d24d84ca361e67a6f51c7b17ed7d626cb18a9fbc759f4a078ac'] + +configopts = ' --with-mpi --enable-i8' +configopts += ' --with-blas8="-L$MLROOT/lib/intel64 -lmkl_sequential -lmkl_intel_ilp64"' +configopts += ' --with-scalapack8="L$MKLROOT/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 ' +configopts += '-lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -lm -ldl"' + +# select armci network as (Comex) MPI-1 two-sided +configopts += ' --with-mpi-ts' + +sanity_check_paths = { + 'files': ['bin/adjust.x', 'bin/collisions.x', 'bin/ga-config', 'lib/libarmci.a', + 'lib/libcomex.a', 'lib/libga.a'], + 'dirs': ['include'], +} + +moduleclass = 'lib' diff --git a/h/HDF5/HDF5-1.13.1-gompi-2022a.eb b/h/HDF5/HDF5-1.13.1-gompi-2022a.eb new file mode 100644 index 00000000..15bb656d --- /dev/null +++ b/h/HDF5/HDF5-1.13.1-gompi-2022a.eb @@ -0,0 +1,30 @@ +# IT4Innovations 2022 +# JK + +name = 'HDF5' +version = '1.13.1' + +homepage = 'https://portal.hdfgroup.org/display/support' +description = """HDF5 is a data model, library, and file format for storing and managing data. + It supports an unlimited variety of datatypes, and is designed for flexible + and efficient I/O and for high volume and complex data.""" + +toolchain = {'name': 'gompi', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major_minor)s/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['051655873105112f7aeccd5f59ab21f35f7f4907f06921ae61aaf1ef1c71fd53'] + +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'pic': True, 'usempi': True, 'optarch': 'march=core-avx2'} +else: + toolchainopts = {'pic': True, 'usempi': True} + +dependencies = [ + ('zlib', '1.2.12'), + ('Szip', '2.1.1'), +] + +moduleclass = 'data' diff --git a/h/HDF5/HDF5-1.13.1-iimpi-2022a.eb b/h/HDF5/HDF5-1.13.1-iimpi-2022a.eb new file mode 100644 index 00000000..e1f9ba7f --- /dev/null +++ b/h/HDF5/HDF5-1.13.1-iimpi-2022a.eb @@ -0,0 +1,30 @@ +# IT4Innovations 2022 +# JK + +name = 'HDF5' +version = '1.13.1' + +homepage = 'https://portal.hdfgroup.org/display/support' +description = """HDF5 is a data model, library, and file format for storing and managing data. + It supports an unlimited variety of datatypes, and is designed for flexible + and efficient I/O and for high volume and complex data.""" + +toolchain = {'name': 'iimpi', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major_minor)s/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['051655873105112f7aeccd5f59ab21f35f7f4907f06921ae61aaf1ef1c71fd53'] + +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'pic': True, 'usempi': True, 'optarch': 'march=core-avx2'} +else: + toolchainopts = {'pic': True, 'usempi': True} + +dependencies = [ + ('zlib', '1.2.12'), + ('Szip', '2.1.1'), +] + +moduleclass = 'data' diff --git a/o/OpenMolcas/OpenMolcas-22.06-intel-2021a.eb b/o/OpenMolcas/OpenMolcas-22.06-intel-2021a.eb new file mode 100644 index 00000000..748c835d --- /dev/null +++ b/o/OpenMolcas/OpenMolcas-22.06-intel-2021a.eb @@ -0,0 +1,58 @@ +# IT4Innovations 2022 +# JK + +easyblock = 'CMakeMake' + +name = 'OpenMolcas' +version = '22.06' + +homepage = "https://gitlab.com/Molcas/OpenMolcas" +description = "OpenMolcas is a quantum chemistry software package" + +toolchain = {'name': 'intel', 'version': '2021a'} + +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'usempi': True, 'optarch': 'march=core-avx2', 'opt': '03'} +else: + toolchainopts = {'usempi': True} + +source_urls = ['https://gitlab.com/Molcas/OpenMolcas/-/archive/v%(version)s/'] +sources = ["OpenMolcas-v%(version)s.tar.gz"] +patches = ['OpenMolcas-21.06_mcpdft_deps.patch'] +checksums = [ + '45daca1e6465d59a43479d5509315bca9c19dedbb0a2d4bb4f26f0b443b7670d', # OpenMolcas-v22.06.tar.gz + '708763e060aa0174bbe9c0cc336b509fbf492066465908dd919452836a7a793a', # OpenMolcas-21.06_mcpdft_deps.patch +] + +dependencies = [ + ('GlobalArrays', '5.8'), + ('HDF5', '1.10.7'), + ('Python', '3.9.5'), + ('CheMPS2', '1.8.9'), +] + +builddependencies = [('CMake', '3.20.1')] + +separate_build_dir = True + +preconfigopts = 'GAROOT=$EBROOTGLOBALARRAYS' +configopts = '-DLINALG=MKL -DMKLROOT=$MKLROOT ' +configopts += '-DMPI=ON -DOPENMP=ON -DGA=ON ' +configopts += '-DBUILD_SHARED_LIBS=ON -DTOOLS=ON -DFDE=ON ' +configopts += '-DCHEMPS2=ON -DCHEMPS2_DIR=$EBROOTCHEMPS2/bin' + +modextrapaths = {'PATH': ''} +modextravars = { + 'MOLCAS': '%(installdir)s', + 'MOLCAS_DRIVER': '%(installdir)s/pymolcas', + 'MOLCAS_SOURCE': '%(installdir)s', +} + +sanity_check_paths = { + 'files': ['bin/dynamix.exe', 'bin/mpprop.exe', 'lib/libmolcas.%s' % SHLIB_EXT, + 'sbin/help_basis', 'pymolcas'], + 'dirs': ['data/', 'basis_library/'], +} + +moduleclass = 'chem' diff --git a/v/VASP/VASP-6.3.1-foss-2022a.eb b/v/VASP/VASP-6.3.1-foss-2022a.eb new file mode 100644 index 00000000..615d2a7a --- /dev/null +++ b/v/VASP/VASP-6.3.1-foss-2022a.eb @@ -0,0 +1,80 @@ +# IT4Innovations 2022 +# JK LK + +easyblock = 'MakeCp' + +name = 'VASP' +version = '6.3.1' + +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. + +To use VASP, you need an academic license from University of Vienna. Follow the instructions at https://www.vasp.at/index.php/faqs. + +Please send us a list of authorized users and their IDs for which you need access (use only http://support.it4i.cz/rt). We are responsible for verifying your licenses.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +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'] + +# use serial compilation of W90, see https://www.vasp.at/wiki/index.php/Makefile.include#Wannier90_.28optional.29 +# Important: In case of Wannier90 3.x, you should compile a serial version by removing COMMS=mpi in the make.inc of Wannier90. +dependencies = [ + ('HDF5', '1.13.1'), + ('Wannier90', '3.1.0', '-serial'), +] + +prebuildopts = 'cp arch/makefile.include.gnu ./makefile.include && ' + +# OFLAG to -O3 -march +prebuildopts += 'sed -i "s|\(OFLAG\s\+=\) -O2|\\1 -O3 -march=native|" makefile.include && ' + +# FFLAGS, SCALAPACK and FFTW +prebuildopts += 'sed -i "s|\(FFLAGS\s\+=\) -w -ffpe-summary=none|\\1 -FR -ffpe-summary=none|" makefile.include && ' +prebuildopts += 'sed -i "s|\(SCALAPACK_ROOT\s\+?=\) /path/to/your/scalapack/installation|\\1 ${EBROOTSCALAPACK}|" makefile.include && ' +prebuildopts += 'sed -i "s|\(FFTW_ROOT\s\+?=\) /path/to/your/fftw/installation|\\1 ${EBROOTFFTWMPI}|" makefile.include && ' + +# FLexiBLAS shadows OpenBLAS, for more info see FlexiBLAS description +prebuildopts += 'sed -i "s|\(OPENBLAS_ROOT\s\+?=\) /path/to/your/openblas/installation|\\1 ${EBROOTFLEXIBLAS}|" makefile.include && ' +prebuildopts += 'sed -i "s|\(L\$(OPENBLAS_ROOT)\/lib\) -lopenblas|\\1 -lflexiblas|" makefile.include && ' + +# HDF5 support +prebuildopts += 'sed -i "/DVASP_HDF5/,+s|^#||" makefile.include && ' +prebuildopts += 'sed -i "s|#\(HDF5_ROOT\s\+?=\) /path/to/your/hdf5/installation|\\1 ${EBROOTHDF5}|" makefile.include && ' +prebuildopts += 'sed -i "/L\$(HDF5_ROOT)\/lib -lhdf5_fortran/,+s|^#||" makefile.include && ' +prebuildopts += 'sed -i "/I\$(HDF5_ROOT)\/include/,+s|^#||" makefile.include && ' + +# Wannier90 interface +prebuildopts += 'sed -i "/DVASP2WANNIER90/,+s|^#||" makefile.include && ' +prebuildopts += 'sed -i "s|#\(WANNIER90_ROOT\s\+?=\) /path/to/your/wannier90/installation|\\1 ${EBROOTWANNIER90}|" makefile.include && ' +prebuildopts += 'sed -i "/L\$(WANNIER90_ROOT)\/lib -lwannier/,+s|^#||" makefile.include && ' + +# AMD/intel cpu +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + prebuildopts += 'sed -i "s|-march=native|-march=znver2|g" makefile.include && ' + + +# VASP uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +buildopts = 'std gam ncl ' + +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/v/VASP/VASP-6.3.1-intel-2021b-cluster-independent.patch b/v/VASP/VASP-6.3.1-intel-2021b-cluster-independent.patch deleted file mode 100644 index c137db7a..00000000 --- a/v/VASP/VASP-6.3.1-intel-2021b-cluster-independent.patch +++ /dev/null @@ -1,53 +0,0 @@ -IT4Innovations 2022 -JK - -This patch makes cluster independent changes to the compilation process: -namely, it mostly sets paths to relevant libraries. -Cluster specific changes should be specified in easyconfig through CLUSTERNAME variable. -diff -ru vasp.6.3.1.orig/arch/makefile.include.intel vasp.6.3.1/arch/makefile.include.intel ---- vasp.6.3.1.orig/arch/makefile.include.intel 2022-06-17 17:40:07.266733000 +0200 -+++ vasp.6.3.1/arch/makefile.include.intel 2022-06-17 17:40:07.253626000 +0200 -@@ -16,13 +16,13 @@ - - FREE = -free -names lowercase - --FFLAGS = -assume byterecl -w -+FFLAGS = -FR -assume byterecl - - OFLAG = -O2 - OFLAG_IN = $(OFLAG) - DEBUG = -O0 - --OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o -+OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o ${EBROOTIMKLMINFFTW}/lib/libfftw3xf_intel.a - OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o - OBJECTS_O2 += fft3dlib.o - -@@ -53,18 +53,18 @@ - - # Intel MKL (FFTW, BLAS, LAPACK, and scaLAPACK) - # (Note: for Intel Parallel Studio's MKL use -mkl instead of -qmkl) --FCL += -qmkl=sequential --MKLROOT ?= /path/to/your/mkl/installation -+#FCL += -qmkl=sequential -+MKLROOT ?= ${MKLROOT} - LLIBS += -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 - INCS =-I$(MKLROOT)/include/fftw - - # HDF5-support (optional but strongly recommended) --#CPP_OPTIONS+= -DVASP_HDF5 --#HDF5_ROOT ?= /path/to/your/hdf5/installation --#LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran --#INCS += -I$(HDF5_ROOT)/include -+CPP_OPTIONS+= -DVASP_HDF5 -+HDF5_ROOT ?= ${EBROOTHDF5} -+LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran -+INCS += -I$(HDF5_ROOT)/include - - # For the VASP-2-Wannier90 interface (optional) --#CPP_OPTIONS += -DVASP2WANNIER90 --#WANNIER90_ROOT ?= /path/to/your/wannier90/installation --#LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier -+CPP_OPTIONS += -DVASP2WANNIER90 -+WANNIER90_ROOT ?= ${EBROOTWANNIER90} -+LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier diff --git a/v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential.eb b/v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential.eb deleted file mode 100644 index ab8b4ca0..00000000 --- a/v/VASP/VASP-6.3.1-intel-2021b-mkl=sequential.eb +++ /dev/null @@ -1,66 +0,0 @@ -# IT4Innovations 2022 -# JK - -easyblock = 'MakeCp' - -name = 'VASP' -version = '6.3.1' -versionsuffix = '-mkl=sequential' - -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. - -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 for verifying your licenses. After succesful verification You will be granted access to 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'] -patches = ['VASP-6.3.1-intel-2021b-cluster-independent.patch'] -checksums = [ - '113db53c4346287c89982f52887a65d12d246e38de7ccd024e44499c4774dc66', # vasp.6.3.1.tgz - # VASP-6.3.1-intel-2021b-cluster-independent.patch - '074393cb052982469e2b8d67363f69807b75584564b1bd2e51eaf56085d3951c', -] - -# cluster independent settings - Wannier90 and HDF5 settings, FFLAGS etc. -dependencies = [ - ('HDF5', '1.12.1', '-parallel'), - ('Wannier90', '3.1.0', '-serial'), -] - -# copy over makefile.include for intel toolchain -prebuildopts = 'cp arch/makefile.include.intel ./makefile.include && ' - -# Cluster specific options! -# check for each VASP version to make sure it's consistent -import os -if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: - prebuildopts += 'sed -i -e "s|\(OFLAG\s\+=\) -O2|\\1 -O3 -ip -march=core-avx2|" makefile.include && ' - prebuildopts += 'sed -i "s|-xHOST|-march=core-avx2|" makefile.include && ' -else: - prebuildopts += 'sed -i -e "s|\(OFLAG\s\+=\) -O2|\\1 -O3 -ip -march=xHost|" makefile.include && ' - -# VASP uses LIBS as a list of folders -prebuildopts += 'unset LIBS && ' - -buildopts = ' std gam ncl ' - -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/v/VASP/VASP-6.3.1-intel-2021b.eb b/v/VASP/VASP-6.3.1-intel-2021b.eb index 29b70075..4f75967a 100644 --- a/v/VASP/VASP-6.3.1-intel-2021b.eb +++ b/v/VASP/VASP-6.3.1-intel-2021b.eb @@ -32,7 +32,7 @@ dependencies = [ prebuildopts = 'cp arch/makefile.include.intel ./makefile.include && ' -# OFLAG = -O2 -xAVX +# OFLAG to -O3 -march prebuildopts += 'sed -i "s|\(OFLAG\s\+=\) -O2|\\1 -O3 -ip -march=xHost|" makefile.include && ' # OBJECTS, FFLAGS and MKLROOT @@ -61,7 +61,7 @@ if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: # VASP uses LIBS as a list of folders prebuildopts += 'unset LIBS && ' -buildopts = 'std gam ncl ' # 'BLACS="$LIBBLACS" SCALAPACK="$LIBSCALAPACK" ' +buildopts = 'std gam ncl ' parallel = 1 diff --git a/w/Wannier90/Wannier90-3.1.0-foss-2022a-serial.eb b/w/Wannier90/Wannier90-3.1.0-foss-2022a-serial.eb new file mode 100644 index 00000000..ca1232d5 --- /dev/null +++ b/w/Wannier90/Wannier90-3.1.0-foss-2022a-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': 'foss', 'version': '2022a'} +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'