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