25#include "AstUtil/StringView.hpp"
34class GravityCalculator1;
35class GravityCalculator2;
36class GravityCalculator3;
39using GravityCalculatorDefault = GravityCalculator3;
73 GravityField& getGravityField() {
return gravityField_; }
93 virtual void calcTotalAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF);
95 void initDegreeOrder(
int degree,
int order);
102#ifdef _AST_ENABLE_GRAVITY_CALCULATOR_1
105class AST_CORE_API GravityCalculator1:
public GravityCalculator
108 GravityCalculator1(
const GravityField &gravityField,
int degree,
int order);
109 ~GravityCalculator1();
111 void calcPertAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF)
final;
115 std::unique_ptr<Impl> impl_;
128 void calcPertAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF)
final;
132 void initializeRecursionCoefficients();
135 void computeGradient(
const Vector3d &position, Vector3d &gradient);
138 int computeTesseral(
int m,
int degree,
int index,
double t,
double u,
double tOu);
142 std::vector<double> gnmOj_;
145 std::vector<double> hnmOj_;
148 std::vector<double> enm_;
151 std::vector<double> sectorial_;
153 std::vector<double> pnm0Plus2;
154 std::vector<double> pnm0Plus1;
155 std::vector<double> pnm0;
156 std::vector<double> pnm1;
158 std::vector<double> aOrN;
159 std::vector<double> cosLambdaN;
160 std::vector<double> sinLambdaN;
175 void calcPertAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF)
final;
200 using GravityCalculator::GravityCalculator;
202 void calcPertAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF)
final;
209 using GravityCalculator::GravityCalculator;
211 void calcPertAcceleration (
const Vector3d &positionCBF, Vector3d &accelerationCBF)
final;
218AST_DECL_TYPE_ALIAS(GravityCalculator1)
重力加速度计算类2 - Holmes-Featherstone算法
定义 GravityCalculator.hpp:123
重力加速度计算类3
定义 GravityCalculator.hpp:167
定义 GravityCalculator.hpp:198
定义 GravityCalculator.hpp:207
重力加速度计算类
定义 GravityCalculator.hpp:43
int getDegree() const
获取计算阶数
定义 GravityCalculator.hpp:77
virtual void calcPertAcceleration(const Vector3d &positionCBF, Vector3d &accelerationCBF)=0
计算摄动加速度
const GravityField & getGravityField() const
获取重力场系数
定义 GravityCalculator.hpp:62
GravityField gravityField_
重力场系数
定义 GravityCalculator.hpp:97
int getOrder() const
获取计算次数
定义 GravityCalculator.hpp:81
重力场系数
定义 GravityField.hpp:63