1   /* Copyright 2002-2025 CS GROUP
2    * Licensed to CS GROUP (CS) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * CS licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *   http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.orekit.utils;
18  
19  import org.hipparchus.util.MathUtils;
20  
21  /** Set of useful physical constants.
22  
23   * @author Luc Maisonobe
24   * @author Guylaine Prat
25   */
26  public interface Constants {
27  
28  
29      /** Speed of light: 299792458.0 m/s. */
30      double SPEED_OF_LIGHT = 299792458.0;
31  
32      /** Astronomical unit as a conventional unit of length since IAU 2012 resolution B2: 149597870700.0 m.
33       * @see <a href="http://www.iau.org/static/resolutions/IAU2012_English.pdf">IAU 2012 resolutions</a>
34       */
35      double IAU_2012_ASTRONOMICAL_UNIT = 149597870700.0;
36  
37      /** Solar radius as defined by IAU 2015 resolution B3: 695700000.0 m.
38       * @see <a href="https://www.iau.org/static/resolutions/IAU2015_English.pdf">IAU 2015 resolutions</a>
39       */
40      double IAU_2015_NOMINAL_SOLAR_RADIUS = 695700000.0;
41  
42      /** Sun attraction coefficient as defined by IAU 2015 resolution B3: 1.3271244e20 (m³/s²). */
43      double IAU_2015_NOMINAL_SUN_GM = 1.3271244e20;
44  
45      /** Earth equatorial radius as defined by IAU 2015 resolution B3: 6.3781e6 (m). */
46      double IAU_2015_NOMINAL_EARTH_EQUATORIAL_RADIUS = 6.3781e6;
47  
48      /** Earth polar radius as defined by IAU 2015 resolution B3: 6.3568e6 (m). */
49      double IAU_2015_NOMINAL_EARTH_POLAR_RADIUS = 6.3568e6;
50  
51      /** Earth attraction coefficient as defined by IAU 2015 resolution B3: 3.986004e14 (m³/s²). */
52      double IAU_2015_NOMINAL_EARTH_GM = 3.986004e14;
53  
54      /** Jupiter equatorial radius as defined by IAU 2015 resolution B3: 7.1492e7 (m). */
55      double IAU_2015_NOMINAL_JUPITER_EQUATORIAL_RADIUS = 7.1492e7;
56  
57      /** Jupiter polar radius as defined by IAU 2015 resolution B3: 6.6854e7 (m). */
58      double IAU_2015_NOMINAL_JUPITER_POLAR_RADIUS = 6.6854e7;
59  
60      /** Jupiter attraction coefficient as defined by IAU 2015 resolution B3: 1.2668653e17 (m³/s²). */
61      double IAU_2015_NOMINAL_JUPITER_GM = 1.2668653e17;
62  
63      /** Duration of a mean solar day: 86400.0 s. */
64      double JULIAN_DAY = 86400.0;
65  
66      /** Duration of a Julian year: 365.25 {@link #JULIAN_DAY}. */
67      double JULIAN_YEAR = 31557600.0;
68  
69      /** Duration of a Julian century: 36525 {@link #JULIAN_DAY}. */
70      double JULIAN_CENTURY = 36525 * JULIAN_DAY;
71  
72  
73      /** Duration of a Besselian year: 365.242198781 {@link #JULIAN_DAY}. */
74      double BESSELIAN_YEAR = 365.242198781 * JULIAN_DAY;
75  
76  
77      /** Conversion factor from arc seconds to radians: 2*PI/(360*60*60). */
78      double ARC_SECONDS_TO_RADIANS = MathUtils.TWO_PI / 1296000;
79  
80  
81      /** Standard gravity constant, used in maneuvers definition: 9.80665 m/s². */
82      double G0_STANDARD_GRAVITY = 9.80665;
83  
84  
85      /** Sun radius: 695700000 m (source: resolution B3 from IAU 2015). */
86      double SUN_RADIUS = 6.957e8;
87  
88      /** Moon equatorial radius: 1737400 m. */
89      double MOON_EQUATORIAL_RADIUS = 1737400.0;
90  
91  
92      /** Earth equatorial radius from WGS84 model: 6378137.0 m. */
93      double WGS84_EARTH_EQUATORIAL_RADIUS = 6378137.0;
94  
95      /** Earth flattening from WGS84 model: 1.0 / 298.257223563. */
96      double WGS84_EARTH_FLATTENING = 1.0 / 298.257223563;
97  
98      /** Earth angular velocity from WGS84 model: 7.292115e-5 rad/s. */
99      double WGS84_EARTH_ANGULAR_VELOCITY = 7.292115e-5;
100 
101     /** Earth gravitational constant from WGS84 model: 3.986004418e14 m³/s². */
102     double WGS84_EARTH_MU = 3.986004418e14;
103 
104     /** Earth un-normalized second zonal coefficient from WGS84 model: . */
105     double WGS84_EARTH_C20 = -1.08262668355315e-3;
106 
107 
108     /** Earth equatorial radius from GRS80 model: 6378137.0 m. */
109     double GRS80_EARTH_EQUATORIAL_RADIUS = 6378137.0;
110 
111     /** Earth flattening from GRS80 model: 1.0 / 298.257222101. */
112     double GRS80_EARTH_FLATTENING = 1.0 / 298.257222101;
113 
114     /** Earth angular velocity from GRS80 model: 7.292115e-5 rad/s. */
115     double GRS80_EARTH_ANGULAR_VELOCITY = 7.292115e-5;
116 
117     /** Earth gravitational constant from GRS80 model: 3.986005e14 m³/s². */
118     double GRS80_EARTH_MU = 3.986005e14;
119 
120     /** Earth un-normalized second zonal coefficient from GRS80 model: -1.08263e-3. */
121     double GRS80_EARTH_C20 = -1.08263e-3;
122 
123 
124     /** Earth equatorial radius from EGM96 model: 6378136.3 m. */
125     double EGM96_EARTH_EQUATORIAL_RADIUS = 6378136.3;
126 
127     /** Earth gravitational constant from EGM96 model: 3.986004415e14 m³/s². */
128     double EGM96_EARTH_MU = 3.986004415e14;
129 
130     /** Earth un-normalized second zonal coefficient from EGM96 model: -1.08262668355315e-3. */
131     double EGM96_EARTH_C20 = -1.08262668355315e-3;
132 
133     /** Earth un-normalized third zonal coefficient from EGM96 model: 2.53265648533224e-6. */
134     double EGM96_EARTH_C30 = 2.53265648533224e-6;
135 
136     /** Earth un-normalized fourth zonal coefficient from EGM96 model: 1.619621591367e-6. */
137     double EGM96_EARTH_C40 = 1.619621591367e-6;
138 
139     /** Earth un-normalized fifth zonal coefficient from EGM96 model: 2.27296082868698e-7. */
140     double EGM96_EARTH_C50 = 2.27296082868698e-7;
141 
142     /** Earth un-normalized sixth zonal coefficient from EGM96 model: -5.40681239107085e-7. */
143     double EGM96_EARTH_C60 = -5.40681239107085e-7;
144 
145 
146     /** Earth equatorial radius from GRIM5C1 model: 6378136.46 m. */
147     double GRIM5C1_EARTH_EQUATORIAL_RADIUS = 6378136.46;
148 
149     /** Earth flattening from GRIM5C1 model: 1.0 / 298.25765. */
150     double GRIM5C1_EARTH_FLATTENING = 1.0 / 298.25765;
151 
152     /** Earth angular velocity from GRIM5C1 model: 7.292115e-5 rad/s. */
153     double GRIM5C1_EARTH_ANGULAR_VELOCITY = 7.292115e-5;
154 
155     /** Earth gravitational constant from GRIM5C1 model: 3.986004415e14 m³/s². */
156     double GRIM5C1_EARTH_MU = 3.986004415e14;
157 
158     /** Earth un-normalized second zonal coefficient from GRIM5C1 model: -1.082626110612609e-3. */
159     double GRIM5C1_EARTH_C20 = -1.082626110612609e-3;
160 
161     /** Earth un-normalized third zonal coefficient from GRIM5C1 model: 2.536150841690056e-6. */
162     double GRIM5C1_EARTH_C30 = 2.536150841690056e-6;
163 
164     /** Earth un-normalized fourth zonal coefficient from GRIM5C1 model: 1.61936352497151e-6. */
165     double GRIM5C1_EARTH_C40 = 1.61936352497151e-6;
166 
167     /** Earth un-normalized fifth zonal coefficient from GRIM5C1 model: 2.231013736607540e-7. */
168     double GRIM5C1_EARTH_C50 = 2.231013736607540e-7;
169 
170     /** Earth un-normalized sixth zonal coefficient from GRIM5C1 model: -5.402895357302363e-7. */
171     double GRIM5C1_EARTH_C60 = -5.402895357302363e-7;
172 
173 
174     /** Earth equatorial radius from EIGEN5C model: 6378136.46 m. */
175     double EIGEN5C_EARTH_EQUATORIAL_RADIUS = 6378136.46;
176 
177     /** Earth gravitational constant from EIGEN5C model: 3.986004415e14 m³/s². */
178     double EIGEN5C_EARTH_MU = 3.986004415e14;
179 
180     /** Earth un-normalized second zonal coefficient from EIGEN5C model: -1.082626457231767e-3. */
181     double EIGEN5C_EARTH_C20 = -1.082626457231767e-3;
182 
183     /** Earth un-normalized third zonal coefficient from EIGEN5C model: 2.532547231862799e-6. */
184     double EIGEN5C_EARTH_C30 = 2.532547231862799e-6;
185 
186     /** Earth un-normalized fourth zonal coefficient from EIGEN5C model: 1.619964434136e-6. */
187     double EIGEN5C_EARTH_C40 = 1.619964434136e-6;
188 
189     /** Earth un-normalized fifth zonal coefficient from EIGEN5C model: 2.277928487005437e-7. */
190     double EIGEN5C_EARTH_C50 = 2.277928487005437e-7;
191 
192     /** Earth un-normalized sixth zonal coefficient from EIGEN5C model: -5.406653715879098e-7. */
193     double EIGEN5C_EARTH_C60 = -5.406653715879098e-7;
194 
195     /** Earth equatorial radius from IERS96 model: 6378136.49 m. */
196     double IERS96_EARTH_EQUATORIAL_RADIUS = 6378136.49;
197 
198     /** Earth flattening from IERS96 model: 1.0 / 298.25642. */
199     double IERS96_EARTH_FLATTENING = 1.0 / 298.25642;
200 
201     /** Earth angular velocity from IERS96 model: 7.292115e-5 rad/s. */
202     double IERS96_EARTH_ANGULAR_VELOCITY = 7.292115e-5;
203 
204     /** Earth gravitational constant from IERS96 model: 3.986004418e14 m³/s². */
205     double IERS96_EARTH_MU = 3.986004418e14;
206 
207     /** Earth un-normalized second zonal coefficient from IERS96 model: -1.0826359e-3. */
208     double IERS96_EARTH_C20 = -1.0826359e-3;
209 
210     /** Earth equatorial radius from IERS2003 model: 6378136.6 m. */
211     double IERS2003_EARTH_EQUATORIAL_RADIUS = 6378136.6;
212 
213     /** Earth flattening from IERS2003 model: 1.0 / 298.25642. */
214     double IERS2003_EARTH_FLATTENING = 1.0 / 298.25642;
215 
216     /** Earth angular velocity from IERS2003 model: 7.292115e-5 rad/s. */
217     double IERS2003_EARTH_ANGULAR_VELOCITY = 7.292115e-5;
218 
219     /** Earth gravitational constant from IERS2003 model: 3.986004418e14 m³/s². */
220     double IERS2003_EARTH_MU = 3.986004418e14;
221 
222     /** Earth un-normalized second zonal coefficient from IERS2003 model: -1.0826359e-3. */
223     double IERS2003_EARTH_C20 = -1.0826359e-3;
224 
225     /** Earth equatorial radius from IERS2010 model: 6378136.6 m. */
226     double IERS2010_EARTH_EQUATORIAL_RADIUS = 6378136.6;
227 
228     /** Earth flattening from IERS2010 model: 1.0 / 298.25642. */
229     double IERS2010_EARTH_FLATTENING = 1.0 / 298.25642;
230 
231     /** Earth angular velocity from IERS2010 model: 7.292115e-5 rad/s. */
232     double IERS2010_EARTH_ANGULAR_VELOCITY = 7.292115e-5;
233 
234     /** Earth gravitational constant from IERS2010 model: 3.986004418e14 m³/s². */
235     double IERS2010_EARTH_MU = 3.986004418e14;
236 
237     /** Earth un-normalized second zonal coefficient from IERS2010 model: -1.0826359e-3. */
238     double IERS2010_EARTH_C20 = -1.0826359e-3;
239 
240     /** Gaussian gravitational constant: 0.01720209895 √(AU³/d²). */
241     double JPL_SSD_GAUSSIAN_GRAVITATIONAL_CONSTANT = 0.01720209895;
242 
243     /** Astronomical Unit: 149597870691 m. */
244     double JPL_SSD_ASTRONOMICAL_UNIT = 149597870691.0;
245 
246     /** Sun attraction coefficient (m³/s²). */
247     double JPL_SSD_SUN_GM = JPL_SSD_GAUSSIAN_GRAVITATIONAL_CONSTANT * JPL_SSD_GAUSSIAN_GRAVITATIONAL_CONSTANT *
248                             JPL_SSD_ASTRONOMICAL_UNIT * JPL_SSD_ASTRONOMICAL_UNIT * JPL_SSD_ASTRONOMICAL_UNIT /
249                             (JULIAN_DAY * JULIAN_DAY);
250 
251     /** Sun/Mercury mass ratio: 6023600. */
252     double JPL_SSD_SUN_MERCURY_MASS_RATIO = 6023600;
253 
254     /** Sun/Mercury attraction coefficient (m³/s²). */
255     double JPL_SSD_MERCURY_GM = JPL_SSD_SUN_GM / JPL_SSD_SUN_MERCURY_MASS_RATIO;
256 
257     /** Sun/Venus mass ratio: 408523.71. */
258     double JPL_SSD_SUN_VENUS_MASS_RATIO = 408523.71;
259 
260     /** Sun/Venus attraction coefficient (m³/s²). */
261     double JPL_SSD_VENUS_GM = JPL_SSD_SUN_GM / JPL_SSD_SUN_VENUS_MASS_RATIO;
262 
263     /** Sun/(Earth + Moon) mass ratio: 328900.56. */
264     double JPL_SSD_SUN_EARTH_PLUS_MOON_MASS_RATIO = 328900.56;
265 
266     /** Sun/(Earth + Moon) attraction coefficient (m³/s²). */
267     double JPL_SSD_EARTH_PLUS_MOON_GM = JPL_SSD_SUN_GM / JPL_SSD_SUN_EARTH_PLUS_MOON_MASS_RATIO;
268 
269     /** Earth/Moon mass ratio: 81.30059. */
270     double JPL_SSD_EARTH_MOON_MASS_RATIO = 81.300596;
271 
272     /** Moon attraction coefficient (m³/s²). */
273     double JPL_SSD_MOON_GM = JPL_SSD_EARTH_PLUS_MOON_GM / (1.0 + JPL_SSD_EARTH_MOON_MASS_RATIO);
274 
275     /** Earth attraction coefficient (m³/s²). */
276     double JPL_SSD_EARTH_GM = JPL_SSD_MOON_GM * JPL_SSD_EARTH_MOON_MASS_RATIO;
277 
278     /** Sun/(Mars system) mass ratio: 3098708.0. */
279     double JPL_SSD_SUN_MARS_SYSTEM_MASS_RATIO = 3098708.0;
280 
281     /** Sun/(Mars system) attraction coefficient (m³/s²). */
282     double JPL_SSD_MARS_SYSTEM_GM = JPL_SSD_SUN_GM / JPL_SSD_SUN_MARS_SYSTEM_MASS_RATIO;
283 
284     /** Sun/(Jupiter system) mass ratio: 1047.3486. */
285     double JPL_SSD_SUN_JUPITER_SYSTEM_MASS_RATIO = 1047.3486;
286 
287     /** Sun/(Jupiter system) ttraction coefficient (m³/s²). */
288     double JPL_SSD_JUPITER_SYSTEM_GM = JPL_SSD_SUN_GM / JPL_SSD_SUN_JUPITER_SYSTEM_MASS_RATIO;
289 
290     /** Sun/(Saturn system) mass ratio: 3497.898. */
291     double JPL_SSD_SUN_SATURN_SYSTEM_MASS_RATIO = 3497.898;
292 
293     /** Sun/(Saturn system) attraction coefficient (m³/s²). */
294     double JPL_SSD_SATURN_SYSTEM_GM = JPL_SSD_SUN_GM / JPL_SSD_SUN_SATURN_SYSTEM_MASS_RATIO;
295 
296     /** Sun/(Uranus system) mass ratio: 22902.98. */
297     double JPL_SSD_SUN_URANUS_SYSTEM_MASS_RATIO = 22902.98;
298 
299     /** Sun/(Uranus system) attraction coefficient (m³/s²). */
300     double JPL_SSD_URANUS_SYSTEM_GM = JPL_SSD_SUN_GM / JPL_SSD_SUN_URANUS_SYSTEM_MASS_RATIO;
301 
302     /** Sun/(Neptune system) mass ratio: 19412.24. */
303     double JPL_SSD_SUN_NEPTUNE_SYSTEM_MASS_RATIO = 19412.24;
304 
305     /** Sun/(Neptune system) attraction coefficient (m³/s²). */
306     double JPL_SSD_NEPTUNE_SYSTEM_GM = JPL_SSD_SUN_GM / JPL_SSD_SUN_NEPTUNE_SYSTEM_MASS_RATIO;
307 
308     /** Sun/(Pluto system) mass ratio: 1.35e8. */
309     double JPL_SSD_SUN_PLUTO_SYSTEM_MASS_RATIO = 1.35e8;
310 
311     /** Sun/(Pluto system) ttraction coefficient (m³/s²). */
312     double JPL_SSD_PLUTO_SYSTEM_GM = JPL_SSD_SUN_GM / JPL_SSD_SUN_PLUTO_SYSTEM_MASS_RATIO;
313 
314 }