MeshToolKit package (#12870)
* Adding flecsph package * Correcting header * Boost version update * Correcting Flake8 errors * Correcting headers * Develop preferred in FleCSI * Removing FleCSPH branch of FleCSI * MeshToolKit package * formatting * Formatting * Correcting MSTK package * Format * Update var/spack/repos/builtin/packages/mstk/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/mstk/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/mstk/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/mstk/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/mstk/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/mstk/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/mstk/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/mstk/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/mstk/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/mstk/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update package.py * Format * Format * Correcting package behavior * Correcting format * Corrections * Update var/spack/repos/builtin/packages/mstk/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Multiline
This commit is contained in:
parent
3d60c3ec10
commit
738f2e14ce
93
var/spack/repos/builtin/packages/mstk/package.py
Normal file
93
var/spack/repos/builtin/packages/mstk/package.py
Normal file
@ -0,0 +1,93 @@
|
||||
# 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 Mstk(CMakePackage):
|
||||
"""MSTK is a mesh framework that allows users to represent,
|
||||
manipulate and query unstructured 3D arbitrary topology meshes
|
||||
in a general manner without the need to code their own data
|
||||
structures. MSTK is a flexible framework in that it allows a
|
||||
variety of underlying representations for the mesh while
|
||||
maintaining a common interface. It allows users to choose from
|
||||
different mesh representations either at initialization (implemented)
|
||||
or during the program execution (not yet implemented) so that the
|
||||
optimal data structures are used for the particular algorithm.
|
||||
The interaction of users and applications with MSTK is through a
|
||||
functional interface that acts as though the mesh always contains
|
||||
vertices, edges, faces and regions and maintains connectivity between
|
||||
all these entities."""
|
||||
|
||||
homepage = "https://github.com/MeshToolkit/MSTK"
|
||||
git = "https://github.com/MeshToolkit/MSTK"
|
||||
|
||||
maintainers = ['julienloiseau']
|
||||
|
||||
version('master', branch='master')
|
||||
|
||||
variant('parallel', default='none', description='Enable Parallel Support',
|
||||
values=('none', 'metis', 'zoltan', 'parmetis'), multi=True)
|
||||
variant('exodusii', default=False, description='Enable ExodusII')
|
||||
variant('use_markers', default=True, description="Enable MSTK to use markers")
|
||||
|
||||
depends_on("cmake@3.8:", type='build')
|
||||
|
||||
# Parallel variant
|
||||
depends_on("mpi", when='parallel=metis')
|
||||
depends_on("mpi", when='parallel=zoltan')
|
||||
depends_on("mpi", when='parallel=parmetis')
|
||||
depends_on("zoltan -fortran", when='parallel=zoltan')
|
||||
depends_on("zoltan -fortran +parmetis", when='parallel=parmetis')
|
||||
depends_on("zoltan -fortran +parmetis", when="parallel=zoltan +exodusii")
|
||||
depends_on("metis", when="parallel=zoltan +exodusii")
|
||||
|
||||
depends_on("metis", when='parallel=metis')
|
||||
depends_on("metis", when='parallel=parmetis')
|
||||
|
||||
# Exodusii variant
|
||||
# The default exodusii build with mpi support
|
||||
# It includes netcdf which includes hdf5
|
||||
depends_on("exodusii", when='+exodusii')
|
||||
|
||||
def cmake_args(self):
|
||||
options = []
|
||||
if '+use_markers' in self.spec:
|
||||
options.append('-DMSTK_USE_MARKERS=ON')
|
||||
else:
|
||||
options.append('-DMSTK_USE_MARKERS=OFF')
|
||||
|
||||
# Parallel variant
|
||||
if not self.spec.satisfies('parallel=none'):
|
||||
# Use mpi for compilation
|
||||
options.append('-DCMAKE_CXX_COMPILER=' + self.spec['mpi'].mpicxx)
|
||||
options.append('-DCMAKE_C_COMPILER=' + self.spec['mpi'].mpicc)
|
||||
options.append('-DENABLE_PARALLEL=ON')
|
||||
else:
|
||||
options.append('-DENABLE_PARALLEL=OFF')
|
||||
|
||||
if ("parmetis" in self.spec or "zoltan" in self.spec and
|
||||
"+exodusii" in self.spec):
|
||||
options.append("-DENABLE_METIS=ON")
|
||||
options.append("-DENABLE_ZOLTAN=ON")
|
||||
options.append('-DZOLTAN_NEEDS_ParMETIS=ON')
|
||||
else:
|
||||
if "zoltan" in self.spec:
|
||||
options.append("-DENABLE_ZOLTAN=ON")
|
||||
else:
|
||||
options.append("-DENABLE_ZOLTAN=OFF")
|
||||
if "metis" in self.spec:
|
||||
options.append("-DENABLE_METIS=ON")
|
||||
else:
|
||||
options.append("-DENABLE_METIS=OFF")
|
||||
options.append('-DZOLTAN_NEEDS_ParMETIS=OFF')
|
||||
|
||||
# ExodusII variant
|
||||
if '+exodusii' in self.spec:
|
||||
options.append('-DENABLE_ExodusII=ON')
|
||||
else:
|
||||
options.append('-DENABLE_ExodusII=OFF')
|
||||
|
||||
return options
|
Loading…
Reference in New Issue
Block a user