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