On Feb 25, 2020, at 10:37 AM, Sajid Ali 
<[email protected]<mailto:[email protected]>> 
wrote:

Hi PETSc-developers,

Could the code used for section 5.1 of the recent paper "PETSc TSAdjoint: a 
discrete adjoint ODE solver for first-order and second-order sensitivity 
analysis" be shared ? Are there more examples that deal with time dependent 
parameters in the git repository ?

The code is in the master branch. See 
ts/examples/tutorials/optimal_control/ex1.c. This is the only example that 
deals with time-varying parameters.


Another question I have is regarding the equations used to introduce adjoints 
in section 7.1 of the manual where for the state of the solution vector is 
denoted by y and the parameters by p.

[1] I'm unsure about what the partial derivative of y0 with respect to p means 
since I understand y0 to be the initial conditions used to solve the TS which 
would not depend on the parameters (since the parameters are related to the 
equations TS tries to solve for which should not dependent on the 
initialization used). Could someone clarify what this means ?

 There exist applications that initial condition depends on the design 
parameters.


[2] The manual described that a user has to set the correct initialization for 
the adjoint variables when calling TSSetCostGradients. The initialization for 
mu vector is whereby given to be dΦi/dp at t=tF. If p is time dependent, does 
one evaluate this derivative with respect to p(t) at t=tF ?

Yes

The adjoint solvers are designed to handle as many cases as possible. In your 
case, you may have simpler dependencies than those supported. If the initial 
condition and the objective function do not depend on the parameters directly, 
their partial derivatives wrt to p will be zero and you can simply ignore them.

Hong (Mr.)


Thank You,
Sajid Ali | PhD Candidate
Applied Physics
Northwestern University
s-sajid-ali.github.io<http://s-sajid-ali.github.io/>

Reply via email to