<div class="gmail_quote">On Thu, Oct 20, 2011 at 09:34, Klaij, Christiaan <span dir="ltr">&lt;<a href="mailto:C.Klaij@marin.nl">C.Klaij@marin.nl</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":3gt">call KSPMonitorSet(ksp,KSPMonitorSingularValue,PETSC_NULL,PETSC_NULL,ierr);<br></div></blockquote><div><br></div><div>This gets KSPMonitorSingularValue called after each iteration. That routine prints the singular values.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div id=":3gt">
call KSPSetComputeSingularValues(ksp,PETSC_TRUE,ierr)<br></div></blockquote><div><br></div><div>This instructs the KSP to save the extra information needed by the monitor above.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":3gt">
<br>
in the part where I initialize the KSP. But where to call<br>
KSPMonitorSingularValue? And how do I get &quot;n&quot; and &quot;rnorm&quot;?<br></div></blockquote></div><br><div>Do you want a monitor or do you want to extract estimates of the singular values after KSPSolve has converged? You might be interested in KSPComputeExtremeSingularValues(), for example.</div>