help-gsl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

physical constants that might need updating


From: Mark Galassi
Subject: physical constants that might need updating
Date: Wed, 05 May 2021 23:17:47 -0600
User-agent: Notmuch/0.29.3 (https://notmuchmail.org) Emacs/28.0.50 (x86_64-pc-linux-gnu)

I happened to come across a definition of the gravitational constant, which we 
have as:

usr/include/gsl/gsl_const_cgs.h:#define GSL_CONST_CGS_GRAVITATIONAL_CONSTANT 
(6.673e-8) /* cm^3 / g s^2 */
/usr/include/gsl/gsl_const_cgsm.h:#define GSL_CONST_CGSM_GRAVITATIONAL_CONSTANT 
(6.673e-8) /* cm^3 / g s^2 */
/usr/include/gsl/gsl_const_mksa.h:#define GSL_CONST_MKSA_GRAVITATIONAL_CONSTANT 
(6.673e-11) /* m^3 / kg s^2 */
/usr/include/gsl/gsl_const_mks.h:#define GSL_CONST_MKS_GRAVITATIONAL_CONSTANT 
(6.673e-11) /* m^3 / kg s^2 */

and the one I saw was different: 6.67430 m^3/(kg*s^2).

Looking it up, it turns out that since 1998 (when our number was valid), the 
measurement has been updated.  You can see the history of updates at:

https://en.wikipedia.org/wiki/Gravitational_constant#Modern_value

and indeed the most recent is 6.67430.

We might want to do an audit to make sure that we follow the NIST or LBL or 
another standards body on *all* the physical constants, since you want to 
update them in lockstep to make sure that some identities still apply.  Our 
constants were introduced around 2000 and have not been touched since some 
additions in 2006.

At the same time we might want to do a bit of soul searching on where our 
cutoff is for accepting constants into GSL.  I do some work with earth 
parameters, and am shocked at the lack of a clear reference set of C header 
files (from NASA or whoever) with earth constants.

gsl currently has fundamental constants (boltzmann, gravitational, bohr radius, 
electron charge, ...  But we also have some more solar-system bound ones, like 
the astronomical unit, and we even reach pedestrian earth with things like 
GSL_CONST_MKSA_GRAM_FORCE which relates to the acceleration of gravity on the 
earth's surface.  In fact we also have GSL_CONST_MKSA_GRAV_ACCEL, which is 
9.80665 m/s^2.

So I'd like to propose that we add a suite of earth radius values based on 
concepts from:

https://en.wikipedia.org/wiki/Earth_radius#Global_average_radii

https://gis.stackexchange.com/questions/25494/how-accurate-is-approximating-the-earth-as-a-sphere

and fact sheets like:

https://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html (and the 
references they give)

To start with the earth radius, 

The International Union of Geodesy and Geophysics (IUGG) defines various types 
of mean earth radius, and they tend to stem from the definition of earth 
equatorial radius A and earth polar radius B.  Setting R1 might be enough to 
cover what most people need.

A patch for the gravity constant and addition of the earth stuff I mentioned 
would be like below, and similar for mks, cgs, and cgsm.

At this point I'm just proposing it as food for thought - there is no urgency, 
and it might be best to apply this patch when we have audited *all* the 
physical constants we use, and possibly documented their provenance.

diff --git a/const/gsl_const_mksa.h b/const/gsl_const_mksa.h
index 5d91d1ca..4c82e272 100644
--- a/const/gsl_const_mksa.h
+++ b/const/gsl_const_mksa.h
@@ -22,12 +22,15 @@
 #define __GSL_CONST_MKSA__
 
 #define GSL_CONST_MKSA_SPEED_OF_LIGHT (2.99792458e8) /* m / s */
-#define GSL_CONST_MKSA_GRAVITATIONAL_CONSTANT (6.673e-11) /* m^3 / kg s^2 */
+#define GSL_CONST_MKSA_GRAVITATIONAL_CONSTANT (6.67430-11) /* m^3 / (kg s^2) */
 #define GSL_CONST_MKSA_PLANCKS_CONSTANT_H (6.62606896e-34) /* kg m^2 / s */
 #define GSL_CONST_MKSA_PLANCKS_CONSTANT_HBAR (1.05457162825e-34) /* kg m^2 / s 
*/
 #define GSL_CONST_MKSA_ASTRONOMICAL_UNIT (1.49597870691e11) /* m */
 #define GSL_CONST_MKSA_LIGHT_YEAR (9.46053620707e15) /* m */
 #define GSL_CONST_MKSA_PARSEC (3.08567758135e16) /* m */
+#define GSL_CONST_MKSA_EARTH_EQUATORIAL_RADIUS_A (6378137.0) /* m */
+#define GSL_CONST_MKSA_EARTH_POLAR_RADIUS_B (6356752.3) /* m */
+#define GSL_CONST_MKSA_EARTH_MEAN_RADIUS_R1 
((2*GSL_CONST_MKS_EARTH_EQUATORIAL_RADIUS_A + 
GSL_CONST_MKS_EARTH_POLAR_RADIUS_B) / 3.0) /* m */
 #define GSL_CONST_MKSA_GRAV_ACCEL (9.80665e0) /* m / s^2 */
 #define GSL_CONST_MKSA_ELECTRON_VOLT (1.602176487e-19) /* kg m^2 / s^2 */
 #define GSL_CONST_MKSA_MASS_ELECTRON (9.10938188e-31) /* kg */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]