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