类 AbstractFieldODEStateInterpolator<T extends CalculusFieldElement<T>>
java.lang.Object
org.hipparchus.ode.sampling.AbstractFieldODEStateInterpolator<T>
- 类型参数:
-
T
- 字段元素的类型
- 所有已实现的接口:
-
FieldODEStateInterpolator<T>
- 直接已知子类:
-
DummyFieldStepInterpolator
public abstract class AbstractFieldODEStateInterpolator<T extends CalculusFieldElement<T>> extends Object implements FieldODEStateInterpolator<T>
这个抽象类表示ODE积分过程中最后一步的插值器。
各种ODE积分器为步骤处理器提供扩展此类的对象。处理器可以使用这些对象在前一个和当前网格点之间的中间时间检索状态向量(密集输出)。
- 另请参阅:
-
构造器概要
限定符构造器说明protected
AbstractFieldODEStateInterpolator
(boolean isForward, FieldODEStateAndDerivative<T> globalPreviousState, FieldODEStateAndDerivative<T> globalCurrentState, FieldODEStateAndDerivative<T> softPreviousState, FieldODEStateAndDerivative<T> softCurrentState, FieldEquationsMapper<T> equationsMapper) 简单构造函数。 -
方法概要
修饰符和类型方法说明protected abstract FieldODEStateAndDerivative
<T> computeInterpolatedStateAndDerivatives
(FieldEquationsMapper<T> equationsMapper, T time, T theta, T thetaH, T oneMinusThetaH) 计算插值时间点的状态和导数。protected abstract AbstractFieldODEStateInterpolator
<T> create
(boolean newForward, FieldODEStateAndDerivative<T> newGlobalPreviousState, FieldODEStateAndDerivative<T> newGlobalCurrentState, FieldODEStateAndDerivative<T> newSoftPreviousState, FieldODEStateAndDerivative<T> newSoftCurrentState, FieldEquationsMapper<T> newMapper) 创建一个新实例。获取当前网格点时间的状态。获取当前全局网格点状态。获取前一个全局网格点状态。getInterpolatedState
(T time) 获取插值时间点的状态。protected FieldEquationsMapper
<T> 获取ODE方程主要和次要分量的映射器。获取前一个网格点时间的状态。boolean
boolean
检查自然积分方向是否向前。boolean
restrictStep
(FieldODEStateAndDerivative<T> previousState, FieldODEStateAndDerivative<T> currentState) 创建实例的新受限版本。
-
构造器详细资料
-
AbstractFieldODEStateInterpolator
protected AbstractFieldODEStateInterpolator(boolean isForward, FieldODEStateAndDerivative<T> globalPreviousState, FieldODEStateAndDerivative<T> globalCurrentState, FieldODEStateAndDerivative<T> softPreviousState, FieldODEStateAndDerivative<T> softCurrentState, FieldEquationsMapper<T> equationsMapper) 简单构造函数。- 参数:
-
isForward
- 积分方向指示器 -
globalPreviousState
- 全局步骤的起点 -
globalCurrentState
- 全局步骤的终点 -
softPreviousState
- 受限步骤的起点 -
softCurrentState
- 受限步骤的终点 -
equationsMapper
- ODE方程主要和次要分量的映射器
-
-
方法详细资料
-
restrictStep
public AbstractFieldODEStateInterpolator<T> restrictStep(FieldODEStateAndDerivative<T> previousState, FieldODEStateAndDerivative<T> currentState) 创建实例的新受限版本。实例不会发生任何改变。
- 参数:
-
previousState
- 受限步骤的起点 -
currentState
- 受限步骤的终点 - 返回:
- 实例的受限版本
- 另请参阅:
-
create
protected abstract AbstractFieldODEStateInterpolator<T> create(boolean newForward, FieldODEStateAndDerivative<T> newGlobalPreviousState, FieldODEStateAndDerivative<T> newGlobalCurrentState, FieldODEStateAndDerivative<T> newSoftPreviousState, FieldODEStateAndDerivative<T> newSoftCurrentState, FieldEquationsMapper<T> newMapper) 创建一个新实例。- 参数:
-
newForward
- 积分方向指示器 -
newGlobalPreviousState
- 全局步骤的起点 -
newGlobalCurrentState
- 全局步骤的终点 -
newSoftPreviousState
- 受限步骤的起点 -
newSoftCurrentState
- 受限步骤的终点 -
newMapper
- 所有方程的方程映射器 - 返回:
- 一个新实例
-
getGlobalPreviousState
获取前一个全局网格点状态。- 返回:
- 前一个全局网格点状态
-
getGlobalCurrentState
获取当前全局网格点状态。- 返回:
- 当前全局网格点状态
-
getPreviousState
获取前一个网格点时间的状态。- 指定者:
-
getPreviousState
在接口中FieldODEStateInterpolator<T extends CalculusFieldElement<T>>
- 返回:
- 前一个网格点时间的状态
-
isPreviousStateInterpolated
public boolean isPreviousStateInterpolated()- 指定者:
-
isPreviousStateInterpolated
在接口中FieldODEStateInterpolator<T extends CalculusFieldElement<T>>
- 返回:
-
如果前一个状态是由插值器计算的,则为
true
,如果由积分器直接计算,则为false
。
-
getCurrentState
获取当前网格点时间的状态。- 指定者:
-
getCurrentState
在接口中FieldODEStateInterpolator<T extends CalculusFieldElement<T>>
- 返回:
- 当前网格点时间的状态
-
isCurrentStateInterpolated
public boolean isCurrentStateInterpolated()- 指定者:
-
isCurrentStateInterpolated
在接口中FieldODEStateInterpolator<T extends CalculusFieldElement<T>>
- 返回:
-
如果当前状态是由插值器计算的,则为
true
,如果由积分器直接计算,则为false
。
-
getInterpolatedState
获取插值时间点的状态。允许设置超出当前步骤的时间,但应谨慎使用,因为远离此步骤的插值器的精度可能非常差。添加此允许是为了简化在步骤端点附近实现搜索算法。
- 指定者:
-
getInterpolatedState
在接口中FieldODEStateInterpolator<T extends CalculusFieldElement<T>>
- 参数:
-
time
- 插值点的时间 - 返回:
- 插值时间处的状态
-
isForward
public boolean isForward()检查自然积分方向是否为向前。此方法提供积分器本身指定的积分方向,避免了在退化情况下出现的一些麻烦问题,比如由于在步骤初始化、步骤控制或离散事件触发时发生的空步长而导致的取消。
- 指定者:
-
isForward
在接口中FieldODEStateInterpolator<T extends CalculusFieldElement<T>>
- 返回:
- 如果积分变量(时间)在积分过程中增加,则为true
-
getMapper
获取ODE方程主要和次要分量的映射器。- 返回:
- ODE方程主要和次要分量的映射器
-
computeInterpolatedStateAndDerivatives
protected abstract FieldODEStateAndDerivative<T> computeInterpolatedStateAndDerivatives(FieldEquationsMapper<T> equationsMapper, T time, T theta, T thetaH, T oneMinusThetaH) throws MathIllegalStateException 计算插值时间处的状态和导数。这是应该由派生类实现的主要处理方法,用于执行插值。- 参数:
-
equationsMapper
- ODE方程主要和次要分量的映射器 -
time
- 插值时间 -
theta
- 步长内的归一化插值横坐标(theta在上一个时间步长为零,在当前时间步长为一) -
thetaH
- 前一个时间和插值时间之间的时间间隔 -
oneMinusThetaH
- 插值时间和当前时间之间的时间间隔 - 返回:
- 插值状态和导数
- 抛出:
-
MathIllegalStateException
- 如果函数评估次数超过限制
-