1*7f296bb3SBarry Smith# Changes: 3.14 2*7f296bb3SBarry Smith 3*7f296bb3SBarry Smith```{rubric} General: 4*7f296bb3SBarry Smith``` 5*7f296bb3SBarry Smith 6*7f296bb3SBarry Smith- Deprecate PetscIgnoreErrorHandler(), use PetscReturnErrorHandler() 7*7f296bb3SBarry Smith- Replace -debugger_nodes with -debugger_ranks 8*7f296bb3SBarry Smith- Change PETSCABORT() to abort instead of MPI_Abort if run under 9*7f296bb3SBarry Smith -start_in_debugger 10*7f296bb3SBarry Smith- Add PETSC_MPI_THREAD_REQUIRED to control the requested threading 11*7f296bb3SBarry Smith level for MPI_Init 12*7f296bb3SBarry Smith- Add CUDA-11 support, but with CUDA-11, 13*7f296bb3SBarry Smith -mat_cusparse_storage_format {ELL, HYB} are not supported anymore. 14*7f296bb3SBarry Smith Only CSR is supported 15*7f296bb3SBarry Smith- Add CUDA-11 option -mat_cusparse_spmv_alg {MV_ALG_DEFAULT, 16*7f296bb3SBarry Smith CSRMV_ALG1 (default), CSRMV_ALG2} for users to select cuSPARSE 17*7f296bb3SBarry Smith SpMV algorithms 18*7f296bb3SBarry Smith- Add CUDA-11 option -mat_cusparse_spmm_alg {ALG_DEFAULT, CSR_ALG1 19*7f296bb3SBarry Smith (default), CSR_ALG2} for users to select cuSPARSE SpMM algorithms 20*7f296bb3SBarry Smith- Add CUDA-11 option -mat_cusparse_csr2csc_alg {ALG1 (default), 21*7f296bb3SBarry Smith ALG2} for users to select cuSPARSE CSR to CSC conversion 22*7f296bb3SBarry Smith algorithms 23*7f296bb3SBarry Smith- Remove option -cuda_initialize, whose functionality is succeeded 24*7f296bb3SBarry Smith by -cuda_device xxx 25*7f296bb3SBarry Smith- Change -cuda_set_device to -cuda_device, which can now accept 26*7f296bb3SBarry Smith NONE, PETSC_DEFAULT, PETSC_DECIDE in addition to non-negative 27*7f296bb3SBarry Smith integers 28*7f296bb3SBarry Smith- Change PetscCUDAInitialize(comm) to PetscCUDAInitialize(comm,dev) 29*7f296bb3SBarry Smith- Add PetscCUDAInitializeCheck() to do lazy CUDA initialization 30*7f296bb3SBarry Smith- Add -hip_device, -hip_view, -hip_synchronize, 31*7f296bb3SBarry Smith PetscHIPInitialize(comm,dev) and PetscHIPInitializeCheck(). Their 32*7f296bb3SBarry Smith usage is similar to their CUDA counterpart 33*7f296bb3SBarry Smith- Add PetscOptionsInsertStringYAML() and -options_string_yaml for 34*7f296bb3SBarry Smith YAML-formatted options on the command line 35*7f296bb3SBarry Smith- Add PETSC_OPTIONS_YAML environment variable for setting options in 36*7f296bb3SBarry Smith YAML format 37*7f296bb3SBarry Smith- Add PetscDetermineInitialFPTrap(); fix so that when Linux or macOS 38*7f296bb3SBarry Smith Fortran linker enables catching floating point divide by zero the 39*7f296bb3SBarry Smith trapping is disabled for LAPACK routines that generate divide by 40*7f296bb3SBarry Smith zero, for example, the reference implementation of ieeeck() 41*7f296bb3SBarry Smith- Add floating point exception handling support for freebsd and 42*7f296bb3SBarry Smith Windows 43*7f296bb3SBarry Smith- Consistently set exception handling for divide by zero, invalid, 44*7f296bb3SBarry Smith underflow, and overflow for all systems when possible 45*7f296bb3SBarry Smith- -options_monitor and -options_monitor_cancel have immediate global 46*7f296bb3SBarry Smith effect, see PetscInitialize() for details 47*7f296bb3SBarry Smith- Remove PetscOptionsSetFromOptions() 48*7f296bb3SBarry Smith- Remove PetscOptionsMonitorCancel() 49*7f296bb3SBarry Smith- Remove -h and -v options. Use -help and -version instead. The 50*7f296bb3SBarry Smith short options -h and -v can now be used within user codes 51*7f296bb3SBarry Smith- Import petsc4py sources into PETSc source tree. Continue to use 52*7f296bb3SBarry Smith --download-petsc4py to build petsc4py 53*7f296bb3SBarry Smith- Add an experimental Kokkos backend for PETSc GPU operations. For 54*7f296bb3SBarry Smith example, one can use '--download-kokkos --download-kokkos-kernels 55*7f296bb3SBarry Smith --with-kokkos-cuda-arch=TURING75' to build PETSc with a Kokkos 56*7f296bb3SBarry Smith CUDA backend, and then use -vec_type kokkos -mat_type aijkokkos. 57*7f296bb3SBarry Smith With that, vector and matrix operations on GPUs are done through 58*7f296bb3SBarry Smith Kokkos kernels. Currently, VECKOKKOS supports all vector 59*7f296bb3SBarry Smith operations, but MATAIJKOKKOS only supports MatMult() and its 60*7f296bb3SBarry Smith variants. More complete support is coming 61*7f296bb3SBarry Smith 62*7f296bb3SBarry Smith```{rubric} Configure/Build: 63*7f296bb3SBarry Smith``` 64*7f296bb3SBarry Smith 65*7f296bb3SBarry Smith- Change --with-matlabengine-lib= to --with-matlab-engine-lib= to 66*7f296bb3SBarry Smith match --with-matlab-engine, print error message for deprecated 67*7f296bb3SBarry Smith form 68*7f296bb3SBarry Smith- Change --download-mpich default for optimized build to ch3:nemesis 69*7f296bb3SBarry Smith and keep ch3:sock for debug build 70*7f296bb3SBarry Smith- On macOS, --with-macos-firewall-rules can be used to automate 71*7f296bb3SBarry Smith addition of firewall rules during testing to prevent firewall 72*7f296bb3SBarry Smith popup windows 73*7f296bb3SBarry Smith 74*7f296bb3SBarry Smith```{rubric} IS: 75*7f296bb3SBarry Smith``` 76*7f296bb3SBarry Smith 77*7f296bb3SBarry Smith```{rubric} PetscDraw: 78*7f296bb3SBarry Smith``` 79*7f296bb3SBarry Smith 80*7f296bb3SBarry Smith```{rubric} VecScatter / PetscSF: 81*7f296bb3SBarry Smith``` 82*7f296bb3SBarry Smith 83*7f296bb3SBarry Smith- Add a Kokkos backend to SF. Previously, SF could only handle CUDA 84*7f296bb3SBarry Smith devices. Now it can handle other devices that Kokkos supports when 85*7f296bb3SBarry Smith PETSc is configured with Kokkos. The command line option is: 86*7f296bb3SBarry Smith -sf_backend cuda | kokkos 87*7f296bb3SBarry Smith 88*7f296bb3SBarry Smith```{rubric} PF: 89*7f296bb3SBarry Smith``` 90*7f296bb3SBarry Smith 91*7f296bb3SBarry Smith```{rubric} Vec: 92*7f296bb3SBarry Smith``` 93*7f296bb3SBarry Smith 94*7f296bb3SBarry Smith- Fix memory leaks when requesting -vec_type 95*7f296bb3SBarry Smith {standard|cuda|viennacl} when the vector is already of the desired 96*7f296bb3SBarry Smith type 97*7f296bb3SBarry Smith- Add VecViennaCLGetCL{Context|Queue|Mem} for VECVIENNACL to access 98*7f296bb3SBarry Smith the CL objects underlying the PETSc Vecs 99*7f296bb3SBarry Smith- Add VecCreate{Seq|MPI}ViennaCLWithArray and 100*7f296bb3SBarry Smith VecViennaCL{Place|Reset}Array 101*7f296bb3SBarry Smith- Add VecCreate{Seq|MPI}CUDAWithArrays to create VECCUDA sharing the 102*7f296bb3SBarry Smith CPU and/or GPU memory spaces 103*7f296bb3SBarry Smith- Add VecCreate{Seq|MPI}ViennaCLWithArrays to create VECVIENNACL 104*7f296bb3SBarry Smith sharing the CPU and/or GPU memory spaces 105*7f296bb3SBarry Smith- Add an experimental vector type VECKOKKOS 106*7f296bb3SBarry Smith- Add VecGetOffloadMask to query a Vec's offload mask 107*7f296bb3SBarry Smith 108*7f296bb3SBarry Smith```{rubric} PetscSection: 109*7f296bb3SBarry Smith``` 110*7f296bb3SBarry Smith 111*7f296bb3SBarry Smith- PetscSectionGetClosurePermutation(), 112*7f296bb3SBarry Smith PetscSectionSetClosurePermutation(), and 113*7f296bb3SBarry Smith PetscSectionGetClosureInversePermutation() all require a new 114*7f296bb3SBarry Smith argument depth and the getters require closure size to be 115*7f296bb3SBarry Smith specified by the caller. This allows multiple closure permutations 116*7f296bb3SBarry Smith to be specified, e.g., for mixed topology meshes and boundary 117*7f296bb3SBarry Smith faces and for variable-degree spaces. The previous behavior only 118*7f296bb3SBarry Smith applied to points at height zero 119*7f296bb3SBarry Smith 120*7f296bb3SBarry Smith```{rubric} PetscPartitioner: 121*7f296bb3SBarry Smith``` 122*7f296bb3SBarry Smith 123*7f296bb3SBarry Smith```{rubric} Mat: 124*7f296bb3SBarry Smith``` 125*7f296bb3SBarry Smith 126*7f296bb3SBarry Smith- Add MatSetLayouts() 127*7f296bb3SBarry Smith- Add MatSeqAIJSetTotalPreallocation(Mat,PetscInt) for efficient row 128*7f296bb3SBarry Smith by row setting of a matrix without requiring preallocating for 129*7f296bb3SBarry Smith each row 130*7f296bb3SBarry Smith- Add full support for MKL sparse matrix-matrix products in 131*7f296bb3SBarry Smith MATSEQAIJMKL 132*7f296bb3SBarry Smith- Fix few bugs for MATSEQSBAIJ when missing diagonal entries 133*7f296bb3SBarry Smith- Fix few bugs when trying to reuse matrices within MatMat 134*7f296bb3SBarry Smith operations 135*7f296bb3SBarry Smith- Deprecate MatFreeIntermediateDataStructures() in favor of 136*7f296bb3SBarry Smith MatProductClear() 137*7f296bb3SBarry Smith- Add MatShellSetMatProductOperation() to allow users specify 138*7f296bb3SBarry Smith symbolic and numeric phases for MatMat operations with MATSHELL 139*7f296bb3SBarry Smith matrices 140*7f296bb3SBarry Smith- Add support for distributed dense matrices on GPUs 141*7f296bb3SBarry Smith (MATMPIDENSECUDA) 142*7f296bb3SBarry Smith- Add few missing get/set/replace array operations for MATDENSE and 143*7f296bb3SBarry Smith MATDENSECUDA matrices 144*7f296bb3SBarry Smith- Add MatDense{Get|Restore}ColumnVec to access memory of a dense 145*7f296bb3SBarry Smith matrix as a Vec, together with read-only and write-only variants 146*7f296bb3SBarry Smith- Add MatDense{Get|Restore}SubMatrix to access memory of a 147*7f296bb3SBarry Smith contiguous subset of columns of a dense matrix as a Mat 148*7f296bb3SBarry Smith- Deprecate MatSeqDenseSetLDA in favor of MatDenseSetLDA 149*7f296bb3SBarry Smith- Add support for A\*B and A^t\*B operations with A = AIJCUSPARSE and 150*7f296bb3SBarry Smith B = DENSECUDA matrices 151*7f296bb3SBarry Smith- Add basic support for MATPRODUCT_AB (resp. MATPRODUCT_AtB) for any 152*7f296bb3SBarry Smith matrices with mult (multtranspose) operation defined and B dense 153*7f296bb3SBarry Smith- Add MATSCALAPACK, a new Mat type that wraps a ScaLAPACK matrix 154*7f296bb3SBarry Smith- Add support for MUMPS-5.3.0 distributed right-hand side 155*7f296bb3SBarry Smith- Add support for MatMultHermitianTranspose with SEQAIJCUSPARSE 156*7f296bb3SBarry Smith- Remove default generation of explicit matrix for MatMultTranspose 157*7f296bb3SBarry Smith operations with SEQAIJCUSPARSE. Users can still require it via 158*7f296bb3SBarry Smith MatSeqAIJCUSPARSESetGenerateTranspose 159*7f296bb3SBarry Smith- Add MatOrderingType external returns a NULL ordering to allow 160*7f296bb3SBarry Smith solver types MATSOLVERUMFPACK and MATSOLVERCHOLMOD to use their 161*7f296bb3SBarry Smith orderings 162*7f296bb3SBarry Smith- Add an experimental matrix type MATAIJKOKKOS 163*7f296bb3SBarry Smith 164*7f296bb3SBarry Smith```{rubric} PC: 165*7f296bb3SBarry Smith``` 166*7f296bb3SBarry Smith 167*7f296bb3SBarry Smith- Fix bugs related with reusing PCILU/PCICC/PCLU/PCCHOLESKY 168*7f296bb3SBarry Smith preconditioners with SEQAIJCUSPARSE matrices 169*7f296bb3SBarry Smith- GAMG uses MAT_SPD to default to CG for the eigen estimate in 170*7f296bb3SBarry Smith Chebyshev smoothers 171*7f296bb3SBarry Smith- Add PCMatApply() for applying a preconditioner to a block of 172*7f296bb3SBarry Smith vectors 173*7f296bb3SBarry Smith- Add -pc_factor_mat_ordering_type external to use ordering methods 174*7f296bb3SBarry Smith of MATSOLVERUMFPACK and MATSOLVERCHOLMOD 175*7f296bb3SBarry Smith- PCSetUp_LU,ILU,Cholesky,ICC() no longer compute an ordering if it 176*7f296bb3SBarry Smith is not to be used by the factorization (optimization) 177*7f296bb3SBarry Smith 178*7f296bb3SBarry Smith```{rubric} KSP: 179*7f296bb3SBarry Smith``` 180*7f296bb3SBarry Smith 181*7f296bb3SBarry Smith- Add KSPGMRESSetBreakdownTolerance() along with option 182*7f296bb3SBarry Smith -ksp_gmres_breakdown_tolerance to 3.14.3 183*7f296bb3SBarry Smith- Change KSPReasonView() to KSPConvergenceReasonView() 184*7f296bb3SBarry Smith- Change KSPReasonViewFromOptions() to 185*7f296bb3SBarry Smith KSPConvergedReasonViewFromOptions() 186*7f296bb3SBarry Smith- Add KSPConvergedDefaultSetConvergedMaxits() to declare convergence 187*7f296bb3SBarry Smith when the maximum number of iterations is reached 188*7f296bb3SBarry Smith- Fix many KSP implementations to actually perform the number of 189*7f296bb3SBarry Smith iterations requested 190*7f296bb3SBarry Smith- Add KSPMatSolve() for solving iteratively (currently only with 191*7f296bb3SBarry Smith KSPHPDDM and KSPPREONLY) systems with multiple right-hand sides, 192*7f296bb3SBarry Smith and KSP{Set|Get}MatSolveBlockSize() to set a block size limit 193*7f296bb3SBarry Smith- Chebyshev uses MAT_SPD to default to CG for the eigen estimate 194*7f296bb3SBarry Smith- Add KSPPIPECG2, a pipelined solver that reduces the number of 195*7f296bb3SBarry Smith allreduces to one per two iterations and overlaps it with two PCs 196*7f296bb3SBarry Smith and SPMVs using non-blocking allreduce 197*7f296bb3SBarry Smith 198*7f296bb3SBarry Smith```{rubric} SNES: 199*7f296bb3SBarry Smith``` 200*7f296bb3SBarry Smith 201*7f296bb3SBarry Smith- Change SNESReasonView() to SNESConvergedReasonView() 202*7f296bb3SBarry Smith- Change SNESReasonViewFromOptions() to 203*7f296bb3SBarry Smith SNESConvergedReasonViewFromOptions() 204*7f296bb3SBarry Smith 205*7f296bb3SBarry Smith```{rubric} SNESLineSearch: 206*7f296bb3SBarry Smith``` 207*7f296bb3SBarry Smith 208*7f296bb3SBarry Smith```{rubric} TS: 209*7f296bb3SBarry Smith``` 210*7f296bb3SBarry Smith 211*7f296bb3SBarry Smith- Fix examples using automatic differentiation. One can use 212*7f296bb3SBarry Smith '--download-adolc --download-colpack' to install the AD tool 213*7f296bb3SBarry Smith- Improve shift handling in TSComputeXXXJacobian() 214*7f296bb3SBarry Smith- Update TSTrajectory (type memory) to preallocate a checkpoint pool 215*7f296bb3SBarry Smith to be reused across multiple TS runs 216*7f296bb3SBarry Smith 217*7f296bb3SBarry Smith```{rubric} TAO: 218*7f296bb3SBarry Smith``` 219*7f296bb3SBarry Smith 220*7f296bb3SBarry Smith- Add lm regularizer to TAOBRGN. This regularizer turns BRGN into a 221*7f296bb3SBarry Smith Levenberg-Marquardt algorithm. TAOBRGNGetDamping() vector returns 222*7f296bb3SBarry Smith the damping vector used by this regularizer 223*7f296bb3SBarry Smith 224*7f296bb3SBarry Smith```{rubric} DM/DA: 225*7f296bb3SBarry Smith``` 226*7f296bb3SBarry Smith 227*7f296bb3SBarry Smith- Change DMComputeExactSolution() to also compute the time 228*7f296bb3SBarry Smith derivative of the exact solution 229*7f296bb3SBarry Smith- Add time derivative of the solution argument to DMAddBoundary(), 230*7f296bb3SBarry Smith DMGetBoundary(), PetscDSAddBoundary(), PetscDSUpdateBoundary(), 231*7f296bb3SBarry Smith PetscDSGetBoundary() 232*7f296bb3SBarry Smith 233*7f296bb3SBarry Smith```{rubric} DMPlex: 234*7f296bb3SBarry Smith``` 235*7f296bb3SBarry Smith 236*7f296bb3SBarry Smith- Deprecate DMPlexCreateFromCellList\[Parallel\]() in favor of 237*7f296bb3SBarry Smith DMPlexCreateFromCellList[Parallel]Petsc() which accept PETSc 238*7f296bb3SBarry Smith datatypes (PetscInt, PetscReal) 239*7f296bb3SBarry Smith- Expose DMPlexBuildFromCellList(), 240*7f296bb3SBarry Smith DMPlexBuildFromCellListParallel(), 241*7f296bb3SBarry Smith DMPlexBuildCoordinatesFromCellList(), 242*7f296bb3SBarry Smith DMPlexBuildCoordinatesFromCellListParallel(). They now accept 243*7f296bb3SBarry Smith PETSc datatypes 244*7f296bb3SBarry Smith- Add DMPlexMatSetClosureGeneral() for different row and column 245*7f296bb3SBarry Smith layouts 246*7f296bb3SBarry Smith- DMPlexGet/RestoreClosureIndices() now take argument for ignoring 247*7f296bb3SBarry Smith the closure permutation and for modifying the input values for 248*7f296bb3SBarry Smith SetClosure() 249*7f296bb3SBarry Smith- DMPlexComputeInterpolatorNested() now takes a flag allowing nested 250*7f296bb3SBarry Smith interpolation between different spaces on the same mesh 251*7f296bb3SBarry Smith- Add DMPlexInsertBoundaryValuesEssentialBdField() to insert 252*7f296bb3SBarry Smith boundary values using a field only supported on the boundary 253*7f296bb3SBarry Smith- Change DMPlexCreateSubpointIS() to DMPlexGetSubpointIS() 254*7f296bb3SBarry Smith- Add PetscDSGet/SetBdJacobianPreconditioner() to assembly a PC for 255*7f296bb3SBarry Smith the boundary Jacobian 256*7f296bb3SBarry Smith- Add DMSetRegionNumDS() to directly set the DS for a given region 257*7f296bb3SBarry Smith- Add PetscDSGetQuadrature() to get the quadrature shared by all 258*7f296bb3SBarry Smith fields in the DS 259*7f296bb3SBarry Smith- Add several refinement methods for Plex 260*7f296bb3SBarry Smith- Add DMPlexGet/SetActivePoint() to allow user to see which mesh 261*7f296bb3SBarry Smith point is being handled by projection 262*7f296bb3SBarry Smith- Add DMPlexComputeOrthogonalQuality() to compute cell-wise 263*7f296bb3SBarry Smith orthogonality quality mesh statistic 264*7f296bb3SBarry Smith- Change DMPlexSetClosurePermutationTensor() to set tensor 265*7f296bb3SBarry Smith permutations at every depth, instead of just height 0 266*7f296bb3SBarry Smith- Add DMComputeExactSolution() which uses PetscDS information 267*7f296bb3SBarry Smith- Change DMSNESCheckFromOptions() and DMTSCheckFromOptions() to get 268*7f296bb3SBarry Smith exact solution from PetscDS 269*7f296bb3SBarry Smith- Change DMPlexSNESGetGeometryFVM() to DMPlexGetGeometryFVM() 270*7f296bb3SBarry Smith- Change DMPlexSNESGetGradientDM() to DMPlexGetGradientDM() 271*7f296bb3SBarry Smith- Change DMPlexCreateSphereMesh() to take a radius 272*7f296bb3SBarry Smith- Add DMPlexCreateBallMesh() 273*7f296bb3SBarry Smith- Change DMSNESCheckDiscretization() to also take the time 274*7f296bb3SBarry Smith- Add argument to DMPlexExtrude() to allow setting normal and add 275*7f296bb3SBarry Smith options for inputs 276*7f296bb3SBarry Smith- Add DMPlexInsertTimeDerivativeBoundaryValues() 277*7f296bb3SBarry Smith- Add field number argument to DMPlexCreateRigidBody() 278*7f296bb3SBarry Smith 279*7f296bb3SBarry Smith```{rubric} DT: 280*7f296bb3SBarry Smith``` 281*7f296bb3SBarry Smith 282*7f296bb3SBarry Smith- Add PetscDTJacobiNorm() for the weighted L2 norm of Jacobi 283*7f296bb3SBarry Smith polynomials 284*7f296bb3SBarry Smith- Add PetscDTJacobiEvalJet() and PetscDTPKDEvalJet() for evaluating 285*7f296bb3SBarry Smith the derivatives of orthogonal polynomials on the segment (Jacobi) 286*7f296bb3SBarry Smith and simplex (PKD) 287*7f296bb3SBarry Smith- Add PetscDTIndexToGradedOrder() and PetscDTGradedOrderToIndex() 288*7f296bb3SBarry Smith for indexing multivariate monomials and derivatives in a linear 289*7f296bb3SBarry Smith order 290*7f296bb3SBarry Smith- Add PetscSpaceType "sum" for constructing FE spaces as the sum or 291*7f296bb3SBarry Smith concatenation of other spaces 292*7f296bb3SBarry Smith- Add PetscDSGet/SetExactSolutionTimeDerivative() 293*7f296bb3SBarry Smith- Add PetscDSSelectDiscretizations() 294*7f296bb3SBarry Smith- Add argument to DM nullspace constructors 295*7f296bb3SBarry Smith 296*7f296bb3SBarry Smith```{rubric} PetscViewer: 297*7f296bb3SBarry Smith``` 298*7f296bb3SBarry Smith 299*7f296bb3SBarry Smith- Deprecate the legacy `.vtk` (PETSC_VIEWER_ASCII_VTK) viewer. 300*7f296bb3SBarry Smith Please use `.vtr` or `.vts` for structured grids (DMDA) and 301*7f296bb3SBarry Smith `.vtu` for unstructured (DMPlex) 302*7f296bb3SBarry Smith 303*7f296bb3SBarry Smith```{rubric} SYS: 304*7f296bb3SBarry Smith``` 305*7f296bb3SBarry Smith 306*7f296bb3SBarry Smith- Add PetscPowInt64 returning a 64bit integer result for cases where 307*7f296bb3SBarry Smith PetscPowInt result overflows 32bit representations 308*7f296bb3SBarry Smith- Add PetscTimSort\[WithArray\]() for improved performance when 309*7f296bb3SBarry Smith sorting semi-ordered arrays of any type 310*7f296bb3SBarry Smith- Add PetscIntSortSemiOrdered\[WithArray\](), 311*7f296bb3SBarry Smith PetscMPIIntSortSemiOrdered\[WithArray\](), 312*7f296bb3SBarry Smith PetscRealSort\[WithArrayInt\]() which employ 313*7f296bb3SBarry Smith PetscTimSort\[WithArray\]() as backends respectively to more 314*7f296bb3SBarry Smith efficiently sort semi-ordered arrays of various Petsc datatypes 315*7f296bb3SBarry Smith- Add PetscMallocTraceSet/Get() to allow tracing of all PetscMalloc 316*7f296bb3SBarry Smith calls 317*7f296bb3SBarry Smith- Add PetscMallocLogRequestedSizeSet/Get() to allow reporting of the 318*7f296bb3SBarry Smith original requested size for mallocs, rather than the total size 319*7f296bb3SBarry Smith with alignment and header 320*7f296bb3SBarry Smith 321*7f296bb3SBarry Smith```{rubric} AO: 322*7f296bb3SBarry Smith``` 323*7f296bb3SBarry Smith 324*7f296bb3SBarry Smith```{rubric} Convest: 325*7f296bb3SBarry Smith``` 326*7f296bb3SBarry Smith 327*7f296bb3SBarry Smith- Add argument to PetscConvEstUseTS(), so you can use 328*7f296bb3SBarry Smith -ts_convergence_temporal 0 to check spatial convergence of a TS 329*7f296bb3SBarry Smith model 330*7f296bb3SBarry Smith 331*7f296bb3SBarry Smith```{rubric} Fortran: 332*7f296bb3SBarry Smith``` 333