I logged this email into the bug tracker so it won't be lost. I agree it would be best to stay current with the latest values of the constants. I am concerned that such a change could potentially break existing software which might depend on certain values.
Patrick On 5/5/21 11:17 PM, Mark Galassi wrote: > 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 */ >