🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ast::IODEIntegrator类 参考abstract

#include <ODEIntegrator.hpp>

+ 类 ast::IODEIntegrator 继承关系图:

Public 成员函数

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 ClassgetType () 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
 
ObjectgetAttrObject (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)
 
Classtype () const
 
const std::string & typeName () const
 
PropertygetProperty (StringView fieldName) const
 
ObjectId getID () const
 
errc_t setParentScope (Object *parentScope)
 
ObjectgetParentScope () const
 
template<typename 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 ObjectResolve (StringView value)
 
static void ClassInit (Class *cls)
 
static ClassStaticType ()
 
- 静态 Public 属性 继承自 ast::Object
static Class staticType
 
- Protected 成员函数 继承自 ast::Object
 Object (const Object &obj)
 
Objectoperator= (const Object &)
 
- Protected 成员函数 继承自 ast::Referenced
void setDestructed ()
 

详细描述

ODE 积分器接口类

积分器是ODE求解的基础类,提供了积分ODE的通用接口。

成员函数说明

◆ initialize()

virtual errc_t ast::IODEIntegrator::initialize ( ODE & ode)
pure virtual

初始化积分器

初始化积分器,设置ODE的维度和步长等参数

参数
ode常微分方程对象

ast::ODEIntegrator, ast::RK4, ast::RK8, ast::RKCK, ast::RKF45, ast::RKF56, ast::RKF78 , 以及 ast::RKV8 内被实现.

◆ integrate()

virtual errc_t ast::IODEIntegrator::integrate ( ODE & ode,
double * y,
double & t,
double tf )
pure virtual

从当前时间t开始积分到最终时间tf,直到事件检测器触发事件或者积分到最终时间tf,并将积分结果存储在y中

参数
[in]ode常微分方程对象
[in,out]y状态向量
[in,out]t当前时间
[in]tf最终时间

ast::ODEFixedStepIntegrator, ast::ODEIntegrator , 以及 ast::ODEVarStepIntegrator 内被实现.

◆ integrateOneStep()

virtual errc_t ast::IODEIntegrator::integrateOneStep ( ODE & ode,
double * y,
double & t,
double tf )
pure virtual

从当前时间t朝着最终时间tf方向积分一步,并将积分结果存储在y中 如果当前时间t已经到达最终时间tf,则直接返回 如果是变步长积分器,步长会根据误差自动调整 如果是定步长积分器,步长会固定为初始步长

参数
[in]ode常微分方程对象
[in,out]y状态向量
[in,out]t当前时间
[in]tf最终时间

ast::ODEFixedStepIntegrator , 以及 ast::ODEVarStepIntegrator 内被实现.

◆ singleStep()

virtual errc_t ast::IODEIntegrator::singleStep ( ODE & ode,
double * y,
double t0,
double step )
pure virtual

执行一步积分(执行单次步进)

这个函数是积分器最底层的实现,一般是采用多步法对ODE进行单次步进

参数
ode常微分方程对象
[in,out]y状态向量
t0当前时间
step时间步长

ast::RK4, ast::RK8, ast::RKCK, ast::RKF45, ast::RKF56, ast::RKF78 , 以及 ast::RKV8 内被实现.


该类的文档由以下文件生成: