类 FieldDetectorBasedEventState<T extends CalculusFieldElement<T>>
java.lang.Object
org.hipparchus.ode.events.FieldDetectorBasedEventState<T>
- 类型参数:
-
T- 字段元素的类型
- 所有已实现的接口:
-
FieldEventState<T>
public class FieldDetectorBasedEventState<T extends CalculusFieldElement<T>> extends Object implements FieldEventState<T>
此类在积分步骤期间处理一个
事件处理器的状态。
每当积分器提出一步时,应检查事件处理器切换函数。此类在一次积分步骤中处理一个处理程序的状态,其中包含对前一步结束时的状态的引用。此信息用于决定处理程序是否应在建议的步骤中触发事件。
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明doEvent(FieldODEStateAndDerivative<T> state) 通知用户的监听器事件。booleanevaluateStep(FieldODEStateInterpolator<T> interpolator) 评估建议步骤对事件处理程序的影响。获取基础事件探测器。获取当前步骤中触发的事件的发生时间。voidinit(FieldODEStateAndDerivative<T> s0, T t) 在积分开始时初始化事件处理程序。voidreinitializeBegin(FieldODEStateInterpolator<T> interpolator) 重新初始化步骤的开始。booleantryAdvance(FieldODEStateAndDerivative<T> state, FieldODEStateInterpolator<T> interpolator) 尝试接受到给定时间的当前历史记录。
-
构造器详细资料
-
FieldDetectorBasedEventState
简单构造函数。- 参数:
-
detector- 事件探测器 - 从以下版本开始:
- 3.0
-
-
方法详细资料
-
getEventDetector
获取基础事件探测器。- 返回:
- 基础事件探测器
- 从以下版本开始:
- 3.0
-
init
在积分开始时初始化事件处理程序。此方法在积分开始时调用一次。如果需要,事件处理程序可以使用此方法初始化一些内部数据。
- 指定者:
-
init在接口中FieldEventState<T extends CalculusFieldElement<T>> - 参数:
-
s0- 初始状态 -
t- 积分的目标时间
-
reinitializeBegin
public void reinitializeBegin(FieldODEStateInterpolator<T> interpolator) throws MathIllegalStateException 重新初始化步骤的开始。- 参数:
-
interpolator- 适用于当前步骤 - 抛出:
-
MathIllegalStateException- 如果插值器因函数评估次数超过而抛出异常
-
evaluateStep
public boolean evaluateStep(FieldODEStateInterpolator<T> interpolator) throws MathIllegalArgumentException, MathIllegalStateException 评估建议步骤对事件处理程序的影响。- 指定者:
-
evaluateStep在接口中FieldEventState<T extends CalculusFieldElement<T>> - 参数:
-
interpolator- 建议步骤的插值器 - 返回:
- 如果事件处理程序在建议步骤结束之前触发事件,则为true
- 抛出:
-
MathIllegalStateException- 如果插值器因函数评估次数超过而抛出异常 -
MathIllegalArgumentException- 如果无法找到事件的区间
-
tryAdvance
public boolean tryAdvance(FieldODEStateAndDerivative<T> state, FieldODEStateInterpolator<T> interpolator) 尝试接受到给定时间的当前历史记录。在调用
doEvent(FieldODEStateAndDerivative)之前不需要调用此方法,与相同状态调用doEvent(FieldODEStateAndDerivative)是必要的。在调用其他事件探测器的doEvent(FieldODEStateAndDerivative)之前需要调用此方法。- 参数:
-
state- 要尝试接受的状态 -
interpolator- 用于查找新根(如果有)的插值器 - 返回:
-
如果事件探测器有一个事件在与
state相同时间或之前触发的事件。换句话说,false表示继续,而true表示停止并首先处理我的事件。
-
doEvent
通知用户的监听器事件。事件完全在此方法调用中发生,包括必要时调用FieldODEEventHandler.resetState(FieldODEEventDetector, FieldODEStateAndDerivative)。- 指定者:
-
doEvent在接口中FieldEventState<T extends CalculusFieldElement<T>> - 参数:
-
state- 事件发生时的状态。这必须与getEventTime()的当前值相同。 - 返回:
-
用户请求的操作和新状态(如果操作是
Action.RESET_STATE)。否则新状态为state。停止时间指示如果操作是Action.STOP,则积分应该停止的时间。这保证了积分将在或之后停止根,以便可以安全地重新启动积分。
-
getEventTime
获取当前步骤中触发的事件的发生时间。- 指定者:
-
getEventTime在接口中FieldEventState<T extends CalculusFieldElement<T>> - 返回:
- 当前步骤中触发的事件的发生时间,如果没有触发事件则为无穷大
-