🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
BlockGravity.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "BlockAstro.hpp"
25#include "AstCore/GravityCalculator.hpp"
26#include "AstCore/BlockDerivative.hpp"
27#include "AstCore/Axes.hpp"
28#include "AstMath/Vector.hpp"
29#include "AstUtil/StringView.hpp"
30
31AST_NAMESPACE_BEGIN
32
53class AST_CORE_API BlockGravity: public BlockDerivative
54{
55public:
57 BlockGravity(const GravityField &gravityField, int degree, int order, Axes* gravityAxes=nullptr, Axes* propagationAxes=nullptr);
58 BlockGravity(GravityField &&gravityField, int degree, int order, Axes* gravityAxes=nullptr, Axes* propagationAxes=nullptr);
59
60 errc_t run(const SimTime& simTime) final;
61
63 void setConsiderVariations(bool considerVariations){considerVariations_ = considerVariations;}
64private:
65 void init();
66private:
67 HAxes gravityAxes_;
68 HAxes propagationAxes_;
69 Vector3d* posPtr_{&vectorBuffer_};
70 Vector3d* accGravityPtr_{&vectorBuffer_};
71 Vector3d* velocityDerivativePtr_{&vectorBuffer_};
72 Vector3d vectorBuffer_{};
73 GravityCalculatorDefault gravityCalculator_;
74 bool considerVariations_{false};
75};
76
77
78
79AST_NAMESPACE_END
轴系类
定义 Axes.hpp:70
导数函数块
定义 BlockDerivative.hpp:46
重力场函数块
定义 BlockGravity.hpp:54
void setConsiderVariations(bool considerVariations)
设置是否考虑重力场系数变化
定义 BlockGravity.hpp:63
virtual errc_t run(const SimTime &simTime)=0
计算函数块
重力场系数
定义 GravityField.hpp:88
仿真时间
定义 SimTime.hpp:30