|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math.ode.AbstractIntegrator.EndTimeChecker
private static class AbstractIntegrator.EndTimeChecker
Specialized event handler to stop integration.
Field Summary | |
---|---|
private double |
endTime
Desired end time. |
Fields inherited from interface org.apache.commons.math.ode.events.EventHandler |
---|
CONTINUE, RESET_DERIVATIVES, RESET_STATE, STOP |
Constructor Summary | |
---|---|
AbstractIntegrator.EndTimeChecker(double endTime)
Build an instance. |
Method Summary | |
---|---|
int |
eventOccurred(double t,
double[] y,
boolean increasing)
Handle an event and choose what to do next. |
double |
g(double t,
double[] y)
Compute the value of the switching function. |
void |
resetState(double t,
double[] y)
Reset the state prior to continue the integration. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private final double endTime
Constructor Detail |
---|
public AbstractIntegrator.EndTimeChecker(double endTime)
endTime
- desired timeMethod Detail |
---|
public int eventOccurred(double t, double[] y, boolean increasing)
This method is called when the integrator has accepted a step
ending exactly on a sign change of the function, just before the
step handler itself is called. It allows the user to update his
internal data to acknowledge the fact the event has been handled
(for example setting a flag in the differential equations
to switch
the derivatives computation in case of discontinuity), or to
direct the integrator to either stop or continue integration,
possibly with a reset state or derivatives.
EventHandler.STOP
is returned, the step handler will be called
with the isLast
flag of the handleStep
method set to true and the
integration will be stopped,EventHandler.RESET_STATE
is returned, the resetState
method will be called once the step handler has
finished its task, and the integrator will also recompute the
derivatives,EventHandler.RESET_DERIVATIVES
is returned, the integrator
will recompute the derivatives,
EventHandler.CONTINUE
is returned, no specific action will
be taken (apart from having called this method) and integration
will continue.
eventOccurred
in interface EventHandler
t
- current value of the independent time variabley
- array containing the current value of the state vectorincreasing
- if true, the value of the switching function increases
when times increases around event (note that increase is measured with respect
to physical time, not with respect to integration which may go backward in time)
EventHandler.STOP
, EventHandler.RESET_STATE
,
EventHandler.RESET_DERIVATIVES
or EventHandler.CONTINUE
public double g(double t, double[] y)
The discrete events are generated when the sign of this switching function changes. The integrator will take care to change the stepsize in such a way these events occur exactly at step boundaries. The switching function must be continuous in its roots neighborhood (but not necessarily smooth), as the integrator will need to find its roots to locate precisely the events.
g
in interface EventHandler
t
- current value of the independent time variabley
- array containing the current value of the state vector
public void resetState(double t, double[] y)
This method is called after the step handler has returned and
before the next step is started, but only when EventHandler.eventOccurred(double, double[], boolean)
has itself returned the EventHandler.RESET_STATE
indicator. It allows the user to reset the state vector for the
next step, without perturbing the step handler of the finishing
step. If the EventHandler.eventOccurred(double, double[], boolean)
never returns the EventHandler.RESET_STATE
indicator, this function will never be called, and it is
safe to leave its body empty.
resetState
in interface EventHandler
t
- current value of the independent time variabley
- array containing the current value of the state vector
the new state should be put in the same array
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |