🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
NRLMSIS00.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "MSISBase.hpp"
25#include <type_traits>
26
27AST_NAMESPACE_BEGIN
28
34class NRLMSISE;
35
36#define _AST_USE_MSIS_VERS_FOR_NRLMSIS00
37
38#ifdef _AST_USE_MSIS_VERS_FOR_NRLMSIS00
39
41class AST_CORE_API NRLMSIS00 final: public MSISBase
42{
43public:
44 NRLMSIS00(Frame* frame, BodyShape* bodyShape, double f107Daily, double f107Average, double ap);
45 NRLMSIS00(Frame* frame, BodyShape* bodyShape, SpaceWeatherProvider* spaceWeather);
46
47 double getDensity(const TimePoint& tp, const Vector3d& posInBodyFixed) const override;
48};
49
50#else
52class AST_CORE_API NRLMSIS00 final: public AtmosphereBase
53{
54public:
55 NRLMSIS00(Frame* ecf, BodyShape* bodyShape, double f107Daily, double f107Average, double ap);
56 ~NRLMSIS00() override;
57
58 double getDensity(const TimePoint& tp, const Vector3d& posInBodyFixed) const override;
59
60
61private:
62 NRLMSISE& nrlmsise() const {return *reinterpret_cast<NRLMSISE*>(&storage_);}
63private:
64 mutable std::aligned_storage<624>::type storage_;
65};
66
67#endif
68
69
72AST_NAMESPACE_END
73
定义 AtmosphereBase.hpp:34
double getDensity(const TimePoint &tp, const Vector3d &posInBodyFixed) const override=0
获取大气密度
天体形状基类
定义 BodyShape.hpp:33
坐标系类
定义 Frame.hpp:60
MSIS86大气模型基类
定义 MSISBase.hpp:47
NRLMSIS00大气模型基类
定义 NRLMSIS00.hpp:42
定义 nrlmsise-00.hpp:172
空间天气数据提供者抽象接口
定义 SpaceWeatherProvider.hpp:43
绝对时间点
定义 TimePoint.hpp:107