<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Oct 17, 2017 at 8:51 AM, 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="">Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> writes:<br>
<br>
>> It's a recipe for confusion.  Either the parameters are never passed<br>
>> explicitly or they are always passed explicitly and should not be stored<br>
>> redundantly in the context, thus perhaps enabling some sort of higher<br>
>> level analysis that dynamically changes parameter values.  I would go<br>
>> with the former for now.<br>
><br>
><br>
> I want to say again how much I dislike ad hoc memory layouts through<br>
> contexts and the like. We have a perfectly good layout descriptor (DM)<br>
> that should be used to describe data layout.<br>
<br>
</span>This is an independent change from the adjoint work and I think it's out<br>
of scope right now.  If we change it, it should go in its own PR.  I<br>
don't like having one PR with a smattering of non-essential changes to<br>
old interfaces bundled together with new conventions and new<br>
functionality.<br></blockquote><div><br></div><div>My understanding was that this discussion is not about a particular PR, but about</div><div>the interface we should have for sensitivity and optimal control.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Putting the parameters in a vector would enable finite differencing of<br>
the RHSFunction to obtain its dependence on parameters.  That might have<br>
high (non-scalable in number of parameters) cost, but would be less<br>
expensive than finite differencing an entire model.  Consider the<br>
scenario of 100 parameters and 1e6 state variables (at each time step).<br>
If we have the ability to apply the transpose of the Jacobian with<br>
respect to model state, we could run an adjoint simulation and only need<br>
100 RHSFunction evaluations per stage, rather than 100 solves.<br>
</blockquote></div><br>I am not sure of the point of the above paragraph. Saying the point rather than implying</div><div class="gmail_extra">the point helps me.</div><div class="gmail_extra"><br></div><div class="gmail_extra">   Matt<br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>