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