101 lines
4.1 KiB
Python
101 lines
4.1 KiB
Python
# 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 Samrai(AutotoolsPackage):
|
|
"""SAMRAI (Structured Adaptive Mesh Refinement Application Infrastructure)
|
|
is an object-oriented C++ software library enables exploration of
|
|
numerical, algorithmic, parallel computing, and software issues
|
|
associated with applying structured adaptive mesh refinement
|
|
(SAMR) technology in large-scale parallel application development.
|
|
|
|
"""
|
|
homepage = "https://computation.llnl.gov/projects/samrai"
|
|
url = "https://computation.llnl.gov/projects/samrai/download/SAMRAI-v3.11.2.tar.gz"
|
|
list_url = homepage
|
|
|
|
version('3.12.0', '07364f6e209284e45ac0e9caf1d610f6')
|
|
version('3.11.5', '4359a03145c03501b230777f92b62104')
|
|
version('3.11.4', '473d6796772f5926b1c0d1cf8f3f8c99')
|
|
# Version 3.11.3 permissions don't allow downloading
|
|
version('3.11.2', 'd5f59f8efd755b23b797e46349428206')
|
|
version('3.11.1', '19a2398a7448ec0f0f0c5e8fc6f80478')
|
|
version('3.10.0', 'ff5f5b8b4a35b52a1b7e37a74166c65a')
|
|
version('3.9.1', '232d04d0c995f5abf20d94350befd0b2')
|
|
version('3.8.0', 'c18fcffa706346bfa5828b36787ce5fe')
|
|
version('3.7.3', '12d574eacadf8c9a70f1bb4cd1a69df6')
|
|
version('3.7.2', 'f6a716f171c9fdbf3cb12f71fa6e2737')
|
|
version('3.6.3-beta', 'ef0510bf2893042daedaca434e5ec6ce')
|
|
version('3.5.2-beta', 'd072d9d681eeb9ada15ce91bea784274')
|
|
version('3.5.0-beta', '1ad18a319fc573e12e2b1fbb6f6b0a19')
|
|
version('3.4.1-beta', '00814cbee2cb76bf8302aff56bbb385b')
|
|
version('3.3.3-beta', '1db3241d3e1cab913dc310d736c34388')
|
|
version('3.3.2-beta', 'e598a085dab979498fcb6c110c4dd26c')
|
|
version('2.4.4', '04fb048ed0efe7c531ac10c81cc5f6ac')
|
|
|
|
# Debug mode reduces optimization, includes assertions, debug symbols
|
|
# and more print statements
|
|
variant('debug', default=False,
|
|
description='Compile with reduced optimization and debugging on')
|
|
variant('silo', default=False,
|
|
description='Compile with support for silo')
|
|
|
|
depends_on('mpi')
|
|
depends_on('zlib')
|
|
depends_on('hdf5+mpi')
|
|
depends_on('m4', type='build')
|
|
depends_on('boost@:1.64.0', when='@3.0.0:3.11.99', type='build')
|
|
depends_on('silo+mpi', when='+silo')
|
|
|
|
# don't build SAMRAI 3+ with tools with gcc
|
|
patch('no-tool-build.patch', when='@3.0.0:%gcc')
|
|
|
|
# 2.4.4 needs a lot of patches to fix ADL and performance problems
|
|
patch('https://github.com/IBAMR/IBAMR/releases/download/v0.3.0/ibamr-samrai-fixes.patch',
|
|
sha256='1d088b6cca41377747fa0ae8970440c20cb68988bbc34f9032d5a4e6aceede47',
|
|
when='@2.4.4')
|
|
|
|
def configure_args(self):
|
|
options = []
|
|
|
|
options.extend([
|
|
'--with-CXX=%s' % self.spec['mpi'].mpicxx,
|
|
'--with-CC=%s' % self.spec['mpi'].mpicc,
|
|
'--with-F77=%s' % self.spec['mpi'].mpifc,
|
|
'--with-M4=%s' % self.spec['m4'].prefix,
|
|
'--with-hdf5=%s' % self.spec['hdf5'].prefix,
|
|
'--with-zlib=%s' % self.spec['zlib'].prefix,
|
|
'--without-blas',
|
|
'--without-lapack',
|
|
'--with-hypre=no',
|
|
'--with-petsc=no'])
|
|
|
|
# SAMRAI 2 used templates; enable implicit instantiation
|
|
if self.spec.satisfies('@:3'):
|
|
options.append('--enable-implicit-template-instantiation')
|
|
|
|
if '+debug' in self.spec:
|
|
options.extend([
|
|
'--disable-opt',
|
|
'--enable-debug'])
|
|
else:
|
|
options.extend([
|
|
'--enable-opt',
|
|
'--disable-debug'])
|
|
|
|
if '+silo' in self.spec:
|
|
options.append('--with-silo=%s' % self.spec['silo'].prefix)
|
|
|
|
if self.spec.satisfies('@3.0:3.11.99'):
|
|
options.append('--with-boost=%s' % self.spec['boost'].prefix)
|
|
|
|
return options
|
|
|
|
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
|
|
if self.spec.satisfies('@3.12:'):
|
|
spack_env.append_flags('CXXFLAGS', self.compiler.cxx11_flag)
|