<div dir="ltr">I decided to implement the continuous adjoint because it is clearer to me how to do it and the gradient will converge anyways. I was trying to interpolate the solution, but in the adjoint analysis I need to do it once the simulation has finished. I have saved all the solutions for each time step. My idea was to reset the TS at the time step immediately previous to the time step in which I want to interpolate to:<div><br></div><div>interpolate_timestep : where I want to interpolate to</div><div>previous_timestep : last time step in our time step history which is smaller that the interpolate_timestep</div><div>Current_Sol : Solution at the time step previous_timestep<br></div><div><div><br></div><div>TSSetTime(ts,previous_timestep);</div><div>TSSetSolution(ts,Current_Sol);</div><div>TSSetRetainStages(ts,PETSC_TRUE);</div></div><div><br></div><div>TSInterpolate(ts,interpolate_timestep,X);<br></div><div><br></div><div>Vector X should have a close value to Current_Sol, but it's nowhere close. I also compare it to the solution of the next time step after previous_timestep (therefore interpolate_timestep is between these guys) and it's not close either. I've read that TSInterpolate() has to be extended to support continuous adjoints.</div><div><br></div><div>Thanks</div><div>Miguel</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 21, 2014 at 6:04 PM, Miguel Angel Salazar de Troya <span dir="ltr"><<a href="mailto:salazardetroya@gmail.com" target="_blank">salazardetroya@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">That might be a reasonable argument, but I'm not sure. This is one of the papers that explains it. I'm re-reading to see if I skipped any details:<div><br></div><div><a href="http://www.sciencedirect.com/science/article/pii/S0377042709006062" target="_blank">http://www.sciencedirect.com/science/article/pii/S0377042709006062</a><span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Miguel</div></font></span></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">On Mon, Oct 20, 2014 at 11:42 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>Miguel Angel Salazar de Troya <<a href="mailto:salazardetroya@gmail.com" target="_blank">salazardetroya@gmail.com</a>> writes:<br>
<br>
</span><span>> Thanks for your response<br>
><br>
> I'm struggling with this problem because the literature is not clear for me<br>
> on how to calculate the discrete adjoint with adaptive time stepping<br>
> algorithms. They cover the details when automatic differentiation tools are<br>
> used. They mention that because the time step depend on the solution, it<br>
> also depends on the parameter. Hence, there are terms that represent the<br>
> derivative of the time step w.r.t. the parameters. What it is confusing is<br>
> that they mention these terms must be removed. I don't understand this. I'm<br>
> planning to hard-code the discrete adjoint problem (and use the TS if<br>
> possible).<br>
<br>
</span>Are they suggesting that the time step sizes for a given run should be<br>
frozen (at least locally) so that you have consistent gradients for a<br>
while?<br>
</blockquote></div><br><br clear="all"><div><br></div></div></div>-- <br><div dir="ltr"><span class=""><font face="verdana, sans-serif"><b>Miguel Angel Salazar de Troya</b></font></span><span class=""><span><font color="#888888"><br><font face="arial,helvetica,sans-serif">Graduate Research Assistant<br>Department of Mechanical Science and Engineering<br></font>University of Illinois at Urbana-Champaign<br>(217) 550-2360<br>
<a href="mailto:salaza11@illinois.edu" target="_blank">salaza11@illinois.edu</a></font></span><div><br></div></span></div>
</div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><font face="verdana, sans-serif"><b>Miguel Angel Salazar de Troya</b></font><span><font color="#888888"><br><font face="arial,helvetica,sans-serif">Graduate Research Assistant<br>Department of Mechanical Science and Engineering<br></font>University of Illinois at Urbana-Champaign<br>(217) 550-2360<br>
<a href="mailto:salaza11@illinois.edu" target="_blank">salaza11@illinois.edu</a></font></span><div><br></div></div>
</div>