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.
This commit is contained in:
parent
412832159b
commit
f4ee07527c
@ -41,6 +41,7 @@ class Qmcpack(CMakePackage):
|
|||||||
# can occasionally change.
|
# can occasionally change.
|
||||||
# NOTE: 12/19/2017 QMCPACK 3.0.0 does not build properly with Spack.
|
# NOTE: 12/19/2017 QMCPACK 3.0.0 does not build properly with Spack.
|
||||||
version('develop')
|
version('develop')
|
||||||
|
version('3.5.0', tag='v3.5.0')
|
||||||
version('3.4.0', tag='v3.4.0')
|
version('3.4.0', tag='v3.4.0')
|
||||||
version('3.3.0', tag='v3.3.0')
|
version('3.3.0', tag='v3.3.0')
|
||||||
version('3.2.0', tag='v3.2.0')
|
version('3.2.0', tag='v3.2.0')
|
||||||
@ -68,7 +69,7 @@ class Qmcpack(CMakePackage):
|
|||||||
variant('gui', default=False,
|
variant('gui', default=False,
|
||||||
description='Install with Matplotlib (long installation time)')
|
description='Install with Matplotlib (long installation time)')
|
||||||
variant('qe', default=True,
|
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
|
# cuda variant implies mixed precision variant by default, but there is
|
||||||
# no way to express this in variant syntax, need something like
|
# no way to express this in variant syntax, need something like
|
||||||
@ -99,23 +100,25 @@ class Qmcpack(CMakePackage):
|
|||||||
# qmcpack data analysis tools
|
# qmcpack data analysis tools
|
||||||
# basic command line tool based on Python and NumPy
|
# basic command line tool based on Python and NumPy
|
||||||
# blas and lapack patching fails often and so are disabled at this time
|
# 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
|
# GUI is optional for data anlysis
|
||||||
# py-matplotlib leads to a long complex DAG for dependencies
|
# 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
|
# B-spline basis calculation require a patched version of
|
||||||
# Quantum Espresso 5.3.0 (see QMCPACK manual)
|
# Quantum Espresso 6.3 (see QMCPACK manual)
|
||||||
patch_url = 'https://raw.githubusercontent.com/QMCPACK/qmcpack/develop/external_codes/quantum_espresso/add_pw2qmcpack_to_espresso-5.3.0.diff'
|
# Building explicitly without ELPA due to issues in Quantum Espresso
|
||||||
patch_checksum = '0d8d7ba805313ddd4c02ee32c96d2f12e7091e9e82e22671d3ad5a24247860c4'
|
# Spack package
|
||||||
depends_on('quantum-espresso@5.3.0~elpa',
|
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'),
|
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'),
|
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
|
# Backport several patches from recent versions of QMCPACK
|
||||||
# The test_numerics unit test is broken prior to QMCPACK 3.3.0
|
# The test_numerics unit test is broken prior to QMCPACK 3.3.0
|
||||||
@ -221,10 +224,16 @@ def cmake_args(self):
|
|||||||
])
|
])
|
||||||
|
|
||||||
# Additionally, we need to pass the BLAS+LAPACK include directory for
|
# Additionally, we need to pass the BLAS+LAPACK include directory for
|
||||||
# header files. Intel MKL requires special case due to differences in
|
# header files. This is to insure vectorized math and FFT libraries
|
||||||
# Darwin vs. Linux $MKLROOT naming schemes
|
# 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:
|
if 'intel-mkl' in self.spec:
|
||||||
lapack_dir = format(join_path(env['MKLROOT'], 'include'))
|
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:
|
else:
|
||||||
lapack_dir = ':'.join((
|
lapack_dir = ':'.join((
|
||||||
spec['lapack'].prefix.include,
|
spec['lapack'].prefix.include,
|
||||||
|
Loading…
Reference in New Issue
Block a user