xref: /petsc/doc/changes/dev.md (revision 8cb7430d5ab4dcb16baef553758fd6059504e8f8)
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