D
- class type for the generic version
T
- type of the field elements
public class FieldEventState<D extends FieldEventDetector<T>,T extends org.hipparchus.CalculusFieldElement<T>> extends Object
事件探测器
的状态。
这个类在很大程度上基于Hipparchus库中同名类的基础上进行了修改。所做的更改包括用空间动力学类型(FieldAbsoluteDate
,FieldSpacecraftState
)替换原始类型(double和double数组)。
每当传播器提出一步时,都应检查事件探测器。这个类在一次传播步骤中处理一个探测器的状态,其中包含对前一步结束时的状态的引用。这些信息用于确定在提出的步骤中探测器是否应触发事件(因此步骤应该缩短以确保事件发生在边界而不是步骤内部)。
Modifier and Type | Class and Description |
---|---|
static class |
FieldEventState.EventOccurrence<T extends org.hipparchus.CalculusFieldElement<T>>
用于保存与事件发生相关的数据,这些数据需要决定如何修改积分的类。
|
Constructor and Description |
---|
FieldEventState(D detector)
简单构造函数。
|
Modifier and Type | Method and Description |
---|---|
FieldEventState.EventOccurrence<T> |
doEvent(FieldSpacecraftState<T> state)
通知用户的监听器事件。
|
boolean |
evaluateStep(FieldOrekitStepInterpolator<T> interpolator)
评估提议步骤对事件探测器的影响。
|
FieldAbsoluteDate<T> |
getEventDate()
获取当前步骤中触发的事件的发生时间。
|
D |
getEventDetector()
获取底层事件探测器。
|
boolean |
getPendingEvent()
获取PendingEvent。
|
void |
init(FieldSpacecraftState<T> s0, FieldAbsoluteDate<T> t)
在传播开始时初始化事件处理程序。
|
void |
reinitializeBegin(FieldOrekitStepInterpolator<T> interpolator)
重新初始化步骤的开始。
|
boolean |
tryAdvance(FieldSpacecraftState<T> state, FieldOrekitStepInterpolator<T> interpolator)
尝试接受到给定时间的当前历史记录。
|
public FieldEventState(D detector)
detector
- 监控的事件探测器
public D getEventDetector()
public void init(FieldSpacecraftState<T> s0, FieldAbsoluteDate<T> t)
此方法在传播开始时调用一次。如果需要,事件处理程序可以用来初始化一些内部数据。
s0
- 初始状态
t
- 集成的目标时间
public void reinitializeBegin(FieldOrekitStepInterpolator<T> interpolator)
interpolator
- 适用于当前步骤的插值器
public boolean evaluateStep(FieldOrekitStepInterpolator<T> interpolator) throws org.hipparchus.exception.MathRuntimeException
interpolator
- 提议步骤的步长插值器
org.hipparchus.exception.MathRuntimeException
- 如果无法定位事件
public FieldAbsoluteDate<T> getEventDate()
public boolean tryAdvance(FieldSpacecraftState<T> state, FieldOrekitStepInterpolator<T> interpolator)
在调用doEvent(FieldSpacecraftState)
之前不需要调用此方法,该方法使用相同的状态。在调用其他事件探测器的doEvent(FieldSpacecraftState)
之前需要调用此方法。
state
- 要尝试接受的状态。
interpolator
- 用于查找新根(如果有)的插值器。
state
相同或之前的时间,则返回false
。换句话说,false
表示继续进行,而true
表示停止并首先处理我的事件。
public FieldEventState.EventOccurrence<T> doEvent(FieldSpacecraftState<T> state)
FieldEventHandler.resetState(FieldEventDetector, FieldSpacecraftState)
。
state
- 事件发生时的状态。这必须与getEventDate()
的当前值相同。
Action.RESET_STATE
的新状态。否则新状态是state
。如果操作是Action.STOP
,则停止时间指示积分应在根之后停止的时间。这保证了积分将在根之后停止,以便可以安全地重新启动积分。
public boolean getPendingEvent()
Copyright © 2002-2023 CS GROUP. All rights reserved.