easyblock = 'EB_PSI' name = 'PSI4' version = '1.3.2' versionsuffix = '-Python-%(pyver)s' homepage = 'http://www.psicode.org/' description = """PSI4 is an open-source suite of ab initio quantum chemistry programs designed for efficient, high-accuracy simulations of a variety of molecular properties. We can routinely perform local_computations with more than 2500 basis functions running serially or in parallel.""" toolchain = {'name': 'intel', 'version': '2020a'} toolchainopts = {'usempi': True, 'optarch': 'march=core-avx2'} source_urls = ['https://github.com/psi4/psi4/archive/refs/tags/'] sources = ['v%(version)s.tar.gz'] patches = ['PSI4-1.3.2_fix_cmake_release.patch'] dependencies = [ ('Python', '3.8.2'), ('SciPy-bundle', '2020.03', versionsuffix), # PCMSolver recent versions fail with recent intel local_compilers. # Tried with intel/201{7,8}b, and versions 1.1.12, and 1.2.1 # See in more details: https://github.com/PCMSolver/pcmsolver/issues/159 # ('PCMSolver', '1.2.1'), ('CheMPS2', '1.8.9'), ('HDF5', '1.10.6', '', ('iimpi', '2020a')), # Tests are failing with pytest 3.9.2 ('pytest', '6.0.1', versionsuffix), ('networkx', '2.4', versionsuffix), ('deepdiff', '4.0.6', versionsuffix), ] builddependencies = [ ('CMake', '3.16.4'), # Perl needed for the ctest test suite during the installation, not for the pytest test suite after the installation # ('Perl', '5.28.0'), ] configopts = '-DENABLE_MPI=ON -DENABLE_PLUGINS=ON -DENABLE_XHOST=OFF ' # Install python mudule to the standard location instead of lib configopts += '-DPYMOD_INSTALL_LIBDIR=/python3.8/site-packages ' # Add bundled (downloaded) packages # -DENABLE_simint=ON does not work with intel/2018, so have to make with GCCcore configopts += '-DENABLE_dkh=ON -DENABLE_gdma=ON -DENABLE_resp=ON -DENABLE_snsmp2=ON -DENABLE_CheMPS2=ON ' # runtest uses ctest, and some of the thests have to be manually local_compared # to the reference output (those tests are marked failed) # After installing PSI4, you can test the package using psi4 --test command. (This uses pytest framework) # runtest = '-L smoke' runtest = False exts_defaultclass = 'PythonPackage' exts_filter = ("python -c 'import %(ext_name)s'", '') exts_default_options = { 'source_urls': [PYPI_SOURCE], 'download_dep_fail': True, 'use_pip': True, } exts_list = [ ('pydantic', '0.26', { 'checksums': ['dab99d3070e040b8b2e987dfbe237350ab92d5d57a22d4e0e268ede2d85c7964'], }), ('Pint', '0.9', { 'checksums': ['32d8a9a9d63f4f81194c0014b3b742679dce81a26d45127d9810a68a561fe4e2'], }), ] modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} sanity_check_commands = ["python -c 'import psi4'"] moduleclass = 'chem'