|
🛰️航天仿真算法库 SpaceAST 0.0.1
|
#include <ODEIntegrator.hpp>
类 ast::IODEIntegrator 继承关系图:Public 成员函数 | |
| IODEIntegrator (const IODEIntegrator &)=delete | |
| IODEIntegrator & | operator= (const IODEIntegrator &)=delete |
| virtual errc_t | initialize (ODE &ode)=0 |
| virtual errc_t | integrate (ODE &ode, double *y, double &t, double tf)=0 |
| virtual errc_t | integrateOneStep (ODE &ode, double *y, double &t, double tf)=0 |
| virtual errc_t | singleStep (ODE &ode, double *y, double t0, double step)=0 |
Public 成员函数 继承自 ast::ObjectNamed | |
| ObjectNamed ()=default | |
| ObjectNamed (StringView name) | |
| const std::string & | getName () const override |
| void | setName (StringView name) override |
Public 成员函数 继承自 ast::Object | |
| Object (Object *parentScope) | |
| Object (std::nullptr_t) | |
| virtual Class * | getType () const |
| virtual std::string | getRepresentation () const |
| const std::string & | name () const |
| std::string | displayName () const |
| errc_t | showEditDialog () |
| Attribute | attr (StringView path) |
| errc_t | getAttrBool (StringView path, bool &value) const |
| errc_t | getAttrInt (StringView path, int &value) const |
| errc_t | getAttrDouble (StringView path, double &value) const |
| errc_t | getAttrString (StringView path, std::string &value) const |
| errc_t | getAttrObject (StringView path, Object *&value) const |
| double | getAttrDouble (StringView path) const |
| int | getAttrInt (StringView path) const |
| bool | getAttrBool (StringView path) const |
| std::string | getAttrString (StringView path) const |
| Object * | getAttrObject (StringView path) const |
| errc_t | setAttrBool (StringView path, bool value) |
| errc_t | setAttrInt (StringView path, int value) |
| errc_t | setAttrDouble (StringView path, double value) |
| errc_t | setAttrString (StringView path, StringView value) |
| errc_t | setAttrObject (StringView path, Object *value) |
| Class * | type () const |
| const std::string & | typeName () const |
| Property * | getProperty (StringView fieldName) const |
| ObjectId | getID () const |
| errc_t | setParentScope (Object *parentScope) |
| Object * | getParentScope () const |
| template<typename T > | |
| T | getParent () const |
| bool | isOfType (const Class *type) const |
| bool | isOfType (StringView typeName) const |
| template<typename T > | |
| bool | isOfType () const |
| template<typename Func > | |
| void | addDelayedLink (Func &&link) |
| template<typename Func > | |
| void | addDelayedLinkIfFailed (Func &&link) |
| void | resolveLinks () |
| bool | readOnly () const |
| void | setReadOnly (bool readOnly) |
| bool | active () const |
| void | setActive (bool active) |
| bool | isComponent () const |
| void | setIsComponent (bool isComponent) |
| bool | isEntity () const |
| void | setIsEntity (bool isEntity) |
| const char * | tr (const char *msg) const |
| Referenced () | |
| Referenced (initial_strong_ref_t) | |
Public 成员函数 继承自 ast::Referenced | |
| Referenced (initial_strong_ref_t) | |
| uint32_t | refCount () const |
| uint32_t | weakRefCount () const |
| bool | isDestructed () const |
| void | destruct () |
| uint32_t | incWeakRef () |
| uint32_t | decWeakRef () |
| uint32_t | incRef () |
| uint32_t | decRef () |
| uint32_t | decRefNoDelete () |
额外继承的成员函数 | |
静态 Public 成员函数 继承自 ast::Object | |
| static Object * | Resolve (StringView value) |
| static void | ClassInit (Class *cls) |
| static Class * | StaticType () |
静态 Public 属性 继承自 ast::Object | |
| static Class | staticType |
Protected 成员函数 继承自 ast::Object | |
| Object (const Object &) | |
| Object & | operator= (const Object &) |
Protected 成员函数 继承自 ast::Referenced | |
| void | setDestructed () |
ODE 积分器接口类
积分器是ODE求解的基础类,提供了积分ODE的通用接口。
|
pure virtual |
初始化积分器
初始化积分器,设置ODE的维度和步长等参数
| ode | 常微分方程对象 |
在 ast::ODEIntegrator, ast::RK4, ast::RK8, ast::RKCK, ast::RKF45, ast::RKF56, ast::RKF78 , 以及 ast::RKV8 内被实现.
|
pure virtual |
从当前时间t开始积分到最终时间tf,直到事件检测器触发事件或者积分到最终时间tf,并将积分结果存储在y中
| [in] | ode | 常微分方程对象 |
| [in,out] | y | 状态向量 |
| [in,out] | t | 当前时间 |
| [in] | tf | 最终时间 |
在 ast::ODEFixedStepIntegrator, ast::ODEIntegrator , 以及 ast::ODEVarStepIntegrator 内被实现.
|
pure virtual |
朝目标时刻执行单步积分
从当前时间t朝着最终时间tf方向积分一步,并将积分结果存储在y中 如果当前时间t已经到达最终时间tf,则直接返回 如果是变步长积分器,步长会根据误差要求自动调整 如果是定步长积分器,步长会固定为初始步长
| [in] | ode | 常微分方程对象 |
| [in,out] | y | 状态向量 |
| [in,out] | t | 当前时间 |
| [in] | tf | 最终时间 |
在 ast::ODEFixedStepIntegrator , 以及 ast::ODEVarStepIntegrator 内被实现.
|
pure virtual |
按指定步长执行一步积分(执行单次步进)
这个函数是积分器最底层的实现,一般是采用多步法对ODE进行单次步进
| ode | 常微分方程对象 | |
| [in,out] | y | 状态向量 |
| t0 | 当前时间 | |
| step | 时间步长 |
在 ast::RK4, ast::RK8, ast::RKCK, ast::RKF45, ast::RKF56, ast::RKF78 , 以及 ast::RKV8 内被实现.