> On Dec 3, 2014, at 9:04 PM, Patrick Sanan <[email protected]> wrote: > > > > > >> Il giorno Dec 4, 2014, alle ore 11:49 AM, Barry Smith <[email protected]> >> ha scritto: >> >> >>> On Dec 3, 2014, at 7:26 PM, Patrick Sanan <[email protected]> wrote: >>> >>> I'd like to be able to obtain and process post-solve information about KSP >>> solves, after a PETSc application has run. Specifically, I would like the >>> information produced by -ksp_converged_reason, as well as the final >>> residual norm, to be available as a file for post-processing. >>> >>> A direct approach is to modify the application source, adding my own code >>> invoking KSPGetIterationNumber(), KSPGetConvergedReason(), >>> KSPGetResidualNorm(), etc. to the source, and producing the required output >>> with an ASCII viewer. >>> >>> However, it'd be more convenient to be able to obtain the required >>> information without modifying the application source. An inelegant and >>> potentially fragile approach is to provide flags like >>> -ksp_converged_reason, -ksp_monitor, etc. and write a script to extract the >>> required information from what is dumped to stdout. >>> >>> My first thought on how to do things properly is to link in my own custom >>> KSP viewer; should that be a viable approach? Is there a simpler/better >>> method? >> >> We have ways to add your own monitor with KSPMonitorSet() but for viewer >> basically you would just write your own viewer function and then call it >> directly. >> > Ok- thats what Im essentially doing now, but (if I understand you correctly) > this still involves modifying the source of the application I want to analyze > - I was wondering how easy it would be to write my own viewer, link it in > when I compile my application,
You can do this part. > and then supply a command line option to invoke it at runtime. We don't have a way of registering new viewers at run time. Barry > >> Barry >> >>> >>> -Patrick
