From a018f48df9eac99561bf95f6febedd6e3edb1be0 Mon Sep 17 00:00:00 2001 From: psakievich Date: Mon, 30 Aug 2021 09:22:55 -0600 Subject: Updates to Exawind packages (#25568) --- .../repos/builtin/packages/amr-wind/package.py | 18 ++++------ .../repos/builtin/packages/exawind/package.py | 40 ++++++++++++++++++++++ var/spack/repos/builtin/packages/masa/package.py | 7 ++++ .../repos/builtin/packages/nalu-wind/package.py | 25 +++++++------- var/spack/repos/builtin/packages/nccmp/package.py | 20 +++-------- .../repos/builtin/packages/openfast/package.py | 8 +++++ 6 files changed, 79 insertions(+), 39 deletions(-) create mode 100644 var/spack/repos/builtin/packages/exawind/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/amr-wind/package.py b/var/spack/repos/builtin/packages/amr-wind/package.py index b173957499..aeef130570 100644 --- a/var/spack/repos/builtin/packages/amr-wind/package.py +++ b/var/spack/repos/builtin/packages/amr-wind/package.py @@ -26,9 +26,9 @@ class AmrWind(CMakePackage, CudaPackage): incompressible flow sover for wind turbine and wind farm simulations. """ homepage = "https://github.com/Exawind/amr-wind" - git = "https://github.com/exawind/amr-wind.git" + git = "https://github.com/Exawind/amr-wind.git" - maintainers = ['sayerhs', 'jrood-nrel', 'michaeljbrazell'] + maintainers = ['jrood-nrel', 'michaeljbrazell'] tags = ['ecp', 'ecp-apps'] @@ -54,8 +54,6 @@ class AmrWind(CMakePackage, CudaPackage): description='Enable OpenFAST integration') variant('internal-amrex', default=True, description='Use AMRex submodule to build') - variant('fortran', default=False, - description='Build fortran interfaces') conflicts('+openmp', when='+cuda') @@ -63,16 +61,14 @@ class AmrWind(CMakePackage, CudaPackage): for opt in process_amrex_constraints(): dopt = '+particles' + opt - if '+hypre' in dopt: - dopt = "+fortran" + dopt depends_on('amrex@develop' + dopt, when='~internal-amrex' + opt) - depends_on('hypre+mpi+int64~cuda@2.20.0:', when='+mpi~cuda+hypre') - depends_on('hypre~mpi+int64~cuda@2.20.0:', when='~mpi~cuda+hypre') + depends_on('hypre+shared+mpi~int64~cuda@2.20.0:', when='+mpi~cuda+hypre') + depends_on('hypre+shared~mpi~int64~cuda@2.20.0:', when='~mpi~cuda+hypre') for arch in CudaPackage.cuda_arch_values: - depends_on('hypre+mpi~int64+cuda cuda_arch=%s @2.20.0:' % arch, + depends_on('hypre+shared+mpi~int64+cuda cuda_arch=%s @2.20.0:' % arch, when='+mpi+cuda+hypre cuda_arch=%s' % arch) - depends_on('hypre~mpi~int64+cuda cuda_arch=%s @2.20.0:' % arch, + depends_on('hypre+shared~mpi~int64+cuda cuda_arch=%s @2.20.0:' % arch, when='~mpi+cuda+hypre cuda_arch=%s' % arch) depends_on('netcdf-c', when='+netcdf') depends_on('masa', when='+masa') @@ -82,7 +78,7 @@ class AmrWind(CMakePackage, CudaPackage): define = CMakePackage.define vs = ["mpi", "cuda", "openmp", "netcdf", "hypre", "masa", - "openfast", "tests", "fortran"] + "openfast", "tests"] args = [ self.define_from_variant("AMR_WIND_ENABLE_%s" % v.upper(), v) for v in vs diff --git a/var/spack/repos/builtin/packages/exawind/package.py b/var/spack/repos/builtin/packages/exawind/package.py new file mode 100644 index 0000000000..c61876f568 --- /dev/null +++ b/var/spack/repos/builtin/packages/exawind/package.py @@ -0,0 +1,40 @@ +# 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) + +from spack import * + + +class Exawind(CMakePackage): + """Multi-application driver for Exawind project.""" + + homepage = "https://github.com/Exawind/exawind-driver" + git = "https://github.com/Exawind/exawind-driver.git" + + maintainers = ['jrood-nrel'] + + tags = ['ecp', 'ecp-apps'] + + version('master', branch='main') + + depends_on('trilinos+stk') + depends_on('tioga+shared~nodegid') + depends_on('nalu-wind+hypre+openfast+tioga+wind-utils') + depends_on('amr-wind+hypre+mpi+netcdf+openfast') + depends_on('openfast+cxx+shared@2.6.0') + depends_on('yaml-cpp@0.6:') + + def cmake_args(self): + spec = self.spec + + args = [ + self.define('Trilinos_DIR', spec['trilinos'].prefix), + self.define('TIOGA_DIR', spec['tioga'].prefix), + self.define('Nalu-Wind_DIR', spec['nalu-wind'].prefix), + self.define('AMR-Wind_DIR', spec['amr-wind'].prefix), + self.define('OpenFAST_DIR', spec['openfast'].prefix), + self.define('YAML-CPP_DIR', spec['yaml-cpp'].prefix) + ] + + return args diff --git a/var/spack/repos/builtin/packages/masa/package.py b/var/spack/repos/builtin/packages/masa/package.py index dee05e96ef..ec72851f1a 100644 --- a/var/spack/repos/builtin/packages/masa/package.py +++ b/var/spack/repos/builtin/packages/masa/package.py @@ -44,3 +44,10 @@ class Masa(AutotoolsPackage): options.extend(['--enable-python-interfaces']) return options + + def setup_build_environment(self, env): + # Unfortunately can't use this because MASA overwrites it + # env.set('CXXFLAGS', self.compiler.cxx11_flag) + env.set('CXX', "{0} {1}".format(self.compiler.cxx, self.compiler.cxx11_flag)) + if self.spec.satisfies('%apple-clang'): + env.set('CFLAGS', '-Wno-implicit-function-declaration') diff --git a/var/spack/repos/builtin/packages/nalu-wind/package.py b/var/spack/repos/builtin/packages/nalu-wind/package.py index ab1a0c3c26..70e77ac765 100644 --- a/var/spack/repos/builtin/packages/nalu-wind/package.py +++ b/var/spack/repos/builtin/packages/nalu-wind/package.py @@ -52,24 +52,25 @@ class NaluWind(CMakePackage, CudaPackage): depends_on('mpi') depends_on('yaml-cpp@0.5.3:') - depends_on('openfast@master,develop +cxx', when='+openfast') - depends_on('tioga@master,develop', when='+tioga') - depends_on('hypre@develop,2.18.2: +int64+mpi~superlu-dist', when='+hypre') - depends_on('kokkos-nvcc-wrapper', type='build', when='+cuda') - depends_on('trilinos@master +exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+zlib+shards~hypre cxxstd=14') + depends_on('trilinos@master,develop ~cuda~wrapper+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+zlib+shards~hypre cxxstd=14', when='~cuda') # Cannot build Trilinos as a shared library with STK on Darwin # https://github.com/trilinos/Trilinos/issues/2994 - depends_on('trilinos~shared', when=(sys.platform == 'darwin')) - # Propagate cuda options to trilinos and hypre - depends_on('trilinos~cuda~wrapper', when='~cuda') - depends_on('trilinos+cuda+wrapper+cuda_rdc', when='+cuda') - depends_on('hypre@develop +cuda', when='+cuda') + depends_on('trilinos@master,develop ~cuda~wrapper+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+zlib+shards~hypre~shared cxxstd=14', when=(sys.platform == 'darwin')) + depends_on('openfast@2.6.0 +cxx', when='+openfast') + depends_on('tioga@master,develop', when='+tioga') + depends_on('hypre@develop,2.18.2: ~int64+mpi~superlu-dist', when='+hypre') + depends_on('kokkos-nvcc-wrapper', type='build', when='+cuda') for _arch in CudaPackage.cuda_arch_values: - depends_on('trilinos cuda_arch=' + _arch, when='+cuda cuda_arch=' + _arch) - depends_on('hypre cuda_arch=' + _arch, when='+hypre+cuda cuda_arch=' + _arch) + depends_on('trilinos@master,develop ~shared+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+zlib+shards~hypre+cuda+cuda_rdc+wrapper cxxstd=14 cuda_arch={0}'.format(_arch), + when='+cuda cuda_arch={0}'.format(_arch)) + depends_on('hypre@develop +mpi+cuda~int64~superlu-dist cuda_arch={0}'.format(_arch), + when='+hypre+cuda cuda_arch={0}'.format(_arch)) depends_on('trilinos-catalyst-ioss-adapter', when='+catalyst') depends_on('fftw+mpi', when='+fftw') depends_on('boost cxxstd=14', when='+boost') + depends_on('nccmp') + # indirect dependency needed to make original concretizer work + depends_on('netcdf-c+parallel-netcdf') def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/nccmp/package.py b/var/spack/repos/builtin/packages/nccmp/package.py index 6751a95b18..5e36ebfa00 100644 --- a/var/spack/repos/builtin/packages/nccmp/package.py +++ b/var/spack/repos/builtin/packages/nccmp/package.py @@ -2,28 +2,16 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack import * -class Nccmp(Package, SourceforgePackage): +class Nccmp(CMakePackage): """Compare NetCDF Files""" homepage = "http://nccmp.sourceforge.net/" - sourceforge_mirror_path = "nccmp/nccmp-1.8.2.0.tar.gz" + url = "https://gitlab.com/remikz/nccmp/-/archive/1.9.0.1/nccmp-1.9.0.1.tar.gz" + version('1.9.0.1', sha256='81e9753cf451afe8248d44c841e102349e07cde942b11d1f91b5f85feb622b99') + version('1.8.9.0', sha256='da5d2b4dcd52aec96e7d96ba4d0e97efebbd40fe9e640535e5ee3d5cd082ae50') version('1.8.2.0', sha256='7f5dad4e8670568a71f79d2bcebb08d95b875506d3d5faefafe1a8b3afa14f18') depends_on('netcdf-c') - - def install(self, spec, prefix): - # Configure says: F90 and F90FLAGS are replaced by FC and - # FCFLAGS respectively in this configure, please unset - # F90/F90FLAGS and set FC/FCFLAGS instead and rerun configure - # again. - env.pop('F90', None) - env.pop('F90FLAGS', None) - - configure('--prefix=%s' % prefix) - make() - make("check") - make("install") diff --git a/var/spack/repos/builtin/packages/openfast/package.py b/var/spack/repos/builtin/packages/openfast/package.py index b368168aa2..1393dd4b1a 100644 --- a/var/spack/repos/builtin/packages/openfast/package.py +++ b/var/spack/repos/builtin/packages/openfast/package.py @@ -16,6 +16,14 @@ class Openfast(CMakePackage): version('develop', branch='dev') version('master', branch='main') + version('2.6.0', tag='v2.6.0') + version('2.5.0', tag='v2.5.0') + version('2.4.0', tag='v2.4.0') + version('2.3.0', tag='v2.3.0') + version('2.2.0', tag='v2.2.0') + version('2.1.0', tag='v2.1.0') + version('2.0.0', tag='v2.0.0') + version('1.0.0', tag='v1.0.0') variant('shared', default=True, description="Build shared libraries") -- cgit v1.2.3-70-g09d2