<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 3 Apr 2020 at 18:26, 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">Hi All,<br><div><br></div><div>TSSetSolution will set an initial condition for the current TSSolve(). What should I do if I want to set an initial guess for the current solution that is different from the initial condition?  The initial guess is supposed to be really close to the current solution, and then will accelerate my solver.</div><div><br></div><div>In other words, TSSetSolution will set "U_{n-1}", and now we call TSSolve to figure out "U_{n}". If I know something about "U_{n}", and I want to set "\bar{U}_{n}" as the initial guess of "U_{n}" when computing "U_{n}".</div><div><br></div></div></blockquote><div><br></div><div>IMHO, the only reliable solution would be to implement SNESSet{Pre|Post}Solve(snes, {Pre|Post}Solve, ctx) to set callback routines {Pre|Post}Solve(snes,b,x,ctx) allowing users to modify the solution vector 'x' in place (but no 'b', of course).</div><div>We already have that feature in KSP, why not SNES which is an inner loop in TS ?</div><div><br></div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Lisandro Dalcin<br>============<br>Research Scientist<br>Extreme Computing Research Center (ECRC)<br>King Abdullah University of Science and Technology (KAUST)<br><a href="http://ecrc.kaust.edu.sa/" target="_blank">http://ecrc.kaust.edu.sa/</a><br></div></div></div></div>