<div dir="ltr">Thanks for your response<div><br></div><div>I'm struggling with this problem because the literature is not clear for me on how to calculate the discrete adjoint with adaptive time stepping algorithms. They cover the details when automatic differentiation tools are used. They mention that because the time step depend on the solution, it also depends on the parameter. Hence, there are terms that represent the derivative of the time step w.r.t. the parameters. What it is confusing is that they mention these terms must be removed. I don't understand this. I'm planning to hard-code the discrete adjoint problem (and use the TS if possible).</div><div><br></div><div>I know this might not be the place to ask this. Maybe Hong can help me here.</div><div><br></div><div>Miguel</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Oct 19, 2014 at 1:41 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 class="">Miguel Angel Salazar de Troya <<a href="mailto:salazardetroya@gmail.com">salazardetroya@gmail.com</a>> writes:<br>
<br>
> Hi all<br>
><br>
> I'm trying to find out what is the adaptive controller scheme used in the<br>
> Runge-Kutta time stepping algorithm. Basically I want to know the function<br>
> that determines the next time step. I see that the next time step is set<br>
> with the function TSAdaptChoose(), which calls the pointer function<br>
> (*choose)() within the structure _TSAdaptOps, but where is this set?<br>
<br>
</span>via TSAdaptSetType.  The default will be TSAdaptChoose_Basic<br>
(adaptbasic.c).  You can find this information easily by running in a<br>
debugger.<br>
<span class=""><br>
> I need to know this for an adjoint analysis to calculate gradients. I was<br>
> wondering if there is an example of such analysis with the TS structure.<br>
> I've seen that the RK source file includes a funciton to interpolate the<br>
> solution, something that is necessary in an adjoint analysis, hence my<br>
> question about the example.<br>
<br>
</span>Interpolation arises for "continuous" adjoints.  Be aware that if you<br>
want consistent gradients, you'll want a discrete adjoint, which<br>
integrates backward in time using the adjoint RK method.  The stages of<br>
the adjoint RK method coincide with the forward method, so no<br>
interpolation is needed.<br>
<br>
Hong (Cc'd) is developing an example that can integrate discrete adjoint<br>
equations and we intend to eventually incorporate that functionality<br>
into the library.<br>
</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>