# 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'