1*7f296bb3SBarry Smith# Changes: 3.13 2*7f296bb3SBarry Smith 3*7f296bb3SBarry Smith```{rubric} General: 4*7f296bb3SBarry Smith``` 5*7f296bb3SBarry Smith 6*7f296bb3SBarry Smith- Update `make test` to run the full test suite. Use 7*7f296bb3SBarry Smith `make check` to run the short test 8*7f296bb3SBarry Smith- Remove last PetscBool argument from PetscBinaryWrite() and 9*7f296bb3SBarry Smith PetscBinarySynchronizedWrite() 10*7f296bb3SBarry Smith- Change PetscLayoutFindOwner() and PetscLayoutFindOwnerIndex() to 11*7f296bb3SBarry Smith return a PetscMPIInt instead of a PetscInt 12*7f296bb3SBarry Smith- Support for Compaq F90 is removed along with supporting flags 13*7f296bb3SBarry Smith PETSC_HAVE_FORTRAN_STDCALL, PETSC_BLASLAPACK_STDCALL, 14*7f296bb3SBarry Smith HAVE_FORTRAN_MIXED_STR_ARG 15*7f296bb3SBarry Smith- Promote all example directories `examples/tutorials/` and 16*7f296bb3SBarry Smith `examples/tests/` to `tutorials/` and `tests/` respectively 17*7f296bb3SBarry Smith- Make title argument of PetscOptionsBegin() obligatory 18*7f296bb3SBarry Smith 19*7f296bb3SBarry Smith```{rubric} Configure/Build: 20*7f296bb3SBarry Smith``` 21*7f296bb3SBarry Smith 22*7f296bb3SBarry Smith```{rubric} IS: 23*7f296bb3SBarry Smith``` 24*7f296bb3SBarry Smith 25*7f296bb3SBarry Smith- Add ISSetInfo(): set local and global properties of an IS (whether 26*7f296bb3SBarry Smith the IS is sorted, unique, a permutation, an interval, or identity) 27*7f296bb3SBarry Smith- Add ISGetInfo(): query local and global properties of an IS 28*7f296bb3SBarry Smith 29*7f296bb3SBarry Smith```{rubric} PetscDraw: 30*7f296bb3SBarry Smith``` 31*7f296bb3SBarry Smith 32*7f296bb3SBarry Smith```{rubric} PetscSF: 33*7f296bb3SBarry Smith``` 34*7f296bb3SBarry Smith 35*7f296bb3SBarry Smith- Fix few bugs in PETSCSFWINDOW when using PETSCSF_WINDOW_SYNC_LOCK 36*7f296bb3SBarry Smith or PETSCSF_WINDOW_SYNC_ACTIVE synchronization types 37*7f296bb3SBarry Smith- Add window reusage for PETSCSFWINDOW and support for different 38*7f296bb3SBarry Smith creation flavor types. See PetscSFWindowFlavorType man page for 39*7f296bb3SBarry Smith details 40*7f296bb3SBarry Smith- Set default of -use_gpu_aware_mpi from false to true 41*7f296bb3SBarry Smith 42*7f296bb3SBarry Smith```{rubric} PF: 43*7f296bb3SBarry Smith``` 44*7f296bb3SBarry Smith 45*7f296bb3SBarry Smith```{rubric} Vec: 46*7f296bb3SBarry Smith``` 47*7f296bb3SBarry Smith 48*7f296bb3SBarry Smith- VecPinToCPU() is deprecated in favor of VecBindToCPU() 49*7f296bb3SBarry Smith- Add Vec{Set|Get}PinnedMemoryMin() and -vec_pinned_memory_min 50*7f296bb3SBarry Smith option. Note that VECCUDA now defaults to using pinned memory for 51*7f296bb3SBarry Smith host allocations 52*7f296bb3SBarry Smith 53*7f296bb3SBarry Smith```{rubric} VecScatter: 54*7f296bb3SBarry Smith``` 55*7f296bb3SBarry Smith 56*7f296bb3SBarry Smith```{rubric} PetscSection: 57*7f296bb3SBarry Smith``` 58*7f296bb3SBarry Smith 59*7f296bb3SBarry Smith```{rubric} PetscPartitioner: 60*7f296bb3SBarry Smith``` 61*7f296bb3SBarry Smith 62*7f296bb3SBarry Smith- PetscPartitionerPartition() does not longer gets a DM as input. 63*7f296bb3SBarry Smith Vertex weights can be specified through PetscSection 64*7f296bb3SBarry Smith- Add support for target partition weights for 65*7f296bb3SBarry Smith PETSCPARTITIONERSIMPLE, PETSCPARTITIONERPARMETIS and 66*7f296bb3SBarry Smith PETSCPARTITIONERPTSCOTCH 67*7f296bb3SBarry Smith 68*7f296bb3SBarry Smith```{rubric} Mat: 69*7f296bb3SBarry Smith``` 70*7f296bb3SBarry Smith 71*7f296bb3SBarry Smith- Improve the performance of MatConvert_AIJ_BAIJ by preallocating 72*7f296bb3SBarry Smith the Mat before dispatching to MatConvert_Basic 73*7f296bb3SBarry Smith- Change the behavior of MatConvert_AIJ_SBAIJ for block size greater 74*7f296bb3SBarry Smith than one, the block structure is now preserved (even for the 75*7f296bb3SBarry Smith diagonal entries) 76*7f296bb3SBarry Smith- Fix various bugs related with matrix conversions from Hermitian 77*7f296bb3SBarry Smith SBAIJ matrices with complex numbers 78*7f296bb3SBarry Smith- Add MatPropagateSymmetryOptions to propagate symmetry information 79*7f296bb3SBarry Smith from one matrix to another 80*7f296bb3SBarry Smith- Fix a bug in MATSUPERLU_DIST interface when MATMPIAIJ with 81*7f296bb3SBarry Smith commsize 1 is used 82*7f296bb3SBarry Smith- Add MATCHOLMOD support for block solves 83*7f296bb3SBarry Smith- --download-suitesparse now uses the official SuiteSparse 84*7f296bb3SBarry Smith repository 85*7f296bb3SBarry Smith- MatPinToCPU() is deprecated in favor of MatBindToCPU() 86*7f296bb3SBarry Smith- Fix MatAXPY for MATSHELL 87*7f296bb3SBarry Smith- MatAXPY(Y,0.0,X,DIFFERENT_NONZERO_PATTERN) no longer modifies the 88*7f296bb3SBarry Smith nonzero pattern of Y to include that of X 89*7f296bb3SBarry Smith- Add support of selective 64-bit MUMPS, i.e., the regular/default 90*7f296bb3SBarry Smith build of MUMPS. One should still build PETSc --with-64-bit-indices 91*7f296bb3SBarry Smith to handle matrices with >2G nonzeros 92*7f296bb3SBarry Smith- Add MatProductCreate(), MatProductCreateWithMat(), 93*7f296bb3SBarry Smith MatProductSetType(), MatProductSetAlgorithm(), 94*7f296bb3SBarry Smith MatProductSetFill(), MatProductSetFromOptions(), 95*7f296bb3SBarry Smith MatProductSymbolic(), MatProductNumeric(), 96*7f296bb3SBarry Smith MatProductReplaceMats(), MatProductClear() 97*7f296bb3SBarry Smith- Deprecate MatMatMultSymbolic(), MatMatMultNumeric() 98*7f296bb3SBarry Smith- Deprecate MatMatTransposeMultSymbolic(), 99*7f296bb3SBarry Smith MatMatTransposeMultNumeric() 100*7f296bb3SBarry Smith- Deprecate MatPtAPSymbolic(), MatPtAPNumeric() 101*7f296bb3SBarry Smith- Deprecate MatRARtSymbolic(), MatRARtNumeric() 102*7f296bb3SBarry Smith- Fix a deadlock with MATELEMENTAL; if one configures PETSc with 103*7f296bb3SBarry Smith Elemental *and* has PETSC_COMM_WORLD != MPI_COMM_WORLD, it is now 104*7f296bb3SBarry Smith one's responsability to explicitly call 105*7f296bb3SBarry Smith PetscElementalInitializePackage()/PetscElementalFinalizePackage() 106*7f296bb3SBarry Smith outside of PetscInitialize()/PetscFinalize(). 107*7f296bb3SBarry Smith PetscElementalInitializePackage()/PetscElementalFinalizePackage() 108*7f296bb3SBarry Smith are collective on MPI_COMM_WORLD. 109*7f296bb3SBarry Smith 110*7f296bb3SBarry Smith```{rubric} PC: 111*7f296bb3SBarry Smith``` 112*7f296bb3SBarry Smith 113*7f296bb3SBarry Smith- Change the default behavior of PCASM and PCGASM to not 114*7f296bb3SBarry Smith automatically switch to PCASMType BASIC if the matrices are 115*7f296bb3SBarry Smith symmetric 116*7f296bb3SBarry Smith- Change the default behavior of PCCHOLESKY to use nested dissection 117*7f296bb3SBarry Smith ordering for AIJ matrix 118*7f296bb3SBarry Smith 119*7f296bb3SBarry Smith```{rubric} KSP: 120*7f296bb3SBarry Smith``` 121*7f296bb3SBarry Smith 122*7f296bb3SBarry Smith- Add KSPHPDDMGetDeflationSpace and KSPHPDDMSetDeflationSpace for 123*7f296bb3SBarry Smith recycling Krylov methods in KSPHPDDM 124*7f296bb3SBarry Smith 125*7f296bb3SBarry Smith```{rubric} SNES: 126*7f296bb3SBarry Smith``` 127*7f296bb3SBarry Smith 128*7f296bb3SBarry Smith- Deprecate `-snes_test_jacobian_display` and 129*7f296bb3SBarry Smith `-snes_test_jacobian_display_threshold`. `-snes_test_jacobian` 130*7f296bb3SBarry Smith accepts an optional threshold parameter (since v3.10) and 131*7f296bb3SBarry Smith `-snes_test_jacobian_view` should be used in favor of 132*7f296bb3SBarry Smith `-snes_test_jacobian_display` 133*7f296bb3SBarry Smith 134*7f296bb3SBarry Smith```{rubric} SNESLineSearch: 135*7f296bb3SBarry Smith``` 136*7f296bb3SBarry Smith 137*7f296bb3SBarry Smith- Add SNESLineSearchGetType() in v3.13.1. 138*7f296bb3SBarry Smith 139*7f296bb3SBarry Smith```{rubric} TS: 140*7f296bb3SBarry Smith``` 141*7f296bb3SBarry Smith 142*7f296bb3SBarry Smith```{rubric} TAO: 143*7f296bb3SBarry Smith``` 144*7f296bb3SBarry Smith 145*7f296bb3SBarry Smith- TAOPDIPM: A new solver in TAO for general NLP problems 146*7f296bb3SBarry Smith 147*7f296bb3SBarry Smith```{rubric} DM/DA: 148*7f296bb3SBarry Smith``` 149*7f296bb3SBarry Smith 150*7f296bb3SBarry Smith- DMCopyLabels(): add two additional input flags 151*7f296bb3SBarry Smith- DMPlexDistribute(): fix a bug associated with vertex partition 152*7f296bb3SBarry Smith weights and overlapped meshes 153*7f296bb3SBarry Smith- DMPlexDistribute(): vertex partition weights are now computed by 154*7f296bb3SBarry Smith summing all the local section dofs in the transitive closure of 155*7f296bb3SBarry Smith each cell 156*7f296bb3SBarry Smith- Add PetscTabulation to hold function tabulation data 157*7f296bb3SBarry Smith- Add DMEnclosureType to describe relations between meshes 158*7f296bb3SBarry Smith- Add DMGetEnclosureRelation() and DMGetEnclosurePoint() to discover 159*7f296bb3SBarry Smith relations between meshes 160*7f296bb3SBarry Smith- Add DMPolytopeType to describe different cell constructions 161*7f296bb3SBarry Smith 162*7f296bb3SBarry Smith```{rubric} DMPlex: 163*7f296bb3SBarry Smith``` 164*7f296bb3SBarry Smith 165*7f296bb3SBarry Smith- DMPlexInterpolate() now works correctly for distributed DMPlex 166*7f296bb3SBarry Smith- The idea of hybrid and ghost cells has been removed from Plex in 167*7f296bb3SBarry Smith favor of cell type 168*7f296bb3SBarry Smith- Plex can now classify points by cell type, stored in a DMLabel. 169*7f296bb3SBarry Smith This is useful for operations that require more than topological 170*7f296bb3SBarry Smith data, such as mesh interpolation, geometric calculations, and is 171*7f296bb3SBarry Smith also used an index to avoid repeated topological queries 172*7f296bb3SBarry Smith- Add DMPlexSetCellType() and DMPlexCreateReferenceCellByType() 173*7f296bb3SBarry Smith- Distribution sorts strata by cell type. 174*7f296bb3SBarry Smith- Plex can now allow any number of cell types in a single mesh. 175*7f296bb3SBarry Smith Interpolation, refinement, and extraction of submeshes mixed 176*7f296bb3SBarry Smith meshes work smoothly. Both oriented and tensor-product prisms can 177*7f296bb3SBarry Smith be used in the same mesh 178*7f296bb3SBarry Smith- Cell refiners have been abstracted. Currently there are two 179*7f296bb3SBarry Smith (regular refinement, and conversion to hexes). The plan is to add 180*7f296bb3SBarry Smith more, such as local extrusion and conversion to simplices 181*7f296bb3SBarry Smith- Remove SimplexToTensor in favor of DM_REFINER_TO_BOX 182*7f296bb3SBarry Smith- DMForest now responds to DMPlexGetOverlap() and propagates its 183*7f296bb3SBarry Smith overlap to the underlying Plex 184*7f296bb3SBarry Smith- Add DMPlexGetSimplexOrBoxCells() to replace 185*7f296bb3SBarry Smith DMPlexGetInteriorCellStratum() 186*7f296bb3SBarry Smith- Add DMPolytopTypeGetDim(), DMPolyTopeTypeGetConeSize(), 187*7f296bb3SBarry Smith DMPolytopeTypeGetNumVertices() 188*7f296bb3SBarry Smith- Add DMLabelSetStratumBounds() 189*7f296bb3SBarry Smith- Add DMPlexOrientCell() which orients a single cell 190*7f296bb3SBarry Smith- Add DMPlexCompareOrientations() which compares the cone point 191*7f296bb3SBarry Smith order of a single cell with the given reference cone 192*7f296bb3SBarry Smith- Add DMPlexIsInterpolated() which finds out whether the plex is 193*7f296bb3SBarry Smith interpolated 194*7f296bb3SBarry Smith- Add DMPlexIsInterpolatedCollective() which finds out whether the 195*7f296bb3SBarry Smith plex is interpolated on all ranks 196*7f296bb3SBarry Smith- Add DMPlexIsDistributed() which finds out whether the plex is 197*7f296bb3SBarry Smith distributed 198*7f296bb3SBarry Smith 199*7f296bb3SBarry Smith```{rubric} DMNetwork: 200*7f296bb3SBarry Smith``` 201*7f296bb3SBarry Smith 202*7f296bb3SBarry Smith- Add DMNetworkSetComponentNumVariables(), 203*7f296bb3SBarry Smith DMNetworkGetComponentVariableOffset(), and 204*7f296bb3SBarry Smith DMNetworkGetComponentVariableGlobalOffset() to set number of 205*7f296bb3SBarry Smith variables for a component, and retrieve its local/global offsets. 206*7f296bb3SBarry Smith 207*7f296bb3SBarry Smith```{rubric} DT: 208*7f296bb3SBarry Smith``` 209*7f296bb3SBarry Smith 210*7f296bb3SBarry Smith- All tabulated data is now stored in PetscTabulation structures. 211*7f296bb3SBarry Smith This changes interfaces in PetscDS, PetscFE, and PetscFV 212*7f296bb3SBarry Smith- Rename DefaultTabulation to CellTabulation everywhere 213*7f296bb3SBarry Smith- PetscDTGaussJacobiQuadrature() is now truly Gauss-Jacobi 214*7f296bb3SBarry Smith quadrature. The quadrature for the simplex (without weight 215*7f296bb3SBarry Smith function) is now called PetscDTStroudConicalQuadrature() 216*7f296bb3SBarry Smith- Add PetscDTJacobiEval(), PetscDTGaussLobattoJacobiQuadrature() 217*7f296bb3SBarry Smith- Add PetscDTIndexToBary() and PetscDTBaryToIndex() for barycentric 218*7f296bb3SBarry Smith lattice calculations 219*7f296bb3SBarry Smith- Add PetscDTNodeType to enumerate methods of defining interpolation 220*7f296bb3SBarry Smith nodes 221*7f296bb3SBarry Smith- PetscDualSpace now has PetscDualSpaceSetFormDegree() and 222*7f296bb3SBarry Smith PetscDualSpaceGetFormDegree() for governing functional 223*7f296bb3SBarry Smith pushforward/pullback behavior 224*7f296bb3SBarry Smith- PETSCDUALSPACELAGRANGE now has PetscDualSpaceGetTrimmed() and 225*7f296bb3SBarry Smith PetscDualSpaceSetTrimmed() for creating degrees of freedom for 226*7f296bb3SBarry Smith trimmed polynomial spaces 227*7f296bb3SBarry Smith- PETSCDUALSPACELAGRANGE now has PetscDualSpaceGetNodeType() and 228*7f296bb3SBarry Smith PetscDualSpaceSetNodType() for controlling the placement of 229*7f296bb3SBarry Smith interpolation nodes 230*7f296bb3SBarry Smith- PETSCDUALSPACEBDM is no longer a standalone type of 231*7f296bb3SBarry Smith PetscDualSpace: it is now a constructor alias for 232*7f296bb3SBarry Smith PETSCDUALSPACELAGRANGE 233*7f296bb3SBarry Smith 234*7f296bb3SBarry Smith```{rubric} PetscViewer: 235*7f296bb3SBarry Smith``` 236*7f296bb3SBarry Smith 237*7f296bb3SBarry Smith- Remove last PetscBool argument from PetscViewerBinaryWrite() 238*7f296bb3SBarry Smith- Add "fieldnum" argument to PetscViewerVTKAddField() to indicate 239*7f296bb3SBarry Smith only one field of the vector should be viewed 240*7f296bb3SBarry Smith 241*7f296bb3SBarry Smith```{rubric} SYS: 242*7f296bb3SBarry Smith``` 243*7f296bb3SBarry Smith 244*7f296bb3SBarry Smith- Rename PetscSignalSegvCheckPointer() to 245*7f296bb3SBarry Smith PetscSignalSegvCheckPointerOrMpi() 246*7f296bb3SBarry Smith 247*7f296bb3SBarry Smith- Extend -info option controlling PetscInfo(). It now takes takes 248*7f296bb3SBarry Smith optional arguments 249*7f296bb3SBarry Smith `-info [filename][:[~]list,of,classnames[:[~]self]]`. See 250*7f296bb3SBarry Smith PetscInfo() manpage 251*7f296bb3SBarry Smith 252*7f296bb3SBarry Smith- Add new API to control PetscInfo() programatically: 253*7f296bb3SBarry Smith 254*7f296bb3SBarry Smith - Add PetscInfoEnabled() - Indicate whether a given PETSc class 255*7f296bb3SBarry Smith is allowed in PetscInfo() 256*7f296bb3SBarry Smith - Add PetscInfoSetFile() - Set output destination of PetscInfo() 257*7f296bb3SBarry Smith - Add PetscInfoGetFile() - Get output destination of PetscInfo() 258*7f296bb3SBarry Smith - Add PetscInfoSetClasses() - Sets the classes which PetscInfo() 259*7f296bb3SBarry Smith is filtered for/against 260*7f296bb3SBarry Smith - Add PetscInfoGetClass() - Indicates whether the provided 261*7f296bb3SBarry Smith classname is marked as a filter in PetscInfo() as set by 262*7f296bb3SBarry Smith PetscInfoSetClasses() 263*7f296bb3SBarry Smith - Add PetscInfoProcessClass() - Activates or deactivates a class 264*7f296bb3SBarry Smith based on the filtering status of PetscInfo() 265*7f296bb3SBarry Smith - Add PetscInfoGetInfo() - Returns the current state of several 266*7f296bb3SBarry Smith indicator flags for PetscInfo() 267*7f296bb3SBarry Smith - Add PetscInfoSetFilterCommSelf() - Sets PetscInfoCommFlag enum 268*7f296bb3SBarry Smith to control communicator size filtering for PetscInfo() 269*7f296bb3SBarry Smith - Add PetscInfoDestroy() - Destroys and resets internal 270*7f296bb3SBarry Smith PetscInfo() filter options 271*7f296bb3SBarry Smith - Change PetscInfoAllow() to only activate/deactivate 272*7f296bb3SBarry Smith PetscInfo(), file setting is now handled separately by 273*7f296bb3SBarry Smith PetscInfoSetFile() 274*7f296bb3SBarry Smith 275*7f296bb3SBarry Smith- Add PetscSubcommGetParent() - Gets the communicator that was used 276*7f296bb3SBarry Smith to create the PetscSubcomm 277*7f296bb3SBarry Smith 278*7f296bb3SBarry Smith- Add PetscSubcommGetContiguousParent() - Gets a communicator that 279*7f296bb3SBarry Smith that is a duplicate of the parent but has the ranks reordered by 280*7f296bb3SBarry Smith the order they are in the children 281*7f296bb3SBarry Smith 282*7f296bb3SBarry Smith- Add PetscSubcommGetChild() - Gets the communicator created by the 283*7f296bb3SBarry Smith PetscSubcomm 284*7f296bb3SBarry Smith 285*7f296bb3SBarry Smith- Change the default option of -build_twosided from ibarrier to 286*7f296bb3SBarry Smith allreduce for communicators with no more than 1024 ranks 287*7f296bb3SBarry Smith 288*7f296bb3SBarry Smith```{rubric} AO: 289*7f296bb3SBarry Smith``` 290*7f296bb3SBarry Smith 291*7f296bb3SBarry Smith```{rubric} Sieve: 292*7f296bb3SBarry Smith``` 293*7f296bb3SBarry Smith 294*7f296bb3SBarry Smith```{rubric} Fortran: 295*7f296bb3SBarry Smith``` 296