fujitsu frontistr: New package (#28514)
* fujitsu-frontistr: new package. * Add frontistr@5.3 Add fujitsu-frontistr static variant style fix. * update copyrigght year.
This commit is contained in:
parent
e97bffc3e8
commit
c1b51d6e99
2 changed files with 73 additions and 12 deletions
|
@ -7,18 +7,9 @@
|
||||||
from spack import *
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
class Frontistr(CMakePackage):
|
class FrontistrBase(CMakePackage):
|
||||||
"""Open-Source Large-Scale Parallel FEM Program for
|
"""Base class for building Frontistr, shared with the Fujitsu optimized version
|
||||||
Nonlinear Structural Analysis"""
|
of the package in the 'fujitsu-frontistr' package."""
|
||||||
|
|
||||||
homepage = "https://www.frontistr.com/"
|
|
||||||
git = "https://gitlab.com/FrontISTR-Commons/FrontISTR.git"
|
|
||||||
maintainers = ['hiroshi.okuda', 'kgoto', 'morita', 'inagaki', 'michioga']
|
|
||||||
|
|
||||||
version('5.1.1', tag='v5.1.1')
|
|
||||||
version('5.1', tag='v5.1')
|
|
||||||
version('5.0', tag='v5.0')
|
|
||||||
version('master', tag='master')
|
|
||||||
|
|
||||||
variant('build_type', default='RELEASE',
|
variant('build_type', default='RELEASE',
|
||||||
description='CMake build type',
|
description='CMake build type',
|
||||||
|
@ -38,5 +29,26 @@ def cmake_args(self):
|
||||||
define = CMakePackage.define
|
define = CMakePackage.define
|
||||||
cmake_args = [
|
cmake_args = [
|
||||||
define('WITH_ML', True),
|
define('WITH_ML', True),
|
||||||
|
define('REFINER_INCLUDE_PATH',
|
||||||
|
self.spec['revocap-refiner'].prefix.include),
|
||||||
|
define('REFINER_LIBRARIES',
|
||||||
|
join_path(self.spec['revocap-refiner'].prefix.lib,
|
||||||
|
'libRcapRefiner.a'))
|
||||||
]
|
]
|
||||||
return cmake_args
|
return cmake_args
|
||||||
|
|
||||||
|
|
||||||
|
class Frontistr(FrontistrBase):
|
||||||
|
"""Open-Source Large-Scale Parallel FEM Program for
|
||||||
|
Nonlinear Structural Analysis"""
|
||||||
|
|
||||||
|
homepage = "https://www.frontistr.com/"
|
||||||
|
git = "https://gitlab.com/FrontISTR-Commons/FrontISTR.git"
|
||||||
|
maintainers = ['hiroshi.okuda', 'kgoto', 'morita', 'inagaki', 'michioga']
|
||||||
|
|
||||||
|
version('5.3', tag='v5.3')
|
||||||
|
version('5.2', tag='v5.2')
|
||||||
|
version('5.1.1', tag='v5.1.1')
|
||||||
|
version('5.1', tag='v5.1')
|
||||||
|
version('5.0', tag='v5.0')
|
||||||
|
version('master', tag='master')
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
# Copyright 2013-2022 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 *
|
||||||
|
from spack.pkg.builtin.frontistr import FrontistrBase
|
||||||
|
|
||||||
|
|
||||||
|
class FujitsuFrontistr(FrontistrBase):
|
||||||
|
"""This is a fork repository of the FrontISTR tuned for A64FX."""
|
||||||
|
|
||||||
|
_name = 'fujitsu-frontistr'
|
||||||
|
homepage = "https://www.frontistr.com/"
|
||||||
|
url = "https://github.com/fujitsu/FrontISTR/archive/refs/tags/v5.2_tuned.tar.gz"
|
||||||
|
git = "https://github.com/fujitsu/FrontISTR"
|
||||||
|
maintainers = ['kinagaki-fj', 'kinagaki', 'm-shunji']
|
||||||
|
|
||||||
|
version('master', branch='fj-master')
|
||||||
|
version('5.2', sha256='ebf73a96c33ae7c9e616c99f9ce07ec90d802764dbf6abf627b0083c3bbd2b2e')
|
||||||
|
version('5.0', sha256='7a3a2dd0f834048fb71cc254c9da6c2637fb23110e79b5efaf208d6f69a5b30a')
|
||||||
|
|
||||||
|
variant('static', default=True, description='Build with static linkage')
|
||||||
|
depends_on('metis ~shared', when='+static')
|
||||||
|
depends_on('mumps ~shared', when='+static')
|
||||||
|
depends_on('trilinos ~shared', when='+static')
|
||||||
|
|
||||||
|
def url_for_version(self, version):
|
||||||
|
url = "https://github.com/fujitsu/FrontISTR/archive/refs/tags/v{0}_tuned.tar.gz"
|
||||||
|
return url.format(version)
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
define = CMakePackage.define
|
||||||
|
args = super(FujitsuFrontistr, self).cmake_args()
|
||||||
|
if self.spec.satisfies('%fj'):
|
||||||
|
args.extend([
|
||||||
|
define('CMAKE_C_FLAGS',
|
||||||
|
'-Kcmodel=large -Nlst=t -Kocl -Kfast -Kzfill -Koptmsg=2'),
|
||||||
|
define('CMAKE_CXX_FLAGS',
|
||||||
|
'-Kcmodel=large -Nlst=t -Kocl -Kfast -Kzfill -Koptmsg=2'),
|
||||||
|
define('CMAKE_Fortran_FLAGS',
|
||||||
|
'-Kcmodel=large -Nlst=t -Kocl -Kfast -Kzfill -Koptmsg=2'),
|
||||||
|
define('CMAKE_Fortran_MODDIR_FLAG', 'M'),
|
||||||
|
define('OpenMP_C_FLAGS', '-Kopenmp'),
|
||||||
|
define('OpenMP_CXX_FLAGS', '-Kopenmp'),
|
||||||
|
define('OpenMP_Fortran_FLAGS', '-Kopenmp')
|
||||||
|
])
|
||||||
|
return args
|
Loading…
Reference in a new issue