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