25#include "AstUtil/StringView.hpp"
34class GravityCalculator1;
35class GravityCalculator2;
36class GravityCalculator3;
38#ifdef _AST_USE_GRAVITY_CALCULATOR_1
39 #define _AST_ENABLE_GRAVITY_CALCULATOR_1
40 using GravityCalculatorDefault = GravityCalculator1;
42 using GravityCalculatorDefault = GravityCalculator3;
81 GravityField& getGravityField() {
return gravityField_; }
101 virtual void calcTotalAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF);
103 void initDegreeOrder(
int degree,
int order);
110#ifdef _AST_ENABLE_GRAVITY_CALCULATOR_1
113class AST_CORE_API GravityCalculator1 final:
public GravityCalculator
116 GravityCalculator1();
117 GravityCalculator1(
const GravityField &gravityField,
int degree,
int order);
118 ~GravityCalculator1();
120 void calcPertAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF)
final;
124 std::unique_ptr<Impl> impl_;
137 void calcPertAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF)
final;
141 void initializeRecursionCoefficients();
144 void computeGradient(
const Vector3d &position, Vector3d &gradient);
147 int computeTesseral(
int m,
int degree,
int index,
double t,
double u,
double tOu);
151 std::vector<double> gnmOj_;
154 std::vector<double> hnmOj_;
157 std::vector<double> enm_;
160 std::vector<double> sectorial_;
162 std::vector<double> pnm0Plus2;
163 std::vector<double> pnm0Plus1;
164 std::vector<double> pnm0;
165 std::vector<double> pnm1;
167 std::vector<double> aOrN;
168 std::vector<double> cosLambdaN;
169 std::vector<double> sinLambdaN;
184 void calcPertAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF)
final;
209 using GravityCalculator::GravityCalculator;
211 void calcPertAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF)
final;
218 using GravityCalculator::GravityCalculator;
220 void calcPertAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF)
final;
227AST_DECL_TYPE_ALIAS(GravityCalculator1)
重力加速度计算类2 - Holmes-Featherstone算法
定义 GravityCalculator.hpp:132
重力加速度计算类3
定义 GravityCalculator.hpp:176
定义 GravityCalculator.hpp:207
定义 GravityCalculator.hpp:216
重力加速度计算类
定义 GravityCalculator.hpp:47
int getDegree() const
获取计算阶数
定义 GravityCalculator.hpp:85
virtual void calcPertAcceleration(const Vector3d &positionCBF, Vector3d &accelerationCBF)=0
计算摄动加速度
const GravityField & getGravityField() const
获取重力场系数
定义 GravityCalculator.hpp:66
GravityField gravityField_
重力场系数
定义 GravityCalculator.hpp:105
int getOrder() const
获取计算次数
定义 GravityCalculator.hpp:89
void updateVariations(const TimePoint &tp)
更新重力场系数变化
定义 GravityCalculator.hpp:70
重力场系数
定义 GravityField.hpp:88
绝对时间点
定义 TimePoint.hpp:107