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