<div dir="ltr"><div>It looks like Fande has attached the eigenvalue plots with the real axis having a logarithmic scale. The same plots with a linear scale are attached here. <br></div><div><br></div><div>The system has 306 degrees of freedom. 12 eigenvalues are unity for both scaled and unscaled cases; this number corresponds to the number of mesh nodes with Dirichlet boundary conditions (just a 1 on the diagonal for the corresponding rows). The rest of the eigenvalues are orders of magnitude smaller for the unscaled case; using scaling these eigenvalues are brought much closer 1.</div><div><br></div><div>This particular problem is linear but we solve it with SNES, so constant Jacobian. We run with options '-pc_type none -ksp_gmres_restart 1000 -snes_rtol 1e-8 -ksp_rtol 1e-5` so for this linear problem it takes two non-linear iterations to solve.</div><div><br></div><div>Unscaled:</div><div><br></div><div>first nonlinear iteration takes 2 linear iterations <br></div><div>second nonlinear iteration takes 99 linear iterations</div><div><br></div><div>Scaled:</div><div><br></div><div>first nonlinear iteration takes 94 linear iterations</div><div>second nonlinear iteration takes 100 linear iterations</div><div><br></div><div>Running with `-pc_type svd` the condition number for the unscaled simulation is 4e9 while it is 2e3 for the scaled simulation.</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 6, 2020 at 4:36 PM Fande Kong <<a href="mailto:fdkong.jd@gmail.com">fdkong.jd@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi All,</div><div><br></div><div>MOOSE team, Alex and I are working on some variable scaling techniques to improve the condition number of the matrix of linear systems. The goal of variable scaling is to make the diagonal of matrix as close to unity as possible. After scaling (for certain example), the condition number of the linear system is actually reduced, but the GMRES iteration does not decrease at all. <br></div><div><br></div><div>From my understanding, the condition number is the worst estimation for GMRES convergence. That is, the GMRES iteration should not increases when the condition number decreases. This actually could example what we saw: the improved condition number does not necessary lead to a decrease in GMRES iteration. We try to understand this a bit more, and we guess that the number of eigenvalue clusters of the matrix of the linear system may/might be related to the convergence rate of GMRES.  We plot eigenvalues of scaled system and unscaled system, and the clusters look different from each other, but the GMRRES iterations are the same.</div><div><br></div><div>Anyone know what is the right relationship between the condition number and GMRES iteration? How does the number of eigenvalue clusters affect GMRES iteration?  How to count eigenvalue clusters? For example, how many eigenvalue clusters we have in the attach image respectively?</div><div><br></div><div>If you need more details, please let us know. Alex and I are happy to provide any details you are interested in.</div><div><br></div><div><br></div><div>Thanks,</div><div><br></div><div>Fande Kong,<br></div><div><br></div><div><br></div></div>
</blockquote></div>