<div dir="ltr"><div>Good morning PETSC team,</div><div><br></div><div>I have a bit of an open question on diagnosing preconditioner performance.</div><div><br></div><div>For a bit of background, I am using the TS object in combination with the matrix-free snes, and a custom user defined preconditioner (PCSHELL). Everything is implemented with the help of a DMDA. Smallest problem size that I can get away with is a grid with 2.1 million points with 4 fields each, for a total of 8.4 million equations.</div><div><br></div><div>The preconditioner works very well overall, but at some stages of the solution it performs poorly, evidenced by significant increases in the number of GMRES iterations and the maximum/minimum eigenvalue computed using KSPComputeExtremeSingularValues().</div><div><br></div><div>I am trying to understand the locations where the preconditioner is not working well, so for example, is there any way to map the maximum eigenvalue to a particular location/field in the DMDA. Alternatively, are there any other ways of diagnosing where the preconditioner is not doing a good job? <br></div><div><br></div><div>GMRES iterations and the max/min eigenvalue provide a good overall picture, but I am struggling to get preconditioner metrics that are specific to a location and field.<br></div><div><br></div><div>So far I have taken a close look at fields such as the residual, and Newton updates, but it is difficult to tell how to assess these in combination with the preconditioner.</div><div><br></div><div>I appreciate any suggestions.</div><div><br></div><div>Thank you and have a good day.<br></div><div><br></div><div>-Alfredo<br></div><div><br></div><div><br></div><div><br>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><font face="arial, sans-serif">Alfredo Duarte</font><div><font face="arial, sans-serif">Graduate Research Assistant</font></div><div><font face="arial, sans-serif">The University of Texas at Austin</font></div></div></div></div></div></div></div>