SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

 
 
Changelog for petsc_3_21_2-gnu-mpich-hpc-devel-3.21.2-2.1.x86_64.rpm :

* Thu Jul 25 2024 Andreas Stieger - fix missing libyaml requirement of -devel package boo#1228280
* Tue Jun 18 2024 Egbert Eich - 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 - 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 - Disable HPC flavors on i586
* Mon Oct 23 2023 Nicolas Morey - Drop support for obsolete openmpi[123]- Prepare support for openmpi5
* Wed Mar 22 2023 Stefan Brüns - 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 - Remove incorrect library symlink with major version only.
* Mon Feb 06 2023 Stefan Brüns - 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 - 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 - 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 - 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 - 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.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 - Add build support for gcc10 to HPC build (bsc#1174439).- Add openmpi4 flavors.
* Thu Jan 28 2021 Egbert Eich - 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.
 
ICM