1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
|
# Changes: 3.24
% STYLE GUIDELINES:
% * Capitalize sentences
% * Use imperative, e.g., Add, Improve, Change, etc.
% * Don't use a period (.) at the end of entries
% * If multiple sentences are needed, use a period or semicolon to divide sentences, but not at the end of the final sentence
```{rubric} General:
```
- Add `PETSCPYTHONPATH` to the generated `$PETSC_DIR/$PETSC_ARCH/lib/petsc/conf/petscvariables` file so it is available to users through the makefile system
- Add `PETSCPYTHONPATH` to the generated `$PETSC_DIR/$PETSC_ARCH/lib/pkgconfig/PETSc.pc` file so it is available to users with
`PKG_CONFIG_PATH=$PETSC_DIR/$PETSC_ARCH/lib/pkgconfig pkg-config --variable=PETSCPYTHONPATH PETSc.pc`
- Add `EXTRA_OPTIONS_INITIAL` to the test system, which prepends options
```{rubric} Configure/Build:
```
- Change `make sphinxhtml` in the `doc` directory to be `make docs`
- Change `make docs` to put all its artifacts in `${PETSC_ARCH}-doc` instead of `doc`
- Add support for `--download-xxx`, `--with-xxx`, and `-with-xxx-dir` for Python packages that install with pip. See `packages.py`
- Change `make alletags` to `make etags`
- Deactivate Fortran bindings of SuperLU_DIST and ExodusII by default, but they can still be built with the configure options `--with-superlu_dist-fortran-bindings` and `--with-exodusii-fortran-bindings`, respectively
- Add `--with-python-exec-from-env=python` to allow providing the Python to be used by mpi4py and petsc4py without hard-wiring the full path at ./configure time
```{rubric} Sys:
```
- Add `PetscOptionsBool3()`
- Add `PETSC_E`
- Deprecate `PetscSSEIsEnabled()`
- Add `PetscBTCopy()`
- Change `PetscBool` to be a C bool. It now has a size of one byte, when previously it had a size of four bytes
- Deprecate `MPIU_BOOL` in favor of `MPI_C_BOOL`. This is now possible since `PetscBool` is now a C bool
- Add `PetscStackView()` to the public API
- Change the default file pointer used in `PetscStackView()` if `NULL` is used to `PETSC_STDERR`
- Add `-petsc_viewer_stdout_format formatname` to allow initializing the format of `PETSC_VIEWER_STDOUT_()`
```{rubric} Event Logging:
```
```{rubric} PetscViewer:
```
- Add `PetscViewerHDF5SetCompress()` and `PetscViewerHDF5GetCompress()`
```{rubric} PetscDraw:
```
- Add `PetscDrawLGGetData()`
```{rubric} AO:
```
```{rubric} IS:
```
```{rubric} VecScatter / PetscSF:
```
- Change `VecSetOperation()` and `VecGetOperation()` so that their final argument must be casted with `PetscErrorCodeFn *` and `PetscErrorCodeFn **`
```{rubric} PF:
```
```{rubric} Vec:
```
```{rubric} PetscSection:
```
- Add `PetscSectionArrayView()`
```{rubric} PetscPartitioner:
```
- Add `PETSCPARTITIONERMULTISTAGE` for improved load balance, edge cut, and performances of large scale unstructured mesh partitioning.
```{rubric} Mat:
```
- Add `MatConstantDiagonalGetConstant()`
- Add `MatNullSpaceRemoveFn` type definition
- Add `MatMFFDFn`, `MatMFFDiFn`, `MatMFFDiBaseFn`, and `MatMFFDCheckhFn` type definitions
- Add `MatFDColoringFn` type definition
- Add support for `-mat_mumps_icntl_15 1` with the companion function `MatMumpsSetBlk()`
- Change `MatSetOperation()` and `MatGetOperation()` so that their final argument must be casted with `PetscErrorCodeFn *` and `PetscErrorCodeFn **`
- Change `MatShellSetOperation()` and `MatShellGetOperation()` so that their final argument must be casted with `PetscErrorCodeFn *` and `PetscErrorCodeFn **`
```{rubric} MatCoarsen:
```
```{rubric} PC:
```
- Add `PCMatApplyTranspose()` and `PCShellSetMatApplyTranspose()`
- Remove `PC_ApplyMultiple`
- Add `PCShellPSolveFn`
- Add `PCModifySubMatricesFn`
- Remove `PCSetPreSolve()` and `PCSetPostSolve()`. See `PCSetPostSetUp()`
```{rubric} KSP:
```
- Add `MatLMVMGetLastUpdate()`
- Add `MatLMVMMultAlgorithm`, `MatLMVMSetMultAlgorithm()`, and `MatLMVMGetMultAlgorithm()`
- Add `MatLMVMSymBroydenGetPhi()` and `MatLMVMSymBroydenSetPhi()`
- Add `MatLMVMSymBadBroydenGetPsi()` and `MatLMVMSymBadBroydenSetPsi()`
- 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`
- Add `KSPFlexibleSetModifyPC()` to provide a common API for setting the modification function for all flexible `KSP` methods
- Add `KSPFlexibleModifyPCFn` function prototype
- Change the function signature of the `destroy()` argument to `KSPSetConvergenceTest()` to `PetscCtxDestroyFn*`. If you provide custom destroy
functions to `KSPSetConvergenceTest()` you must change them to expect a `void **` argument and immediately dereference the input
- Add `KSPPSolveFn`
- Change `KSPMonitorResidualDraw()` to `KSPMonitorResidualView()`
- Change `KSPMonitorTrueResidualDraw()` to `KSPMonitorTrueResidualView()`
```{rubric} SNES:
```
- Change `SNESTestJacobian()` to report the norms
- Add `SNESNormSchedule` support to `SNESKSPONLY`
```{rubric} SNESLineSearch:
```
- Rename option `snes_linesearch_maxstep` to `snes_linesearch_maxlambda` to better coincide with its purpose in the various `SNESLineSearch`es
- Rename `SNESLineSearchL2` to `SNESLineSearchSecant` (and hence its option entry `snes_linesearch_type` form `l2` to `secant`) to better represent the underlying approach
```{rubric} TS:
```
- Add `TSSetRunSteps()` and `-ts_run_steps` for better control of restarted jobs
- Add `-ts_monitor_solution_skip_initial` to skip first call to the solution monitor
- Add `-ts_monitor_wall_clock_time` to display the elapsed wall-clock time for every step
- Change `TSDiscGradIsGonzalez()`, `TSDiscGradUseGonzalez()` to `TSDiscGradSetType()`,`TSDiscGradGetType()`
```{rubric} TAO:
```
- Add `TaoBRGNSetRegularizationType()`, `TaoBRGNGetRegularizationType()`
- Add `TaoGetInequalityConstraintsRoutine()`, `TaoGetEqualityConstraintsRoutine()`, `TaoGetJacobianInequalityRoutine()` and `TaoGetJacobianEqualityRoutine()`
```{rubric} PetscRegressor:
```
- Add new component to support regression and classification machine learning tasks: [](ch_regressor)
- Add `PetscRegressor` type `PETSCREGRESSORLINEAR` for solving linear regression problems with optional regularization
```{rubric} DM/DA:
```
- Add `DMHasBound()`, `DM_BC_LOWER_BOUND` and `DM_BC_LOWER_BOUND`
- Add `DMSetCellCoordinateField()`
- Add ``localized`` argument to `DMSetCoordinateDisc()` and `DMCreateAffineCoordinates_Internal()`
- Add `DMCreateGradientMatrix()`
```{rubric} DMSwarm:
```
- Add `DMSwarmProjectFields()` and `DMSwarmProjectGradientFields()`
```{rubric} DMPlex:
```
- Add `DMPlexGetTransform()`, `DMPlexSetTransform()`, `DMPlexGetSaveTransform()`, and `DMPlexSetSaveTransform()`
- Add `DMPlexGetCoordinateMap()` and `DMPlexSetCoordinateMap()`
- Add `DMPlexTransformCohesiveExtrudeGetUnsplit()`
- Add `DMFieldCreateDefaultFaceQuadrature()`
- Rename `DMPlexComputeResidual_Internal()` to `DMPlexComputeResidualForKey()`
- Rename `DMPlexComputeJacobian_Internal()` to `DMPlexComputeJacobianByKey()`
- Rename `DMPlexComputeJacobian_Action_Internal()` to `DMPlexComputeJacobianActionByKey()`
- Rename `DMPlexComputeResidual_Hybrid_Internal()` to `DMPlexComputeResidualHybridByKey()`
- Rename `DMPlexComputeJacobian_Hybrid_Internal()` to `DMPlexComputeJacobianHybridByKey()`
- Add `DMPlexInsertBounds()`
- Change argument order for `DMPlexComputeBdResidualSingle()` and `DMPlexComputeBdJacobianSingle()` to match domain functions
- Add `DMPlexComputeBdResidualSingleByKey()` and `DMPlexComputeBdJacobianSingleByLabel()`
- Add ``localized`` argument to `DMPlexCreateCoordinateSpace()`
- Remove ``coordFunc`` argument from `DMPlexCreateCoordinateSpace()`
- Change `DMPlexExtrude()` to take a label argument
- Rename `DMPlexVecGetOrientedClosure_Internal()` to `DMPlexVecGetOrientedClosure()`
- Correctly handle `Mat` preallocation for isoperiodic boundary conditions
```{rubric} FE/FV:
```
- Add `PetscFEExpandFaceQuadrature()`
- Add `PetscFECreateBrokenElement()`
- Change `PetscFEIntegrateJacobian()` signature to allow rectangular operators
```{rubric} DMNetwork:
```
```{rubric} DMStag:
```
```{rubric} DT:
```
- Deprecate `PetscSimplePointFunc` in favor of `PetscSimplePointFn *`
- Deprecate `PetscPointFunc` in favor of `PetscPointFn *`
- Deprecate `PetscPointJac` in favor of `PetscPointJacFn *`
- Deprecate `PetscBdPointFunc` in favor of `PetscBdPointFn *`
- Deprecate `PetscBdPointJac` in favor of `PetscBdPointJacFn *`
- Deprecate `PetscRiemannFunc` in favor of `PetscRiemannFn *`
- Deprecate `PetscProbFunc` in favor of `PetscProbFn *`
- Add `PetscDTCreateQuadratureByCell()`
```{rubric} Fortran:
```
- Add `PetscObjectNullify()`
- Require Fortran compiler to have `.true.=b00000001` and `.false.=b00000000` for `logical(C_BOOL)`. Thus require the compiler flags `-fpscomp logicals` for Intel and `-Munixlogical` for NVIDIA compilers
- Change `PetscBool` to be `logical(C_BOOL)` (equivalent to a `logical(kind=1)`). It now has a size of one byte, previously it was a `logical(kind=4)` and had a size of four bytes
- Remove the `./configure` option `-with-fortran-type-initialize=0`. Hence, it is now not possible to include PETSc objects in common blocks
|