<div class="gmail_quote">On Fri, Dec 10, 2010 at 19:22, Filippo Spiga <span dir="ltr">&lt;<a href="mailto:filippo.spiga@disco.unimib.it">filippo.spiga@disco.unimib.it</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
So SNES runs with C=3 that is different from the default. But I would like to use the default because C=3 produces wrong errors. How I can easily reset the options&#39; database?</blockquote></div><br><div>You&#39;re making this much more complicated than necessary.  Call</div>
<div><br></div><div>KSPSetOptionsPrefix(ksp,&quot;a_&quot;);</div><div>SNESSetOptionsPrefix(snes,&quot;b_&quot;);</div><div><br></div><div>KSPSetFromOptions(ksp);</div><div>SNESSetFromOptions(snes);</div><div><br></div><div>
KSPSolve(ksp,...);</div><div>SNESSolve(snes,...);</div><div><br></div><div><br></div><div>Then you run the program with</div><div><br></div><div>  -a_ksp_type gmres -a_pc_type asm -b_snes_monitor -b_ksp_type ibcgs -b_pc_type bjacobi</div>
<div><br></div><div>or whatever.  You can control all the details of each solver independently.</div><div><br></div><div>If you *need* to control the solvers in code (usually only if you have an adaptive method where *your program* takes *active* control of the solution process), you should pull out the objects and use the API instead of strings to get what you need:</div>
<div><br></div><div>SNESGetKSP(snes,&amp;inner_ksp);</div><div>KSPSetType(inner_ksp,KSPIBCGS);</div>