1# Changes: Development 2 3% STYLE GUIDELINES: 4% * Capitalize sentences 5% * Use imperative, e.g., Add, Improve, Change, etc. 6% * Don't use a period (.) at the end of entries 7% * If multiple sentences are needed, use a period or semicolon to divide sentences, but not at the end of the final sentence 8 9```{rubric} General: 10``` 11 12- Add `PETSCPYTHONPATH` to the generated `$PETSC_DIR/$PETSC_ARCH/lib/petsc/conf/petscvariables` file so it is available to users through the makefile system 13- Add `PETSCPYTHONPATH` to the generated `$PETSC_DIR/$PETSC_ARCH/lib/pkgconfig/PETSc.pc` file so it is available to users with 14 `PKG_CONFIG_PATH=$PETSC_DIR/$PETSC_ARCH/lib/pkgconfig pkg-config --variable=PETSCPYTHONPATH PETSc.pc` 15 16```{rubric} Configure/Build: 17``` 18 19- Change `make sphinxhtml` in the `doc` directory to be `make docs` 20- Change `make docs` to put all its artifacts in `${PETSC_ARCH}-doc` instead of `doc` 21- Add support for `--download-xxx`, `--with-xxx`, and `-with-xxx-dir` for Python packages that install with pip. See packages.py 22- Change `make alletags` to `make etags` 23 24```{rubric} Sys: 25``` 26 27- Add `PETSC_E` 28 29- Deprecate `PetscSSEIsEnabled()` 30- Add `PetscBTCopy()` 31 32```{rubric} Event Logging: 33``` 34 35```{rubric} PetscViewer: 36``` 37 38- Add `PetscViewerHDF5SetCompress()` and `PetscViewerHDF5GetCompress()` 39 40```{rubric} PetscDraw: 41``` 42 43- Add `PetscDrawLGGetData()` 44 45```{rubric} AO: 46``` 47 48```{rubric} IS: 49``` 50 51```{rubric} VecScatter / PetscSF: 52``` 53 54```{rubric} PF: 55``` 56 57```{rubric} Vec: 58``` 59 60```{rubric} PetscSection: 61``` 62 63```{rubric} PetscPartitioner: 64``` 65 66```{rubric} Mat: 67``` 68 69- Add `MatConstantDiagonalGetConstant()` 70- Add `MatNullSpaceRemoveFn` type definition 71- Add `MatMFFDFn`, `MatMFFDiFn`, `MatMFFDiBaseFn`, and `MatMFFDCheckhFn` type definitions 72- Add `MatFDColoringFn` type definition 73- Add support for `-mat_mumps_icntl_15 1` with the companion function `MatMumpsSetBlk()` 74 75```{rubric} MatCoarsen: 76``` 77 78```{rubric} PC: 79``` 80 81- Add `PCMatApplyTranspose()` and `PCShellSetMatApplyTranspose()` 82- Remove `PC_ApplyMultiple` 83- Add `PCShellPSolveFn` 84- Add `PCModifySubMatricesFn` 85 86```{rubric} KSP: 87``` 88 89- Add `MatLMVMGetLastUpdate()` 90- Add `MatLMVMMultAlgorithm`, `MatLMVMSetMultAlgorithm()`, and `MatLMVMGetMultAlgorithm()` 91- Add `MatLMVMSymBroydenGetPhi()` and `MatLMVMSymBroydenSetPhi()` 92- Add `MatLMVMSymBadBroydenGetPsi()` and `MatLMVMSymBadBroydenSetPsi()` 93- Deprecate `KSP_CONVERGED_RTOL_NORMAL` in favor of `KSP_CONVERGED_RTOL_NORMAL_EQUATIONS` and `KSP_CONVERGED_ATOL_NORMAL` in favor of `KSP_CONVERGED_ATOL_NORMAL_EQUATIONS` 94- Add `KSPFlexibleSetModifyPC()` to provide a common API for setting the modification function for all flexible `KSP` methods 95- Add `KSPFlexibleModifyPCFn` function prototype 96- Change the function signature of the `destroy()` argument to `KSPSetConvergenceTest()` to `PetscCtxDestroyFn*`. If you provide custom destroy 97 functions to `KSPSetConvergenceTest()` you must change them to expect a `void **` argument and immediately dereference the input 98- Add `KSPPSolveFn` 99 100```{rubric} SNES: 101``` 102 103- Change `SNESTestJacobian()` to report the norms 104- Add `SNESNormSchedule` support to `SNESKSPONLY` 105 106```{rubric} SNESLineSearch: 107``` 108 109```{rubric} TS: 110``` 111 112- Add `TSSetRunSteps()` and `-ts_run_steps` for better control of restarted jobs 113- Add `-ts_monitor_solution_skip_initial` to skip first call to the solution monitor 114- Add `-ts_monitor_wall_clock_time` to display the elapsed wall-clock time for every step 115 116```{rubric} TAO: 117``` 118 119- Add `TaoBRGNSetRegularizationType()`, `TaoBRGNGetRegularizationType()` 120 121```{rubric} PetscRegressor: 122``` 123 124- Add new component to support regression and classification machine learning tasks: [](ch_regressor) 125- Add `PetscRegressor` type `PETSCREGRESSORLINEAR` for solving linear regression problems with optional regularization 126 127```{rubric} DM/DA: 128``` 129 130- Add `DMHasBound()`, `DM_BC_LOWER_BOUND` and `DM_BC_LOWER_BOUND` 131- Add `DMSetCellCoordinateField()` 132- Add ``localized`` argument to `DMSetCoordinateDisc()` and `DMCreateAffineCoordinates_Internal()` 133- Add `DMCreateGradientMatrix()` 134 135```{rubric} DMSwarm: 136``` 137 138- Add `DMSwarmProjectFields()` and `DMSwarmProjectGradientFields()` 139 140```{rubric} DMPlex: 141``` 142 143- Add `DMPlexGetTransform()`, `DMPlexSetTransform()`, `DMPlexGetSaveTransform()`, and `DMPlexSetSaveTransform()` 144- Add `DMPlexGetCoordinateMap()` and `DMPlexSetCoordinateMap()` 145- Add `DMPlexTransformCohesiveExtrudeGetUnsplit()` 146- Add `DMFieldCreateDefaultFaceQuadrature()` 147- Rename `DMPlexComputeResidual_Internal()` to `DMPlexComputeResidualForKey()` 148- Rename `DMPlexComputeJacobian_Internal()` to `DMPlexComputeJacobianByKey()` 149- Rename `DMPlexComputeJacobian_Action_Internal()` to `DMPlexComputeJacobianActionByKey()` 150- Rename `DMPlexComputeResidual_Hybrid_Internal()` to `DMPlexComputeResidualHybridByKey()` 151- Rename `DMPlexComputeJacobian_Hybrid_Internal()` to `DMPlexComputeJacobianHybridByKey()` 152- Add `DMPlexInsertBounds()` 153- Change argument order for `DMPlexComputeBdResidualSingle()` and `DMPlexComputeBdJacobianSingle()` to match domain functions 154- Add `DMPlexComputeBdResidualSingleByKey()` and `DMPlexComputeBdJacobianSingleByLabel()` 155- Add ``localized`` argument to `DMPlexCreateCoordinateSpace()` 156- Remove ``coordFunc`` argument from `DMPlexCreateCoordinateSpace()` 157- Change `DMPlexExtrude()` to take a label argument 158 159```{rubric} FE/FV: 160``` 161 162- Add `PetscFEExpandFaceQuadrature()` 163- Add `PetscFECreateBrokenElement()` 164- Change `PetscFEIntegrateJacobian()` signature to allow rectangular operators 165 166```{rubric} DMNetwork: 167``` 168 169```{rubric} DMStag: 170``` 171 172```{rubric} DT: 173``` 174 175- Deprecate `PetscSimplePointFunc` in favor of `PetscSimplePointFn *` 176- Deprecate `PetscPointFunc` in favor of `PetscPointFn *` 177- Deprecate `PetscPointJac` in favor of `PetscPointJacFn *` 178- Deprecate `PetscBdPointFunc` in favor of `PetscBdPointFn *` 179- Deprecate `PetscBdPointJac` in favor of `PetscBdPointJacFn *` 180- Deprecate `PetscRiemannFunc` in favor of `PetscRiemannFn *` 181- Deprecate `PetscProbFunc` in favor of `PetscProbFn *` 182- Add `PetscDTCreateQuadratureByCell()` 183 184```{rubric} Fortran: 185``` 186 187- Add `PetscObjectNullify()` 188