[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