commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Luc Maisonobe (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (MATH-421) restarting an ODE solver that has been stopped by an event doesn't work
Date Wed, 29 Sep 2010 19:53:34 GMT

     [ https://issues.apache.org/jira/browse/MATH-421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Luc Maisonobe resolved MATH-421.
--------------------------------

    Resolution: Fixed

Fixed in subversion repository, as of r1002827 for branch 2.X and 1002829 for trunk (3.0)

> restarting an ODE solver that has been stopped by an event doesn't work
> -----------------------------------------------------------------------
>
>                 Key: MATH-421
>                 URL: https://issues.apache.org/jira/browse/MATH-421
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.1
>         Environment: Linux
>            Reporter: Luc Maisonobe
>            Assignee: Luc Maisonobe
>            Priority: Minor
>             Fix For: 2.2
>
>
> If an ODE solver is setup with an EventHandler that return STOP when the even is triggered,
the integrators stops (which is exactly the expected behavior).
> If however the user want to restart the solver from the final state reached at the event
with the same configuration (expecting the event to be triggered again at a later time), then
the integrator may fail to start. It can get stuck at the previous event.
> The occurrence of the bug depends on the residual sign of the g function which is not
exactly 0, it depends on the convergence of the first event.
> As this use case is fairly general, event occurring less than epsilon after the solver
start in the first step should be ignored, where epsilon is the convergence threshold of the
event. The sign of the g function should be evaluated after this initial ignore zone, not
exactly at beginning (if there are no event at the very beginning g(t0) and g(t0+epsilon)
have the same sign, so this does not hurt ; if there is an event at the very beginning, g(t0)
and g(t0+epsilon) have opposite signs and we want to start with the second one. Of course,
the sign of epsilon depend on the integration direction (forward or backward).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message