2022-01-13 03:21:41 +08:00
|
|
|
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
|
2018-10-08 04:52:23 +08:00
|
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
2018-06-19 02:50:26 +08:00
|
|
|
#
|
2018-10-08 04:52:23 +08:00
|
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
|
2022-05-29 00:55:44 +08:00
|
|
|
from spack.package import *
|
2018-06-19 02:50:26 +08:00
|
|
|
|
|
|
|
|
|
|
|
class Albany(CMakePackage):
|
|
|
|
"""Albany is an implicit, unstructured grid, finite element code for the
|
|
|
|
solution and analysis of multiphysics problems. The Albany repository
|
|
|
|
on the GitHub site contains hundreds of regression tests and examples
|
|
|
|
that demonstrate the code's capabilities on a wide variety of problems
|
|
|
|
including fluid mechanics, solid mechanics (elasticity and plasticity),
|
|
|
|
ice-sheet flow, quantum device modeling, and many other applications."""
|
|
|
|
|
|
|
|
homepage = "http://gahansen.github.io/Albany"
|
2018-07-23 15:00:15 +08:00
|
|
|
git = "https://github.com/gahansen/Albany.git"
|
2018-06-19 02:50:26 +08:00
|
|
|
|
|
|
|
maintainers = ['gahansen']
|
|
|
|
|
2018-07-23 15:00:15 +08:00
|
|
|
version('develop', branch='master')
|
2018-06-19 02:50:26 +08:00
|
|
|
|
|
|
|
variant('lcm', default=True,
|
|
|
|
description='Enable LCM')
|
|
|
|
variant('aeras', default=False,
|
|
|
|
description='Enable AERAS')
|
|
|
|
variant('qcad', default=False,
|
|
|
|
description='Enable QCAD')
|
|
|
|
variant('hydride', default=False,
|
|
|
|
description='Enable HYDRIDE')
|
|
|
|
variant('lcm_spec', default=False,
|
|
|
|
description='Enable LCM_SPECULATIVE')
|
|
|
|
variant('lame', default=False,
|
|
|
|
description='Enable LAME')
|
|
|
|
variant('debug', default=False,
|
|
|
|
description='Enable DEBUGGING')
|
|
|
|
variant('fpe', default=False,
|
|
|
|
description='Enable CHECK_FPE')
|
|
|
|
variant('scorec', default=False,
|
|
|
|
description='Enable SCOREC')
|
|
|
|
variant('felix', default=False,
|
|
|
|
description='Enable FELIX')
|
|
|
|
variant('mor', default=False,
|
|
|
|
description='Enable MOR')
|
|
|
|
variant('confgui', default=False,
|
|
|
|
description='Enable Albany configuration (CI) GUI')
|
|
|
|
variant('ascr', default=False,
|
|
|
|
description='Enable ALBANY_ASCR')
|
|
|
|
variant('perf', default=False,
|
|
|
|
description='Enable PERFORMANCE_TESTS')
|
|
|
|
variant('64bit', default=True,
|
|
|
|
description='Enable 64BIT')
|
|
|
|
|
|
|
|
# Add dependencies
|
|
|
|
depends_on('mpi')
|
2022-07-24 08:54:51 +08:00
|
|
|
depends_on(
|
|
|
|
'trilinos'
|
|
|
|
'~superlu-dist+isorropia+tempus+rythmos+teko+intrepid+intrepid2'
|
|
|
|
'+minitensor+phalanx+nox+piro+rol+shards+stk+superlu'
|
|
|
|
'@master'
|
|
|
|
)
|
2018-06-19 02:50:26 +08:00
|
|
|
|
|
|
|
def cmake_args(self):
|
|
|
|
spec = self.spec
|
|
|
|
trilinos_dir = spec['trilinos'].prefix
|
|
|
|
options = []
|
|
|
|
|
|
|
|
options.extend([
|
|
|
|
'-DALBANY_TRILINOS_DIR:FILEPATH={0}'.format(trilinos_dir),
|
|
|
|
'-DINSTALL_ALBANY:BOOL=ON'
|
|
|
|
])
|
|
|
|
|
|
|
|
options.extend([
|
2021-05-19 18:59:06 +08:00
|
|
|
self.define_from_variant('ENABLE_LCM', 'lcm'),
|
|
|
|
self.define_from_variant('ENABLE_AERAS', 'aeras'),
|
|
|
|
self.define_from_variant('ENABLE_QCAD', 'qcad'),
|
|
|
|
self.define_from_variant('ENABLE_HYDRIDE', 'hydride'),
|
|
|
|
self.define_from_variant('ENABLE_LCM_SPECULATIVE', 'lcm_spec'),
|
|
|
|
self.define_from_variant('ENABLE_LAME', 'lame'),
|
|
|
|
self.define_from_variant('ENABLE_DEBUGGING', 'debug'),
|
|
|
|
self.define_from_variant('ENABLE_CHECK_FPE', 'fpe'),
|
|
|
|
self.define_from_variant('ENABLE_SCOREC', 'scorec'),
|
|
|
|
self.define_from_variant('ENABLE_FELIX', 'felix'),
|
|
|
|
self.define_from_variant('ENABLE_MOR', 'mor'),
|
|
|
|
self.define_from_variant('ENABLE_ALBANY_CI', 'ci'),
|
|
|
|
self.define_from_variant('ENABLE_ASCR', 'ascr'),
|
|
|
|
self.define_from_variant('ENABLE_PERFORMANCE_TESTS', 'perf'),
|
|
|
|
self.define_from_variant('ENABLE_64BIT_INT', '64bit')
|
2018-06-19 02:50:26 +08:00
|
|
|
])
|
|
|
|
|
|
|
|
return options
|