diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/lammps/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/lammps/package.py | 65 |
1 files changed, 56 insertions, 9 deletions
diff --git a/var/spack/repos/builtin/packages/lammps/package.py b/var/spack/repos/builtin/packages/lammps/package.py index 5f96f150c7..509d17d2d6 100644 --- a/var/spack/repos/builtin/packages/lammps/package.py +++ b/var/spack/repos/builtin/packages/lammps/package.py @@ -1,4 +1,4 @@ -# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) @@ -60,11 +60,19 @@ class Lammps(CMakePackage, CudaPackage): supported_packages = ['asphere', 'body', 'class2', 'colloid', 'compress', 'coreshell', 'dipole', 'granular', 'kspace', 'kokkos', 'latte', 'manybody', 'mc', 'meam', 'misc', - 'molecule', 'mpiio', 'peri', 'poems', 'python', - 'qeq', 'replica', 'rigid', 'shock', 'snap', 'spin', - 'srd', 'user-atc', 'user-h5md', 'user-lb', - 'user-meamc', 'user-misc', 'user-netcdf', 'user-omp', - 'user-reaxc', 'voronoi'] + 'mliap', 'molecule', 'mpiio', 'opt', 'peri', 'poems', + 'python', 'qeq', 'replica', 'rigid', 'shock', 'snap', + 'spin', 'srd', 'user-atc', 'user-adios', + 'user-awpmd', 'user-bocs', 'user-cgsdk', + 'user-colvars', 'user-diffraction', 'user-dpd', + 'user-drude', 'user-eff', 'user-fep', 'user-h5md', + 'user-lb', 'user-manifold', 'user-meamc', + 'user-mesodpd', 'user-mesont', 'user-mgpt', + 'user-misc', 'user-mofff', 'user-netcdf', 'user-omp', + 'user-phonon', 'user-plumed', 'user-ptm', 'user-qtb', + 'user-reaction', 'user-reaxc', 'user-sdpd', + 'user-smd', 'user-smtbq', 'user-sph', 'user-tally', + 'user-uef', 'user-yaff', 'voronoi'] for pkg in supported_packages: variant(pkg, default=False, @@ -79,6 +87,8 @@ class Lammps(CMakePackage, CudaPackage): description='Build with png support') variant('ffmpeg', default=True, description='Build with ffmpeg support') + variant('kim', default=True, + description='Build with KIM support') variant('openmp', default=True, description='Build with OpenMP') variant('opencl', default=False, description='Build with OpenCL') variant('exceptions', default=False, @@ -95,7 +105,6 @@ class Lammps(CMakePackage, CudaPackage): depends_on('blas', when='+user-atc') depends_on('lapack', when='+user-atc') depends_on('opencl', when='+opencl') - depends_on('latte@1.0.1', when='@:20180222+latte') depends_on('latte@1.1.1:', when='@20180316:20180628+latte') depends_on('latte@1.2.1:', when='@20180629:20200505+latte') @@ -107,10 +116,14 @@ class Lammps(CMakePackage, CudaPackage): depends_on('mpi', when='+user-h5md') depends_on('hdf5', when='+user-h5md') depends_on('jpeg', when='+jpeg') + depends_on('kim-api', when='+kim') depends_on('libpng', when='+png') depends_on('ffmpeg', when='+ffmpeg') depends_on('kokkos+deprecated_code+shared@3.0', when='@20200303+kokkos') depends_on('kokkos+shared@3.1:', when='@20200505:+kokkos') + depends_on('adios2', when='+user-adios') + depends_on('plumed', when='+user-plumed') + depends_on('eigen@3:', when='+user-smd') conflicts('+cuda', when='+opencl') conflicts('+body', when='+poems@:20180628') @@ -123,8 +136,22 @@ class Lammps(CMakePackage, CudaPackage): conflicts('+user-misc', when='~manybody') conflicts('%gcc@9:', when='@:20200303+openmp') conflicts('+kokkos', when='@:20200227') - conflicts('+meam', when='@20181212:') - conflicts('+user-meamc', when='@:20181212') + conflicts( + '+meam', when='@20181212:', + msg='+meam was removed after @20181212, use +user-meamc instead') + conflicts( + '+user-meamc', when='@:20181212', + msg='+user-meamc only added @20181212, use +meam instead') + conflicts( + '+user-reaction', when='@:20200303', + msg='+user-reaction only supported for version 20200505 and later') + conflicts('+mliap', when='~snap') + conflicts( + '+adios +mpi', when='^adios2~mpi', + msg='With +adios, mpi setting for adios2 and lammps must be the same') + conflicts( + '+adios ~mpi', when='^adios2+mpi', + msg='With +adios, mpi setting for adios2 and lammps must be the same') patch("lib.patch", when="@20170901") patch("660.patch", when="@20170922") @@ -181,13 +208,33 @@ class Lammps(CMakePackage, CudaPackage): args.append('{0}=ON'.format(opt)) else: args.append('{0}=OFF'.format(opt)) + if '+kim' in spec: + args.append('-DPKG_KIM=ON') if '+kspace' in spec: if '^fftw' in spec: args.append('-DFFT=FFTW3') if '^mkl' in spec: args.append('-DFFT=MKL') + if '^amdfftw' in spec: + fftw_prefix = spec['amdfftw'].prefix + args.append('-DFFTW_HOME={0}'.format(fftw_prefix)) + args.append('-DFFTW_INCLUDE_DIRS={0}' + .format(fftw_prefix.include)) + args.append('-DFFTW_LIBRARY_DIRS={0}'.format(fftw_prefix.lib)) if '+kokkos' in spec: args.append('-DEXTERNAL_KOKKOS=ON') + if '+user-adios' in spec: + args.append('-DADIOS2_DIR={0}'.format(self.spec['adios2'].prefix)) + if '+user-plumed' in spec: + args.append('-DDOWNLOAD_PLUMED=no') + if '+shared' in self.spec['plumed']: + args.append('-DPLUMED_MODE=shared') + else: + args.append('-DPLUMED_MODE=static') + if '+user-smd' in spec: + args.append('-DDOWNLOAD_EIGEN3=no') + args.append('-DEIGEN3_INCLUDE_DIR={0}'.format( + self.spec['eigen'].prefix.include)) return args |