akantu: new package at v3.0.0 (#14685)
This commit is contained in:
		
							
								
								
									
										92
									
								
								var/spack/repos/builtin/packages/akantu/package.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								var/spack/repos/builtin/packages/akantu/package.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | ||||
| # Copyright 2013-2020 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 Akantu(CMakePackage): | ||||
|     """ | ||||
|     Akantu means a little element in Kinyarwanda, a Bantu language. From now | ||||
|     on it is also an opensource object-oriented Finite Element library which | ||||
|     has the ambition to be generic and efficient. | ||||
| 
 | ||||
|     """ | ||||
|     homepage = "https://akantu.ch" | ||||
|     url      = "https://gitlab.com/akantu/akantu/-/archive/v3.0.0/akantu-v3.0.0.tar.gz" | ||||
|     git      = "https://gitlab.com/akantu/akantu.git" | ||||
| 
 | ||||
|     maintainers = ['nrichart'] | ||||
| 
 | ||||
|     version('master', branch='master') | ||||
|     version('3.0.0', sha256='7e8f64e25956eba44def1b2d891f6db8ba824e4a82ff0d51d6b585b60ab465db') | ||||
| 
 | ||||
|     variant('external_solvers', values=any_combination_of('mumps', 'petsc'), | ||||
|             description="Activates the implicit solver") | ||||
|     variant('mpi', default=True, | ||||
|             description="Activates parallel capabilities") | ||||
|     variant('python', default=False, | ||||
|             description="Activates python bindings") | ||||
| 
 | ||||
|     depends_on('boost@:1.66', when='@:3.0.99') | ||||
|     depends_on('boost') | ||||
|     depends_on('lapack') | ||||
|     depends_on('cmake@3.5.1:', type='build') | ||||
|     depends_on('python', when='+python', type=('build', 'run')) | ||||
|     depends_on('py-numpy', when='+python', type=('build', 'run')) | ||||
|     depends_on('py-scipy', when='+python', type=('build', 'run')) | ||||
|     depends_on('py-pybind11', when='@3.1:+python', type=('build', 'run')) | ||||
| 
 | ||||
|     depends_on('mumps', when='~mpi external_solvers=mumps') | ||||
|     depends_on('mumps+mpi', when='+mpi external_solvers=mumps') | ||||
|     depends_on('netlib-scalapack', when='+mpi external_solvers=mumps') | ||||
|     depends_on('petsc+double', when='~mpi external_solvers=petsc') | ||||
|     depends_on('petsc+double+mpi', when='+mpi external_solvers=petsc') | ||||
| 
 | ||||
|     depends_on('mpi', when='+mpi') | ||||
|     depends_on('scotch', when='+mpi') | ||||
| 
 | ||||
|     extends('python', when='+python') | ||||
| 
 | ||||
|     conflicts('gcc@:5.3.99') | ||||
|     conflicts('@:3.0.99 external_solvers=petsc') | ||||
|     conflicts('@:3.0.99 +python') | ||||
| 
 | ||||
|     def cmake_args(self): | ||||
|         spec = self.spec | ||||
| 
 | ||||
|         args = [ | ||||
|             '-DAKANTU_COHESIVE_ELEMENT:BOOL=ON', | ||||
|             '-DAKANTU_DAMAGE_NON_LOCAL:BOOL=ON', | ||||
|             '-DAKANTU_HEAT_TRANSFER:BOOL=ON', | ||||
|             '-DAKANTU_SOLID_MECHANICS:BOOL=ON', | ||||
|             '-DAKANTU_STRUCTURAL_MECHANICS:BOOL=OFF', | ||||
|             '-DAKANTU_PARALLEL:BOOL={0}'.format( | ||||
|                 'ON' if spec.satisfies('+mpi') else 'OFF'), | ||||
|             '-DAKANTU_PYTHON_INTERFACE:BOOL={0}'.format( | ||||
|                 'ON' if spec.satisfies('+python') else 'OFF'), | ||||
|         ] | ||||
| 
 | ||||
|         if spec.satisfies('@:3.0.99'): | ||||
|             args.extend(['-DCMAKE_CXX_FLAGS=-Wno-class-memaccess', | ||||
|                          '-DAKANTU_TRACTION_AT_SPLIT_NODE_CONTACT:BOOL=OFF']) | ||||
|         else: | ||||
|             args.append('-DAKANTU_TRACTION_AT_SPLIT_NODE_CONTACT:BOOL=ON') | ||||
| 
 | ||||
|         solvers = [] | ||||
|         if spec.satisfies('external_solvers=mumps'): | ||||
|             solvers.append('Mumps') | ||||
|             args.append('-DMUMPS_DIR:PATH=${0}'.format(spec['mumps'].prefix)) | ||||
|         if spec.satisfies('external_solvers=petsc'): | ||||
|             solvers.append('PETSc') | ||||
| 
 | ||||
|         if len(solvers) > 0: | ||||
|             args.extend([ | ||||
|                 '-DAKANTU_IMPLICIT_SOLVER:STRING={0}'.format( | ||||
|                     '+'.join(solvers)), | ||||
|                 '-DAKANTU_IMPLICIT:BOOL=ON']) | ||||
|         else: | ||||
|             args.append('-DAKANTU_IMPLICIT:BOOL=OFF') | ||||
| 
 | ||||
|         return args | ||||
		Reference in New Issue
	
	Block a user
	 Nicolas Richart
					Nicolas Richart