# IT4Innovations 2022 # LK JK easyblock = 'MakeCp' name = 'Yambo' version = '5.1.0' 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} local_copy_cmd_pattern = 'cp %s yambo-%(version)s/lib/archive/' source_urls = ['https://github.com/yambo-code/yambo/archive/refs/tags/'] sources = [ '%(version)s.tar.gz', # Yambo { 'source_urls': ['https://github.com/yambo-code/yambo-libraries/archive/'], 'filename': '0.0.2.tar.gz', 'extract_cmd': 'tar --strip-components=1 -xzf %s -C yambo-%(version)s/lib/yambo/', }, # { # 'source_urls': ['https://github.com/yambo-code/yambo/files/783150/'], # 'filename': 'libxc-2.2.3.tar.gz', # 'extract_cmd': local_copy_cmd_pattern, # }, # { # 'source_urls': ['https://github.com/yambo-code/yambo/files/962173/'], # 'filename': 'iotk-y1.2.2.tar.gz', # 'extract_cmd': local_copy_cmd_pattern, # }, ] checksums = [ 'ce8d4af0f29e996f797a5823ee70b559dc8cc6ed5cc59eadb9a0abbe20ebf04f', # 5.1.0.tar.gz 'cac7e4bf93e16d3cdf640d034e15854455a08dad796aece3cad5c7c491a68a59', # 0.0.2.tar.gz ] dependencies = [ ('netCDF-Fortran', '4.5.2'), ('libxc', '5.1.5'), ('IOTK', '1.2.2'), ] #with_configure = True #configopts = 'CPPFLAGS="" FCFLAGS="-nofor_main" --with-blas-libs="$LIBBLAS" ' #configopts += '--with-lapack-libs="$LIBLAPACK" --with-blacs-libs="$LIBBLACS" ' #configopts += '--with-scalapack-libs="$LIBSCALAPACK" --with-fft-libs="$LIBFFT" ' #configopts += '--with-netcdf-libs="-lnetcdff -lnetcdf" ' #configopts += '--with-hdf5-path=$EBROOTHDF5 ' #configopts += '--with-libxc-path=$EBROOTLIBXC ' #configopts += '--enable-iotk ' #onfigopts += '--with-iotk-path=$EBROOTIOTK ' #configopts += '--enable-dp --enable-memory-profile --disable-open-mp ' 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 && ' 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'