Skip to content

Commit 32098fc

Browse files
committed
Create physical constants submodule
1 parent fb8f83b commit 32098fc

File tree

3 files changed

+96
-3
lines changed

3 files changed

+96
-3
lines changed

src/DynamicQuantities.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module DynamicQuantities
22

3+
export Units, Const
34
export Quantity, Dimensions, DimensionError, ustrip, dimension, valid
45
export ulength, umass, utime, ucurrent, utemperature, uluminosity, uamount
56
export uparse, @u_str
@@ -8,10 +9,10 @@ include("fixed_rational.jl")
89
include("types.jl")
910
include("utils.jl")
1011
include("math.jl")
11-
include("units.jl")
12+
include("units.jl") # < include("constants.jl")
1213

1314
import Requires: @init, @require
14-
import .Units: uparse, @u_str
15+
import .Units: uparse, @u_str, Const
1516

1617
if !isdefined(Base, :get_extension)
1718
@init @require Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" include("../ext/DynamicQuantitiesUnitfulExt.jl")

src/constants.jl

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
module Const
2+
3+
import ..@u_str
4+
import ..@add_prefixes
5+
6+
# Source: http://physics.nist.gov/constants (2018)
7+
8+
# Exact, base:
9+
"Speed of light in a vacuum. Standard."
10+
const c = 299792458u"m/s"
11+
"Planck constant. Standard."
12+
const h = 6.62607015e34u"J/Hz"
13+
"Reduced Planck constant (h/2π). Standard."
14+
const hbar = h / (2π)
15+
"Elementary charge. Standard."
16+
const e = 1.602176634e19u"C"
17+
"Boltzmann constant. Standard."
18+
const k_B = 1.380649e23u"J/K"
19+
"Avogadro constant. Standard."
20+
const N_A = 6.02214076e+23u"mol^-1"
21+
22+
# Exact, derived:
23+
"Electron volt. Standard."
24+
const eV = e * u"J/C"
25+
@add_prefixes eV (m, k, M, G, T)
26+
"Molar gas constant. Standard."
27+
const R = N_A * k_B
28+
"Faraday constant. Standard."
29+
const F = N_A * e
30+
"Stefan-Boltzmann constant. Standard."
31+
const sigma_sb =^2/60) * k_B^4/(hbar^3 * c^2)
32+
33+
# Measured
34+
"Fine-structure constant. Measured."
35+
const alpha = 7.2973525693e3
36+
"Atomic mass unit (1/12th the mass of Carbon-12). Measured."
37+
const u = 1.66053906660e-27u"kg"
38+
"Newtonian constant of gravitation. Measured."
39+
const G = 6.67430e-11u"m^3/(kg*s^2)"
40+
"Vacuum magnetic permeability. Measured."
41+
const mu_0 = 4π * alpha * hbar / (e^2 * c)
42+
"Vacuum electric permittivity. Measured."
43+
const eps_0 = 8.8541878128e-12u"F/m"
44+
"Electron mass. Measured."
45+
const m_e = 9.1093837015e31u"kg"
46+
"Proton mass. Measured."
47+
const m_p = 1.67262192369e27u"kg"
48+
"Neutron mass. Measured."
49+
const m_n = 1.67492749804e-27 kg
50+
"Bohr radius. Measured."
51+
const a_0 = hbar/(m_e * c * alpha)
52+
"Coulomb constant (Note: SI units only!). Measured."
53+
const k_e = 1/(4π * eps_0)
54+
"Rydberg frequency. Measured."
55+
const Ryd = alpha^2 * m_e * c^2 / (2 * h)
56+
57+
58+
# Astro constants.
59+
# Source: https://arxiv.org/abs/1510.07674
60+
61+
"Earth mass. Measured."
62+
const M_earth = 5.97216787e+24u"kg"
63+
"Solar mass. Measured."
64+
const M_sun = 1.98840987e+30u"kg"
65+
"Jupiter mass. Measured."
66+
const M_jup = 1.8981246e+27u"kg"
67+
"Nominal Earth equatorial radius. Standard."
68+
const R_earth = 6.3781e+6u"m"
69+
"Nominal Jupiter equatorial radius. Standard."
70+
const R_jup = 7.1492e+7u"m"
71+
"Nominal solar radius. Standard."
72+
const R_sun = 6.957e+8u"m"
73+
"Nominal solar luminosity. Standard."
74+
const L_sun = 3.828e+26u"W"
75+
"Standard luminosity at absolute bolometric magnitude 0. Standard."
76+
const L_bol0 = 3.0128e+28u"W"
77+
"Thomson scattering cross-section. Measured."
78+
const sigma_T = 6.6524587321e-29u"m^2"
79+
"Astronomical unit. Standard."
80+
const au = 149597870700u"m"
81+
"Parsec. Standard."
82+
const pc = (648000/π) * au
83+
@add_prefixes pc (k, M, G)
84+
"Light year. Standard."
85+
const ly = c * u"yr"
86+
"Standard atmosphere. Standard."
87+
const atm = 101325u"Pa"
88+
89+
end

src/units.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ end
1717
function _add_prefixes(base_unit::Symbol, prefixes)
1818
all_prefixes = (
1919
f=1e-15, p=1e-12, n=1e-9, μ=1e-6, u=1e-6, m=1e-3, c=1e-2, d=1e-1,
20-
k=1e3, M=1e6, G=1e9
20+
k=1e3, M=1e6, G=1e9, T=1e12
2121
)
2222
expr = Expr(:block)
2323
for (prefix, value) in zip(keys(all_prefixes), values(all_prefixes))
@@ -145,4 +145,7 @@ macro u_str(s)
145145
return esc(uparse(s))
146146
end
147147

148+
include("constants.jl")
149+
import .Const
150+
148151
end

0 commit comments

Comments
 (0)