Similitude
Physical unit system constants (Metric, English, Natural, etc...)
In aggregate, the UnitSystem
data generated here constitutes a new universal standardization for dimensional analysis, which generalizes upon previous historical systems up to the 2019 redefinition and unifies them in a common Universe
. This enables a more precise and generalized standardization than the 2019 redefinition, which was comparatively limited in scope. Specified default UnitSystem
values are to be taken as a newly defined mutually-compatible recommended standard, verified to be consistent and coherent. A UnitSystem
can only be useful as a measuring standard if it can be scientifically reproduced, so the data here has been implemented in several important scientific programming languages (initially in the Julia language but also Wolfram language and Rust language) as well as presented abstractly in terms of dimensional formulas.
In fact there is nothing transcendental about dimensions; the ultimate principle is precisely expressible (in Newton's terminology) as one of similitude, exact or approximate, to be tested by the rule that mere change in the magnitudes of the ordered scheme of units of measurement that is employed must not affect sensibly the forms of the equations that are the adequate expression of the underlying relations of the problem. (J.L.)
Specifications for dimensional units are in the UnitSystems.jl and Similitude.jl and MeasureSystems.jl repositories. The three packages are designed so that they can be interchanged with compatibility. On its own UnitSystems
is the fastest package, while Similitude
(provides Quantity
type) and MeasureSystems
(introduces Measurements.jl uncertainty) build additional features on top of UnitSystems
base defintions. Additionally, in the UnitSystems
repository there is an equivalent Wolfram language paclet Kernel
and also an unmaintained Rust src
implementation. Defaults are shared: Metric
, SI2019
, CODATA
, Conventional
, International
, InternationalMean
, MetricTurn
, MetricGradian
, MetricDegree
, MetricArcminute
, MetricArcsecond
, Engineering
, Gravitational
, FPS
, IPS
, British
, English
, Survey
, Gauss
, LorentzHeaviside
, EMU
, ESU
, IAU
, IAUE
, IAUJ
, Hubble
, Cosmological
, CosmologicalQuantum
, Meridian
, Nautical
, MPH
, KKH
, MTS
, FFF
, Planck
, PlanckGauss
, Stoney
, Hartree
, Rydberg
, Schrodinger
, Electronic
, Natural
, NaturalGauss
, QCD
, QCDGauss
, QCDoriginal
.
julia> using UnitSystems # or Similitude or MeasureSystems
UnitSystems.similitude
— FunctionUnitSystems.similitude() = haskey(ENV,"SIMILITUDE")
An optional environment variable ENV["SIMILITUDE"]
induces UnitSystems.similitude()
to return true
, giving flexibility for building dependencies whenever it is desirable to toggle usage between UnitSystems
(default) and Similitude
(requires environment variable specification). For example, in MeasureSystems
and Geophysics
this option is used to increase flexibility with variety in local compilation workflow.
A UnitSystem
is a consistent set of dimensional values selected to accomodate a particular use case standardization. It is possible to convert derived physical quantities from any UnitSystem
specification into any other using accurate values. Eleven fundamental constants kB
, ħ
, 𝘤
, μ₀
, mₑ
, Mᵤ
, Kcd
, ϕ
, λ
, αL
, g₀
are used to govern a specific unit system consistent scaling. These are the constants boltzmann
, planckreduced
, lightspeed
, vacuumpermeability
, electronmass
, molarmass
, luminousefficacy
, angle
, rationalization
, lorentz
, and gravity
. Different choices of natural units or physical measurements result in a variety of unit systems for many purposes.
Historically, older electromagnetic unit systems also relied on a rationalization
constant λ
and a lorentz
force proportionality constant αL
. In most unit systems these extra constants have a value of 1
unless specified.
UnitSystems.UnitSystem
— TypeUnitSystem(kB, ħ, 𝘤, μ₀, mₑ, Mᵤ, Kcd, ϕ, λ, αL, g₀, Universe)
A UnitSystem
is a consistent set of dimensional values selected to accomodate a particular use case or standardization. It is possible to convert derived physical quantities from any UnitSystem
specification into any other using accurate values. Eleven fundamental constants kB
, ħ
, 𝘤
, μ₀
, mₑ
, Mᵤ
, Kcd
, ϕ
, λ
, αL
, g₀
are used to govern a specific unit system consistent scaling. Different choices of natural units or physical measurements result in a variety of unit systems for many purposes.
Fundamental constants of physics are: kB
Boltzmann's constant, ħ
reduced Planck's constant, 𝘤
speed of light, μ₀
vacuum permeability, mₑ
electron rest mass, Mᵤ
molar mass, Kcd
luminous efficacy, ϕ
radian angle, λ
Gauss rationalization, αL
Lorentz's constant, and g₀
gravitational force reference. Primarily the Metric
SI unit system is used in addition to the historic English
engineering unit system. These constants induce derived values for avogadro
, boltzmann
, molargas
, planck
, planckreduced
, lightspeed
, planckmass
, dalton
, protonmass
, electronmass
, newton
, einstein
, vacuumpermeability
, vacuumpermittivity
, electrostatic
, and additional constants molarmass
, luminousefficacy
, gravity
, radian
, turn
, spat
, stefan
, radiationdensity
, magnetostatic
, lorentz
, biotsavart
, rationalization
, vacuumimpedance
, elementarycharge
, magneton
, conductancequantum
, faraday
, magneticfluxquantum
, josephson
, klitzing
, hartree
, rydberg
, bohr
.
Standardized unit/derived quantities are hyperfine
, loschmidt
, wienwavelength
, wienfrequency
, mechanicalheat
, eddington
, solarmass
, jupitermass
, earthmass
, lunarmass
, earthradius
, greatcircle
, radarmile
, hubble
, cosmological
, steradian
, spatian
, degree
, squaredegree
, gradian
, bradian
, arcminute
, arcsecond
, second
, minute
, hour
, day
, gaussianmonth
, siderealmonth
, synodicmonth
, year
, gaussianyear
, siderealyear
, jovianyear
, angstrom
, inch
, foot
, surveyfoot
, yard
, meter
, earthmeter
, mile
, statutemile
, meridianmile
, admiraltymile
, nauticalmile
, lunardistance
, astronomicalunit
, jupiterdistance
, lightyear
, parsec
, barn
, hectare
, acre
, surveyacre
, liter
, gallon
, quart
, pint
, cup
, fluidounce
, teaspoon
, tablespoon
, bubnoff
, ips
, fps
, fpm
, ms
, kmh
, mph
, knot
, mps
, grain
, gram
, earthgram
, kilogram
, tonne
, ton
, pound
, ounce
, slug
, slinch
, hyl
, dyne
, newton
, poundal
, poundforce
, kilopond
, psi
, pascal
, bar
, barye
, technicalatmosphere
, atmosphere
, inchmercury
, torr
, electronvolt
, erg
, joule
, footpound
, calorie
, kilocalorie
, meancalorie
, earthcalorie
, thermalunit
, gasgallon
, tontnt
, watt
, horsepower
, horsepowerwatt
, horsepowermetric
, electricalhorsepower
, tonsrefrigeration
, boilerhorsepower
, coulomb
, earthcoulomb
, ampere
, volt
, henry
, ohm
, siemens
, farad
, weber
, tesla
, abcoulomb
, abampere
, abvolt
, abhenry
, abohm
, abmho
, abfarad
, maxwell
, gauss
, oersted
, gilbert
, statcoulomb
, statampere
, statvolt
, stathenry
, statohm
, statmho
, statfarad
, statweber
, stattesla
, kelvin
, rankine
, celsius
, fahrenheit
, sealevel
, boiling
, mole
, earthmole
, poundmole
, slugmole
, slinchmole
, katal
, amagat
, lumen
, candela
, lux
, phot
, footcandle
, nit
, apostilb
, stilb
, lambert
, footlambert
, bril
, talbot
, lumerg
, neper
, bel
, decibel
, hertz
, apm
, rpm
, kayser
, diopter
, rayleigh
, flick
, gforce
, galileo
, eotvos
, darcy
, poise
, reyn
, stokes
, rayl
, mpge
, langley
, jansky
, solarflux
, curie
, gray
, roentgen
, rem
.
Additional reference UnitSystem
variants: EMU
, ESU
, Gauss
, LorentzHeaviside
, SI2019
, SI1976
, CODATA
, Conventional
, International
, InternationalMean
, Engineering
, Gravitational
, IAU
, IAUE
, IAUJ
, FPS
, IPS
, British
, Survey
, Hubble
, Cosmological
, CosmologicalQuantum
, Meridian
, Nautical
, MPH
, KKH
, MTS
, FFF
; and natural atomic units based on gravitational coupling
and finestructure
constant (Planck
, PlanckGauss
, Stoney
, Hartree
, Rydberg
, Schrodinger
, Electronic
, Natural
, NaturalGauss
, QCD
, QCDGauss
, and QCDoriginal
).
Derived dimensions can be obtained from multiplicative base of 11 fundamental dimension symbols F
, M
, L
, T
, Q
, Θ
, N
, J
, A
, R
, C
corresponding to force
, mass
, length
, time
, charge
, temperature
, molaramount
, luminousflux
, angle
, demagnetizingfactor
, and a nonstandard
dimension. Specification of a UnitSystem
is in dimensions of entropy
, angularmomentum
, speed
, permeability
, mass
, molarmass
, luminousefficacy
, angle
, rationalization
, lorentz
, gravityforce
; whose Constant
values are interpreted by units.
Mechanics: angle
, angle
, solidangle
, time
, angulartime
, length
, angularlength
, area
, angulararea
, volume
, wavenumber
, angularwavenumber
, fuelefficiency
, numberdensity
, frequency
, angularfrequency
, frequencydrift
, stagnance
, speed
, acceleration
, jerk
, snap
, crackle
, pop
, volumeflow
, etendue
, photonintensity
, photonirradiance
, photonradiance
, inertia
, mass
, massflow
, lineardensity
, areadensity
, density
, specificweight
, specificvolume
, force
, specificforce
, gravityforce
, pressure
, compressibility
, viscosity
, diffusivity
, rotationalinertia
, impulse
, momentum
, angularmomentum
, yank
, energy
, specificenergy
, action
, fluence
, power
, powerdensity
, irradiance
, radiance
, radiantintensity
, spectralflux
, spectralexposure
, soundexposure
, impedance
, specificimpedance
, admittance
, compliance
, inertance
; Electromagnetics: charge
, chargedensity
, linearchargedensity
, exposure
, mobility
, current
, currentdensity
, resistance
, conductance
, resistivity
, conductivity
, capacitance
, inductance
, reluctance
, permeance
, permittivity
, permeability
, susceptibility
, specificsusceptibility
, demagnetizingfactor
, vectorpotential
, electricpotential
, magneticpotential
, electricfield
, magneticfield
, electricflux
, magneticflux
, electricdisplacement
, magneticfluxdensity
, electricdipolemoment
, magneticdipolemoment
, electricpolarizability
, magneticpolarizability
, magneticmoment
, specificmagnetization
, polestrength
; Thermodynamics: temperature
, entropy
, specificentropy
, volumeheatcapacity
, thermalconductivity
, thermalconductance
, thermalresistivity
, thermalresistance
, thermalexpansion
, lapserate
, molarmass
, molality
, molaramount
, molarity
, molarvolume
, molarentropy
, molarenergy
, molarconductivity
, molarsusceptibility
, catalysis
, specificity
, diffusionflux
, luminousflux
, luminousintensity
, luminance
, illuminance
, luminousenergy
, luminousexposure
, luminousefficacy
.
Specification of Universe
with the dimensionless Coupling
constants coupling
, finestructure
, electronunit
, protonunit
, protonelectron
, and darkenergydensity
. Alterations to these values can be facilitated and quantified using parametric polymorphism. Due to the Coupling
interoperability, the MeasureSystems
package is made possible to support calculations with Measurements
having error standard deviations.
Similar packages: UnitSystems.jl, Similitude.jl, MeasureSystems.jl, PhysicalConstants.jl, MathPhysicalConstants.jl, Unitful.jl, UnitfulUS.jl, UnitfulAstro.jl, UnitfulAtomic.jl, NaturallyUnitful.jl, and UnitfulMoles.jl.
Multiplicative Group
In the base UnitSystems
package, simply Float64
numbers are used to generate the group of UnitSystem
constants. However, in the Similitude
package, instead Constant
numbers are used to generate an abstract multiplicative Group
, which is only converted to a Float64
value at compile time where appropriate.
FieldConstants.Constant
— TypeIn UnitSystems
and Similitude
, the spectrum of Constant
values is generated by a group of 11 mathematical constants (7 Integer
primes and 4 Irrational
numbers) with 33 physical measurement definitions. These are 𝟐
, 𝟑
, 𝟓
, 𝟕
, 𝟏𝟏
, 𝟏𝟗
, 𝟒𝟑
, φ
, γ
, ℯ
, τ
, kB
, NA
, 𝘩
, 𝘤
, 𝘦
, Kcd
, ΔνCs
, R∞
, α
, μₑᵤ
, μₚᵤ
, ΩΛ
, H0
, g₀
, aⱼ
, au
, ft
, ftUS
, lb
, T₀
, atm
, inHg
, RK90
, KJ90
, RK
, KJ
, Rᵤ2014
, Ωᵢₜ
, Vᵢₜ
, kG
, mP
, GME
, GMJ
.
Constant{N} <: Real
Numerical field constant N
with known value at compile time.
julia> Constant(100)
100
Operations on Constant
are closed (*
, /
, +
, -
, ^
), yet they also behave like Float64
values when mixed with non-Constant
arguments.
MeasureSystems.two
— Constantjulia> one # 𝟏
𝟏 = 1.0
julia> two # 𝟐
2 = 2.0
julia> three # 𝟑
3 = 3.0
julia> five # 𝟓
5 = 5.0
julia> seven # 𝟕
7 = 7.0
julia> eleven # 𝟏𝟏
11 = 11.0
julia> nineteen # 𝟏𝟗
19 = 19.0
julia> fourtythree # 𝟒𝟑
43 = 43.0
julia> sixty # 𝟔𝟎
2²3⋅5 = 60.0
MeasureSystems.tau
— ConstantConstant{N} where N
Truncated Irrational
constant N
with known value at compile time.
julia> golden # φ
φ = 1.618033988749895
julia> eulergamma # γ
γ = 0.5772156649015329
julia> exp # ℯ
ℯ = 2.718281828459045
julia> pi # π
3.141592653589793
julia> tau # τ
τ = 6.283185307179586
Furthermore, in Similitude
there is a dimension type which encodes the dimensional Group{:USQ}
for the Quantity
type using the same implementation principles as Constant
. This enables the unified usage of Group
homomorphisms to transform Quantity
algebra elements with varying numbers of dimensionless constants.
Originally, the Newtonian group used for UnitSystems
would be made up of force
, mass
, length
, time
(or F
, M
, L
, T
). Although force
is typically thought of as a derived dimension when the reference gravity
is taken to be dimensionless, force
is actually considered a base dimension in general engineering UnitSystem
foundations. With the development of electricity and magnetism came an interest for an additional dimension called charge
or Q
. When the thermodynamics of entropy
became further developed, the temperature
or Θ
was introduced as another dimension. In the field of chemistry, it became desirable to introduce another dimension of molaramount
or N
as fundamental. To complete the existing International System of Quantities (ISQ) it is also necessary to consider luminousflux
or J
as a visual perception related dimension. In order to resolve ambiguity with solidangle
unit conversion, angle
or A
is explicitly tracked in the underlying dimension and Group
. However, this is yet insufficient to fully specify all the historical variations of UnitSystem
, including the EMU
, ESU
, Gauss
and LorentzHeavise
specifications. Therefore, there is also a dimension basis for rationalization
(denoted R
) and lorentz
(denoted by C⁻¹
).
In combination, all these required base dimension definitions are necessary in order to coherently implement unit conversion for Quantity
elements. Since the existing International System of Quantities (ISQ) is an insufficient definition for dimension, a new Unified
System of Quantities (USQ) is being proposed here as composed of force
, mass
, length
, time
, charge
, temperature
, molaramount
, luminousflux
, angle
, rationalization
, and a nonstandard
dimension (denoted by F
, M
, L
, T
, Q
, Θ
,N
, J
, A
, R
, C
).
Similitude.USQ
— ConstantPhysical dimension Constant
represented by Group
element D
.
F, M, L, T, Q, Θ, N, J, A, R, C
Operations on Constant
are closed (*
, /
, +
, -
, ^
).
julia> force(Unified)
F [ħ⁻¹𝘤³mₑ²ϕ⁻¹g₀⁻²] Unified
julia> mass(Unified)
M [mₑ] Unified
julia> length(Unified)
L [ħ⋅𝘤⁻¹mₑ⁻¹ϕ⋅g₀] Unified
julia> time(Unified)
T [ħ⋅𝘤⁻²mₑ⁻¹ϕ⋅g₀] Unified
julia> charge(Unified)
Q [ħ¹ᐟ²𝘤⁻¹ᐟ²μ₀⁻¹ᐟ²ϕ¹ᐟ²λ⁻¹ᐟ²αL⁻¹] Unified
julia> temperature(Unified)
Θ [kB⁻¹𝘤²mₑ⋅g₀⁻¹] Unified
julia> molaramount(Unified)
N [mₑ⋅Mᵤ⁻¹] Unified
julia> luminousflux(Unified)
J [ħ⁻¹𝘤⁴mₑ²Kcd⋅ϕ⁻¹g₀⁻²] Unified
julia> angle(Unified)
A [ϕ] Unified
julia> rationalization(Unified)
R [λ] Unified
julia> lorentz(Unified)
C⁻¹ [αL] Unified
Derived dimension can be obtained from multiplicative base of 11 fundamental dimension symbols corresponding to force
, mass
, length
, time
, charge
, temperature
, molaramount
, luminousflux
, angle
, demagnetizingfactor
, and a nonstandard
dimension.
Mechanics: angle
, angle
, solidangle
, time
, angulartime
, length
, angularlength
, area
, angulararea
, volume
, wavenumber
, angularwavenumber
, fuelefficiency
, numberdensity
, frequency
, angularfrequency
, frequencydrift
, stagnance
, speed
, acceleration
, jerk
, snap
, crackle
, pop
, volumeflow
, etendue
, photonintensity
, photonirradiance
, photonradiance
, inertia
, mass
, massflow
, lineardensity
, areadensity
, density
, specificweight
, specificvolume
, force
, specificforce
, gravityforce
, pressure
, compressibility
, viscosity
, diffusivity
, rotationalinertia
, impulse
, momentum
, angularmomentum
, yank
, energy
, specificenergy
, action
, fluence
, power
, powerdensity
, irradiance
, radiance
, radiantintensity
, spectralflux
, spectralexposure
, soundexposure
, impedance
, specificimpedance
, admittance
, compliance
, inertance
; Electromagnetics: charge
, chargedensity
, linearchargedensity
, exposure
, mobility
, current
, currentdensity
, resistance
, conductance
, resistivity
, conductivity
, capacitance
, inductance
, reluctance
, permeance
, permittivity
, permeability
, susceptibility
, specificsusceptibility
, demagnetizingfactor
, vectorpotential
, electricpotential
, magneticpotential
, electricfield
, magneticfield
, electricflux
, magneticflux
, electricdisplacement
, magneticfluxdensity
, electricdipolemoment
, magneticdipolemoment
, electricpolarizability
, magneticpolarizability
, magneticmoment
, specificmagnetization
, polestrength
; Thermodynamics: temperature
, entropy
, specificentropy
, volumeheatcapacity
, thermalconductivity
, thermalconductance
, thermalresistivity
, thermalresistance
, thermalexpansion
, lapserate
, molarmass
, molality
, molaramount
, molarity
, molarvolume
, molarentropy
, molarenergy
, molarconductivity
, molarsusceptibility
, catalysis
, specificity
, diffusionflux
, luminousflux
, luminousintensity
, luminance
, illuminance
, luminousenergy
, luminousexposure
, luminousefficacy
.
Similitude.Quantity
— Type(U::UnitSystem)(v::Number, D::Constant) ↦ Quantity(D,U,v) = Quantity{D,U}(v)
Numerical Quantity
having value v
with D::Constant
specified in U::UnitSystem
.
julia> Metric(1,energy)
1 [J] Metric
julia> English(1,energy)
1 [lbf⋅ft] English
An alternate syntax Quantity(D::Constant, U::UnitSystem, v::Number)
is also available as standard syntax. When using UnitSystems
instead of using Similitude
, this same syntax can be written so that code doesn't need to be changed while the output is generated.
Similitude.ConvertUnit
— Type(D::Constant)(U::UnitSystem,S::UnitSystem) = ConvertUnit{D,U,S}()
Constant for unit conversion for D::Constant
from U::UnitSystem
to S::UnitSystem
.
julia> energy(Metric,CGS)
2⁷5⁷ = 1.0e7 [erg]/[J] Metric -> Gauss
julia> energy(Metric,English)
g₀⁻¹ft⁻¹lb⁻¹ = 0.7375621492772653 [lbf⋅ft]/[J] Metric -> English
There still exists further opportunity to expand on the implementation of ConvertUnit
.
Unified System of Quantities (USQ)
However, it turns out that the new Unified
System of Quantities proposed here is not a convenient or Natural
way of specifying UnitSystem
definitions. As proposed by Planck
(both a person and his proposed UnitSystem
), specification of the dimensionless boltzmann
, planckreduced
, and lightspeed
is of immense interest in the syntactic grammar of UnitSystem
definitions. In fact, it turns out that these are the Natural
units of entropy
, angularmomentum
and speed
induced by the UnitSystem
.
For electromagnetism, there have been several proposed base definitions for extension. Recently with the SI2019
redefinition, it was proposed that elementarycharge
is to be taken as a base definition for electromagnetic units. Yet, this is a mistake as elementarycharge
is not the Natural
unit of charge
induced by the UnitSystem
, making it unsuitable as fundamental Constant
for any UnitSystem
. Meanwhile, vacuumpermeability
exactly corresponds to the Natural
unit of permeability
induced by the UnitSystem
, making it suitable as a base definition for the electromagnetic unit extension.
Much simpler to understand is that electronmass
is the Natural
unit of mass
induced by the UnitSystem
. Molecular chemistry units are then defined by the Natural
unit of molarmass
induced by the UnitSytem
. Specification of luminousefficacy
is a Natural
unit of human perception induced by the UnitSystem
. Altered angle
scaling is defined by the Natural
unit of radian
induced by the UnitSystem
. Additionally, for the Gauss
and LorentzHeaviside
electromagnetic UnitSystem
definitions, there is an induced Natural
unit of rationalization
and a nonstandard
unit named lorentz
. Finally, the gravityforce
specifies the reference Natural
unit of gravity
induced by the UnitSystem
.
Therefore, for the sake of Natural
units, instead of defining a UnitSystem
in terms of the USQ dimensions the following are used: boltzmann
, planckreduced
, lightspeed
, vacuumpermeability
, electronmass
, molarmass
, luminousefficacy
, angle
, rationalization
, lorentz
, gravityforce
(or entropy
, angularmomentum
, speed
, permeability
, mass
, molarmass
, luminousefficacy
, angle
, rationalization
, and the nonstandard
one).
Similitude.Unified
— ConstantUnified = UnitSystem(...) # Unified System of Quantities (USQ)
F, M, L, T, Q, Θ, N, J, A, R, C # fundamental base dimensions
Standard Unified
system of Quantities
(USQ) in terms of UnitSystem
basis, transformed from the basis of force
, mass
, length
, time
, charge
, temperature
, molaramount
, luminousflux
, angle
, rationalization
, and a nonstandard
dimension.
julia> boltzmann(Unified) # entropy
FLΘ⁻¹ [kB] Unified
julia> planckreduced(Unified) # angularmomentum
FLTA⁻¹ [ħ] Unified
julia> lightspeed(Unified) # speed
LT⁻¹ [𝘤] Unified
julia> vacuumpermeability(Unified) # permeability
FT²Q⁻²R⁻¹C² [μ₀] Unified
julia> electronmass(Unified) # mass
M [mₑ] Unified
julia> molarmass(Unified) # molarmass
MN⁻¹ [Mᵤ] Unified
julia> luminousefficacy(Unified) # luminousefficacy
F⁻¹L⁻¹TJ [Kcd] Unified
julia> radian(Unified) # angle
A [ϕ] Unified
julia> rationalization(Unified) # demagnetizingfactor
R [λ] Unified
julia> lorentz(Unified) # nonstandard
C⁻¹ [αL] Unified
julia> gravity(Unified) # gravityforce
F⁻¹MLT⁻² [g₀] Unified
MeasureSystems.@unitgroup
— Macro@unitgroup(U::UnitSystem,S::UnitSystem) -> (u::typeof(normal(U)))(d::Group) = normal(S)(d)
Implements Group
homomorphism for U
in terms of existing specification from S
.
MeasureSystems.@unitdim
— Macro@unitdim(U::UnitSystem,F,M,L,T,Q,Θ,N,J="lm",A="rad")
Specify the print
output for each base dimension of U::UnitSystem
with String
input arguments force
, mass
, length
, time
, charge
, temperature
, molaramount
, luminousflux
, angle
.
@unitdim Gauss "gf" "g" "cm" "s" "C" "K" "mol"
@unitdim Metric "kgf" "kg" "m" "s" "C" "K" "mol"
@unitdim British "lb" "slug" "ft" "s" "C" "°R" "slug-mol"
@unitdim IPS "lb" "slinch" "in" "s" "C" "°R" "slinch-mol"
@unitdim FPS "pdl" "lb" "ft" "s" "C" "°R" "lb-mol"
@unitdim English "lbf" "lbm" "ft" "s" "C" "°R" "lb-mol"
@unitdim IAU☉ "M☉f" "M☉" "au" "D" "C" "K" "mol"
These standard examples are some of the built-in defaults.
@unitdim(U::UnitSystem,S::UnitSystem) -> dimtext(::typeof(normal(U))) = dimtext(normal(S))
Specify the print
output for each base dimension of U
upon prior existing S
data.
@unitdim EMU Gauss
@unitdim ESU Gauss
@unitdim LorentzHeaviside Gauss
@unitdim SI2019 Metric
@unitdim SI1976 Metric
@unitdim CODATA Metric
@unitdim Conventional Metric
@unitdim International Metric
@unitdim InternationalMean Metric
@unitdim Survey English
These standard examples are some of the built-in defaults.
@unitdim(D,U,S) -> showgroup(io::IO,::typeof(U(D)),::typeof(normal(U))) = print(io,S)
Specify the print
output S::String
for derived dimension D
in U::UnitSystem
.
@unitdim magneticflux Gauss "Mx"
@unitdim magneticfluxdensity Gauss "G"
@unitdim magneticfield Gauss "Oe"
@unitdim frequency Metric "Hz"
@unitdim force Metric "N"
@unitdim pressure Metric "Pa"
@unitdim energy Metric "J"
@unitdim power Metric "W"
@unitdim mass British "slug"
@unitdim force FPS "pdl"
These standard examples are some of the built-in defaults.
Default UnitSystems
By default, this package provides a modern unified re-interpretation of various historical unit systems which were previously incompatible. In order to make each UnitSystem
consistently compatible with each other, a few convenience assumptions are made. Specifically, it is assumed that all default modern unit systems share the same common Universe
of dimensionless constants, although this can be optionally changed. Therefore, the philosophy is to characterize differences among UnitSystem
instances by means of dimensional constants. As a result, all the defaults are ideal modern variants of these historical unit systems based on a common underlying Universe
, which are completely consistent and compatible with each other. These default UnitSystem
values are to be taken as a newly defined mutually-compatible recommended standard, verified to be consistent and coherent.
MeasureSystems.British
MeasureSystems.CODATA
MeasureSystems.Conventional
MeasureSystems.Cosmological
MeasureSystems.CosmologicalQuantum
MeasureSystems.EMU
MeasureSystems.ESU
MeasureSystems.Electronic
MeasureSystems.Engineering
MeasureSystems.English
MeasureSystems.FFF
MeasureSystems.FPS
MeasureSystems.Gauss
MeasureSystems.Gravitational
MeasureSystems.Hartree
MeasureSystems.Hubble
MeasureSystems.IAU
MeasureSystems.IAUE
MeasureSystems.IAUJ
MeasureSystems.IPS
MeasureSystems.International
MeasureSystems.InternationalMean
MeasureSystems.KKH
MeasureSystems.LorentzHeaviside
MeasureSystems.MPH
MeasureSystems.MTS
MeasureSystems.Meridian
MeasureSystems.Metric
MeasureSystems.Natural
MeasureSystems.NaturalGauss
MeasureSystems.Nautical
MeasureSystems.Planck
MeasureSystems.PlanckGauss
MeasureSystems.QCD
MeasureSystems.QCDGauss
MeasureSystems.QCDoriginal
MeasureSystems.Rydberg
MeasureSystems.SI1976
MeasureSystems.SI2019
MeasureSystems.Schrodinger
MeasureSystems.Stoney
MeasureSystems.Survey
Metric SI Unit Systems
In the Systeme International d'Unites (the SI units) the UnitSystem
constants are derived from the most accurate possible physical measurements and a few exactly defined constants. Exact values are the avogadro
number, boltzmann
constant, planck
constant, lightspeed
definition, and elementary charge
definition.
julia> NA # avogadro
NA = 6.02214076e23
julia> kB # boltzmann
kB = 1.380649e-23
julia> 𝘩 # planck
𝘩 = 6.62607015e-34
julia> 𝘤 # lightspeed
𝘤 = 2.99792458e8
julia> 𝘦 # charge
𝘦 = 1.602176634e-19
Physical measured values with uncertainty are electron to proton mass ratio μₑᵤ
, proton to atomic mass ratio μₚᵤ
, inverted fine structure constant αinv
, the Rydberg R∞
constant, and the Planck mass mP
.
julia> μₑᵤ # electronunit
μₑᵤ = 0.000548579909065 ± 1.6e-14
julia> μₚᵤ # protonunit
μₚᵤ = 1.007276466621 ± 5.3e-11
julia> αinv # 1/finestructure
α⁻¹ = 137.035999084 ± 2.1e-8
julia> R∞ # rydbgerg
R∞ = 1.097373156816e7 ± 2.1e-5
julia> mP # planckmass
mP = 2.176434e-8 ± 2.4e-13
From these numbers along with the optional 4π
Gaussian rationalization
value, the constants planckreduced
, permeability
, electronmass
, molarmass
, and proton to electon mass ratio are computed.
julia> ħ # planckreduced
𝘩*τ⁻¹ = 1.0545718176461565e-34
julia> μ₀ # vacuumpermeability
𝘩*𝘤⁻¹𝘦⁻²α*2 = 1.25663706212e-6 ± 1.9e-16
julia> mₑ # electronmass
𝘩*𝘤⁻¹R∞*α⁻²2 = 9.1093837016e-31 ± 2.8e-40
julia> Mᵤ # molarmass
𝘩*𝘤⁻¹NA*R∞*α⁻²μₑᵤ⁻¹2 = 0.00099999999966 ± 3.1e-13
julia> μₚₑ # protonelectron
μₑᵤ⁻¹μₚᵤ = 1836.15267343 ± 1.1e-7
Additional reference values include the ground state hyperfine
structure transition frequency of caesium-133 ΔνCs
and luminousefficacy
of monochromatic radiation Kcd
of 540 THz.
julia> ΔνCs # hyperfine
ΔνCs = 9.19263177e9
julia> Kcd # luminousefficacy
Kcd = 683.01969009009
As result, there are variants based on the original molarmass
constant and Gaussian permeability
along with the 2019 redefined exact values. The main difference between the two is determined by $M_u$ and $\mu_0$ offset.
Construction of UnitSystem
instances based on specifying the the constants molarmass
, the vacuumpermeability
, and the molargas
along with some other options is facilitated by MetricSystem
. This construction helps characterize the differences between
MeasureSystems.MetricSystem
— FunctionMetricSystem(Mu=Mᵤ,μ0=μ₀,Ru=Rᵤ,g0=𝟏,θ=𝟏,h=𝘩,me=R∞*𝟐*h/𝘤/α^2)
Constructs new UnitSystem
from molarmass
constant, vacuumpermeability
, molargas
constant, gravity
force reference, angle
scale, and planck
constant.
UnitSystem(Ru*me/Mu/μₑᵤ/g0,h/τ/g0/θ,𝘤,μ0,me,Mu,Kcd*(mₑ/me)^2*(h/𝘩)*g0,θ,𝟏,𝟏,g0)
Examples include SI2019
, SI1976
, Metric
, Engineering
, MetricTurn
, MetricSpatian
, MetricGradian
, MetricDegree
, MetricArcminute
, MetricArcsecond
. In addition, the ConventionalSystem
constructor further builds on MetricSystem
, resulting in variations.
Other derived UnitSystem
instances such as British
or English
or IAU
are derived from an existing Metric
specification generated by MetricSystem
. The constructor MetricSystem
incorporates several standard common numerical values and exposes variable arguments which can be substituted for customization, yielding the capability to generate historical variations having a common Universe
. Derivative constructors are EntropySystem
, ElectricSystem
, GaussSystem
, RankineSystem
, and AstronomicalSystem
.
Historically, the josephson
and klitzing
constants have been used to define Conventional
and CODATA
variants.
MeasureSystems.ConventionalSystem
— FunctionConventionalSystem(RK,KJ,Ru=Rᵤ,g0=𝟏) = MetricSystem(milli,𝟐*RK/𝘤*α,Ru,g0,𝟐^2/RK/KJ^2)
Constructs new UnitSystem
from von klitzing
constant and josephson
constant, with an optional specification of universal
gas constant and gravity
reference constant.
Examples include Conventional
(based on 1990) and CODATA
(based on 2014).
Originally, the practical units where specified by resistance
and electricpotential
.
UnitSystems.ElectricSystem
— FunctionElectricSystem(U::UnitSystem,Ω,V) = EntropySystem(U,𝟏,𝟏,V^2/Ω,𝟏,vacuumpermeability(U)/Ω)
Constructs new UnitSystem
from U
with mass
rescaled by electricpotential
and resistance
. In the International
system, Ωᵢₜ
and Vᵢₜ
are used as definitions from the more recent United States results, while in InternationalMean
an earlier estimate based on other nations was used.
Electromagnetic CGS Systems
Alternatives to the SI unit system are the centimetre-gram-second variants, where the constants are rescaled with centi
meter and milli
kilogram units along with introduction of additional rationalization
and lorentz
constants or electromagnetic units.
There are multiple choices of elctromagnetic units for these variants based on electromagnetic units, electrostatic units, Gaussian non-rationalized units, and Lorentz-Heaviside rationalized units.
UnitSystems.GaussSystem
— FunctionGaussSystem(U::UnitSystem,μ0,λ,αL=𝟏,l=centi,m=milli,g0=gravity(U))
Constructs new UnitSystem
from U
rescaled for CGS
with electromagnetic options. The first three options are to set the values for vacuumpermeability
, rationalization
, and lorentz
constants. The following two parameters are scaling for length
and mass
, while the last is an option to change the gravity
reference.
Examples include EMU
, ESU
, Gauss
, LorentzHeaviside
, and Kennelly
.
Modified (Entropy) Unit Systems
Most other un-natural unit systems are derived from the construction above by rescaling time
, length
, mass
, temperature
, and gravity
; which results in modified entropy constants:
UnitSystems.EntropySystem
— FunctionEntropySystem(U::UnitSystem,t,l,m,θ=𝟏)
EntropySystem(U::UnitSystem,t,l,m,θ,μ0,Mu=molarmass(U)/m,g0=gravity(U))
Constructs new UnitSystem
from U
rescaled along time
, length
, mass
, and temperature
by the first four parameters. Additional optional parameters allow for customization of the vacuumpermeability
, molarmass
, and gravity
constants.
Examples of this type include Nautical
, Meridian
, Gravitational
, MTS
, KKH
, MPH
, IAU☉
, IAUE
, IAUJ
, Hubble
, Cosmological
, CosmologicalQuantum
. However, most other constructors for UnitSystem
derivations are based on internally calling EntropySystem
, such as AstronomicalSystem
, ElectricSystem
, GaussSystem
, and RankineSystem
. This means EntropySystem
also constructs the examples listed there.
Foot-Pound-Second-Rankine
In Britain and the United States an English
system of engineering units was commonly used.
MeasureSystems.RankineSystem
— FunctionRankineSystem(U::UnitSystem,l,m,g0=𝟏)
Constructs new UnitSystem
from U
rescaled along length
and mass
with optional gravity
reference constant used to define technical and engineering units.
EntropySystem(U,𝟏,l,m,°R,vacuumpermeability(U)/m/l/g0,kilo*molarmass(U),g0)
Examples: FPS
, British
, IPS
, English
, Survey
.
Astronomical Unit Systems
The International Astronomical Union (IAU) units are based on the solar mass, distance from the sun to the earth, and the length of a terrestrial day.
UnitSystems.AstronomicalSystem
— FunctionAstronomicalSystem(U::UnitSystem,t,l,m)
Constructs new UnitSystem
from U
rescaled along time
, length
, mass
, and dimensionless boltzmann
and molarmass
constants. Examples are Hubble
, Cosmological
, CosmologicalQuantum
.
Natural Unit Systems
With the introduction of the planckmass
a set of natural atomic unit systems can be derived in terms of the gravitational coupling constant.
julia> αG # (mₑ/mP)^2
𝘩²𝘤⁻²mP⁻²R∞²α⁻⁴2² = 1.75181e-45 ± 3.9e-50
Some of the notable variants include
Planck ::UnitSystem{1,1,1,1,√(4π*αG)}
PlanckGauss ::UnitSystem{1,1,1,4π,√αG}
Stoney ::UnitSystem{1,1/α,1,4π,√(αG/α)}
Hartree ::UnitSystem{1,1,1/α,4π*α^2,1}
Rydberg ::UnitSystem{1,1,2/,π*α^2,1/2}
Schrodinger ::UnitSystem{1,1,1/α,4π*α^2,√(αG/α)}
Electronic ::UnitSystem{1,1/α,1,4π,1}
Natural ::UnitSystem{1,1,1,1,1}
NaturalGauss ::UnitSystem{1,1,1,4π,1}
QCD ::UnitSystem{1,1,1,1,1/μₚₑ}
QCDGauss ::UnitSystem{1,1,1,4π,1/μₚₑ}
QCDoriginal ::UnitSystem{1,1,1,4π*α,1/μₚₑ}
UnitSystem Index
MeasureSystems.British
MeasureSystems.CODATA
MeasureSystems.Conventional
MeasureSystems.Cosmological
MeasureSystems.CosmologicalQuantum
MeasureSystems.EMU
MeasureSystems.ESU
MeasureSystems.Electronic
MeasureSystems.Engineering
MeasureSystems.English
MeasureSystems.FFF
MeasureSystems.FPS
MeasureSystems.Gauss
MeasureSystems.Gravitational
MeasureSystems.Hartree
MeasureSystems.Hubble
MeasureSystems.IAU
MeasureSystems.IAUE
MeasureSystems.IAUJ
MeasureSystems.IPS
MeasureSystems.International
MeasureSystems.InternationalMean
MeasureSystems.KKH
MeasureSystems.LorentzHeaviside
MeasureSystems.MPH
MeasureSystems.MTS
MeasureSystems.Meridian
MeasureSystems.Metric
MeasureSystems.Natural
MeasureSystems.NaturalGauss
MeasureSystems.Nautical
MeasureSystems.Planck
MeasureSystems.PlanckGauss
MeasureSystems.QCD
MeasureSystems.QCDGauss
MeasureSystems.QCDoriginal
MeasureSystems.Rydberg
MeasureSystems.SI1976
MeasureSystems.SI2019
MeasureSystems.Schrodinger
MeasureSystems.Stoney
MeasureSystems.Survey