[petsc-dev] a TS feature

Shri abhyshr at mcs.anl.gov
Mon Dec 10 23:59:51 CST 2012


I think Jed is right. Rather than giving a list of times, it is better to provide user-defined callback function (or functions?) for detecting the non-smoothness or hitting a time before ts->final_time. MATLAB Ode solvers call these discontinuities as 'EVENTS' and provide callback functions to detect them. http://www.mathworks.com/help/matlab/ref/ode23.html. 


In the power grid project that I'm involved in, there can be three possibilities (could be more) when the DAE integrator needs to be stopped. 


i) An exogenous event such as a random disturbance at a given prespecified time. 
ii) The removal of this disturbance at another prespecified time. (only for analysis) 
iii) The removal of this disturbance due to some switching (switch on/off) based on threshold crossing (the threshold crossing and switching action could be at the same time or delayed). 
iv) Some switching action due to abnormal conditions. 


Later on in the project, we will be passing the states from TS at the end of each time step to a commercial software that decides the switching logic and passes the switching times back to TS PostStep() interface. Thus, there could be a need of stopping TS based on the switching times. 


Another example of event detection is in circuit simulation where in the zero crossing of the waveform needs to be detected. 


I think having callback functions for 'EVENTS' would be the right approach. 


I recently requested for a couple of features in TS and Jed, Barry, and Emil kindly :) agreed 
i) The feature of hitting the exact time has been added to the adaptive time-step controller and can be accessed via -ts_exact_final_time MATCHSTEP. Note that this is not available with methods that don't use an adaptive controller. 
ii) TS can be stopped at any given time via TSPostStep() by calling TSSetConvergedReason() with the flag TS_CONVERGED_USER. 


Shri 
----- Original Message -----


> On Mon, Dec 10, 2012 at 8:36 PM, Barry Smith < bsmith at mcs.anl.gov >
> wrote:



> > I'd the ability to provide to TS a list of times at which I'd like
> > the
> > ODE integrator have exactly match that time on a time-step (that is
> > adjust the delta t near that time to hit it exactly). This is
> > something Shri needs.



> Is this general enough to add to the library itself? He can write an
> adaptive controller that hits any times he wants.



> As a library feature, I'd be more interested in having a controller
> that attempted to hit the zeros of a user-provided functional (because
> that could be used for other forms of model nonsmoothness).


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20121210/051da4d3/attachment.html>


More information about the petsc-dev mailing list