| 0a94a983 | 03-Mar-2022 |
Jed Brown <jed@jedbrown.org> |
PCGAMG/KSPChebyshev: clean up sticky logic
Chebyshev was re-estimating eigenvalues after the first solve even when PCGAMG was providing SA eigenvalues. The output was also confusing. Now we only sto
PCGAMG/KSPChebyshev: clean up sticky logic
Chebyshev was re-estimating eigenvalues after the first solve even when PCGAMG was providing SA eigenvalues. The output was also confusing. Now we only store what is specified directly by the user and report how we got our estimates.
MG smoother output now explains the eigenvalue targets and transform, e.g., for the typical case where it's provided by GAMG.
KSP Object: (mg_levels_1_) 1 MPI processes type: chebyshev eigenvalue targets used: min 0.197657, max 2.17423 eigenvalues provided (min 0.0234084, max 1.97657) with transform: [0. 0.1; 0. 1.1] maximum iterations=2, nonzero initial guess tolerances: relative=1e-05, absolute=1e-50, divergence=10000. left preconditioning using NONE norm type for convergence test
show more ...
|
| 2de708cb | 03-Mar-2022 |
Jed Brown <jed@jedbrown.org> |
PCGAMG: fix invalid access from redundent KSPSetFromOptions(smoother)
If the user writes -mg_levels_ksp_type richardson, for example, then the following code would be referencing invalid cheb->membe
PCGAMG: fix invalid access from redundent KSPSetFromOptions(smoother)
If the user writes -mg_levels_ksp_type richardson, for example, then the following code would be referencing invalid cheb->members after KSPSetFromOptions(smoother) changed the smoother from Chebyshev to Richardson. But we don't need this call because KSPSetFromOptions is called later in PCSetUp_MG, thus it's harmless for us to handle Chebyshev here and allow for it to be changed later.
show more ...
|