[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 */
- physical constants that might need updating,
Mark Galassi <=