🛰️航天仿真算法库 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 BlockGravity(const BlockGravity&) = delete;
61 BlockGravity& operator=(const BlockGravity&) = delete;
62
63 errc_t run(const SimTime& simTime) override;
64
66 void setConsiderVariations(bool considerVariations){considerVariations_ = considerVariations;}
67protected:
68 // 运行前的公共参数准备
69 errc_t prepare(const SimTime& simTime, Rotation& rotation);
70
71private:
72 void init();
73protected:
76 Vector3d* posPtr_{&vectorBuffer_};
77 Vector3d* accGravityPtr_{&vectorBuffer_};
78 Vector3d* velocityDerivativePtr_{&vectorBuffer_};
79 Vector3d vectorBuffer_{};
81 bool considerVariations_{false};
82};
83
84
85
86AST_NAMESPACE_END
轴系抽象基类
定义 Axes.hpp:72
导数函数块
定义 BlockDerivative.hpp:46
重力场函数块
定义 BlockGravity.hpp:54
HAxes propagationAxes_
预报坐标系
定义 BlockGravity.hpp:75
HAxes gravityAxes_
重力坐标系
定义 BlockGravity.hpp:74
void setConsiderVariations(bool considerVariations)
设置是否考虑重力场系数变化
定义 BlockGravity.hpp:66
GravityCalculatorDefault gravityCalculator_
重力计算器
定义 BlockGravity.hpp:80
virtual errc_t run(const SimTime &simTime)=0
计算函数块
重力加速度计算类3
定义 GravityCalculator.hpp:211
重力场系数
定义 GravityField.hpp:88
坐标系旋转类
定义 Rotation.hpp:39
仿真时间
定义 SimTime.hpp:30