easyblock = 'MakeCp'

name = 'VASP'
version = '5.4.1'
versionsuffix = '-24Jun15'

homepage = 'http://www.vasp.at'
description = """The Vienna Ab initio Simulation Package (VASP) is a computer program for atomic scale
materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics,
from first principles."""

toolchain = {'name': 'intel', 'version': '2017a}
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 = ['vasp.5.4.1.tar']

dependencies = [
    ('FFTW', '3.3.5'),
    ('zlib', '1.2.11'),
]

prebuildopts = 'cp arch/makefile.include.linux_intel ./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||" makefile.include && '

# VASP uses LIBS as a list of folders
prebuildopts += 'unset LIBS && '

buildopts = 'all 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': []
}

moduleclass = 'phys'
