# IT4Innovations
# LK 2024

name = 'PETSc'
version = '3.21.2'

homepage = 'https://www.mcs.anl.gov/petsc'
description = """PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the
 scalable (parallel) solution of scientific applications modeled by partial differential equations."""

toolchain = {'name': 'foss', 'version': '2022b'}
toolchainopts = {'openmp': True, 'usempi': True, 'pic': True}

source_urls = ['https://gitlab.com/petsc/petsc/-/archive/v%(version)s/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['11c69217df68a8b8a666b684560354449fa7e0b6ff8926288bd84722bffbe1ce']

builddependencies = [('CMake', '3.24.3')]

dependencies = [
    ('Python', '3.10.8'),
    ('SciPy-bundle', '2023.02'), #Karolina failed
    ('Boost', '1.81.0'),
    ('METIS', '5.1.0'),
    ('SCOTCH', '7.0.3'),
    ('MUMPS', '5.6.1', '-metis'),
    ('SuiteSparse', '5.13.0', '-METIS-5.1.0'),
    ('Hypre', '2.27.0'),
    ('ParMETIS', '4.0.3'),
    ('SuperLU_DIST', '8.1.2'),
    ('mpi4py', '3.1.4'),
]

configopts = '--LIBS="$LIBS -lrt" --with-mpi4py=0 '

shared_libs = 1

# only required when building PETSc in a SLURM job environment
# configopts += '--with-batch=1 --known-mpi-shared-libraries=1 --known-64-bit-blas-indices=0 '
# prebuildopts = "srun ./conftest-arch-linux2-c-opt && ./reconfigure-arch-linux2-c-opt.py && "

moduleclass = 'numlib'
