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