petsc-3.14.5 2021-03-03
Report Typos and Errors

# Documentation: Changes: 3.10

## CHANGES in the PETSc 3.10 Version

#### General:

- Removed `--with-errorchecking` configure option.
- Added new command line option `-viewfromoptions` to disable `XXXViewFromOptions()` calls.

#### Configure/Build:

- Removed `--with-viewfromoptions` configure option in favor of the new command line option `-viewfromoptions`.
- Following options are renamed to have more consistant names:

                --with-packages-dir          -> --with-packages-download-dir
                --with-external-packages-dir -> --with-packages-build-dir
                --package-dirs               -> --with-packages-search-path
                --search-dirs                -> --with-executables-search-path

#### IS:

#### PetscDraw:

#### PF:

#### Vec:

#### VecScatter:

#### PetscSection:

#### Mat:

- MatNullSpaceTest() now respects the options prefix of the provided Mat.
- Added MatMatTransposeSolve() to MUMPS interface.
- Added -mat_mumps_use_omp_threads [m] option to better support OpenMP in MUMPS.
- Added MatPartitioningViewFromOptions().
- Added MatPartitioningApplyND() to compute a nested dissection ordering of a matrix.
- Deprecated MatISGetMPIXAIJ() in favour of MatConvert().
- Added new matrix types for limited-memory variable-metric (MATLMVM) approximations of Jacobians.
- Added MATAIJSELL, a sub-type of AIJ that uses SELL format internally for SELL-optimized operations.

#### PC:

- PCKSPGetKSP() now raises an error if called on a PC which is not of type PCKSP
- Added PCKSPSetKSP()
- Added new PC based on the new LMVM matrices.

#### KSP:

- The KSP viewing options have changed. Now
  - -ksp_compute_eigenvalues becomes -ksp_view_eigenvalues ascii
  - -ksp_plot_eigenvalues becomes -ksp_view_eigenvalues draw
  - -ksp_plot_eigencontours becomes -ksp_view_eigenvalues draw::draw_contour
  - -ksp_compute_eigenvalues_explicitly becomes -ksp_view_eigenvalues_explicit ascii
  - -ksp_plot_eigenvalues_explicitly becomes -ksp_view_eigenvalues_explicit draw
  - -ksp_compute_singularvalues becomes -ksp_view_singularvalues ascii
  - -ksp_final_residual becomes -ksp_view_final_residual
- `KSPLSQR`
  - Computes now an estimate of the operator's norm in the same way as Saunders and MATLAB, and uses it in the type-specific stopping criterion `KSPLSQRConvergedDefault()`; this now gives the same number of iterations as MATLAB's `lsqr()`.
  - Added `-ksp_lsqr_exact_mat_norm` and `KSPLSQRSetExactMatNorm()` to optionally compute and use the exact Frobenius norm instead of the estimate.
  - `KSPLSQRMonitorDefault()` and `-ksp_lsqr_monitor` now additionally print the (estimate of) the operator's norm.
  - Allow setting `-ksp_convergence_test lsqr` (it's a default for `KSPLSQR`, though).
  - `KSPLSQRSetStandardErrorVec()` is replaced by `KSPLSQRSetComputeStandardErrorVec()` which now specifies whether standard error vector should be computed instead of setting the vector;
  - likewise, option `-ksp_lsqr_set_standard_error` is replaced by `-ksp_lsqr_compute_standard_error`.
  - Renamed `KSPLSQRGetArnorm()` to `KSPLSQRGetNorms()` and removed its `rhs_norm` argument.
  - Renamed `KSPLSQRDefaultConverged()` to `KSPLSQRConvergedDefault()` merged with `KSPConvergedLSQR()`.

#### SNES:

- SNESSetTolerances() and -snes_max_funcs now accept -1 to indicate unlimited number of function evaluations.

#### SNESLineSearch:

#### TAO:

- Added bound-constrained Newton-Krylov methods (BNLS, BNTR, BNTL).
- All quasi-Newton methods updated to use the new LMVM Mat objects.
- Added a bound-constrained quasi-Newton line search (BQNLS) method that re-uses BNLS infrastructure to replace BLMVM on next release.
- Bound-constrained conjugate gradient method expanded with new CG update types and nonlinear preconditioning.
- Removed `-tao_type test`.
- Gradient testing can now be accessed with the options `-tao_test_gradient`, `-tao_test_gradient_view`, and Hessian testing can be done with `-tao_test_hessian`, `-tao_test_hessian_view` (also works for matrix-free Hessian).

#### TS:

- Added symplectic time integrators for separable Hamiltonian systems (-ts_type basicsymplectic).

#### DM/DA:

- Renamed `DMDAGetReducedDMDA()` to `DMDACreateCompatibleDMDA()`.
- Added DMGetCompatibility() and implementation for DMDA

#### DMPlex:

- Added an interface DM and boundary label to DMPlexCreateHybridMesh()
- More refined control of `DMView()` when `PetscViewerType=PETSCVIEWERHDF5`. `PetscViewerFormat` can now be one of `{PETSC_VIEWER_HDF5_VIZ, PETSC_VIEWER_HDF5_XDMF, PETSC_VIEWER_HDF5_PETSC, PETSC_VIEWER_DEFAULT}`.
- Parallel mesh load (i.e. mesh distributed right from beginning) with `DMLoad()`, `PetscViewerType=PETSCVIEWERHDF5` and `PetscViewerFormat=PETSC_VIEWER_HDF5_XDMF`, or `DMPlexCreateFromFile()` and `-dm_plex_create_from_hdf5_xdmf`.

#### PetscViewer:

- Added argument to `PetscViewerVTKAddField()` to allow skipping of DM check as fields are added

#### SYS:

#### AO:

#### Sieve:

#### Fortran: