xref: /petsc/doc/changes/310.md (revision f8b9f887efa5534f423807e37a1fe2e87d779bac)
1# Changes: 3.10
2
3```{rubric} General:
4```
5
6- Removed --with-errorchecking configure option.
7- Added new command line option -viewfromoptions to disable
8  `XXXViewFromOptions()` calls.
9
10```{rubric} Configure/Build:
11```
12
13- Removed --with-viewfromoptions configure option in favor of the
14  new command line option -viewfromoptions.
15
16- Following options are renamed to have more consistent names:
17
18  ```
19  --with-packages-dir          -> --with-packages-download-dir
20  --with-external-packages-dir -> --with-packages-build-dir
21  --package-dirs               -> --with-packages-search-path
22  --search-dirs                -> --with-executables-search-path
23  ```
24
25```{rubric} IS:
26```
27
28```{rubric} PetscDraw:
29```
30
31```{rubric} PF:
32```
33
34```{rubric} Vec:
35```
36
37```{rubric} VecScatter:
38```
39
40```{rubric} PetscSection:
41```
42
43```{rubric} Mat:
44```
45
46- MatNullSpaceTest() now respects the options prefix of the provided
47  Mat.
48- Added MatMatTransposeSolve() to MUMPS interface.
49- Added -mat_mumps_use_omp_threads [m] option to better support
50  OpenMP in MUMPS.
51- Added MatPartitioningViewFromOptions().
52- Added MatPartitioningApplyND() to compute a nested dissection
53  ordering of a matrix.
54- Deprecated MatISGetMPIXAIJ() in favour of MatConvert().
55- Added new matrix types for limited-memory variable-metric
56  (MATLMVM) approximations of Jacobians.
57- Added MATAIJSELL, a sub-type of AIJ that uses SELL format
58  internally for SELL-optimized operations.
59
60```{rubric} PC:
61```
62
63- PCKSPGetKSP() now raises an error if called on a PC which is not
64  of type PCKSP
65- Added PCKSPSetKSP()
66- Added new PC based on the new LMVM matrices.
67
68```{rubric} KSP:
69```
70
71- The KSP viewing options have changed. Now
72
73  - -ksp_compute_eigenvalues becomes -ksp_view_eigenvalues ascii
74  - -ksp_plot_eigenvalues becomes -ksp_view_eigenvalues draw
75  - -ksp_plot_eigencontours becomes -ksp_view_eigenvalues
76    draw::draw_contour
77  - -ksp_compute_eigenvalues_explicitly becomes
78    -ksp_view_eigenvalues_explicit ascii
79  - -ksp_plot_eigenvalues_explicitly becomes
80    -ksp_view_eigenvalues_explicit draw
81  - -ksp_compute_singularvalues becomes -ksp_view_singularvalues
82    ascii
83  - -ksp_final_residual becomes -ksp_view_final_residual
84
85- `KSPLSQR`
86
87  - Computes now an estimate of the operator's norm in the same way
88    as Saunders and MATLAB, and uses it in the type-specific
89    stopping criterion `KSPLSQRConvergedDefault()`; this now
90    gives the same number of iterations as MATLAB's `lsqr()`.
91  - Added `-ksp_lsqr_exact_mat_norm` and
92    `KSPLSQRSetExactMatNorm()` to optionally compute and use the
93    exact Frobenius norm instead of the estimate.
94  - `KSPLSQRMonitorDefault()` and `-ksp_lsqr_monitor` now
95    additionally print the (estimate of) the operator's norm.
96  - Allow setting `-ksp_convergence_test lsqr` (it's a default
97    for `KSPLSQR`, though).
98  - `KSPLSQRSetStandardErrorVec()` is replaced by
99    `KSPLSQRSetComputeStandardErrorVec()` which now specifies
100    whether standard error vector should be computed instead of
101    setting the vector;
102  - likewise, option `-ksp_lsqr_set_standard_error` is replaced
103    by `-ksp_lsqr_compute_standard_error`.
104  - Renamed `KSPLSQRGetArnorm()` to `KSPLSQRGetNorms()` and
105    removed its `rhs_norm` argument.
106  - Renamed `KSPLSQRDefaultConverged()` to
107    `KSPLSQRConvergedDefault()` merged with
108    `KSPConvergedLSQR()`.
109
110```{rubric} SNES:
111```
112
113- SNESSetTolerances() and -snes_max_funcs now accept -1 to indicate
114  unlimited number of function evaluations.
115
116```{rubric} SNESLineSearch:
117```
118
119```{rubric} TAO:
120```
121
122- Added bound-constrained Newton-Krylov methods (BNLS, BNTR, BNTL).
123- All quasi-Newton methods updated to use the new LMVM Mat objects.
124- Added a bound-constrained quasi-Newton line search (BQNLS) method
125  that re-uses BNLS infrastructure to replace BLMVM on next release.
126- Bound-constrained conjugate gradient method expanded with new CG
127  update types and nonlinear preconditioning.
128- Removed `-tao_type test`.
129- Gradient testing can now be accessed with the options
130  `-tao_test_gradient`, `-tao_test_gradient_view`, and Hessian
131  testing can be done with `-tao_test_hessian`,
132  `-tao_test_hessian_view` (also works for matrix-free Hessian).
133
134```{rubric} TS:
135```
136
137- Added symplectic time integrators for separable Hamiltonian
138  systems (-ts_type basicsymplectic).
139
140```{rubric} DM/DA:
141```
142
143- Renamed `DMDAGetReducedDMDA()` to
144  `DMDACreateCompatibleDMDA()`.
145- Added DMGetCompatibility() and implementation for DMDA
146
147```{rubric} DMPlex:
148```
149
150- Added an interface DM and boundary label to
151  DMPlexCreateHybridMesh()
152- More refined control of `DMView()` when
153  `PetscViewerType=PETSCVIEWERHDF5`. `PetscViewerFormat` can now
154  be one of
155  `{PETSC_VIEWER_HDF5_VIZ, PETSC_VIEWER_HDF5_XDMF, PETSC_VIEWER_HDF5_PETSC, PETSC_VIEWER_DEFAULT}`.
156- Parallel mesh load (i.e. mesh distributed right from beginning)
157  with `DMLoad()`, `PetscViewerType=PETSCVIEWERHDF5` and
158  `PetscViewerFormat=PETSC_VIEWER_HDF5_XDMF`, or
159  `DMPlexCreateFromFile()` and `-dm_plex_create_from_hdf5_xdmf`.
160
161```{rubric} PetscViewer:
162```
163
164Added argument to `PetscViewerVTKAddField()` to allow skipping of
165DM check as fields are added
166.. rubric:: SYS:
167
168```{rubric} AO:
169```
170
171```{rubric} Sieve:
172```
173
174```{rubric} Fortran:
175```
176