Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

petsc-gnu-mpich-hpc-devel-3.21.2-1.1 RPM for aarch64

From OpenSuSE Ports Tumbleweed for aarch64

Name: petsc-gnu-mpich-hpc-devel Distribution: openSUSE Tumbleweed
Version: 3.21.2 Vendor: openSUSE
Release: 1.1 Build date: Tue Jun 18 07:25:24 2024
Group: Development/Libraries/Parallel Build host: reproducible
Size: 214 Source RPM: petsc_3_21_2-gnu-mpich-hpc-3.21.2-1.1.src.rpm
Packager: http://bugs.opensuse.org
Url: https://www.mcs.anl.gov/petsc/
Summary: Dependency package for petsc_3_21_2-gnu-mpich-hpc-devel
petsc: Portable Extensible Toolkit for Scientific Computation
The package petsc-gnu-mpich-hpc-devel provides the dependency to get binary package petsc_3_21_2-gnu-mpich-hpc-devel.
When this package gets updated it installs the latest version of petsc_3_21_2-gnu-mpich-hpc.

Provides

Requires

License

BSD-2-Clause

Changelog

* Tue Jun 18 2024 Egbert Eich <eich@suse.com>
  - Update to version 3.21:
    - General:
    * Add single precision support for using HYPRE and MFEM
    * Require Fortran 2003 compiler with `GET_COMMAND_ARGUMENT()` support
      for building PETSc with Fortran bindings
    - Sys:
    * Add `PetscBench` an object class for managing benchmarks in PETSc
    * Deprecate `PetscVoidFunction`, `PetscVoidStarFunction`, and
      `PetscErrorCodeFunction` typedefs in favor of `PetscVoidFn` and
      `PetscErrorCodeFn`.
    * Add `PetscOptionsBoundedReal()` and `PetscOptionsRangeReal()`.
    * Rename Petsc stream types to `PETSC_STREAM_DEFAULT`,
      `PETSC_STREAM_NONBLOCKING`, `PETSC_STREAM_DEFAULT`_WITH_BARRIER` and
      `PETSC_STREAM_NONBLOCKING_WITH_BARRIER`. The root device context uses
      `PETSC_STREAM_DEFAULT` by default.
    - PetscViewer:
    * Change `PetscViewerRestoreSubViewer()` to no longer need a call to
      `PetscViewerFlush()` after it.
    * Introduce `PetscOptionsRestoreViewer()` that must be called after
      `PetscOptionsGetViewer()` and `PetscOptionsGetViewers()` to ensure
      thread safety.
    * Add `PetscViewerASCIIWORLDSetFileUnit()`.
    - VecScatter / PetscSF:
    * Add MPI-4.0 persistent neighborhood collectives support. Use
      `-sf_neighbor_persistent` along with `-sf_type` neighbor to enable it.
    * Add `PetscSFCreateStridedSF()` to communicate strided blocks of data/
    - Vec:
    * Add `VecGhostGetGhostIS()` to get the ghost indices of a ghosted vector.
    * Add `-vec_mdot_use_gemv` to let `VecMDot()`, `VecMTDot()` use BLAS2
      `gemv()` instead of custom unrolled kernel. Default is on.
    * Add `-vec_maxpy_use_gemv` to let `VecMAXPY()` use BLAS2 `gemv()`
      instead of custom unrolled kernel. Default is off.
    * `VecReplaceArray()` on the first Vec obtained from `VecDuplicateVecs()`
      with either of the two above *_use_gemv options won’t work anymore.
      If needed, turn them off or use VecDuplicateVec() instead `VecScale()`
      is now a logically collective operation.
    * Add `VecISShift()` to shift a part of the vector.
    * `VecISSet()` does no longer accept NULL as index set.
    * `VecLoad()` automatically determines whether the file was written
      using 32-bit or 64-bit indices, and files can read with PETSc built
      either way.
    - PetscSection:
    * Add `PetscSectionGetBlockStarts()` and `PetscSectionSetBlockStarts()`.
    * Add argument to `PetscSectionCreateGlobalSection()` that can ignore
      the local section permutation.
    * Add `PetscSectionCreateComponentSubsection()`.
    - PetscPartitioner:
    * Add edge weights to `PetscPartitionerPartition()`
    - Mat:
    * Reset `MATLMVM` history vectors if size is changed.
    * Add specific support for `MatMultHermitianTranspose()` and
      `MatMultHermitianTransposeAdd()` in `MATSHELL`, `MATDENSE`,
      `MATNEST`, and `MATSCALAPACK`
    * Add function `MatProductGetAlgorithm()` `MATTRANSPOSEVIRTUAL`,
      `MATHERMITIANTRANSPOSEVIRTUAL`, `MATNORMAL`, `MATNORMALHERMITIAN`
      and `MATCOMPOSITE` now derive from `MATSHELL`. This implies a new
      behavior for those Mat, as calling `MatAssemblyBegin()`/
      `MatAssemblyEnd()` destroys scalings and shifts for `MATSHELL`, but
      it was not previously the case for other `MatType`.
    * Add function `MatGetRowSumAbs()` to compute vector of L1 norms of
      rows ([`B`]`AIJ` only).
    * Add partial support for `MatBackwardSolve()`/`MatForwardSolve()` with
      `MATSOLVERMKL_PARDISO` and `MATSOLVERMKL_CPARDISO`.
    * Deprecate `MATIS` options `-matis_xxx`. Use `-mat_is_xxx`.
    * Add support for repeated entries in the local part of the local to
      global map for `MATIS` via the routines `MatISSetAllowRepeated()`
      and `MatISGetAllowRepeated()`.
    * Add support to dump and load a matrix of `MATIS` type.
    * Add dense representations of symmetric Broyden matrices
      `MATLMVMDBFGS`, `MATLMVMDDFP`, and `MATLMVMDQN`.
    * Add `MATSELLHIP` and the corresponding HIP kernels for matrix-vector
      multiplication.
    - MatCoarsen:
    * Add `MatCoarsenSetMaximumIterations()` with corresponding option
      `-mat_coarsen_max_it <4>`. The number of iteration of the coarsening
      method. Used for the HEM coarsener.
    * Add `MatCoarsenSetThreshold()` with corresponding option
      `-mat_coarsen_threshold <-1>`. Threshold for filtering graph for HEM.
      Like GAMG < 0 means no filtering.
    * Change API for several PetscCD methods used internally in `PCGAMG` and
      `MatCoarsen` (eg, change `PetscCDSetChuckSize()` to
      `PetscCDSetChunckSize()`), remove Mat argument from
      `PetscCDGetASMBlocks()`.
    - PC:
    * Add `PCGAMGSetLowMemoryFilter()` with corresponding option
      `-pc_gamg_low_memory_threshold_filter`. Use the system `MatFilter`
      graph/matrix filter, without a temporary copy of the graph, otherwise
      use method that can be faster.
    * Add `PCGAMGASMSetHEM()` with corresponding option
      `-pc_gamg_asm_hem_aggs N`. Use ASM smoother constructed from N
      applications of heavy edge matching.
    * `PCMAT` use `MatSolve()` if implemented by the matrix type.
    * Add `PCLMVMSetUpdateVec()` for the automatic update of the LMVM
      preconditioner inside a SNES solve.
    * Add `PCGAMGSetInjectionIndex()` with corresponding option
      `-pc_gamg_injection_index i,j,k...`. Inject provided indices of fine
      grid operator as first coarse grid restriction (sort of p-multigrid
      for C1 elements).
    * Add `PC_JACOBI_ROWL1` to `PCJacobiType` to use (scaled) l1 row norms
      for diagonal approximation with scaling of off-diagonal elements.
    * Add `PCJacobiSetRowl1Scale()` and `-pc_jacobi_rowl1_scale` scale to
      access new scale member of PC_Jacobi class, for new row l1 Jacobi.
    * Add `-mg_fine_...` prefix alias for fine grid options to override
      `-mg_levels_...` options, like `-mg_coarse_...`.
    * The generated sub-matrices in `PCFIELDSPLIT`, `PCASM`, and `PCBJACOBI`
      now retain any null space or near null space attached to them even
      if the non-zero structure of the outer matrix changes.
    * Add support for multiple subdomain per MPI process in `PCBDDC`.
    * Add `PCJacobiGetDiagonal()` to access the Jacobi inverted matrix
      diagonal and its square root variant.
    - SNES:
    * Add support for Quasi-Newton models in `SNESNEWTONTR` via
      `SNESNewtonTRSetQNType`.
    * Add support for trust region norm customization in `SNESNEWTONTR` via
      `SNESNewtonTRSetNormType`.
    * Remove default of `KSPPREONLY` and `PCLU` for `SNESNASM` subdomain
      solves: for `SNESASPIN` use `-npc_sub_ksp_type preonly -npc_sub_pc_type
      lu`.
    * Add function typedefs `SNESInitialGuessFn`, `SNESFunctionFn`,
      `SNESObjectiveFn`, `SNESJacobianFn`, and `SNESNGSFn`.
    * Deprecate `DMDASNESFunction`, `DMDASNESJacobian`, `DMDASNESObjective`,
      `DMDASNESFunctionVec`, `DMDASNESJacobianVec`, and `DMDASNESObjectiveVec`
      in favor of `DMDASNESFunctionFn`, `DMDASNESJacobianFn`,
      `DMDASNESObjectiveFn`, `DMDASNESFunctionVecFn`, `DMDASNESJacobianVecFn`,
      and `DMDASNESObjectiveVecFn`.
    - SNESLineSearch:
    * Deprecate `SNESLineSearchShellSetUserFunc()` and
      `SNESLineSearchShellGetUserFunc()` in favor of
      `SNESLineSearchShellSetApply()` and `SNESLineSearchShellGetApply()`.
    - TS:
    * Add support for custom predictor callbacks in the second-order
      generalized-alpha method using `TSAlpha2SetPredictor()`.
    * Allow adaptivity to change time step size in first step of
      second-order generalized-alpha method.
    * Add `TSSetPostEventStep()` to control the first step after event.
    * Rename `TSSetPostEventIntervalStep()` to `TSSetPostEventSecondStep()`,
      controlling the second step after event.
    * Rename option `-ts_event_post_eventinterval_step` to
      `-ts_event_post_event_second_step`.
    * Change the (event) indicator functions type from `PetscScalar[]` to
      `PetscReal[]` in the user `indicator()` callback set by
      `TSSetEventHandler()`.
    * Add `TSGetStepRollBack()` to access the internal rollback flag.
    * Add boolean flag to TSSetResize() to control when to resize.
    - TAO:
    * Deprecate `TaoCancelMonitors()` (resp. `-tao_cancelmonitors`) in
      favor of `TaoMonitorCancel()` (resp. `-tao_monitor_cancel`).
    * Deprecate `-tao_view_gradient`, `-tao_view_ls_residual`,
      `-tao_view_solution`, and `-tao_view_stepdirection` in favor of
      `-tao_monitor_gradient`, `-tao_monitor_ls_residual`,
      `-tao_monitor_solution`, and `-tao_monitor_step`.
    * Deprecate `-tao_draw_solution`, `-tao_draw_gradient`, and
      `-tao_draw_step` in favor of `-tao_monitor_solution_draw`,
      `-tao_monitor_gradient_draw`, and `-tao_monitor_step_draw`.
    * Deprecate `TaoSetMonitor()` in favor of `TaoMonitorSet()`.
    * Deprecate all of the provided Tao monitor routine names in favor of
      the standard PETSc naming conventions.
    - DM/DA:
    * Add MPI reduction inside `SNESComputeObjective_DMDA()`. No need to
      call reduction in local callback.
    * Deprecate `PetscSimplePointFunc` in favor of `PetscSimplePointFn`.
    * Move `DMPlexReorderDefaultFlag` to `DMReorderDefaultFlag`.
    * Add `DMCreateSectionPermutation()`, `DMReorderSectionGetType()`,
      and `DMReorderSectionSetType()`.
    * Add `DMReorderSectionGetDefault()` and `DMReorderSectionSetDefault()`
      to allow point permutations when sections are built automatically.
    * Change interface to `DMCreateSectionSubDM()` to add component
      specification.
    * Add DMDAGetBoundaryType().
    - DMSwarm:
    * Add continuous DM argument to `DMSwarmProjectFields()`.
    * Add `DMSwarmGetFieldInfo()`.
    * Add `DMSwarmVectorGetField()`.
    - DMPlex:
    * Drop support for MED, i.e. remove `DMPlexCreateMedFromFile()` and
      `--with-med`.
    * Change protototype of `DMPlexSetSNESLocalFEM()`. Now it accepts a
      single context and a Boolean indicating to use the objective function
      callback.
    * Replace `DMProjectCoordinates()` with `DMSetCoordinateDisc()`.
    * Add argument to `DMPlexCreateCoordinateSpace()`.
    * Add `DMPlexCoordMap` and some default maps.
    * Add Boolean argument to `DMPlexPartitionLabelCreateSF()` to sort ranks.
    * Add `DMClearAuxiliaryVec()` to clear the auxiliary data.
    * Add `ignoreLabelHalo`, `sanitizeSubmesh`, and `ownershipTransferSF`
      arguments to `DMPlexFilter()`.
    * Change `DMPlexSetIsoperiodicFaceSF()`, `DMPlexGetIsoperiodicFaceSF()`,
      and `DMPlexSetIsoperiodicFaceTransform()` to accept multiple values
      for different periodic pairings.
    - FE/FV:
    * Add Jacobian type argument to `PetscFEIntegrateBdJacobian()`.
    * Add `PetscFVClone()`.
    * Add `PetscFVCreateDualSpace()`.
    - DMStag:
    * Add support for `DMLocalToLocalBegin()` and `DMLocalToLocalEnd()`.
    * Add `DMStagSetRefinementFactor()` and `DMStagGetRefinementFactor()`
      to set and get the refinement ratio.
    * Add support for arbitrary refinement ratio and degree of freedom in
      interpolation and restriction.
    - DT:
    * Add `PetscDSUpdateBoundaryLabels()`.
  - Update to version 3.20:
    - General:
    * Add `PetscOptionsBegin()`, `PetscOptionsEnd()`, `PetscOptionsInt()`,
      `PetscOptionsBool()`, `PetscOptionsIntArray()`, `PetscOptionsReal()`,
      `PetscOptionsRealArray()`, and `PetscOptionsScalar()` for Fortran.
    * Add `PetscAssertPointer()` as a replacement for `PetscValidPointer()`,
      `PetscValidCharPointer()`, `PetscValidIntPointer()`,
      `PetscValidInt64Pointer()`, `PetscValidCountPointer()`,
      `PetscValidBoolPointer()`, `PetscvalidScalarPointer()`, and
      `PetscValidRealPointer()`.
    * Convert standard header-guards in PETSc header-files to `#pragma`
      once. Users relying on specific preprocessor definitions to determine
      whether particular PETSc headers (e.g. `petscdm.h` used to be guarded
      by PETSCDM_H) have been included will find that this no longer works.
      While header-guards are technically “public” (insofar that they appear
      in public header-files), their name and value are considered
      implementation details.
    - Sys:
    * Add `PetscDeviceContextGetStreamHandle()` to return a handle to the
      stream the current device context is using.
    * Add utility functions `PetscGetCurrentCUDAStream()` and
      `PetscGetCurrentHIPStream()` to return the GPU stream the current
      device context is using.
    * Add `PetscStrcmpAny()` to compare against multiple non-empty strings.
    * Change arguments 4 and 5 of `PetscViewerBinaryReadAll()` and
      `PetscViewerBinaryWriteAll()` to `PetscInt64`.
    * Add `PetscIsCloseAtTolScalar()`.
    * Remove `PetscTellMyCell()` and related runtime option.
    * Remove `PetscTextBelt()` and related runtime option.
    * Remove deprecated `-malloc [no]` startup option.
    * Remove deprecated `-malloc_info` startup option.
    * Remove deprecated `-log_summary` option.
    * Remove `PetscURLShorten()`, it has not worked since 2019.
      Move `PetscIntStackCreate()`, `PetscIntStackDestroy()`,
      `PetscIntStackPush()`, `PetscIntStackPop()`, and `PetscIntStackEmpty()`
      declarations to public API in `petsclog.h`.
    * Add `-on_error_malloc_dump` option.
    - Event Logging:
    * Add `PetscLogState` interface for describing profiling events and
      stages.
    * Add `PetscLogHandler` interface that interprets the profiling events
      of a `PetscLogState`.
    * Add `PETSCLOGHANDLERDEFAULT` implementation of `PetscLogHandler`.
    * Add `PETSCLOGHANDLERNESTED` implementation of `PetscLogHandler`.
    * Add `PETSCLOGHANDLERTRACE` implementation of `PetscLogHandler`.
    * Add `PetscLogHandlerCreateTrace()`.
    * Add `PETSCLOGHANDLERMPE` implementation of `PetscLogHandler`.
    * Add `PETSCLOGHANDLERPERFSTUBS` implementation of `PetscLogHandler`.
    * Add `PETSCLOGHANDLERLEGACY` implementation of `PetscLogHandler`.
    * Add `PetscLogHandlerCreateLegacy()`.
    * Add `PetscLogPerfstubsBegin()` for log handling with PerfStubs/TAU.
    * Add `PetscLogLegacyCallbacksBegin()` to transition old log handler
      callbacks to the PetscLogHandler-based approach.
    * Add `PetscLogHandlerStart()` to connect a `PetscLogHandler` to
      PETSc’s global logging events.
    * Add `PetscLogStageGetName()`.
    * Add `PetscLogEventGetName()`.
    * Add `PetscLogEventsPause()` and `PetscLogEventsResume()` to isolate
      a logging event from unrelated in-process events.
    * Add `PetscLogClassGetClassId()`.
    * Add `PetscLogClassIdGetName()`.
    * Deprecate `PetscLogClassPerfInfoClear()` ,
      `PetscLogClassPerfLogCreate()`, and `PetscLogClassPerfLogDestroy()`.
    * Deprecate `PetscClassPerfLogEnsureSize()`, `PetscClassRegInfoDestroy()`,
      `PetscClassRegLogCreate()`, `PetscClassRegLogDestroy()`,
      `PetscClassRegLogGetClass()`, and `PetscClassRegLogRegister()`.
    * Deprecate `PetscEventPerfInfoClear()` and `PetscEventPerfInfoCopy()`.
    * Deprecate `PetscEventPerfLogActivate()`,
      `PetscEventPerfLogActivateClass()`, `PetscEventPerfLogCreate()`,
      `PetscEventPerfLogDeactivate()`, `PetscEventPerfLogDeactivateClass()`,
      `PetscEventPerfLogDeactivatePop()`, `PetscEventPerfLogDeactivatePush()`,
      `PetscEventPerfLogDestroy()`, `PetscEventPerfLogEnsureSize()`,
      `PetscEventPerfLogGetVisible()`, and `PetscEventPerfLogSetVisible()`.
    * Deprecate `PetscEventRegLogCreate()`, `PetscEventRegLogDestroy()`,
      `PetscEventRegLogGetEvent()`, and `PetscEventRegLogRegister()`.
    * Deprecate `PetscStageLogCreate()`, `PetscStageLogDestroy()`,
      `PetscStageLogGetActive()`, `PetscStageLogGetClassPerfLog()`,
      `PetscStageLogGetClassRegLog()`, `PetscStageLogGetEventRegLog()`,
      `PetscStageLogGetStage()`, `PetscStageLogGetVisible()`,
      `PetscStageLogPop()`, `PetscStageLogPush()`, `PetscStageLogRegister()`,
      `PetscStageLogSetActive()`, `PetscStageLogSetVisible()`,
      `PetscStageLogGetCurrent()`, and `PetscStageLogGetEventPerfLog()`.
    * Deprecate `PetscLogGetStageLog()`.
    * Deprecate `PetscLogPushCurrentEvent_Internal()`.
    * Deprecate `PetscLogPopCurrentEvent_Internal()`.
    * Deprecate `PetscLogAllBegin()`.
    * Deprecate `PetscLogSet()`.
    * Add `PetscLogHandlerGetEventPerfInfo()`.
    * Add `PetscLogHandlerSetLogActions()`.
    * Add `PetscLogHandlerSetLogObjects()`.
    * Add `PetscLogHandlerLogObjectState()`.
    * Add `PetscLogHandlerGetNumObjects()`.
    * Add `PetscLogHandlerEventDeactivatePush()`.
    * Add `PetscLogHandlerEventDeactivatePop()`.
    * Add `PetscLogHandlerEventsPause()`.
    * Add `PetscLogHandlerEventsResume()`.
    * Add `PetscLogHandlerDump()`.
    * Add `PetscLogHandlerStageSetVisible()`.
    * Add `PetscLogHandlerStageGetVisible()`.
    * Add `PetscLogHandlerGetStagePerfInfo()`.
    * Add `PetscLogStageGetPerfInfo()`.
    * Add `PETSCLOGHANDLERNVTX` implementation of `PetscLogHandler`.
    - PetscViewer:
    * Add `PetscViewerASCIIOpenWithFileUnit()` and
      `PetscViewerASCIISetFileUnit()`.
    - Vec:
    * Add `VecErrorWeightedNorms()` to unify weighted local truncation
      error norms used in TS.
    * Add CUDA/HIP implementations for `VecAbs()`, `VecSqrt()`, `VecExp()`,
      `VecLog()`, `VecPointwiseMax()`, `VecPointwiseMaxAbs()`, and
      `VecPointwiseMin()`.
    * Add `VecMAXPBY()`.
    * Deprecate `VecChop()` in favor of `VecFilter()`.
    * Add `VecCreateFromOptions()`.
    - Mat:
    * Add `MatCreateDenseFromVecType()`.
    * Add support for calling `MatDuplicate()` on a matrix preallocated
      via `MatSetPreallocationCOO()`, and then `MatSetValuesCOO()` on the
      new matrix.
    * Remove MATSOLVERSPARSEELEMENTAL since it is no longer functional
    * Add `MATSELLCUDA`. It supports fast `MatMult()`, `MatMultTranspose()`,
      and `MatMultAdd()` on GPUs.
    * Add support for `MAT_FACTOR_LU` and `MAT_FACTOR_CHOLESKY` with
      `MATSOLVERMUMPS` for `MATNEST`.
    * `MatGetFactor()` can now return NULL for some combinations of
      matrices and solvers types. This is to support those combinations
      that can only be inspected at runtime (i.e. MatNest with AIJ blocks
      vs MatNest with SHELL blocks).
    * Remove `MatSetValuesDevice()`, `MatCUSPARSEGetDeviceMatWrite()`,
      `MatKokkosGetDeviceMatWrite`.
    * Add `MatDenseCUDASetPreallocation()` and `MatDenseHIPSetPreallocation()`.
    * Add support for `KOKKOS` in `MATH2OPUS`.
    * Add `-pc_precision` single option for use with `MATSOLVERSUPERLU_DIST`.
    * Add `MATDIAGONAL` which can be created with `MatCreateDiagonal()`.
    * Add `MatDiagonalGetDiagonal()`, `MatDiagonalRestoreDiagonal()`,
      `MatDiagonalGetInverseDiagonal()`, and
      `MatDiagonalRestoreInverseDiagonal()`.
    * Add support for `MatLoad()` and `MatView()` to load and store
      `MATMPIAIJ` matrices that have more than `PETSC_INT_MAX` nonzeros,
      so long as each rank has fewer than `PETSC_INT_MAX`.
    * Add `MatLRCSetMats()` and register creation routine for `MatLRC`.
    * Add CUDA/HIP implementation for `MatGetDiagonal()`.
    * Add a Boolean parameter to `MatEliminateZeros()` to force the removal
      of zero diagonal coefficients.
    * Expose `MatComputeVariableBlockEnvelope()` in public headers.
    * Add `MatEliminateZeros()` implementations for `MatBAIJ` and `MatSBAIJ`.
    * Deprecate `MatChop()` in favor of `MatFilter()`, with two additional
      Boolean parameters to compress the underlying storage and keep or
      discard near-zero diagonal coefficients.
    * Add `MatCreateFromOptions()`.
    * Add `MatSTRUMPACKGetReordering()`, `MatSTRUMPACKSetGeometricNxyz()`,
      `MatSTRUMPACKSetGeometricComponents()`,
      `MatSTRUMPACKSetGeometricWidth()`, `MatSTRUMPACKGetColPerm()`,
      `MatSTRUMPACKSetGPU()`, `MatSTRUMPACKGetGPU()`,
      `MatSTRUMPACKSetCompression()`, `MatSTRUMPACKGetCompression()`,
      `MatSTRUMPACKSetCompRelTol()`, `MatSTRUMPACKGetCompRelTol()`,
      `MatSTRUMPACKSetCompAbsTol()`, `MatSTRUMPACKGetCompAbsTol()`,
      `MatSTRUMPACKSetCompMinSepSize()`, `MatSTRUMPACKGetCompMinSepSize()`,
      `MatSTRUMPACKSetCompLeafSize()`, `MatSTRUMPACKGetCompLeafSize()`,
      `MatSTRUMPACKSetCompLossyPrecision()`,
      `MatSTRUMPACKGetCompLossyPrecision()`,
      `MatSTRUMPACKSetCompButterflyLevels()`,
      `MatSTRUMPACKGetCompButterflyLevels()`.
    * Add `MAT_STRUMPACK_GEOMETRIC`, `MAT_STRUMPACK_AMD`, `MAT_STRUMPACK_MMD`,
      `MAT_STRUMPACK_AND`, `MAT_STRUMPACK_MLF`, `MAT_STRUMPACK_SPECTRAL`
      to `MatSTRUMPACKReordering`.
    * Add `MatSTRUMPACKCompressionType`.
    * Remove `MatSTRUMPACKSetHSSLeafSize()`, `MatSTRUMPACKSetHSSMaxRank()`,
      `MatSTRUMPACKSetHSSMinSize()`, `MatSTRUMPACKSetHSSMinSepSize()`,
      `MatSTRUMPACKSetHSSAbsTol()`, `MatSTRUMPACKSetHSSRelCompTol()`,
      `MatSTRUMPACKSetHSSRelTol()`.
    - PC:
    * Add `PCMatGetApplyOperation()` and `PCMatSetApplyOperation()`.
    * Add `PCReduceFailedReason()`.
    * Add `PCSetKSPNestLevel()` and `PCSetKSPNestLevel()`.
    * Refactor PCMPI to be a private system used automatically when
      `-mpi_linear_solver_server` is used. The KSP and PC objects that
      solve the system now inherit any prefix provided initially with
      `KSPSetPrefix()` and do not require the previously required
      `mpi_` prefix.
    * Add option `-fieldsplit_1_pc_hpddm_schur_precondition` to use
      `PCHPDDM` on the Schur complements from `PCFIELDSPLIT`.
    * Add `PCGAMGSetAggressiveSquareGraph()` to use square graph method
      for aggressive coarsening that was the previous default coarsening
      approach before release 3.19.
    * Add `PCGAMGSetAggressiveMISk()` to set the number of levels (k) of
      aggressive MIS-k coarseing (2 is very common).
    * Add `PCGAMGSetMinDegreeOrderingMISk()` to use a minimum degree
      ordering for the (greedy) MIS-k algorithm.
    * Change `PCGAMGSetUseParallelCoarseGridSolve()` to
      `PCGAMGSetParallelCoarseGridSolve()`.
    * Add `PCGAMGSetRecomputeEstEig()` to set flag to have Chebyshev
      recompute its eigen estimates (default set to true).
    - KSP:
    * Add `KSPSetMinimumIterations()` and `KSPGetMinimumIterations()`.
    * Add `KSPSetNestLevel()` and `KSPGetNestLevel()`.
    * Support `KSPSetInitialGuessNonzero()` with `KSPPREONLY` and
      `PCDISTRIBUTE` when it is called on both the outer and inner KSP.
    - SNES:
    * Add a convenient, developer-level SNESConverged() function that
      runs the convergence test and updates the internal converged reason.
    * Swap the order of monitor and convergence test. Now monitors are
      always called after a convergence test.
    * Deprecate option -snes_ms_norms in favor of -snes_norm_schedule always.
    - TS:
    * Remove `TSErrorWeightedNormInfinity()`, `TSErrorWeightedNorm2()`,
      `TSErrorWeightedENormInfinity()`, `TSErrorWeightedENorm2()` since
      the same functionality can be obtained with `VecErrorWeightedNorms()`.
    * Add support for time-dependent solvers with varying solution size
      using `TSSetResize()`.
    * Add support for Diagonally Implicit Runge-Kutta methods with the new
      `TSDIRK` type.
    - TAO:
    * Add `TaoADMMGetRegularizerCoefficient()`.
    * Add `TAOBNCG`, `TaoBNCGGetType()` and `TaoBNCGSetType()`.
    - DM/DA:
    * Add support for `DMDAGetElements()` for Fortran.
    * Add support for clearing named vectors with
      `DMClearNamedGlobalVectors()` and `DMClearNamedLocalVectors()`.
    * Add `DMPrintCellIndices()` for debugging.
    * Add `DMUseTensorOrder()`.
    * Add `DMCeedCreate()`, `DMCeedComputeGeometry()`, and `DMCeedDestroy()`.
    - DMSwarm:
    * Add scatter mode to `DMSwarmProjectFields()` and no longer create
      vectors.
    * Promote `DMSwarmDataFieldGetEntries()`,
      `DMSwarmDataFieldRestoreEntries()`,
      `DMSwarmDataBucketGetDMSwarmDataFieldByName()`,
      `DMSwarmDataBucketGetDMSwarmDataFieldIdByName()`, and
      `DMSwarmDataBucketQueryDMSwarmDataFieldByName()` to public interface.
    - DMPlex:
    * Add `DMPlexTransformExtrudeGetPeriodic()` and
      `DMPlexTransformExtrudeSetPeriodic()`.
    * Replace `DMPlexGetGhostCellStratum()` with `DMPlexGetCellTypeStratum()`.
    * Add `DMPlexSetUseMatClosurePermutation()` and
      `DMPlexGetUseMatClosurePermutation()`.
    * Add `DMPlexGetUseCeed()`, `DMPlexSetUseCeed()`, and
      `DMPlexSNESComputeResidualCEED()`.
    * Add `DMPlexSNESComputeResidualDS()`.
    - FE/FV:
    * Add `PLEXFE_QFUNCTION` macro to create CEED QFunctions from Plex
      pointwise functions.
    - DMNetwork:
    * Add `DMNetworkViewSetShowRanks()`, `DMNetworkViewSetViewRanks()`,
      `DMNetworkViewSetShowGlobal()`, `DMNetworkViewSetShowVertices()`,
      `DMNetworkViewSetShowNumbering()`.
    * Add `-dmnetwork_view_all_ranks`, `-dmnetwork_view_rank_range`,
      `-dmnetwork_view_no_vertices`, `-dmnetwork_view_no_numbering`,
      for viewing DMNetworks with the Matplotlib viewer.
    * Add `-dmnetwork_view_zoomin_vertices`
      `-dmnetwork_view_zoomin_vertices_padding` for viewing `DMNetworks`
      with the Matplotlib viewer.
    - DT:
    * Add `PETSCFEVECTOR` for making a finite element that is a vector
      of copies of another finite element.
    * Add `PetscFECreateVector()`.
    * Add `PETSCDUALSPACESUM` for a finite element dual basis that is
      the sum of other dual bases.
    * Add `PetscDualSpaceCreateSum()`.
    * Add `PetscDualSpaceSumSetNumSubspaces()`.
    * Add `PetscDualSpaceSumGetNumSubspaces()`.
    * Add `PetscDualSpaceSumSetSubspace()`.
    * Add `PetscDualSpaceSumGetSubspace()`.
    * Add `PetscDualSpaceSumSetConcatenate()`.
    * Add `PetscDualSpaceSumGetConcatenate()`.
    * Add `PetscDualSpaceSumSetInterleave()`.
    * Add `PetscDualSpaceSumGetInterleave()`.
    * Add `PetscSpaceSumSetInterleave()`.
    * Add `PetscSpaceSumGetInterleave()`.
    * Add `PetscDualSpaceGetInteriorSection()`.
    - Fortran:
    * Add `PetscCheck()` and `PetscCheckA()` for Fortran.
    * Change `PETSC_HAVE_FORTRAN` to `PETSC_USE_FORTRAN_BINDINGS` to
      indicate if PETSc is built with Fortran bindings.
  - Update to version 3.19:
    - General:
    * Add `PetscOptionsBegin()`, `PetscOptionsEnd()`, `PetscOptionsInt()`,
      `PetscOptionsBool()`, `PetscOptionsIntArray()`, `PetscOptionsReal()`,
      `PetscOptionsRealArray()`, and `PetscOptionsScalar()` for Fortran.
    * Add `PetscAssertPointer()` as a replacement for `PetscValidPointer()`,
      `PetscValidCharPointer()`, `PetscValidIntPointer()`,
      `PetscValidInt64Pointer()`, `PetscValidCountPointer()`,
      `PetscValidBoolPointer()`, `PetscvalidScalarPointer()` and
      `PetscValidRealPointer()`.
    * Convert standard header-guards in PETSc header-files to
      `#pragma once`. Users relying on specific preprocessor definitions to
      determine whether particular PETSc headers (e.g. `petscdm.h` used
      to be guarded by `PETSCDM_H`) have been included will find that this
      no longer works. While header-guards are technically "public"
      (insofar that they appear in public header-files), their name and
      value are considered implementation details.
    - Sys:
    * Add `PetscDeviceContextGetStreamHandle()` to return a handle to
      the stream the current device context is using.
    * Add utility functions `PetscGetCurrentCUDAStream()` and
      `PetscGetCurrentHIPStream()` to return the GPU stream the current
      device context is using.
    * Add `PetscStrcmpAny()` to compare against multiple non-empty strings.
    * Change arguments 4 and 5 of `PetscViewerBinaryReadAll()` and
      `PetscViewerBinaryWriteAll()` to `PetscInt64`.
    * Add `PetscIsCloseAtTolScalar()`.
    * Remove `PetscTellMyCell()` and related runtime option.
    * Remove `PetscTextBelt()` and related runtime option.
    * Remove deprecated `-malloc [no]` startup option.
    * Remove deprecated `-malloc_info` startup option.
    * Remove deprecated `-log_summary` option.
    * Remove `PetscURLShorten()`, it has not worked since 2019.
    * Move `PetscIntStackCreate()`, `PetscIntStackDestroy()`,
      `PetscIntStackPush()`, `PetscIntStackPop()`, and `PetscIntStackEmpty()`
      declarations to public API in `petsclog.h`.
    * Add `-on_error_malloc_dump` option.
    - Event Logging:
    * Add `PetscLogState` interface for describing profiling events and stages
    * Add `PetscLogHandler` interface that interprets the profiling events
      of a `PetscLogState`
    * Add `PETSCLOGHANDLERDEFAULT` implementation of `PetscLogHandler`
    * Add `PETSCLOGHANDLERNESTED` implementation of `PetscLogHandler`
    * Add `PETSCLOGHANDLERTRACE` implementation of `PetscLogHandler`
    * Add `PetscLogHandlerCreateTrace()`
    * Add `PETSCLOGHANDLERMPE` implementation of `PetscLogHandler`
    * Add `PETSCLOGHANDLERPERFSTUBS` implementation of `PetscLogHandler`
    * Add `PETSCLOGHANDLERLEGACY` implementation of `PetscLogHandler`
    * Add `PetscLogHandlerCreateLegacy()`
    * Add `PetscLogPerfstubsBegin()` for log handling with PerfStubs/TAU
    * Add `PetscLogLegacyCallbacksBegin()` to transition old log handler
      callbacks to the `PetscLogHandler`-based approach
    * Add `PetscLogHandlerStart()` to connect a `PetscLogHandler` to
      PETSc's global logging events.
    * Add `PetscLogStageGetName()`.
    * Add `PetscLogEventGetName()`.
    * Add `PetscLogEventsPause()` and `PetscLogEventsResume()` to isolate
      a logging event from unrelated in-process events.
    * Add `PetscLogClassGetClassId()`.
    * Add `PetscLogClassIdGetName()`.
    * Deprecate `PetscLogClassPerfInfoClear()`,
      `PetscLogClassPerfLogCreate()`, and `PetscLogClassPerfLogDestroy()`.
    * Deprecate `PetscClassPerfLogEnsureSize()`, `PetscClassRegInfoDestroy()`,
      `PetscClassRegLogCreate()`, `PetscClassRegLogDestroy()`,
      `PetscClassRegLogGetClass()`, and `PetscClassRegLogRegister()`.
    * Deprecate `PetscEventPerfInfoClear()` and `PetscEventPerfInfoCopy()`.
    * Deprecate `PetscEventPerfLogActivate()`,
      `PetscEventPerfLogActivateClass()`, `PetscEventPerfLogCreate()`,
      `PetscEventPerfLogDeactivate()`, `PetscEventPerfLogDeactivateClass()`,
      `PetscEventPerfLogDeactivatePop()`, `PetscEventPerfLogDeactivatePush()`,
      `PetscEventPerfLogDestroy()`, `PetscEventPerfLogEnsureSize()`,
      `PetscEventPerfLogGetVisible()`, and `PetscEventPerfLogSetVisible()`.
    * Deprecate `PetscEventRegLogCreate()`, `PetscEventRegLogDestroy()`,
      `PetscEventRegLogGetEvent()`, and `PetscEventRegLogRegister()`.
    * Deprecate `PetscStageLogCreate()`, `PetscStageLogDestroy()`,
      `PetscStageLogGetActive()`, `PetscStageLogGetClassPerfLog()`,
      `PetscStageLogGetClassRegLog()`, `PetscStageLogGetEventRegLog()`,
      `PetscStageLogGetStage()`, `PetscStageLogGetVisible()`,
      `PetscStageLogPop()`, `PetscStageLogPush()`, `PetscStageLogRegister()`,
      `PetscStageLogSetActive()`, `PetscStageLogSetVisible()`,
      `PetscStageLogGetCurrent()`, and `PetscStageLogGetEventPerfLog()`.
    * Deprecate `PetscLogGetStageLog()`.
    * Deprecate `PetscLogPushCurrentEvent_Internal()`.
    * Deprecate `PetscLogPopCurrentEvent_Internal()`.
    * Deprecate `PetscLogAllBegin()`.
    * Deprecate `PetscLogSet()`.
    * Add `PetscLogHandlerGetEventPerfInfo()`.
    * Add `PetscLogHandlerSetLogActions()`.
    * Add `PetscLogHandlerSetLogObjects()`.
    * Add `PetscLogHandlerLogObjectState()`.
    * Add `PetscLogHandlerGetNumObjects()`.
    * Add `PetscLogHandlerEventDeactivatePush()`.
    * Add `PetscLogHandlerEventDeactivatePop()`.
    * Add `PetscLogHandlerEventsPause()`.
    * Add `PetscLogHandlerEventsResume()`.
    * Add `PetscLogHandlerDump()`.
    * Add `PetscLogHandlerStageSetVisible()`.
    * Add `PetscLogHandlerStageGetVisible()`.
    * Add `PetscLogHandlerGetStagePerfInfo()`.
    * Add `PetscLogStageGetPerfInfo()`.
    * Add `PETSCLOGHANDLERNVTX` implementation of `PetscLogHandler`.
    - PetscViewer:
    * Add `PetscViewerASCIIOpenWithFileUnit()` and
      `PetscViewerASCIISetFileUnit()`.
    - Vec:
    * Add `VecErrorWeightedNorms()` to unify weighted local truncation
      error norms used in `TS`.
    * Add CUDA/HIP implementations for `VecAbs()`, `VecSqrt()`,
      `VecExp()`, `VecLog()`, `VecPointwiseMax()`, `VecPointwiseMaxAbs()`
      and `VecPointwiseMin()`.
    * Add `VecMAXPBY()`.
    * Deprecate `VecChop()` in favor of `VecFilter()`.
    * Add `VecCreateFromOptions()`.
    - PetscSection:
    * Add `PetscSectionResetClosurePermutation()`.
    - Mat:
    * Add `MatCreateDenseFromVecType()`.
    * Add support for calling `MatDuplicate()` on a matrix preallocated
      via `MatSetPreallocationCOO()`, and then `MatSetValuesCOO()` on
      the new matrix.
    * Remove `MATSOLVERSPARSEELEMENTAL` since it is no longer functional.
    * Add `MATSELLCUDA`. It supports fast `MatMult()`, `MatMultTranspose()`,
      and `MatMultAdd()` on GPUs.
    * Add support for `MAT_FACTOR_LU` and `MAT_FACTOR_CHOLESKY` with
      `MATSOLVERMUMPS` for `MATNEST`.
    * `MatGetFactor()` can now return `NULL` for some combinations of
      matrices and solvers types. This is to support those combinations
      that can only be inspected at runtime (i.e. MatNest with AIJ blocks
      vs MatNest with SHELL blocks).
    * Remove `MatSetValuesDevice()`, `MatCUSPARSEGetDeviceMatWrite()`,
      `MatKokkosGetDeviceMatWrite`
    * Add `MatDenseCUDASetPreallocation()` and `MatDenseHIPSetPreallocation()`.
    * Add support for KOKKOS in `MATH2OPUS`.
    * Add `-pc_precision single` option for use with `MATSOLVERSUPERLU_DIST`.
    * Add `MATDIAGONAL` which can be created with `MatCreateDiagonal()`.
    * Add `MatDiagonalGetDiagonal()`, `MatDiagonalRestoreDiagonal()`,
      `MatDiagonalGetInverseDiagonal()`, and
      `MatDiagonalRestoreInverseDiagonal()`.
    * Add support for `MatLoad()` and `MatView()` to load and store
      `MATMPIAIJ` matrices that have more than `PETSC_INT_MAX` nonzeros,
      so long as each rank has fewer than `PETSC_INT_MAX`.
    * Add `MatLRCSetMats()` and register creation routine for `MatLRC`.
    * Add CUDA/HIP implementation for `MatGetDiagonal()`.
    * Add a Boolean parameter to `MatEliminateZeros()` to force the
      removal of zero diagonal coefficients.
    * Expose `MatComputeVariableBlockEnvelope()` in public headers.
    * Add `MatEliminateZeros()` implementations for `MatBAIJ` and
      `MatSBAIJ`.
    * Deprecate `MatChop()` in favor of `MatFilter()`, with two additional
      Boolean parameters to compress the underlying storage and keep or
      discard near-zero diagonal coefficients.
    * Add `MatCreateFromOptions()`.
    * Add `MatSTRUMPACKGetReordering()`, `MatSTRUMPACKSetGeometricNxyz()`,
      `MatSTRUMPACKSetGeometricComponents()`,
      `MatSTRUMPACKSetGeometricWidth()`, `MatSTRUMPACKGetColPerm()`,
      `MatSTRUMPACKSetGPU()`, `MatSTRUMPACKGetGPU()`,
      `MatSTRUMPACKSetCompression()`, `MatSTRUMPACKGetCompression()`,
      `MatSTRUMPACKSetCompRelTol()`, `MatSTRUMPACKGetCompRelTol()`,
      `MatSTRUMPACKSetCompAbsTol()`, `MatSTRUMPACKGetCompAbsTol()`,
      `MatSTRUMPACKSetCompMinSepSize()`, `MatSTRUMPACKGetCompMinSepSize()`,
      `MatSTRUMPACKSetCompLeafSize()`, `MatSTRUMPACKGetCompLeafSize()`,
      `MatSTRUMPACKSetCompLossyPrecision()`,
      `MatSTRUMPACKGetCompLossyPrecision()`,
      `MatSTRUMPACKSetCompButterflyLevels()`,
      `MatSTRUMPACKGetCompButterflyLevels()`.
    * Add `MAT_STRUMPACK_GEOMETRIC`, `MAT_STRUMPACK_AMD`, `MAT_STRUMPACK_MMD`,
      `MAT_STRUMPACK_AND`, `MAT_STRUMPACK_MLF`, `MAT_STRUMPACK_SPECTRAL`
      to `MatSTRUMPACKReordering`.
    * Add `MatSTRUMPACKCompressionType`.
    * Remove `MatSTRUMPACKSetHSSLeafSize()`, `MatSTRUMPACKSetHSSMaxRank()`,
      `MatSTRUMPACKSetHSSMinSize()`, `MatSTRUMPACKSetHSSMinSepSize()`,
      `MatSTRUMPACKSetHSSAbsTol()`, `MatSTRUMPACKSetHSSRelCompTol()`,
      `MatSTRUMPACKSetHSSRelTol()`.
    - PC:
    * Add `PCMatGetApplyOperation()` and `PCMatSetApplyOperation()`.
    * Add `PCReduceFailedReason()`.
    * Add `PCSetKSPNestLevel()` and `PCSetKSPNestLevel()`.
    * Refactor `PCMPI` to be a private system used automatically when
      `-mpi_linear_solver_server` is used. The `KSP` and `PC` objects
      that solve the system now inherit any prefix provided initially
      with `KSPSetPrefix()` and do not require the previously required
      `mpi_` prefix.
    * Add option `-fieldsplit_1_pc_hpddm_schur_precondition` to use
      `PCHPDDM` on the Schur complements from `PCFIELDSPLIT`.
    * Add `PCGAMGSetAggressiveSquareGraph()` to use square graph
      method for aggressive coarsening that was the previous default
      coarsening approach before release 3.19.
    * Add `PCGAMGSetAggressiveMISk()` to set the number of levels (k)
      of aggressive MIS-k coarseing (2 is very common).
    * Add `PCGAMGSetMinDegreeOrderingMISk()` to use a minimum degree
      ordering for the (greedy) MIS-k algorithm.
    * Change `PCGAMGSetUseParallelCoarseGridSolve()` to
      `PCGAMGSetParallelCoarseGridSolve()`.
    * Add `PCGAMGSetRecomputeEstEig()` to set flag to have Chebyshev
      recompute its eigen estimates (default set to true).
    - KSP:
    * Add `KSPSetMinimumIterations()` and `KSPGetMinimumIterations()`.
    * Add `KSPSetNestLevel()` and `KSPGetNestLevel()`.
    * Support `KSPSetInitialGuessNonzero()` with `KSPPREONLY` and
      `PCDISTRIBUTE` when it is called on both the outer and inner `KSP`.
    - SNES:
    * Add a convenient, developer-level `SNESConverged()` function
      that runs the convergence test and updates the internal
      converged reason.
    * Swap the order of monitor and convergence test. Now monitors
      are always called after a convergence test.
    * Deprecate option `-snes_ms_norms` in favor of
      `-snes_norm_schedule always`.
    - SNESLineSearch:
    - TS:
    * Remove `TSErrorWeightedNormInfinity()`, `TSErrorWeightedNorm2()`,
      `TSErrorWeightedENormInfinity()`, `TSErrorWeightedENorm2()`
      since the same functionality can be obtained with
      `VecErrorWeightedNorms()`.
    * Add support for time-dependent solvers with varying solution
      size using `TSSetResize()`.
    * Add support for Diagonally Implicit Runge-Kutta methods with
      the new `TSDIRK` type.
    - TAO:
    * Add `TaoADMMGetRegularizerCoefficient()`.
    * Add `TAOBNCG`, `TaoBNCGGetType()` and `TaoBNCGSetType()`.
    - DM/DA:
    * Add support for `DMDAGetElements()` for Fortran.
    * Add support for clearing named vectors with
      `DMClearNamedGlobalVectors()` and `DMClearNamedLocalVectors()`.
    * Add `DMPrintCellIndices()` for debugging.
    * Add `DMUseTensorOrder()`.
    * Add `DMCeedCreate()`, `DMCeedComputeGeometry()`, and `DMCeedDestroy()`.
    - DMSwarm:
    * Add scatter mode to `DMSwarmProjectFields()` and no longer
      create vectors.
    * Promote `DMSwarmDataFieldGetEntries()`,
      `DMSwarmDataFieldRestoreEntries()`,
      `DMSwarmDataBucketGetDMSwarmDataFieldByName()`,
      `DMSwarmDataBucketGetDMSwarmDataFieldIdByName()`, and
      `DMSwarmDataBucketQueryDMSwarmDataFieldByName()` to public interface.
    - DMPlex:
    * Add `DMPlexTransformExtrudeGetPeriodic()` and
      `DMPlexTransformExtrudeSetPeriodic()`.
    * Replace `DMPlexGetGhostCellStratum()` with `DMPlexGetCellTypeStratum()`.
    * Add `DMPlexSetUseMatClosurePermutation()` and
      `DMPlexGetUseMatClosurePermutation()`.
    * Add `DMPlexGetUseCeed()`, `DMPlexSetUseCeed()`, and
      `DMPlexSNESComputeResidualCEED()`.
    * Add `DMPlexSNESComputeResidualDS()`.
    - FE/FV:
    * Add `PLEXFE_QFUNCTION` macro to create CEED QFunctions from
      Plex pointwise functions.
    - DMNetwork:
    * Add `DMNetworkViewSetShowRanks()`, `DMNetworkViewSetViewRanks()`,
      `DMNetworkViewSetShowGlobal()`, `DMNetworkViewSetShowVertices()`,
      `DMNetworkViewSetShowNumbering()`.
    * Add `-dmnetwork_view_all_ranks` `-dmnetwork_view_rank_range`
      `-dmnetwork_view_no_vertices` `-dmnetwork_view_no_numbering`
      for viewing DMNetworks with the Matplotlib viewer.
    * Add `-dmnetwork_view_zoomin_vertices`
      `-dmnetwork_view_zoomin_vertices_padding` for viewing DMNetworks
      with the Matplotlib viewer.
    - DT:
    * Add `PETSCFEVECTOR` for making a finite element that is a vector
      of copies of another finite element.
    * Add `PetscFECreateVector()`.
    * Add `PETSCDUALSPACESUM` for a finite element dual basis that
      is the sum of other dual bases.
    * Add `PetscDualSpaceCreateSum()`.
    * Add `PetscDualSpaceSumSetNumSubspaces()`.
    * Add `PetscDualSpaceSumGetNumSubspaces()`.
    * Add `PetscDualSpaceSumSetSubspace()`.
    * Add `PetscDualSpaceSumGetSubspace()`.
    * Add `PetscDualSpaceSumSetConcatenate()`.
    * Add `PetscDualSpaceSumGetConcatenate()`.
    * Add `PetscDualSpaceSumSetInterleave()`.
    * Add `PetscDualSpaceSumGetInterleave()`.
    * Add `PetscSpaceSumSetInterleave()`.
    * Add `PetscSpaceSumGetInterleave()`.
    * Add `PetscDualSpaceGetInteriorSection()`.
    - Fortran:
    * Add `PetscCheck()` and `PetscCheckA()` for Fortran.
    * Change `PETSC_HAVE_FORTRAN` to `PETSC_USE_FORTRAN_BINDINGS`
      to indicate if PETSc is built with Fortran bindings.
  - Use packaged libYAML instead of building the clone incorporated
    in the PETSc source code. This allows to address security issues
    through updates to that package (CVE-2024-35328, boo#1226364).
  - Refresh & Rename:
    petsc-3.3-p2-no-rpath.patch -> Remove-rpath-test.patch
  - Add:
    Allow-lib64-as-library-directory-for-scalapack.patch
* Sun Dec 03 2023 Atri Bhattacharya <badshah400@gmail.com>
  - Make a symlink to the real pkgconfig dir (for example, in an
    installed system) for package's absurdly located pkgconfig file.
    This is a minimal workaround to boo#1217751, I guess.
  - Cosmetic touch-ups.
* Mon Oct 23 2023 Egbert Eich <eich@suse.com>
  - Disable HPC flavors on i586
* Mon Oct 23 2023 Nicolas Morey <nicolas.morey@suse.com>
  - Drop support for obsolete openmpi[123]
  - Prepare support for openmpi5
* Wed Mar 22 2023 Stefan Brüns <stefan.bruens@rwth-aachen.de>
  - Update to version 3.18.5.
    * Too many changes to list, for details see
      https://petsc.org/release/docs/changes/
  - Fix broken usage of MAKEFLAGS, causing build failures with
    gmake >= 4.4.1.
* Wed Feb 15 2023 Stefan Brüns <stefan.bruens@rwth-aachen.de>
  - Remove incorrect library symlink with major version only.
* Mon Feb 06 2023 Stefan Brüns <stefan.bruens@rwth-aachen.de>
  - Update to version 3.18.4.
    * Too many changes to list, for details see
      https://petsc.org/release/docs/changes/
  - Use Python3 also on Leap/SLE, Python 2.7 is no longer supported
  - Clean up spec file
  - Remove unreproducible build host core count from petscvariables
    (NPMAX, MAKE_NP etc).
  - Remove doc subpackage, documentation is no longer included in
    upstream tarball.
* Sat Jul 16 2022 Stefan Brüns <stefan.bruens@rwth-aachen.de>
  - Fix library package name for non-HPC flavors.
  - Remove openmpi1 for non-HPC.
  - Correct valgrind-devel BuildRequires.
  - Add rpmlintrc to ignore some empty files in examples
* Wed Feb 16 2022 Egbert Eich <eich@suse.com>
  - Fix HPC module settings (bsc#1195782).
  - Remove dependency on librt for libsuitparse to make the non-HPC
    build on Factory again.
* Wed Mar 24 2021 Egbert Eich <eich@suse.com>
  - Update to version 3.14.5.
    * Documentation & man page fixes, removal of non-existing functions.
    * CPARDISO: stick to OpenMPI BLACS when needed
    * bugfix for MatMatMultSymbolic_MPIAIJ_MPIDense() when Bbn1 = 0.
      Bb (column block size) zero lead to infinite loop in
      MatMatMultNumeric_MPIAIJ_MPIDense() with n=0.
    * petscviewer: fix the fortran bindings of XXXViewFromOptions
      when called with obj=PETSC_NULL_XXX.
    * PetscOptionsPrefixPush: Accept numbers if the stack is not
      empty.
    * PetscOptionsClearValue: Also clear 'help_intro' slot.
    * PetscOptionsDestroyDefault: Fix possible NULL-dereference.
    * PetscOptionsUsed: Fix for case-insensitive string comparison.
    * Do not use MPI_Bcast() on a single rank - This allows direct
      reading  of much larger files, in, for example, MatLoad_SeqAIJ_Binary.
    * PCHPDDM: fix for KSPLSQR.
    * DMPlexVTKWriteAll_VTU: numerous bugfixes.
    * MatBAIJ: FIx specialization for size 9.
* Wed Feb 24 2021 Christian Goll <cgoll@suse.com>
  - Updated to version 3.14.4 (jsc#SLE-14959)
    * versionToTuple: ignore leading strings in package versions.
      i.e 5.3.3consortium -> 5.3.3
    * Add error checks for integer overflow for
      MatSeqXAIJSetPreallocation when the user provides nnz[].
      Otherwise PetscMalloc() can produce error messages with requests to
      absurds amount of memory.
      Improve the error message for PetscIntMultError() and other casting
      routines and add more seealso entries to the manual pages.
    * Update dmlocalts.c to prevent zeroing out of locX_t after being computed
      in TSComputeIJacobian_DMLocal.
    * nargs.Arg: Remove interactiveness; provide useful error when key is not
      found.
    * DMPlexLandau: fix implicit conversion.
    * Allow users to mistaken use openmpi or mpich when setting mpi or mpi-dir
      and consistently use local variable 'name'
    * Consume -help in PetscOptionsSetValue() so it can be set from RC file etc.
    * Enable search patterns to have 'src*' at start.
    * Fix Matlab int32 to match changed changes in PETSc data types.
    * Generate error instead of crashing when estimating eigenvalues for
      Chebyshev, no right hand side vector is available and the user requested
      to not use a noisy right hand side.
    * Fix pcmgsetlevels() for Fortran to properly convert the C MPI communictors
      to Fortran.
    * Fix PCMGSetLevels_MG() to support the use of MPI_COMM_NULL for
      communicators that that live on a subset of the orginal communicator.
    * Add additional documentation material to PCMGSetLevels() explaining how
      one must handle the restriction and interpolation operations that move
      between different levels which have a different number of MPI ranks.
    * Call PetscCUDAInitializeCheck() in
      MatConvert_SeqAIJ_SeqAIJCUSPARSE since it uses cuSparse().
    * Missing this sometimes produces errors in the CU tests, but other times
      it passes. I don't understand why it is not needed.
    * checkbadSource now prints line numbers of where it finds problems.
    * Add support to Fortran interface for PCASMGetSubKSP() and PCGASMGetSubKSP()
      to use PETSC_NULL_INT for first two arguments.
    * Missing define in landaucu.cu.
    * Fix for PCView_BJacobi() case when neither if case is statisfied.
    * DMCreateInterpolation() requires a custom Fortran stub because it RETURNS
      an optional vector.
    * Add -da_refine to manual page for DMDASetRefinementFactor().
    * AIJMKL: cannot print a scalar in case of complex.
    * Fix memory leaks in TSTrajectoryCreate_Memory() and possibly bugs
    * Don't generate an error if the user does not free all objects while using
      SuperLU_DIST.
    * -ksp_view -ksp_type gmres -pc_type gasm fails on one process. Fixed by
      removing special case handling of size 1 that tried to reuse
      orginal viewer as subviewer which does not work.
    * Add KSPGMRESSetBreakdownTolerance() and -ksp_gmres_breakdown_tolerance
    - to restore old GMRES behaviour for MOOSE.
    * Fix bug introduced by PCASMSetSubMatType() when MAT_REUSE_MATRIX is
      used with a different type of pmat compared to pmat[i].
    * Always destroy previously created pmat[i] and use   MAT_INITIAL_MATRIX
    * Clarify integers set with to ISCreateBlock() and ISBlockSetIndices() in
      manual pages.
    * Remove ierr = VecSetInf(ksp->vec_sol);CHKERRQ(ierr); from
      KSPSetUp_Chebyshev() since ksp->vec_sol may not yet exist and it is not
      needed since VecSetInf(ksp->vec_sol) is set in KSPSolve() just before
      the actual solve if ksp->reason = KSP_DIVERGED_PC_FAILED.
    * Remove mention of DMDAGetLocalInfoF90() since it does not exist, Fortran
      version has same name as C version.
    * MATSHELL: matrix sizes may not be known at creation time.
    * Pass PetscDrawSetSave() and PetscDrawSetSaveFinalImage() to
      PetscViewerGetSubViewer_Draw(). Otherwise MatView() on parallel matrices,
      for example, will not generate an image file.
    * config MPI: fix type of self.libdir (which is passed to os.path.join).
    * MUMPS: add -DBLR_MT when configuring --with-openmp.
    * missing PDIPM and typo in BQNLS for fortran imports.
    * Fixed issue where scalapack matrix is created with a communicator different
      from MPI_COMM_WORLD.
    * Fix PetscErrorCode typos in Fortran stubs.
    * Remove interface declarations for functions that don't exist.
    * SNESMultiblock: add back into build (had been missing -  still untested).
    * MATDAAD: remove vestigial references to deleted DAAD.
    * Fix device atomics with 64-bit indices and prefer long long over int64_t
    * petsc4py.py: set download-petsc4py-commit to None to overcome missing key
      error.
    * petsc4py: Update Cython build
    * Set `language_level` to `3str` if supported (Cython >= 0.29)
    * Initial preparations for upcoming release Cython 3.0
    * Require Cython >= 0.24, older versions do not longer work
    * Improve python-related entries in configure --help.
    * add missing --download-petsc4py option.
    * remove python options other than --with-python-exec
      which have no effect.
    * move --with-python-exec to PETSc section.
    * PetscPythonFindLibrary: One more way to get pythonlib.
      Hotfix for case when LDLIBRARY yields libpython<version>.a
      erroneously.
    * SLEPc: pass PYTHONPATH for slepc4py.
    * Add manual page for MATMPIDENSE.
    * Fix outdated mention of "-snes_ksp_ew_conv" in users manual.
    * Improve manual pages for MatGetValuesLocal() and MatGetValues() to clarify
      what values may be obtained with these routines.
    * Add to manual pages the use of call XXXView(x,0) from the debugger.
    * KSPGCR: add man pages for setting and getting restart.
    * Put the docs for -snes_test_jacobian in SNESSetFromOptions() instead of
      hidden away in developer routine.
    * Improve clarity of docs for PETSC_VIEWER_SOCKET with Matlab.
  - Refactored patches:
    * petsc-3.3-p2-no-rpath.patch
    * petsc-3.7-fix-pastix-detection.patch
* Fri Feb 05 2021 Egbert Eich <eich@suse.com>
  - Add build support for gcc10 to HPC build (bsc#1174439).
  - Add openmpi4 flavors.
* Thu Jan 28 2021 Egbert Eich <eich@suse.com>
  - Change 'Requires:' to other HPC packages to %requires_eq to depend
    on the exact version. This should take care of HPC packages ignoring
    proper ABI versioning.

Files

/usr/share/doc/packages/petsc-gnu-mpich-hpc-devel
/usr/share/doc/packages/petsc-gnu-mpich-hpc-devel/README.petsc_3_21_2-gnu-mpich-hpc-devel


Generated by rpm2html 1.8.1

Fabrice Bellet, Fri Jun 28 00:02:47 2024