[petsc-dev] Discussion about time-dependent optimization moved from PR
Barry Smith
bsmith at mcs.anl.gov
Tue Oct 17 09:48:20 CDT 2017
> On Oct 17, 2017, at 9:20 AM, Jed Brown <jed at jedbrown.org> wrote:
>
> Barry Smith <bsmith at mcs.anl.gov> writes:
>
>>> On Oct 17, 2017, at 7:43 AM, Stefano Zampini <stefano.zampini at gmail.com> wrote:
>>>
>>>
>>>
>>>
>>> What happens if you call TSCreateAdjointsTS() on a TS obtained with TSCreateAdjointsTS()? Is the resulting TS useful?
>>>
>>>
>>> I don't think so.
>>
>> Hmm, this is rather bothersome. So the new TS that comes out is not
>> really a full-featured TS (using your new extended TS object that
>> knows about adjoints)?
>
> Is it useful to precondition Newton with Newton preconditioned with
> Newton?
>
>> It is like a subclass of TS that can only do timestepping? This
>> goes back to my concern that TS shouldn't be overloaded with all
>> the adjoint sensitivity stuff, there should be a higher level
>> PetscSensi object that does sensitivities and it contains multiple
>> TS for the ODE/DAE integrator and one for "reverse" mode.
>
> Let's not mix together Stefano's TSComputeObjectiveAndGradient (which
> could easily go into a helper PetscSensi) with the control flow needed
> to create/integrate an adjoint system.
Jed,
I am not mixing them! I am not even considering the TSComputeObjectiveAndGradient() at all I am only considering
the "the control flow needed to create/integrate an adjoint system." My PetscSensi is not for TSComputeObjectiveAndGradient level stuff.
> In my opinion, it must be
> possible to have a comparable/same interface to create a discrete
> adjoint (which depends on the forward implementation) as to create a
> continuous adjoint (with customizable space and time discretization).
Absolutely and fundamentally. No argument at all about this.
>
> I think we should postpone discussion of higher level convenience
> functions like TSComputeObjectiveAndGradient or some new organization
> thereof until we agree about the basic representation of adjoints.
Totally agree and that is what I have done.
> My
> preference is for TSCreateAdjointTS() which the user can customize to
> use arbitrary time integration methods (thus becoming a
> "continuous-in-time" adjoint) and to use different spatial
> discretizations (for consistency with the adjoint PDE).
I understand, I think TSCreateAdjointTS() is not the right model. I think that the correct model is, for example
PetscSensiCreate()
PetscSensiSetObjective.... or whatever etc etc
PetscSensiGetIntegrator(,&TS)
PetscSensiGetAdjointIntegrator(,&TS).
...
Note I am not married to the current model of TSSolve/TSAdjointSolve().
Barry
More information about the petsc-dev
mailing list