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

#include <ODEVarStepIntegrator.hpp>

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

Public 成员函数

errc_t integrate (ODE &ode, double *y, double &t, double tf) final
 
errc_t integrateStep (ODE &ode, double *y, double &t, double tf) final
 
void setMaxAbsErr (double maxAbsErr)
 
void setMaxRelErr (double maxRelErr)
 
void setMaxIterations (int maxIterations)
 
int getMaxIterations () const
 
void setMaxStepSize (double maxStepSize)
 
double getMaxStepSize () const
 
void setMinStepSize (double minStepSize)
 
double getMinStepSize () const
 
void setSafetyCoeffLow (double safetyCoeffLow)
 
double getSafetyCoeffLow () const
 
void setSafetyCoeffHigh (double safetyCoeffHigh)
 
double getSafetyCoeffHigh () const
 
void setUseMinStep (bool useMinStep)
 
bool getUseMinStep () const
 
void setUseMaxStep (bool useMaxStep)
 
bool getUseMaxStep () const
 
void setInitialStepSize (double initialStepSize)
 
double getLargestStepSize () const
 
double getSmallestStepSize () const
 
errc_t integrate (ODE &ode, double *y, double &t, double tf, std::vector< double > &xlist, std::vector< std::vector< double > > &ylist)
 
template<typename Func >
errc_t integrate (int ndim, Func func, double *y, double &t, double tf)
 
int getNumSteps () const
 
- Public 成员函数 继承自 ast::ODEFixedStepIntegrator
 AST_OBJECT (ODEFixedStepIntegrator)
 
double getStepSize () const
 
void setStepSize (double stepSize)
 
int getNumSteps () const
 
const WorkspacegetWorkspace () const
 
WorkspacegetWorkspace ()
 
errc_t integrate (ODE &ode, double *y, double &t, double tf, std::vector< double > &xlist, std::vector< std::vector< double > > &ylist)
 
template<typename Func >
errc_t integrate (int ndim, Func func, double *y, double &t, double tf)
 
- Public 成员函数 继承自 ast::ODEIntegrator
errc_t initialize (ODE &ode) override
 
errc_t integrate (ODE &ode, double *y, double &t, double tf, std::vector< double > &xlist, std::vector< std::vector< double > > &ylist)
 
template<typename Func >
errc_t integrate (int ndim, Func func, double *y, double &t, double tf)
 
void addEventDetector (ODEEventDetector *detector)
 
template<typename Func >
std::enable_if<!std::is_base_of< ODEEventDetector, typenamestd::remove_pointer< Func >::type >::value, ODEEventDetector * >::type addEventDetector (Func func)
 
void removeEventDetector (ODEEventDetector *detector)
 
void clearEventDetectors ()
 
void addStateObserver (ODEStateObserver *observer)
 
template<typename Func >
std::enable_if<!std::is_base_of< ODEStateObserver, typenamestd::remove_pointer< Func >::type >::value, ODEStateObserver * >::type addStateObserver (Func func)
 
void removeStateObserver (ODEStateObserver *observer)
 
ODEgetODE ()
 
double * stateAtStepStart ()
 
double * stateAtStepEnd ()
 
double & timeAtStepStart ()
 
double & timeAtStepEnd ()
 
double * stateTemp ()
 
- Public 成员函数 继承自 ast::IODEIntegrator
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)
 
 Object (initial_strong_ref_t)
 
virtual ClassgetType () const
 
virtual std::string getRepresentation () const
 
const std::string & name () 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
 
bool isOfType (const Class *type) const
 
bool isOfType (StringView typeName) const
 
template<typename T >
bool isOfType () const
 
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 ()
 
template<typename Func >
void addDelayedLink (Func &&link)
 
template<typename Func >
void addDelayedLinkIfFailed (Func &&link)
 
void resolveLinks ()
 

Protected 成员函数

bool isErrorMeet (double &absh, const double *y, const double *ynew)
 
- Protected 成员函数 继承自 ast::ODEFixedStepIntegrator
void resetWorkspace (int dimension, int stage)
 
- Protected 成员函数 继承自 ast::ODEIntegrator
void initWorkStateObserver ()
 
 A_DISABLE_COPY (ODEIntegrator)
 
- Protected 成员函数 继承自 ast::Object
 Object (const Object &obj)
 
Objectoperator= (const Object &)
 

Protected 属性

AST_PROPERTIES : bool useMinStep_
 
bool useMaxStep_
 
bool warnOnMinStep_
 
int maxStepAttempts_
 
double minStepSize_
 
double maxStepSize_
 
double maxAbsErr_
 
double maxRelErr_
 
double minStepScaleFactor_
 
double maxStepScaleFactor_
 
double safetyCoeffLow_
 
double safetyCoeffHigh_
 
double errCtrPowthLow_
 
double errCtrPowthHigh_
 
- Protected 属性 继承自 ast::ODEIntegrator
ODEode_ {nullptr}
 
ODEStateObserverworkStateObserver_ {nullptr}
 
ODEEventDetectorList eventDetectorList_
 
ODEStateObserverList stateObserverList_
 
ODEInnerStateObserverinnerStateObserver_ {nullptr}
 
double * stateAtStepStart_ {nullptr}
 
double * stateAtStepEnd_ {nullptr}
 
double * stateTemp_ {nullptr}
 
double timeAtStepStart_ {0.0}
 
double timeAtStepEnd_ {0.0}
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 ast::Object
static ObjectResolve (StringView value)
 
static void ClassInit (Class *cls)
 
static ClassStaticType ()
 
- 静态 Public 属性 继承自 ast::Object
static Class staticType
 

详细描述

可变步长积分器

可变步长积分器每步积分的步长自适应调整,以达到目标误差。

成员函数说明

◆ integrate() [1/3]

template<typename Func >
errc_t ast::ODEIntegrator::integrate ( int ndim,
Func func,
double * y,
double & t,
double tf )
inline

积分ODE

积分ODE,将积分结果存储在y和t中

参数
[in]ndimODE的维度
[in]func常微分方程
[in,out]y状态向量
[in,out]t当前时间
[in]tf最终时间

◆ integrate() [2/3]

errc_t ast::ODEVarStepIntegrator::integrate ( ODE & ode,
double * y,
double & t,
double tf )
finalvirtual

◆ integrate() [3/3]

errc_t ast::ODEIntegrator::integrate ( ODE & ode,
double * y,
double & t,
double tf,
std::vector< double > & xlist,
std::vector< std::vector< double > > & ylist )

积分ODE

积分ODE,将积分结果存储在y中 同时将时间点和状态向量存储在xlist和ylist中

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

◆ integrateStep()

errc_t ast::ODEVarStepIntegrator::integrateStep ( ODE & ode,
double * y,
double & t,
double tf )
finalvirtual

◆ isErrorMeet()

bool ast::ODEVarStepIntegrator::isErrorMeet ( double & absh,
const double * y,
const double * ynew )
protected

判断是否满足误差要求

参数
absh绝对步长
y当前状态向量
ynew新状态向量
返回
是否满足误差要求

◆ setInitialStepSize()

void ast::ODEVarStepIntegrator::setInitialStepSize ( double initialStepSize)
inline

设置是否使用固定步长

设置初始步长


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