From f4ee07527cd855c49e0288fc99430f2342c7862a Mon Sep 17 00:00:00 2001 From: "Nichols A. Romero" Date: Sat, 18 Aug 2018 11:26:17 -0500 Subject: QMCPACK Spack Package Update (Summer 2018) (#9008) * QMCPACK now supports QE 6.3. Dropped QE 5.3 due to incompatibilities. * QMCPACK general clean-up of depends_on. * Add QMCPACK 3.5.0 * More robust support of MKL detection in QMCPACK. --- .../repos/builtin/packages/qmcpack/package.py | 33 ++++++++++++++-------- 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/qmcpack/package.py b/var/spack/repos/builtin/packages/qmcpack/package.py index 4caa10f8e3..7d364baa31 100644 --- a/var/spack/repos/builtin/packages/qmcpack/package.py +++ b/var/spack/repos/builtin/packages/qmcpack/package.py @@ -41,6 +41,7 @@ class Qmcpack(CMakePackage): # can occasionally change. # NOTE: 12/19/2017 QMCPACK 3.0.0 does not build properly with Spack. version('develop') + version('3.5.0', tag='v3.5.0') version('3.4.0', tag='v3.4.0') version('3.3.0', tag='v3.3.0') version('3.2.0', tag='v3.2.0') @@ -68,7 +69,7 @@ class Qmcpack(CMakePackage): variant('gui', default=False, description='Install with Matplotlib (long installation time)') variant('qe', default=True, - description='Install with patched Quantum Espresso 5.3.0') + description='Install with patched Quantum Espresso 6.3.0') # cuda variant implies mixed precision variant by default, but there is # no way to express this in variant syntax, need something like @@ -99,23 +100,25 @@ class Qmcpack(CMakePackage): # qmcpack data analysis tools # basic command line tool based on Python and NumPy # blas and lapack patching fails often and so are disabled at this time - depends_on('py-numpy~blas~lapack', type='run', when='+da') + depends_on('py-numpy~blas~lapack', when='+da', type='run') # GUI is optional for data anlysis # py-matplotlib leads to a long complex DAG for dependencies - depends_on('py-matplotlib', type='run', when='+gui') + depends_on('py-matplotlib', when='+gui', type='run') # B-spline basis calculation require a patched version of - # Quantum Espresso 5.3.0 (see QMCPACK manual) - patch_url = 'https://raw.githubusercontent.com/QMCPACK/qmcpack/develop/external_codes/quantum_espresso/add_pw2qmcpack_to_espresso-5.3.0.diff' - patch_checksum = '0d8d7ba805313ddd4c02ee32c96d2f12e7091e9e82e22671d3ad5a24247860c4' - depends_on('quantum-espresso@5.3.0~elpa', + # Quantum Espresso 6.3 (see QMCPACK manual) + # Building explicitly without ELPA due to issues in Quantum Espresso + # Spack package + patch_url = 'https://raw.githubusercontent.com/QMCPACK/qmcpack/develop/external_codes/quantum_espresso/add_pw2qmcpack_to_qe-6.3.diff' + patch_checksum = '2ee346e24926479f5e96f8dc47812173a8847a58354bbc32cf2114af7a521c13' + depends_on('quantum-espresso@6.3~elpa+hdf5', patches=patch(patch_url, sha256=patch_checksum, when='+qe'), - when='+qe+mpi') + when='+qe+mpi', type='run') - depends_on('quantum-espresso@5.3.0~elpa~scalapack~mpi', + depends_on('quantum-espresso@6.3~elpa~scalapack~mpi+hdf5', patches=patch(patch_url, sha256=patch_checksum, when='+qe'), - when='+qe~mpi') + when='+qe~mpi', type='run') # Backport several patches from recent versions of QMCPACK # The test_numerics unit test is broken prior to QMCPACK 3.3.0 @@ -221,10 +224,16 @@ class Qmcpack(CMakePackage): ]) # Additionally, we need to pass the BLAS+LAPACK include directory for - # header files. Intel MKL requires special case due to differences in - # Darwin vs. Linux $MKLROOT naming schemes + # header files. This is to insure vectorized math and FFT libraries + # get properly detected. Intel MKL requires special case due to + # differences in Darwin vs. Linux $MKLROOT naming schemes. This section + # of code is intentionally redundant for backwards compatibility. if 'intel-mkl' in self.spec: lapack_dir = format(join_path(env['MKLROOT'], 'include')) + # Next two lines were introduced in QMCPACK 3.5.0 and later. + # Prior to v3.5.0, these lines should be benign. + args.append('-DENABLE_MKL=1') + args.append('-DMKL_ROOT=%s' % env['MKLROOT']) else: lapack_dir = ':'.join(( spec['lapack'].prefix.include, -- cgit v1.2.3-70-g09d2