xref: /petsc/doc/changes/dev.md (revision 1898fd5c708a8036180e7da5d8b64fabd9db1a8b)
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()` and `PCShellSetMatApplyTranspose()`
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- Add `SNESNormSchedule` support to `SNESKSPONLY`
103
104```{rubric} SNESLineSearch:
105```
106
107```{rubric} TS:
108```
109
110- Add `TSSetRunSteps()` and `-ts_run_steps` for better control of restarted jobs
111- Add `-ts_monitor_solution_skip_initial` to skip first call to the solution monitor
112- Add `-ts_monitor_wall_clock_time` to display the elapsed wall-clock time for every step
113
114```{rubric} TAO:
115```
116
117- Add `TaoBRGNSetRegularizationType()`, `TaoBRGNGetRegularizationType()`
118
119```{rubric} PetscRegressor:
120```
121
122- Add new component to support regression and classification machine learning tasks: [](ch_regressor)
123- Add `PetscRegressor` type `PETSCREGRESSORLINEAR` for solving linear regression problems with optional regularization
124
125```{rubric} DM/DA:
126```
127
128- Add `DMHasBound()`, `DM_BC_LOWER_BOUND` and `DM_BC_LOWER_BOUND`
129- Add `DMSetCellCoordinateField()`
130- Add ``localized`` argument to `DMSetCoordinateDisc()` and `DMCreateAffineCoordinates_Internal()`
131- Add `DMCreateGradientMatrix()`
132
133```{rubric} DMSwarm:
134```
135
136- Add `DMSwarmProjectFields()` and `DMSwarmProjectGradientFields()`
137
138```{rubric} DMPlex:
139```
140
141- Add `DMPlexGetTransform()`, `DMPlexSetTransform()`, `DMPlexGetSaveTransform()`, and `DMPlexSetSaveTransform()`
142- Add `DMPlexGetCoordinateMap()` and `DMPlexSetCoordinateMap()`
143- Add `DMPlexTransformCohesiveExtrudeGetUnsplit()`
144- Add `DMFieldCreateDefaultFaceQuadrature()`
145- Rename `DMPlexComputeResidual_Internal()` to `DMPlexComputeResidualForKey()`
146- Rename `DMPlexComputeJacobian_Internal()` to `DMPlexComputeJacobianByKey()`
147- Rename `DMPlexComputeJacobian_Action_Internal()` to `DMPlexComputeJacobianActionByKey()`
148- Rename `DMPlexComputeResidual_Hybrid_Internal()` to `DMPlexComputeResidualHybridByKey()`
149- Rename `DMPlexComputeJacobian_Hybrid_Internal()` to `DMPlexComputeJacobianHybridByKey()`
150- Add `DMPlexInsertBounds()`
151- Change argument order for `DMPlexComputeBdResidualSingle()` and `DMPlexComputeBdJacobianSingle()` to match domain functions
152- Add `DMPlexComputeBdResidualSingleByKey()` and `DMPlexComputeBdJacobianSingleByLabel()`
153- Add ``localized`` argument to `DMPlexCreateCoordinateSpace()`
154- Remove ``coordFunc`` argument from `DMPlexCreateCoordinateSpace()`
155
156```{rubric} FE/FV:
157```
158
159- Add `PetscFEExpandFaceQuadrature()`
160- Add `PetscFECreateBrokenElement()`
161- Change `PetscFEIntegrateJacobian()` signature to allow rectangular operators
162
163```{rubric} DMNetwork:
164```
165
166```{rubric} DMStag:
167```
168
169```{rubric} DT:
170```
171
172- Deprecate `PetscSimplePointFunc` in favor of `PetscSimplePointFn *`
173- Deprecate `PetscPointFunc` in favor of `PetscPointFn *`
174- Deprecate `PetscPointJac` in favor of `PetscPointJacFn *`
175- Deprecate `PetscBdPointFunc` in favor of `PetscBdPointFn *`
176- Deprecate `PetscBdPointJac` in favor of `PetscBdPointJacFn *`
177- Deprecate `PetscRiemannFunc` in favor of `PetscRiemannFn *`
178- Deprecate `PetscProbFunc` in favor of `PetscProbFn *`
179
180```{rubric} Fortran:
181```
182
183- Add `PetscObjectNullify()`
184