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