diff --git a/README.md b/README.md index 2e42a57..b77461d 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Specifications for dimensional units are in the [UnitSystems.jl](https://github. 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](https://github.com/JuliaPhysics/Measurements.jl) uncertainty) build additional features on top of `UnitSystems` base defintions. Additionally, in the `UnitSystems` repository there is an equivalent [Wolfram language paclet](https://reference.wolfram.com/language/guide/Paclets) `Kernel` and also an unmaintained Rust `src` implementation. -Defaults are shared: `Metric`, `SI2019`, `CODATA`, `Conventional`, `International`, `InternationalMean`, `MetricTurn`, `MetricGradian`, `MetricDegree`, `MetricArcminute`, `MetricArcsecond`, `MetricEngineering`, `GravitationalMetric`, `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`. +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 julia> using UnitSystems # or Similitude or MeasureSystems @@ -53,7 +53,7 @@ Standardized unit/derived quantities are `hyperfine`, `loschmidt`, `wienwaveleng Standard physics units are at https://geophysics.crucialflow.com/dev/units -Additional reference `UnitSystem` variants: `EMU`, `ESU`, `Gauss`, `LorentzHeaviside`, `SI2019`, `SI1976`, `CODATA`, `Conventional`, `International`, `InternationalMean`, `MetricEngineering`, `GravitationalMetric`, `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`). +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`). Unit conversion documentation is at https://geophysics.crucialflow.com/dev/convert diff --git a/src/UnitSystems.jl b/src/UnitSystems.jl index c383dde..3de9c45 100644 --- a/src/UnitSystems.jl +++ b/src/UnitSystems.jl @@ -19,7 +19,7 @@ module UnitSystems import Base: @pure, length, time, angle, rem import Base.MathConstants: eulergamma, golden, φ -const Systems = (:Metric,:SI2019,:SI1976,:CODATA,:Conventional,:International,:InternationalMean,:MetricTurn,:MetricSpatian,:MetricGradian,:MetricDegree,:MetricArcminute,:MetricArcsecond,:MetricEngineering,:GravitationalMetric,:MTS,:EMU,:ESU,:Gauss,:LorentzHeaviside,:FPS,:IPS,:British,:English,:Survey,:FFF,:MPH,:KKH,:Nautical,:Meridian,:IAU☉,:IAUE,:IAUJ,:Hubble,:Cosmological,:CosmologicalQuantum,:Planck,:PlanckGauss,:Stoney,:Hartree,:Rydberg,:Schrodinger,:Electronic,:Natural,:NaturalGauss,:QCD,:QCDGauss,:QCDoriginal) +const Systems = (:Metric,:SI2019,:SI1976,:CODATA,:Conventional,:International,:InternationalMean,:MetricTurn,:MetricSpatian,:MetricGradian,:MetricDegree,:MetricArcminute,:MetricArcsecond,:Engineering,:Gravitational,:MTS,:EMU,:ESU,:Gauss,:LorentzHeaviside,:FPS,:IPS,:British,:English,:Survey,:FFF,:MPH,:KKH,:Nautical,:Meridian,:IAU☉,:IAUE,:IAUJ,:Hubble,:Cosmological,:CosmologicalQuantum,:Planck,:PlanckGauss,:Stoney,:Hartree,:Rydberg,:Schrodinger,:Electronic,:Natural,:NaturalGauss,:QCD,:QCDGauss,:QCDoriginal) const Dimensionless = (:coupling,:finestructure,:electronunit,:protonunit,:protonelectron,:darkenergydensity) const Constants = (:lightspeed,:planck,:planckreduced,:electronmass,:molarmass,:boltzmann,:vacuumpermeability,:rationalization,:lorentz,:luminousefficacy,:gravity,:radian) const Physics = (:turn,:spat,:dalton,:protonmass,:planckmass,:gravitation,:gaussgravitation,:einstein,:hartree,:rydberg,:bohr,:electronradius,:avogadro,:molargas,:stefan,:radiationdensity,:vacuumpermittivity,:electrostatic,:magnetostatic,:biotsavart,:elementarycharge,:faraday,:vacuumimpedance,:conductancequantum,:klitzing,:josephson,:magneticfluxquantum,:magneton) @@ -132,7 +132,7 @@ additional constants `molarmass`, `luminousefficacy`, `gravity`, `radian`, `turn Standardized unit/derived quantities are `$(listext(Derived))`. -Additional reference `UnitSystem` variants: `EMU`, `ESU`, `Gauss`, `LorentzHeaviside`, `SI2019`, `SI1976`, `CODATA`, `Conventional`, `International`, `InternationalMean`, `MetricEngineering`, `GravitationalMetric`, `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`). +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. @@ -244,7 +244,7 @@ end 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`, `GravitationalMetric`, `MTS`, `KKH`, `MPH`, `IAU☉`, `IAUE`, `IAUJ`, `Hubble`, `Cosmological`, `CosmologicalQuantum`. +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. """ diff --git a/src/derived.jl b/src/derived.jl index 1bc0a9b..f52b91f 100644 --- a/src/derived.jl +++ b/src/derived.jl @@ -107,7 +107,7 @@ @pure ounce(U::UnitSystem) = mass(two(U)^-4,U,English) @pure slug(U::UnitSystem) = mass(one(U),U,British) @pure slinch(U::UnitSystem) = mass(one(U),U,IPS) -@pure hyl(U::UnitSystem) = mass(one(U),U,GravitationalMetric) +@pure hyl(U::UnitSystem) = mass(one(U),U,Gravitational) # force @@ -115,7 +115,7 @@ @pure newton(U::UnitSystem) = force(one(U),U,Metric) @pure poundal(U::UnitSystem) = force(one(U),U,FPS) @pure poundforce(U::UnitSystem) = force(one(U),U,English) -@pure kilopond(U::UnitSystem) = force(one(U),U,MetricEngineering) +@pure kilopond(U::UnitSystem) = force(one(U),U,Engineering) # pressure @@ -151,7 +151,7 @@ @pure thermalconductivity_water(U::UnitSystem) = thermalconductivity((two(U)^2*three(U)*five(U))^2/thermalunit(U),U,Metric) @pure horsepower(U::UnitSystem) = power(two(U)*five(U)^2*eleven(U),U,British) @pure horsepowerwatt(U::UnitSystem) = power(two(U)^4*three(U)^3/five(U)*normal(tau(U)),U,British) -@pure horsepowermetric(U::UnitSystem) = power(three(U)*five(U)^2,U,GravitationalMetric) +@pure horsepowermetric(U::UnitSystem) = power(three(U)*five(U)^2,U,Gravitational) @pure electricalhorsepower(U::UnitSystem) = power(Constant(746),U,Metric) # electromagnetic diff --git a/src/derivedocs.jl b/src/derivedocs.jl index e4c5a59..514adeb 100644 --- a/src/derivedocs.jl +++ b/src/derivedocs.jl @@ -171,8 +171,8 @@ $(unitext(:radian,"angle(𝟏,U,Metric)")) Unit of `angle` which is dimensionless (rad). ```Julia -julia> radian(MetricEngineering) # rad -$(radian(MetricEngineering)) +julia> radian(Engineering) # rad +$(radian(Engineering)) julia> radian(MetricDegree) # deg $(radian(MetricDegree)) @@ -193,8 +193,8 @@ $(unitext(:spatian,"angle(𝟏,U,MetricSpatian)")) Unit of `angle` which is dimensionless (rad). ```Julia -julia> spatian(MetricEngineering) # rad -$(spatian(MetricEngineering)) +julia> spatian(Engineering) # rad +$(spatian(Engineering)) julia> spatian(MetricDegree) # deg $(spatian(MetricDegree)) @@ -215,8 +215,8 @@ $(unitext(:degree,"angle(𝟏,U,MetricDegree)")) Unit of `angle` which divides a `turn` into `360` parts (rad). ```Julia -julia> degree(MetricEngineering) # rad -$(degree(MetricEngineering)) +julia> degree(Engineering) # rad +$(degree(Engineering)) julia> degree(MetricDegree) # deg $(degree(MetricDegree)) @@ -237,8 +237,8 @@ $(unitext(:gradian,"angle(𝟏,U,MetricGradian)")) Unit of `angle` which divides a `turn` into `400` parts (rad). ```Julia -julia> gradian(MetricEngineering) # rad -$(gradian(MetricEngineering)) +julia> gradian(Engineering) # rad +$(gradian(Engineering)) julia> gradian(MetricDegree) # deg $(gradian(MetricDegree)) @@ -259,8 +259,8 @@ $(unitext(:bradian,"angle(τ/𝟐^8,U,Metric)")) Unit of `angle` which divides a `turn` into `𝟐^8` or `256` parts (rad). ```Julia -julia> bradian(MetricEngineering) # rad -$(bradian(MetricEngineering)) +julia> bradian(Engineering) # rad +$(bradian(Engineering)) julia> bradian(MetricDegree) # deg $(bradian(MetricDegree)) @@ -281,8 +281,8 @@ $(unitext(:arcminute,"angle(𝟏,U,MetricArcminute)")) Unit of `angle` which divides a `degree` into `60` parts (rad). ```Julia -julia> arcminute(MetricEngineering) # rad -$(arcminute(MetricEngineering)) +julia> arcminute(Engineering) # rad +$(arcminute(Engineering)) julia> arcminute(MetricDegree) # deg $(arcminute(MetricDegree)) @@ -303,8 +303,8 @@ $(unitext(:arcsecond,"angle(𝟏,U,MetricArcsecond)")) Unit of `angle` which divides a `arcminute` into `60` parts (rad). ```Julia -julia> arcsecond(MetricEngineering) # rad -$(arcsecond(MetricEngineering)) +julia> arcsecond(Engineering) # rad +$(arcsecond(Engineering)) julia> arcsecond(MetricDegree) # deg $(arcsecond(MetricDegree)) @@ -327,8 +327,8 @@ $(unitext(:steradian,"solidangle(𝟏,U,Metric)")) Unit of `solidangle` which is dimensionless (rad²). ```Julia -julia> steradian(MetricEngineering) # rad² -$(steradian(MetricEngineering)) +julia> steradian(Engineering) # rad² +$(steradian(Engineering)) julia> steradian(MetricDegree) # deg² $(steradian(MetricDegree)) @@ -349,8 +349,8 @@ $(unitext(:squaredegree,"solidangle(𝟏,U,MetricDegree)")) Unit of `solidangle` which is a `degree` squared (rad²). ```Julia -julia> squaredegree(MetricEngineering) # rad² -$(squaredegree(MetricEngineering)) +julia> squaredegree(Engineering) # rad² +$(squaredegree(Engineering)) julia> squaredegree(MetricDegree) # deg² $(squaredegree(MetricDegree)) @@ -1122,8 +1122,8 @@ $(gram(English)) julia> gram(British) # slug $(gram(British)) -julia> gram(GravitationalMetric) # hyl -$(gram(GravitationalMetric)) +julia> gram(Gravitational) # hyl +$(gram(Gravitational)) ``` """ gram @@ -1144,8 +1144,8 @@ $(earthgram(English)) julia> earthgram(British) # slug $(earthgram(British)) -julia> earthgram(GravitationalMetric) # hyl -$(earthgram(GravitationalMetric)) +julia> earthgram(Gravitational) # hyl +$(earthgram(Gravitational)) ``` """ earthgram @@ -1166,8 +1166,8 @@ $(kilogram(English)) julia> kilogram(British) # slug $(kilogram(British)) -julia> kilogram(GravitationalMetric) # hyl -$(kilogram(GravitationalMetric)) +julia> kilogram(Gravitational) # hyl +$(kilogram(Gravitational)) ``` """ kilogram @@ -1188,8 +1188,8 @@ $(tonne(English)) julia> tonne(British) # slug $(tonne(British)) -julia> tonne(GravitationalMetric) # hyl -$(tonne(GravitationalMetric)) +julia> tonne(Gravitational) # hyl +$(tonne(Gravitational)) ``` """ tonne @@ -1210,8 +1210,8 @@ $(ton(English)) julia> ton(British) # slug $(ton(British)) -julia> ton(GravitationalMetric) # hyl -$(ton(GravitationalMetric)) +julia> ton(Gravitational) # hyl +$(ton(Gravitational)) ``` """ ton @@ -1232,8 +1232,8 @@ $(pound(English)) julia> pound(British) # slug $(pound(British)) -julia> pound(GravitationalMetric) # hyl -$(pound(GravitationalMetric)) +julia> pound(Gravitational) # hyl +$(pound(Gravitational)) ``` """ pound @@ -1254,8 +1254,8 @@ $(ounce(English)) julia> ounce(British) # slug $(ounce(British)) -julia> ounce(GravitationalMetric) # hyl -$(ounce(GravitationalMetric)) +julia> ounce(Gravitational) # hyl +$(ounce(Gravitational)) ``` """ ounce @@ -1276,8 +1276,8 @@ $(slug(English)) julia> slug(British) # slug $(slug(British)) -julia> slug(GravitationalMetric) # hyl -$(slug(GravitationalMetric)) +julia> slug(Gravitational) # hyl +$(slug(Gravitational)) ``` """ slug @@ -1298,13 +1298,13 @@ $(slinch(English)) julia> slinch(British) # slug $(slinch(British)) -julia> slinch(GravitationalMetric) # hyl -$(slinch(GravitationalMetric)) +julia> slinch(Gravitational) # hyl +$(slinch(Gravitational)) ``` """ slinch @doc """ -$(unitext(:hyl,"mass(𝟏,U,GravitationalMetric)")) +$(unitext(:hyl,"mass(𝟏,U,Gravitational)")) Gravitational Metric `hyl` unit of `mass` (kg or lb). ```Julia @@ -1320,8 +1320,8 @@ $(hyl(English)) julia> hyl(British) # slug $(hyl(British)) -julia> hyl(GravitationalMetric) # hyl -$(hyl(GravitationalMetric)) +julia> hyl(Gravitational) # hyl +$(hyl(Gravitational)) ``` """ hyl @@ -1344,8 +1344,8 @@ $(dyne(English)) julia> dyne(FPS) # pdl $(dyne(FPS)) -julia> dyne(MetricEngineering) # kp -$(dyne(MetricEngineering)) +julia> dyne(Engineering) # kp +$(dyne(Engineering)) ``` """ dyne @@ -1366,8 +1366,8 @@ $(newton(English)) julia> newton(FPS) # pdl $(newton(FPS)) -julia> newton(MetricEngineering) # kp -$(newton(MetricEngineering)) +julia> newton(Engineering) # kp +$(newton(Engineering)) ``` """ newton @@ -1388,13 +1388,13 @@ $(poundal(English)) julia> poundal(FPS) # pdl $(poundal(FPS)) -julia> poundal(MetricEngineering) # kp -$(poundal(MetricEngineering)) +julia> poundal(Engineering) # kp +$(poundal(Engineering)) ``` """ poundal @doc """ -$(unitext(:kilopond,"force(𝟏,U,MetricEngineering)")) +$(unitext(:kilopond,"force(𝟏,U,Engineering)")) Gravitational `kilopond` unit of `force` used in engineering systems (N or lb). ```Julia @@ -1410,8 +1410,8 @@ $(kilopond(English)) julia> kilopond(FPS) # pdl $(kilopond(FPS)) -julia> kilopond(MetricEngineering) # kp -$(kilopond(MetricEngineering)) +julia> kilopond(Engineering) # kp +$(kilopond(Engineering)) ``` """ kilopond @@ -1432,8 +1432,8 @@ $(poundforce(English)) julia> poundforce(FPS) # pdl $(poundforce(FPS)) -julia> poundforce(MetricEngineering) # kp -$(poundforce(MetricEngineering)) +julia> poundforce(Engineering) # kp +$(poundforce(Engineering)) ``` """ poundforce @@ -1764,8 +1764,8 @@ $(watt(Metric)) julia> watt(English) # lb⋅ft⋅s⁻¹ $(watt(English)) -julia> watt(MetricEngineering) # kgf⋅m⋅s⁻¹ -$(watt(MetricEngineering)) +julia> watt(Engineering) # kgf⋅m⋅s⁻¹ +$(watt(Engineering)) ``` """ watt @@ -1780,8 +1780,8 @@ $(tonsrefrigeration(British)) julia> tonsrefrigeration(Metric) # W $(tonsrefrigeration(Metric)) -julia> tonsrefrigeration(MetricEngineering) # kgf⋅m⋅s⁻¹ -$(tonsrefrigeration(MetricEngineering)) +julia> tonsrefrigeration(Engineering) # kgf⋅m⋅s⁻¹ +$(tonsrefrigeration(Engineering)) ``` """ tonsrefrigeration @@ -1796,8 +1796,8 @@ $(boilerhorsepower(British)) julia> boilerhorsepower(Metric) # W $(boilerhorsepower(Metric)) -julia> boilerhorsepower(MetricEngineering) # kgf⋅m⋅s⁻¹ -$(boilerhorsepower(MetricEngineering)) +julia> boilerhorsepower(Engineering) # kgf⋅m⋅s⁻¹ +$(boilerhorsepower(Engineering)) ``` """ boilerhorsepower @@ -1812,8 +1812,8 @@ $(horsepower(British)) julia> horsepower(Metric) # W $(horsepower(Metric)) -julia> horsepower(MetricEngineering) # kgf⋅m⋅s⁻¹ -$(horsepower(MetricEngineering)) +julia> horsepower(Engineering) # kgf⋅m⋅s⁻¹ +$(horsepower(Engineering)) ``` """ horsepower, HP @@ -1828,13 +1828,13 @@ $(horsepowerwatt(British)) julia> horsepowerwatt(Metric) # W $(horsepowerwatt(Metric)) -julia> horsepowerwatt(MetricEngineering) # kgf⋅m⋅s⁻¹ -$(horsepowerwatt(MetricEngineering)) +julia> horsepowerwatt(Engineering) # kgf⋅m⋅s⁻¹ +$(horsepowerwatt(Engineering)) ``` """ horsepowerwatt @doc """ -$(unitext(:horsepowermetric,"power(𝟑*𝟓^2,U,GravitationalMetric)")) +$(unitext(:horsepowermetric,"power(𝟑*𝟓^2,U,Gravitational)")) Unit of `power` derived from raising 75 kp by 1 m in 1 in 1 s. ```Julia @@ -1844,8 +1844,8 @@ $(horsepowermetric(British)) julia> horsepowermetric(Metric) # W $(horsepowermetric(Metric)) -julia> horsepowermetric(MetricEngineering) # kgf⋅m⋅s⁻¹ -$(horsepowermetric(MetricEngineering)) +julia> horsepowermetric(Engineering) # kgf⋅m⋅s⁻¹ +$(horsepowermetric(Engineering)) ``` """ horsepowermetric @@ -1860,8 +1860,8 @@ $(electricalhorsepower(British)) julia> electricalhorsepower(Metric) # W $(electricalhorsepower(Metric)) -julia> electricalhorsepower(MetricEngineering) # kgf⋅m⋅s⁻¹ -$(electricalhorsepower(MetricEngineering)) +julia> electricalhorsepower(Engineering) # kgf⋅m⋅s⁻¹ +$(electricalhorsepower(Engineering)) ``` """ electricalhorsepower @@ -2598,8 +2598,8 @@ $(unitext(:candela,"luminousintensity(𝟏,U,Metric)")) Common unit of `luminousintensity` (cd). ```Julia -julia> candela(MetricEngineering) # lm⋅rad⁻² -$(candela(MetricEngineering)) +julia> candela(Engineering) # lm⋅rad⁻² +$(candela(Engineering)) julia> candela(MetricDegree) # lm⋅deg⁻² $(candela(MetricDegree)) @@ -2668,8 +2668,8 @@ $(unitext(:nit,"luminance(𝟏,U,Metric)")) Metric unit of `luminance` (lx⋅rad⁻²). ```Julia -julia> nit(MetricEngineering) # nt -$(nit(MetricEngineering)) +julia> nit(Engineering) # nt +$(nit(Engineering)) julia> nit(MetricDegree) # lm⋅m⁻²deg⁻² $(nit(MetricDegree)) @@ -2690,8 +2690,8 @@ $(unitext(:apostilb,"luminance(𝟐/turn(U),U,Metric)")) Metric unit of `luminance` (lx⋅rad⁻²). ```Julia -julia> apostilb(MetricEngineering) # nt -$(apostilb(MetricEngineering)) +julia> apostilb(Engineering) # nt +$(apostilb(Engineering)) julia> apostilb(MetricDegree) # lm⋅m⁻²deg⁻² $(apostilb(MetricDegree)) @@ -2712,8 +2712,8 @@ $(unitext(:stilb,"luminance(𝟏,U,Gauss)")) Historic unit of `luminance` (lx⋅rad⁻²). ```Julia -julia> stilb(MetricEngineering) # nt -$(stilb(MetricEngineering)) +julia> stilb(Engineering) # nt +$(stilb(Engineering)) julia> stilb(MetricDegree) # lm⋅m⁻²deg⁻² $(stilb(MetricDegree)) @@ -2734,8 +2734,8 @@ $(unitext(:lambert,"luminance(𝟐/turn(U),U,Gauss)")) Historic unit of `luminance` (nt). ```Julia -julia> lambert(MetricEngineering) # nt -$(lambert(MetricEngineering)) +julia> lambert(Engineering) # nt +$(lambert(Engineering)) julia> lambert(MetricDegree) # lm⋅m⁻²deg⁻² $(lambert(MetricDegree)) @@ -2756,8 +2756,8 @@ $(unitext(:footlambert,"luminance(𝟐/turn(U),U,English)")) English unit of `luminance` (nt). ```Julia -julia> footlambert(MetricEngineering) # nt -$(footlambert(MetricEngineering)) +julia> footlambert(Engineering) # nt +$(footlambert(Engineering)) julia> footlambert(MetricDegree) # lm⋅m⁻²deg⁻² $(footlambert(MetricDegree)) @@ -2778,8 +2778,8 @@ $(unitext(:bril,"centi*nano*lambert(U)")) Reference unit of `luminance` (nt). ```Julia -julia> bril(MetricEngineering) # nt -$(bril(MetricEngineering)) +julia> bril(Engineering) # nt +$(bril(Engineering)) julia> bril(MetricDegree) # lm⋅m⁻²deg⁻² $(bril(MetricDegree)) @@ -2822,8 +2822,8 @@ $(unitext(:hertz,"𝟏/second(U)")) Metric unit of `frequency` (s⁻¹). ```Julia -julia> hertz(MetricEngineering) # rad⋅s⁻¹ -$(hertz(MetricEngineering)) +julia> hertz(Engineering) # rad⋅s⁻¹ +$(hertz(Engineering)) julia> hertz(IAU) # D⁻¹ $(hertz(IAU)) @@ -2851,8 +2851,8 @@ $(unitext(:rpm,"turn(U)/minute(U)")) Revolutions per minute `rpm` unit of `angularfrequency` (rad⋅s⁻¹). ```Julia -julia> rpm(MetricEngineering) # rad⋅s⁻¹ -$(rpm(MetricEngineering)) +julia> rpm(Engineering) # rad⋅s⁻¹ +$(rpm(Engineering)) julia> rpm(MetricGradian) # gon⋅s⁻¹ $(rpm(MetricGradian)) diff --git a/src/initdata.jl b/src/initdata.jl index 8d80739..a624d0a 100644 --- a/src/initdata.jl +++ b/src/initdata.jl @@ -29,6 +29,9 @@ const tcq,em,mi = lcq*sqrt(mcq/sqrt(sqrt(ρΛ*(𝘤*ħ)^3))),sqrt(GME/g₀)*τ/ @pure sackurtetrode(U::UnitSystem,P=atmosphere(U),T=kelvin(U),m=dalton(U)) = normal(log((Constant(exp(5/2))*boltzmann(U)*sqrt(boltzmann(U)/gravity(U)/turn(U)/planckreduced(U)^2)^3)*(T/P*sqrt(m*T)^3))) +derived(U) = [x=>eval(:($x($U))) for x ∈ deleteat!(collect(UnitSystems.Derived),1)] +constants(U) = [x=>eval(:($x($U))) for x ∈ (:hyperfine,UnitSystems.Constants...,UnitSystems.Physics...,:loschmidt,:mechanicalheat,:wienwavelength,:wienfrequency,:sackurtetrode,:eddington,:solarmass,:jupitermass,:earthmass,:gforce,:earthradius,:greatcircle,:nauticalmile,:hubble,:cosmological)] + const Universe = Coupling(αG,α,μₑᵤ,μₚᵤ,ΩΛ) function unitsystem(kB,ħ,𝘤,μ₀,mₑ,Mᵤ=𝟏,Kcd=𝟏,θ=𝟏,λ=𝟏,αL=𝟏,g=𝟏,C=Universe,τ=τ,x=𝟐,y=𝟑,z=𝟓,w=𝟕,u=𝟏𝟏,v=𝟏𝟗,q=𝟒𝟑) @@ -51,7 +54,7 @@ Constructs new `UnitSystem` from `molarmass` constant, `vacuumpermeability`, `mo UnitSystem(Ru*me/Mu/μₑᵤ/g0,h/τ/g0/θ,𝘤,μ0,me,Mu,Kcd*(mₑ/me)^2*(h/𝘩)*g0,θ,𝟏,𝟏,g0) ``` -Examples include `SI2019`, `SI1976`, `Metric`, `MetricEngineering`, `MetricTurn`, `MetricSpatian`, `MetricGradian`, `MetricDegree`, `MetricArcminute`, `MetricArcsecond`. In addition, the `ConventionalSystem` constructor further builds on `MetricSystem`, resulting in variations. +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`. @@ -85,7 +88,7 @@ RankineSystem(u,l,m,g0=𝟏) = EntropySystem(u,𝟏,l,m,°R,UnitSystems.vacuumpe const SI2019 = Quantity(MetricSystem()) const Metric = Quantity(MetricSystem(milli,τ/𝟐^6/𝟓^7)) #const SI2019Engineering = Quantity(MetricSystem(Mᵤ,μ₀/g₀,Rᵤ,g₀)) -const MetricEngineering = Quantity(MetricSystem(milli,τ/𝟐^6/𝟓^7/g₀,Rᵤ,g₀)) +const Engineering = Quantity(MetricSystem(milli,τ/𝟐^6/𝟓^7/g₀,Rᵤ,g₀)) const MetricTurn = Quantity(MetricSystem(milli,τ/𝟐^6/𝟓^7,Rᵤ,𝟏,𝟏/τ)) const MetricSpatian = Quantity(MetricSystem(milli,τ/𝟐^6/𝟓^7,Rᵤ,𝟏,𝟏/ς)) const MetricGradian = Quantity(MetricSystem(milli,τ/𝟐^6/𝟓^7,Rᵤ,𝟏,𝟐^4*𝟓^2/τ)) @@ -127,7 +130,7 @@ const Nautical = Quantity(EntropySystem(Metric,HOUR,nm,em^3,𝟏,τ*𝟑^3/𝟐^ const Meridian = Quantity(EntropySystem(Metric,𝟏,em,em^3,𝟏,τ/𝟐^6/𝟓^7,milli)) #const MeridianEngineering = Quantity(EntropySystem(Metric,𝟏,em,em^3,𝟏,τ/𝟐^6/𝟓^7*em/g₀,milli,g₀/em)) #const GravitationalSI2019 = Quantity(EntropySystem(SI2019,𝟏,𝟏,g₀)) -const GravitationalMetric = Quantity(EntropySystem(Metric,𝟏,𝟏,g₀)) +const Gravitational = Quantity(EntropySystem(Metric,𝟏,𝟏,g₀)) #const GravitationalMeridian = Quantity(EntropySystem(Metric,𝟏,em,g₀*em^2,𝟏,τ/𝟐^6/𝟓^7*em/g₀,milli)) const IAU☉ = Quantity(EntropySystem(Metric,DAY,au,GM☉/G)) const IAUE = Quantity(EntropySystem(Metric,DAY,LD,GME/G)) @@ -152,6 +155,7 @@ const QCD = Quantity(unitsystem(𝟏,𝟏,𝟏,𝟏,inv(μₚₑ))) const QCDGauss = Quantity(unitsystem(𝟏,𝟏,𝟏,𝟐*τ,inv(μₚₑ))) const QCDoriginal = Quantity(unitsystem(𝟏,𝟏,𝟏,𝟐*τ*α,inv(μₚₑ))) +const MetricEngineering, GravitationalMetric = Engineering, Gravitational export SI, MKS, ME, GM, CGS, CGS2019, CGSm, CGSe, HLU, FFF, AE, EE, BG # SIE, GSI, GSI2019 export EnglishEngineering, BritishGravitational, AbsoluteEnglish, EnglishUS, EE2019, IAU #const SIE, GSI2019, GSI = SI2019Engineering, GravitationalSI2019, GravitationalSI2019 diff --git a/src/kinematicdocs.jl b/src/kinematicdocs.jl index 51d3c30..ca5d826 100644 --- a/src/kinematicdocs.jl +++ b/src/kinematicdocs.jl @@ -540,8 +540,8 @@ $(force(English,Metric)) julia> force(FPS,Metric) # pdl⋅N⁻¹ $(force(FPS,Metric)) -julia> force(MetricEngineering,Metric) # kp⋅N⁻¹ -$(force(MetricEngineering,Metric)) +julia> force(Engineering,Metric) # kp⋅N⁻¹ +$(force(Engineering,Metric)) ``` """ force, F @@ -553,8 +553,8 @@ Weight or `force` per `mass` or `gforce` (N/kg, m⋅s⁻²), unit conversion fac julia> specificforce(CGS,Metric) $(specificforce(CGS,Metric)) -julia> specificforce(MetricEngineering,Metric) -$(specificforce(MetricEngineering,Metric)) +julia> specificforce(Engineering,Metric) +$(specificforce(Engineering,Metric)) julia> specificforce(English,Metric) $(specificforce(English,Metric)) @@ -569,8 +569,8 @@ Reference `acceleration` per `specificforce` (𝟏, F⁻¹MLT⁻²), unit conver julia> gravityforce(Metric,CGS) $(gravityforce(Metric,CGS)) -julia> gravityforce(Metric,MetricEngineering) -$(gravityforce(Metric,MetricEngineering)) +julia> gravityforce(Metric,Engineering) +$(gravityforce(Metric,Engineering)) julia> gravityforce(Metric,English) $(gravityforce(Metric,English)) diff --git a/src/physicsdocs.jl b/src/physicsdocs.jl index f0b9714..54eb126 100644 --- a/src/physicsdocs.jl +++ b/src/physicsdocs.jl @@ -43,8 +43,8 @@ $(unitext(:turn,"2π/angle(U)")) Complete rotation `angle` of revolution from a full circle. ```Julia -julia> turn(MetricEngineering) # rad -$(turn(MetricEngineering)) +julia> turn(Engineering) # rad +$(turn(Engineering)) julia> turn(MetricDegree) # deg $(turn(MetricDegree)) @@ -65,8 +65,8 @@ $(unitext(:spat,"4π/solidangle(U)")) Complete spherical `solidangle` around point from a full sphere. ```Julia -julia> spat(MetricEngineering) # rad² -$(spat(MetricEngineering)) +julia> spat(Engineering) # rad² +$(spat(Engineering)) julia> spat(MetricDegree) # deg² $(spat(MetricDegree)) @@ -480,8 +480,8 @@ Gravitational force reference used in technical engineering units (kg⋅m⋅N⁻ julia> gravity(Metric) $(gravity(Metric)) -julia> gravity(MetricEngineering) # m⋅kg⋅N⁻¹⋅s⁻² -$(gravity(MetricEngineering)) +julia> gravity(Engineering) # m⋅kg⋅N⁻¹⋅s⁻² +$(gravity(Engineering)) julia> gravity(English) # ft⋅lbm⋅lbf⁻¹⋅s⁻² $(gravity(English)) @@ -1338,8 +1338,8 @@ $(unitext(:gaussgravitation,"sqrt(gravitation(U)*solarmass(U)/astronomicalunit(U Gaussian gravitational constant `k` of Newton's laws (Hz or rad⋅D⁻¹). ```Julia -julia> gaussgravitation(MetricEngineering) -$(gaussgravitation(MetricEngineering)) +julia> gaussgravitation(Engineering) +$(gaussgravitation(Engineering)) julia> gaussgravitation(MetricGradian) $(gaussgravitation(MetricGradian)) diff --git a/src/systems.jl b/src/systems.jl index 4620783..1ae9541 100644 --- a/src/systems.jl +++ b/src/systems.jl @@ -288,36 +288,36 @@ $(luminousefficacy(MetricGradian)) """ MetricGradian @doc """ -$(systext(:MetricEngineering,"MetricSystem(milli,𝟐*τ/𝟏𝟎^7,Rᵤ,g₀)")) +$(systext(:Engineering,"MetricSystem(milli,𝟐*τ/𝟏𝟎^7,Rᵤ,g₀)")) -Standard `MetricEngineering` system based on kilogram and kilopond (kilogram-force) units. +Standard Metric `Engineering` system based on kilogram and kilopond (kilogram-force) units. ```Julia -julia> boltzmann(MetricEngineering) # kgf⋅m⋅K⁻¹ -$(boltzmann(MetricEngineering)) +julia> boltzmann(Engineering) # kgf⋅m⋅K⁻¹ +$(boltzmann(Engineering)) -julia> planckreduced(MetricEngineering) # kgf⋅m⋅s⋅rad⁻¹ -$(planckreduced(MetricEngineering)) +julia> planckreduced(Engineering) # kgf⋅m⋅s⋅rad⁻¹ +$(planckreduced(Engineering)) -julia> lightspeed(MetricEngineering) # m⋅s⁻¹ -$(lightspeed(MetricEngineering)) +julia> lightspeed(Engineering) # m⋅s⁻¹ +$(lightspeed(Engineering)) -julia> vacuumpermeability(MetricEngineering) # kgf⋅s²⋅C⁻² -$(vacuumpermeability(MetricEngineering)) +julia> vacuumpermeability(Engineering) # kgf⋅s²⋅C⁻² +$(vacuumpermeability(Engineering)) -julia> electronmass(MetricEngineering) # kg -$(electronmass(MetricEngineering)) +julia> electronmass(Engineering) # kg +$(electronmass(Engineering)) -julia> molarmass(MetricEngineering) # kg⋅mol⁻¹ -$(molarmass(MetricEngineering)) +julia> molarmass(Engineering) # kg⋅mol⁻¹ +$(molarmass(Engineering)) -julia> luminousefficacy(MetricEngineering) # lm⋅s⋅m⁻¹⋅kgf⁻¹ -$(luminousefficacy(MetricEngineering)) +julia> luminousefficacy(Engineering) # lm⋅s⋅m⁻¹⋅kgf⁻¹ +$(luminousefficacy(Engineering)) -julia> gravity(MetricEngineering) # kg⋅m⋅kgf⁻¹⋅s⁻² -$(gravity(MetricEngineering)) +julia> gravity(Engineering) # kg⋅m⋅kgf⁻¹⋅s⁻² +$(gravity(Engineering)) ``` -""" MetricEngineering, ME +""" Engineering, ME #=@doc """ $(systext(:SI2019Engineering,"MetricSystem(Mᵤ,μ₀,Rᵤ,g₀)")) @@ -553,7 +553,7 @@ $(luminousefficacy(Meridian)) """ Meridian #=@doc """ -$(systext(:MeridianEngineering,"EntropySystem(MetricEngineering,𝟏,em,em^3,𝟏,τ/𝟐^6/𝟓^7/g₀^2,milli)")) +$(systext(:MeridianEngineering,"EntropySystem(Engineering,𝟏,em,em^3,𝟏,τ/𝟐^6/𝟓^7/g₀^2,milli)")) Modern ideal engineering `UnitSystem` variant of the original French `Meridian` system. @@ -773,33 +773,33 @@ $(rationalization(Kennelly)) """ Kennelly=# @doc """ -$(systext(:GravitationalMetric,"EntropySystem(Metric,𝟏,𝟏,g₀)")) +$(systext(:Gravitational,"EntropySystem(Metric,𝟏,𝟏,g₀)")) -Standard `GravitationalMetric` system based on `hyl` and `kilopond` units. +Standard `Gravitational` system based on `hyl` and `kilopond` units. ```Julia -julia> boltzmann(GravitationalMetric) # kgf⋅m⋅K⁻¹ -$(boltzmann(GravitationalMetric)) +julia> boltzmann(Gravitational) # kgf⋅m⋅K⁻¹ +$(boltzmann(Gravitational)) -julia> planckreduced(GravitationalMetric) # kgf⋅m⋅s⋅rad⁻¹ -$(planckreduced(GravitationalMetric)) +julia> planckreduced(Gravitational) # kgf⋅m⋅s⋅rad⁻¹ +$(planckreduced(Gravitational)) -julia> lightspeed(GravitationalMetric) # m⋅s⁻¹ -$(lightspeed(GravitationalMetric)) +julia> lightspeed(Gravitational) # m⋅s⁻¹ +$(lightspeed(Gravitational)) -julia> vacuumpermeability(GravitationalMetric) # H⋅m⁻¹ -$(vacuumpermeability(GravitationalMetric)) +julia> vacuumpermeability(Gravitational) # H⋅m⁻¹ +$(vacuumpermeability(Gravitational)) -julia> electronmass(GravitationalMetric) # hyl -$(electronmass(GravitationalMetric)) +julia> electronmass(Gravitational) # hyl +$(electronmass(Gravitational)) -julia> molarmass(GravitationalMetric) # hyl⋅mol⁻¹ -$(molarmass(GravitationalMetric)) +julia> molarmass(Gravitational) # hyl⋅mol⁻¹ +$(molarmass(Gravitational)) -julia> luminousefficacy(GravitationalMetric) # lm⋅s⋅m⁻¹⋅kgf⁻¹ -$(luminousefficacy(GravitationalMetric)) +julia> luminousefficacy(Gravitational) # lm⋅s⋅m⁻¹⋅kgf⁻¹ +$(luminousefficacy(Gravitational)) ``` -""" GravitationalMetric, GM +""" Gravitational, GM #=@doc """ $(systext(:GraviationalSI2019,"EntropySystem(SI2019,𝟏,𝟏,g₀)")) @@ -825,8 +825,8 @@ $(electronmass(GravitationalSI2019)) julia> molarmass(GravitationalSI2019) # hyl⋅mol⁻¹ $(molarmass(GravitationalSI2019)) -julia> luminousefficacy(GravitationalMetric) # lm⋅s⋅m⁻¹⋅kgf⁻¹ -$(luminousefficacy(GravitationalMetric)) +julia> luminousefficacy(Gravitational) # lm⋅s⋅m⁻¹⋅kgf⁻¹ +$(luminousefficacy(Gravitational)) ``` """ GravitationalSI2019, GSI, GSI2019=#