接口 EventState
- 所有已知实现类:
-
DetectorBasedEventState
,StepEndEventState
public interface EventState
- 从以下版本开始:
- 3.0
-
方法概要
修饰符和类型方法说明doEvent
(ODEStateAndDerivative state) 通知用户的监听器事件。boolean
evaluateStep
(ODEStateInterpolator interpolator) 评估建议步骤对处理器的影响。double
获取当前步骤中触发的事件的发生时间。void
init
(ODEStateAndDerivative s0, double t) 在积分开始时初始化处理器。
-
方法详细资料
-
init
在积分开始时初始化处理器。此方法在积分开始时调用一次。如果需要,处理器可以使用此方法初始化一些内部数据。
- 参数:
-
s0
- 初始状态 -
t
- 积分的目标时间
-
getEventTime
double getEventTime()获取当前步骤中触发的事件的发生时间。- 返回:
- 当前步骤中触发的事件的发生时间,如果没有触发事件则为无穷大
-
evaluateStep
boolean evaluateStep(ODEStateInterpolator interpolator) throws MathIllegalArgumentException, MathIllegalStateException 评估建议步骤对处理器的影响。- 参数:
-
interpolator
- 建议步骤的插值器 - 返回:
- 如果事件处理器在建议步骤结束之前触发事件,则返回true
- 抛出:
-
MathIllegalStateException
- 如果插值器因函数评估次数超过限制而抛出异常 -
MathIllegalArgumentException
- 如果无法找到事件的区间
-
doEvent
通知用户的监听器事件。事件完全在此方法调用中发生,包括必要时调用ODEEventHandler.resetState(ODEEventDetector, ODEStateAndDerivative)
。- 参数:
-
state
- 事件发生时的状态。这必须与当前值的getEventTime()
相同。 - 返回:
-
用户请求的操作和新状态,如果操作是
Action.RESET_STATE
。否则新状态为state
。如果操作是Action.STOP
,则停止时间指示何时应该停止时间传播。这确保积分将在根之后停止,以便可以安全地重新启动积分。
-