[petsc-users] Discrete adjoint and adaptive time stepping
Barry Smith
bsmith at mcs.anl.gov
Wed Apr 29 15:00:45 CDT 2015
> On Apr 29, 2015, at 2:48 PM, Miguel Angel Salazar de Troya <salazardetroya at gmail.com> wrote:
>
> If we calculate the gradient using the discrete adjoint without differentiating the controller, and then calculate the same gradient using finite difference (allowing the time steps to freely change), how different these results are?
Clearly I don't know but I image they could be very different. I would do as Jed suggests and use one run to get the adaptive dt and then use that same collect of dt for all the runs.
Barry
>
> Miguel
>
> On Wed, Apr 29, 2015 at 2:12 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> > On Apr 29, 2015, at 1:51 PM, Jed Brown <jed at jedbrown.org> wrote:
> >
> > Barry Smith <bsmith at mcs.anl.gov> writes:
> >>> If so, how is it done?
> >>
> >> We just keep the history of the time-step sizes and then use those time-step sizes when doing the backward integration. Seems simple to me, am I missing something?
> >
> > Barry, if you're using this for optimization, you might want the
> > gradient to be exactly consistent with the objective functional. But
> > for that, you would need to differentiate the controller, which is
> > non-smooth in practice because the number of time steps can change and
> > stages could be rejected (solver failure).
>
> Ahh, yes for multiple forward runs yup.
>
> >
> > One approach would be to save the timestep sequence and have the
> > controller use that in subsequent *forward* runs. If the dynamical
> > system behaves similarly for those steps, it would be okay to use the
> > same timestep sequence.
>
> Presumably if that single set of dt (from the first run) is not sufficient for some later runs one could possibly use the union of the dt of several runs for all the runs. (that is run adaptively and inconsistently several runs to determine where dt needs to be controlled and then use the various smaller of the dt at the different time regions for a full set of consistent runs). Of course if the various smaller of the dt requires a tiny dt for all time steps then you are not getting an advantage of adaptive time-stepping, but ok.
>
> The idea of actually propagating the gradients through the time-step controller seems IMHO to be absurd; I won't even put it on our game plan until we have many more things done and much more practical experience.
>
> Barry
>
>
>
>
>
> --
> Miguel Angel Salazar de Troya
> Graduate Research Assistant
> Department of Mechanical Science and Engineering
> University of Illinois at Urbana-Champaign
> (217) 550-2360
> salaza11 at illinois.edu
>
More information about the petsc-users
mailing list