# IT4Innovations
# LK 2024 

easyblock = 'MakeCp'

name = 'Yambo'
version = '5.2.3'
versionsuffix = '-SLEPc'

homepage = 'http://www.yambo-code.org'
description = """Yambo is a FORTRAN/C code for Many-Body calculations in solid state and molecular physics.
 Yambo relies on the Kohn-Sham wavefunctions generated by two DFT public codes: abinit, and PWscf."""

toolchain = {'name': 'intel', 'version': '2020a'}
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
   toolchainopts = {'usempi': True, 'optarch': 'march=core-avx2'}
else:
   toolchainopts = {'usempi': True}

source_urls = ['https://github.com/yambo-code/yambo/archive/refs/tags/']
sources = ['%(version)s.tar.gz']
checksums = [
    'a6168d1fa820af857ac51217bd6ad26dda4cc89c07e035bd7dc230038ae1ab9c',  # 5.2.3
]

dependencies = [
    ('netCDF-Fortran', '4.5.2'),
    ('libxc', '5.1.5'),
    ('IOTK', '1.2.2'),
    ('SLEPc', '3.12.2')
]

prebuildopts = './configure --build=x86_64-pc-linux-gnu  --host=x86_64-pc-linux-gnu CPPFLAGS="" FCFLAGS="-nofor_main" --with-blas-libs="$LIBBLAS" --with-lapack-libs="$LIBLAPACK" --with-blacs-libs="$LIBBLACS" --with-scalapack-libs="$LIBSCALAPACK" --with-fft-libs="$LIBFFT" --with-netcdf-libs="-lnetcdff -lnetcdf" --with-hdf5-path=$EBROOTHDF5 --with-libxc-path=$EBROOTLIBXC --enable-iotk --with-iotk-path=$EBROOTIOTK --enable-dp --enable-memory-profile --disable-open-mp --enable-slepc --with-slepc=$EBROOTSLEPC && '

buildopts = 'all'

parallel = 1

files_to_copy = [
        (['bin/*'], 'bin'),
        (['lib/*.a'], 'lib'),
        (['include/*'], 'include'),
]

sanity_check_paths = {
    'files': ['bin/' + x for x in ['a2y', 'p2y', 'yambo', 'ypp']],
    'dirs': []
}

moduleclass = 'phys'
