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