接口 EventState

所有已知实现类:
DetectorBasedEventState, StepEndEventState

public interface EventState
此接口处理在积分步骤期间一个事件处理器或一个步结束处理器的状态。
从以下版本开始:
3.0
  • 方法详细资料

    • init

      void init(ODEStateAndDerivative s0, double t)
      在积分开始时初始化处理器。

      此方法在积分开始时调用一次。如果需要,处理器可以使用此方法初始化一些内部数据。

      参数:
      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,则停止时间指示何时应该停止时间传播。这确保积分将在根之后停止,以便可以安全地重新启动积分。