From 02bb1d5ec6189b41f413335e3ed35e9f97090498 Mon Sep 17 00:00:00 2001 From: Julien Loiseau Date: Tue, 27 Aug 2019 14:50:31 -0600 Subject: Adding FleCSPH package. (#12525) * Adding flecsph package * Correcting header * Boost version update * Correcting Flake8 errors * Correcting headers --- var/spack/repos/builtin/packages/flecsi/package.py | 12 ++++++++ .../repos/builtin/packages/flecsph/package.py | 35 ++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 var/spack/repos/builtin/packages/flecsph/package.py diff --git a/var/spack/repos/builtin/packages/flecsi/package.py b/var/spack/repos/builtin/packages/flecsi/package.py index ea7342ae38..f903cf92f0 100644 --- a/var/spack/repos/builtin/packages/flecsi/package.py +++ b/var/spack/repos/builtin/packages/flecsi/package.py @@ -21,6 +21,8 @@ class Flecsi(CMakePackage): git = 'https://github.com/laristra/flecsi.git' version('develop', branch='master', submodules=False) + version('flecsph', branch='feature/flecsph', submodules=False) + variant('backend', default='mpi', values=('serial', 'mpi', 'legion'), description='Backend to use for distributed memory') variant('caliper', default=False, @@ -51,6 +53,16 @@ class Flecsi(CMakePackage): options = ['-DCMAKE_BUILD_TYPE=debug'] options.append('-DCINCH_SOURCE_DIR=' + self.spec['cinch'].prefix) + # FleCSI for FleCSPH flags + if self.spec.satisfies('@flecsph:'): + options.append('-DENABLE_MPI=ON') + options.append('-DENABLE_OPENMP=ON') + options.append('-DCXX_CONFORMANCE_STANDARD=c++17') + options.append('-DFLECSI_RUNTIME_MODEL=mpi') + options.append('-DENABLE_FLECSIT=OFF') + options.append('-DENABLE_FLECSI_TUTORIAL=OFF') + return options + if self.spec.variants['backend'].value == 'legion': options.append('-DFLECSI_RUNTIME_MODEL=legion') elif self.spec.variants['backend'].value == 'mpi': diff --git a/var/spack/repos/builtin/packages/flecsph/package.py b/var/spack/repos/builtin/packages/flecsph/package.py new file mode 100644 index 0000000000..129ea3090f --- /dev/null +++ b/var/spack/repos/builtin/packages/flecsph/package.py @@ -0,0 +1,35 @@ +# Copyright 2013-2019 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 Flecsph(CMakePackage): + """FleCSPH is a multi-physics compact application that exercises FleCSI + parallel data structures for tree-based particle methods. In particular, + FleCSPH implements a smoothed-particle hydrodynamics (SPH) solver for + the solution of Lagrangian problems in astrophysics and cosmology. FleCSPH + includes support for gravitational forces using the fast multipole method + (FMM).""" + + homepage = "http://flecsi.lanl.com" + git = "https://github.com/laristra/flecsph.git" + + version('develop', branch='master', submodules=True) + + depends_on('cmake@3.1:', type='build') + depends_on('boost@1.59.0: cxxstd=11 +program_options') + depends_on('mpi') + depends_on('hdf5@1.10.5 +mpi') + depends_on('flecsi@flecsph backend=mpi') + depends_on('gsl') + + def cmake_args(self): + options = ['-DCMAKE_BUILD_TYPE=debug'] + options.append('-DENABLE_MPI=ON') + options.append('-DENABLE_OPENMP=ON') + options.append('-DENABLE_CLOG=ON') + options.append('-DCXX_CONFORMANCE_STANDARD=c++17') + return options -- cgit v1.2.3-60-g2f50