diff --git a/.appveyor.yml b/.appveyor.yml index ce8fda2..a130cac 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -19,6 +19,8 @@ platform: matrix: allow_failures: - platform: x86 + - julia_version: 1.1 + - julia_version: 1.2 - julia_version: nightly branches: diff --git a/Project.toml b/Project.toml index 8ebfbec..c7be438 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "UnitSystems" uuid = "3a241a3c-2137-41aa-af5e-1388e404ca09" authors = ["Michael Reed"] -version = "0.3.2" +version = "0.3.3" [deps] LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" diff --git a/README.md b/README.md index 9c131fb..708a73c 100644 --- a/README.md +++ b/README.md @@ -8,13 +8,18 @@ [![Coverage Status](https://coveralls.io/repos/chakravala/UnitSystems.jl/badge.svg?branch=master&service=github)](https://coveralls.io/github/chakravala/UnitSystems.jl?branch=master) [![codecov.io](https://codecov.io/github/chakravala/UnitSystems.jl/coverage.svg?branch=master)](https://codecov.io/github/chakravala/UnitSystems.jl?branch=master) +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 langauge) 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., 1914) Specifications for dimensional units are in the [UnitSystems.jl](https://github.com/chakravala/UnitSystems.jl) and [Similitude.jl](https://github.com/chakravala/Similitude.jl) and [MeasureSystems.jl](https://github.com/chakravala/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](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 across the packages: `Metric`, `SI2019`, `CODATA`, `Conventional`, `International`, `InternationalMean`, `MetricEngineering`, `SI2019Engineering`, `GravitationalMetric`, `GravitationalSI2019`, `British`, `British2019`, `Survey`, `Survey2019`, `English`, `English2019`, `FPS`, `FPS2019`, `Gauss`, `LorentzHeaviside`, `Thomson`, `EMU`, `ESU`, `EMU2019`, `ESU2019`, `IAU`, `IAUE`, `IAUJ`, `Astronomical`, `Hubble`, `Cosmological`, `CosmologicalQuantum`, `Nautical`, `MPH`, `KKH`, `MTS`, `FFF`, `Planck`, `PlanckGauss`, `Stoney`, `Hartree`, `Rydberg`, `Schrodinger`, `Electronic`, `Natural`, `NaturalGauss`, `QCD`, `QCDGauss`, and `QCDoriginal`. +Defaults are shared: `Metric`, `SI2019`, `CODATA`, `Conventional`, `International`, `InternationalMean`, `MetricEngineering`, `SI2019Engineering`, `GravitationalMetric`, `GravitationalSI2019`, `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 @@ -26,10 +31,10 @@ Eleven fundamental constants `kB`, `ħ`, `𝘤`, `μ₀`, `mₑ`, `Mᵤ`, `Kcd`, 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. -Main documentation is at https://geophysics.crucialflow.com/dev/units +Main documentation is at https://geophysics.crucialflow.com/dev/unitsystems 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 otherwise specified. +In most unit systems these extra constants have a value of `1` unless specified. ```Julia UnitSystem{kB, ħ, 𝘤, μ₀, mₑ, Mᵤ, (Kcd, θ, λ, αL, g₀, ...)} @@ -37,24 +42,27 @@ In most unit systems these extra constants have a value of `1` unless otherwise 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, `θ` angle measure, `λ` 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`, `universalgas`, `planck`, `planckreduced`, `lightspeed`, `planckmass`, `atomicmass`, `protonmass`, `electronmass`, `newton`, `einstein`, `vacuumpermeability`, `vacuumpermittivity`, `coulomb`, and -additional constants `molarmass`, `luminousefficacy`, `gravity`, `angle`, `turn`, `sphere`, `stefan`, `radiationdensity`, `ampere`, `lorentz`, `biotsavart`, `rationalization`, `vacuumimpedance`, `elementarycharge`, `magneton`, `conductancequantum`, `faraday`, `magneticfluxquantum`, `josephson`, `klitzing`, `hartree`, `rydberg`, `bohr`, `bohrreduced`. -Derived quantities are `second`, `minute`, `hour`, `day`, `year`, `gaussianyear`, `siderealyear`, `hyperfine`, `hubble`, `cosmological`, `solarmass`, `earthmass`, `jupitermass`, `lunarmass`, `astronomicalunit`, `lunardistance`, `mile`, `clarkemile`, `nauticalmile`, `parsec`, `lightyear`, `gallon`, `litre`, `standardgravity`, `standardtemperature`, `standardpressure`, `inchmercury`, `torr`, `kilocalorie`, `calorie`, `meancalorie`, `thermalunit`, `tonsrefrigeration`, `horsepower`, `horsepowerwatt`, `horsepowermetric`, `electricalhorsepower`, `boilerhorsepower`. +These constants induce derived values for `avogadro`, `boltzmann`, `molargas`, `planck`, `planckreduced`, `lightspeed`, `planckmass`, `atomicmass`, `protonmass`, `electronmass`, `newton`, `einstein`, `vacuumpermeability`, `vacuumpermittivity`, `electrostatic`, and +additional constants `molarmass`, `luminousefficacy`, `gravity`, `angle`, `turn`, `spat`, `stefan`, `radiationdensity`, `magnetostatic`, `lorentz`, `biotsavart`, `rationalization`, `vacuumimpedance`, `elementarycharge`, `magneton`, `conductancequantum`, `faraday`, `magneticfluxquantum`, `josephson`, `klitzing`, `hartree`, `rydberg`, `bohr`. Physics constant documentation is at https://geophysics.crucialflow.com/dev/constants -Additional reference `UnitSystem` variants: `EMU`, `ESU`, `Gauss`, `LorentzHeaviside`, `SI2019`, `SI1976`, `CODATA`, `Conventional`, `International`, `InternationalMean`, `MetricEngineering`, `GravitationalMetric`, `Astronomical`, `Hubble`, `Cosmological`, `CosmologicalQuantum`, `IAU`, `IAUE`, `IAUJ`, `MTS`, `FPS`, `British`, `Survey`, `Nautical`, `MPH`, `KKH`, `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`). +Standardized unit/derived quantities are `hyperfine`, `loschmidt`, `wienwavelength`, `wienfrequency`, `mechanicalheat`, `solarmass`, `jupitermass`, `earthmass`, `lunarmass`, `earthradius`, `greatcircle`, `radarmile`, `hubble`, `cosmological`, `radian`, `steradian`, `degree`, `gradian`, `arcminute`, `arcsecond`, `second`, `minute`, `hour`, `day`, `year`, `gaussianyear`, `siderealyear`, `angstrom`, `inch`, `foot`, `surveyfoot`, `yard`, `meter`, `earthmeter`, `mile`, `statutemile`, `meridianmile`, `admiraltymile`, `nauticalmile`, `lunardistance`, `astronomicalunit`, `lightyear`, `parsec`, `barn`, `hectare`, `acre`, `surveyacre`, `liter`, `gallon`, `quart`, `pint`, `cup`, `fluidounce`, `teaspoon`, `tablespoon`, `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`, `sealevel`, `mole`, `earthmole`, `poundmole`, `slugmole`, `slinchmole`, `katal`, `amagat`, `lumen`, `candela`, `lux`, `phot`, `footcandle`, `nit`, `apostilb`, `stilb`, `lambert`, `footlambert`, `bril`, `neper`, `bel`, `decibel`, `hertz`, `rpm`, `kayser`, `diopter`, `bubnoff`, `gforce`, `galileo`, `eotvos`, `darcy`, `poise`, `reyn`, `stokes`, `rayl`, `mpge`, `langley`, `jansky`, `solarflux`, `curie`, `sievert`, `roentgen`, `rem`. + +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`). Unit conversion documentation is at https://geophysics.crucialflow.com/dev/convert **Derived Unit conversions:** -Mechanics: `angle`, `solidangle`, `time`, `length`, `area`, `volume`, `wavenumber`, `angularwavenumber`, `fuelefficiency`, `frequency`, `angularfrequency`, `frequencydrift`, `speed`, `acceleration`, `jerk`, `snap`, `crackle`, `pop`, `volumeflow`, -`inertia`, `mass`, `massflow`, `lineardensity`, `areadensity`, `density`, `specificweight`, `specificvolume`, `force`, `gforce`, `stiffness`, `pressure`, `compressibility`, `viscosity`, `diffusivity`, `rotationalinertia`, `impulse`, `momentum`, `angularmomentum`, `yank`, `energy`, `specificenergy`, `action`, `fluence`, `power`, `powerdensity`, `intensity`, `spectralflux`, `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`, `electricfluxdensity`, `magneticfluxdensity`, `electricdipolemoment`, `magneticdipolemoment`, `electricpolarizability`, `magneticpolarizability`, `magneticmoment`, `magnetizability`, `magnetization`, `specificmagnetization`, `rigidity`, `polestrength`; -Thermodynamics: `temperature`, `entropy`, `specificentropy`, `volumeheatcapacity`, `thermalconductivity`, `thermalconductance`, `thermalresistance`, `thermalexpansion`, `lapserate`, +Mechanics: `angle`, `solidangle`, `time`, `length`, `area`, `volume`, `wavenumber`, `angularwavenumber`, `fuelefficiency`, `numberdensity`, `frequency`, `angularfrequency`, `frequencydrift`, `speed`, `acceleration`, `jerk`, `snap`, `crackle`, `pop`, `volumeflow`, +`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`, `intensity`, `spectralflux`, `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`, `electricfluxdensity`, `magneticfluxdensity`, `electricdipolemoment`, `magneticdipolemoment`, `electricpolarizability`, `magneticpolarizability`, `magneticmoment`, `specificmagnetization`, `polestrength`; +Thermodynamics: `temperature`, `entropy`, `specificentropy`, `volumeheatcapacity`, `thermalconductivity`, `thermalconductance`, `thermalresistivity`, `thermalresistance`, `thermalexpansion`, `lapserate`, `molarmass`, `molality`, `mole`, `molarity`, `molarvolume`, `molarentropy`, `molarenergy`, `molarconductivity`, `molarsusceptibility`, `catalysis`, `specificity`, -`luminousflux`, `luminance`, `luminousenergy`, `luminousexposure`, `luminousefficacy`. +`luminousflux`, `luminousintensity`, `luminance`, `illuminance`, `luminousenergy`, `luminousexposure`, `luminousefficacy`. **Generalized dimensionless `Coupling`:** diff --git a/src/UnitSystems.jl b/src/UnitSystems.jl index a02f14b..8adab6d 100644 --- a/src/UnitSystems.jl +++ b/src/UnitSystems.jl @@ -16,19 +16,37 @@ module UnitSystems # | | |\ | | | [__ \_/ [__ | |___ |\/| [__ # |__| | \| | | ___] | ___] | |___ | | ___] -import Base: @pure, length, time, angle +import Base: @pure, length, time, angle, rem -const Systems = (:Metric,:SI2019,:CODATA,:Conventional,:MTS,:SI1976,:Mixed,:ESU2019,:EMU2019,:EMU,:ESU,:Gauss,:LorentzHeaviside,:Thomson,:Kennelly,:Planck,:PlanckGauss,:Stoney,:Hartree,:Rydberg,:Schrodinger,:Electronic,:Natural,:NaturalGauss,:QCD,:QCDGauss,:QCDoriginal,:Astronomical,:IAU☉,:IAUE,:IAUJ,:Hubble,:Cosmological,:CosmologicalQuantum,:SI2019Engineering,:MetricEngineering,:GravitationalSI2019, :GravitationalMetric,:British,:British2019,:Survey,:Survey2019,:English,:English2019,:FPS,:FPS2019,:International,:InternationalMean,:Nautical,:MPH,:KKH) +const Systems = (:Metric,:SI2019,:SI1976,:CODATA,:Conventional,:International,:InternationalMean,:MetricEngineering,:SI2019Engineering,:GravitationalMetric,:GravitationalSI2019,:MTS,:EMU,:ESU,:Gauss,:LorentzHeaviside,:Kennelly,:FPS,:IPS,:British,:English,:Survey,:FFF,:MPH,:KKH,:Nautical,:Meridian,:MeridianEngineering,:GravitationalMeridian,: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,:permeability,:rationalization,:lorentz,:luminousefficacy,:gravity) #angle -const Physics = (:turn,:sphere,:atomicmass,:protonmass,:planckmass,:newton,:einstein,:einstein2,:hartree,:rydberg,:bohr,:bohrreduced,:electronradius,:avogadro,:universalgas,:stefan,:radiationdensity,:vacuumpermeability,:vacuumpermittivity,:coulomb,:ampere,:biotsavart,:elementarycharge,:faraday,:vacuumimpedance,:conductancequantum,:klitzing,:josephson,:magneticfluxquantum,:magneton) -const Derived = (:second,:minute,:hour,:day,:year,:gaussianyear,:siderealyear,:hyperfine,:hubble,:cosmological,:solarmass,:earthmass,:jupitermass,:lunarmass,:astronomicalunit,:lunardistance,:mile,:clarkemile,:nauticalmile,:parsec,:lightyear,:gallon,:litre,:standardgravity,:standardtemperature,:standardpressure,:inchmercury,:torr,:kilocalorie,:calorie,:meancalorie,:thermalunit,:tonsrefrigeration,:horsepower,:horsepowerwatt,:horsepowermetric,:electricalhorsepower,:boilerhorsepower) -const Kinematic = (:solidangle,:time,:length,:area,:volume,:wavenumber,:angularwavenumber,:fuelefficiency,:frequency,:angularfrequency,:frequencydrift,:speed,:acceleration,:jerk,:snap,:crackle,:pop,:volumeflow) #angle -const Mechanical = (:inertia,:mass,:massflow,:lineardensity,:areadensity,:density,:specificweight,:specificvolume,:force,:gforce,:stiffness,:pressure,:compressibility,:viscosity,:diffusivity,:rotationalinertia,:impulse,:momentum,:angularmomentum,:yank,:energy,:specificenergy,:action,:fluence,:power,:powerdensity,:intensity,:spectralflux,:soundexposure,:impedance,:specificimpedance,:admittance,:compliance,:inertance) -const Electromagnetic = (: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,:electricfluxdensity,:magneticfluxdensity,:electricdipolemoment,:magneticdipolemoment,:electricpolarizability,:magneticpolarizability,:magneticmoment,:magnetizability,:magnetization,:specificmagnetization,:rigidity,:polestrength) -const Thermodynamic = (:temperature,:entropy,:specificentropy,:volumeheatcapacity,:thermalconductivity,:thermalconductance,:thermalresistance,:thermalexpansion,:lapserate) -const Molar = (:molarmass,:molality,:mole,:molarity,:molarvolume,:molarentropy,:molarenergy,:molarconductivity,:molarsusceptibility,:catalysis,:specificity) -const Photometric = (:luminousflux,:luminance,:luminousenergy,:luminousexposure,:luminousefficacy) +const Physics = (:turn,:spat,:atomicmass,:protonmass,:planckmass,:gravitation,:einstein,:hartree,:rydberg,:bohr,:electronradius,:avogadro,:molargas,:stefan,:radiationdensity,:vacuumpermeability,:vacuumpermittivity,:electrostatic,:magnetostatic,:biotsavart,:elementarycharge,:faraday,:vacuumimpedance,:conductancequantum,:klitzing,:josephson,:magneticfluxquantum,:magneton,:gaussgravitation) +const Derived = (:hyperfine,:loschmidt,:wienwavelength,:wienfrequency,:mechanicalheat,:solarmass,:jupitermass,:earthmass,:lunarmass,:earthradius,:greatcircle,:radarmile,:hubble,:cosmological, + :radian,:steradian,:degree,:gradian,:arcminute,:arcsecond, + :second,:minute,:hour,:day,:year,:gaussianyear,:siderealyear, + :angstrom,:inch,:foot,:surveyfoot,:yard,:meter,:earthmeter,:mile,:statutemile,:meridianmile,:admiraltymile,:nauticalmile,:lunardistance,:astronomicalunit,:lightyear,:parsec, + :barn,:hectare,:acre,:surveyacre, + :liter,:gallon,:quart,:pint,:cup,:fluidounce,:teaspoon,:tablespoon, + :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,:sealevel,:mole,:earthmole,:poundmole,:slugmole,:slinchmole,:katal,:amagat, + :lumen,:candela,:lux,:phot,:footcandle,:nit,:apostilb,:stilb,:lambert,:footlambert,:bril, + :neper,:bel,:decibel,:hertz,:rpm, + :kayser,:diopter,:bubnoff,:gforce,:galileo,:eotvos,:darcy,:poise,:reyn,:stokes,:rayl, + :mpge,:langley,:jansky,:solarflux,:curie,:sievert,:roentgen,:rem) +const Kinematic = (:solidangle,:time,:length,:area,:volume,:wavenumber,:angularwavenumber,:fuelefficiency,:numberdensity,:frequency,:angularfrequency,:frequencydrift,:speed,:acceleration,:jerk,:snap,:crackle,:pop,:volumeflow) #angle +const Mechanical = (: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,:intensity,:spectralflux,:soundexposure,:impedance,:specificimpedance,:admittance,:compliance,:inertance) +const Electromagnetic = (: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,:electricfluxdensity,:magneticfluxdensity,:electricdipolemoment,:magneticdipolemoment,:electricpolarizability,:magneticpolarizability,:magneticmoment,:specificmagnetization,:polestrength) +const Thermodynamic = (:temperature,:entropy,:specificentropy,:volumeheatcapacity,:thermalconductivity,:thermalconductance,:thermalresistivity,:thermalresistance,:thermalexpansion,:lapserate) +const Molar = (:molarmass,:molality,:molaramount,:molarity,:molarvolume,:molarentropy,:molarenergy,:molarconductivity,:molarsusceptibility,:catalysis,:specificity) +const Photometric = (:luminousflux,:luminousintensity,:luminance,:illuminance,:luminousenergy,:luminousexposure,:luminousefficacy) const Mechanics = [Kinematic...,Mechanical...] const Convert = [Mechanics...,Electromagnetic...,Thermodynamic...,Molar...,Photometric...] @@ -55,8 +73,9 @@ Quantity(x) = x Quantity(D,U,x) = x const 𝟙,F,M,L,T,Q,Θ,N,J,A,Λ,C = 1,1,1,1,1,1,1,1,1,1,1,1 -dB(x) = 10log10(x) -Db(x) = exp10(0.1)^x +logdb(x) = 10log10(x) +expdb(x) = exp10(0.1)^x +const dB, Db = logdb, expdb # universe @@ -85,13 +104,14 @@ Base.display(U::Coupling) = println("Coupling{αG = $(coupling(U)), α = $(fines 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, `θ` angle measure, `λ` 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`, `universalgas`, `planck`, `planckreduced`, `lightspeed`, `planckmass`, `atomicmass`, `protonmass`, `electronmass`, `newton`, `einstein`, `vacuumpermeability`, `vacuumpermittivity`, `coulomb`, and -additional constants `molarmass`, `luminousefficacy`, `gravity`, `angle`, `turn`, `sphere`, `stefan`, `radiationdensity`, `ampere`, `lorentz`, `biotsavart`, `rationalization`, `vacuumimpedance`, `elementarycharge`, `magneton`, `conductancequantum`, `faraday`, `magneticfluxquantum`, `josephson`, `klitzing`, `hartree`, `rydberg`, `bohr`, `bohrreduced`. -Derived quantities are `$(listext(Derived))`. +These constants induce derived values for `avogadro`, `boltzmann`, `molargas`, `planck`, `planckreduced`, `lightspeed`, `planckmass`, `atomicmass`, `protonmass`, `electronmass`, `newton`, `einstein`, `vacuumpermeability`, `vacuumpermittivity`, `electrostatic`, and +additional constants `molarmass`, `luminousefficacy`, `gravity`, `angle`, `turn`, `spat`, `stefan`, `radiationdensity`, `magnetostatic`, `lorentz`, `biotsavart`, `rationalization`, `vacuumimpedance`, `elementarycharge`, `magneton`, `conductancequantum`, `faraday`, `magneticfluxquantum`, `josephson`, `klitzing`, `hartree`, `rydberg`, `bohr`. -Additional reference `UnitSystem` variants: `EMU`, `ESU`, `Gauss`, `LorentzHeaviside`, `SI2019`, `SI1976`, `CODATA`, `Conventional`, `International`, `InternationalMean`, `MetricEngineering`, `GravitationalMetric`, `Astronomical`, `Hubble`, `Cosmological`, `CosmologicalQuantum`, `IAU`, `IAUE`, `IAUJ`, `MTS`, `FPS`, `British`, `Survey`, `Nautical`, `MPH`, `KKH`, `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`). +Standardized unit/derived quantities are `$(listext(Derived))`. -**Derived unit conversions:** +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`). + +**Dimensional unit conversions:** Mechanics: `angle`, `$(listext(Kinematic))`, `$(listext(Mechanical))`; Electromagnetics: `$(listext(Electromagnetic))`; @@ -149,7 +169,7 @@ function Base.display(U::UnitSystem) println(" mₑ = $(electronmass(U))") println(" Mᵤ = $(molarmass(U))") println(" Kcd = $(luminousefficacy(U))") - println(" A = $(angle(U))") + println(" θ = $(angle(U))") println(" λ = $(rationalization(U)≠4π ? rationalization(U) : "4π")") println(" αL = $(lorentz(U))") println(" g₀ = $(gravity(U))") @@ -190,11 +210,11 @@ function DimensionSystem(U::UnitSystem,L,M,T,I,Θ,N,J,A,Λ,G,C) end """ - AstronomicalSystem(U::UnitSystem) = EntropySystem(U,𝟏,𝟏,𝟏/newton(U)) + AstronomicalSystem(U::UnitSystem) = EntropySystem(U,𝟏,𝟏,𝟏/gravitation(U)) -Constructs new `UnitSystem` from `U` with `mass` rescaled by `newton` gravitational constant. An example of this type based on `Metric` is the `Astronomical` system. +Constructs new `UnitSystem` from `U` with `mass` rescaled by `newton` gravitational constant. An example of this type is `AstronomicalSystem(Metric)`. """ -AstronomicalSystem(u) = EntropySystem(u,one(u),one(u),inv(newton(u))) +AstronomicalSystem(u) = EntropySystem(u,one(u),one(u),inv(gravitation(u))) """ ElectricSystem(U::UnitSystem,Ω,V) = EntropySystem(U,𝟏,𝟏,V^2/Ω,𝟏,vacuumpermeability(U)/Ω) @@ -204,11 +224,11 @@ Constructs new `UnitSystem` from `U` with `mass` rescaled by `electricpotential` ElectricSystem(u,Ω,V) = EntropySystem(u,one(u),one(u),V*V/Ω,one(u),vacuumpermeability(u)/Ω) """ - GaussSystem(U::UnitSystem,μ0,λ,αL=𝟏,l=0.01,m=0.001,g0=gravity(U)) + GaussSystem(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 scale. +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`, `Thomson`, and `Kennelly`. +Examples include `EMU`, `ESU`, `Gauss`, `LorentzHeaviside`, and `Kennelly`. """ function GaussSystem(u,μ0,λ,αL=one(u),l=inv((two(u)*five(u))^2),m=inv((two(u)*five(u))^3),g0=gravity(u)) EntropySystem(u,one(u),l,m,one(u),μ0,m==1/1000 ? one(u) : molarmass(u)/m,g0,m*(l*l),λ,αL) @@ -220,14 +240,14 @@ 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 `GravitationalSI2019`, `GravitationalMetric`, `MTS`, `IAU☉`, `IAUE`, `IAUJ`, `KKH`, `Hubble`, `Cosmological`, `CosmologicalQuantum`, `EMU2019`, `ESU2019`, `Mixed`, `Nautical`, `MPH`, `FFF`. +Examples of this type include `Nautical`, `Meridian`, `MeridianEngineering`, `GravitatonalMeridian`, `GravitationalMetric`, `GravitationalSI2019`, `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. """ function EntropySystem(u,t,l,m,θ=one(u)); tt = t*t; e = m*l*l/tt - EntropySystem(u,t,l,m,θ,permeability(u)*tt/e,molarmass(u)/m,gravity(u),e) + EntropySystem(u,t,l,m,θ,permeability(u)/(m*l),molarmass(u)/m,gravity(u)*tt/l,m*l*l/(t*t)) end -function EntropySystem(u,t,l,m,θ,μ0,Mu=molarmass(u)/m,g0=gravity(u),e=m*l*l/(t*t),λ=one(u),αL=one(u)) +function EntropySystem(u,t,l,m,θ,μ0,Mu=molarmass(u)/m,g0=gravity(u)*(t*t/l),e=m*l*l/(t*t),λ=one(u),αL=one(u)) UnitSystem( boltzmann(u)*θ/e/g0, planckreduced(u)/t/e/g0, @@ -244,12 +264,12 @@ end @pure Base.zero(U::UnitSystem) = one(U)-one(U) @pure turn(U::UnitSystem) = twopi(U)/angle(U) @pure solidangle(U::UnitSystem,S::UnitSystem) = unit(angle(U,S)^2) -@pure sphere(U::UnitSystem) = two(U)*turn(U)/angle(U)*unit(turn(U)/normal(turn(U))) +@pure spat(U::UnitSystem) = two(U)*turn(U)/angle(U)*unit(turn(U)/normal(turn(U))) @pure mass(U::UnitSystem,S::UnitSystem) = electronmass(U,S) @pure electronmass(𝘩::Number,C::Coupling) = inv(finestructure(C))^2*R∞*2𝘩/𝘤 @pure planckmass(U::UnitSystem,C::Coupling=universe(U)) = electronmass(U,C)/√coupling(C) @pure planck(U::UnitSystem,C::Coupling=universe(U)) = turn(U)*planckreduced(U,C) -@pure newton(U::UnitSystem,C::Coupling=universe(U)) = lightspeed(U,C)*planck(U,C)/normal(twopi(U))/planckmass(U,C)^2 +@pure gravitation(U::UnitSystem,C::Coupling=universe(U)) = lightspeed(U,C)*planck(U,C)/normal(twopi(U))/planckmass(U,C)^2 @pure elementarycharge(U::UnitSystem,C::Coupling=universe(U)) = sqrt(two(U)*planck(U)/(vacuumpermeability(U)/finestructure(C))/(lightspeed(U)*rationalization(U)*lorentz(U)^2)) for unit ∈ (:coupling,:finestructure,:electronunit,:protonunit,:protonelectron,:darkenergydensity) @@ -277,7 +297,7 @@ end # fundamental constants, αinv = (34259-1/4366.8123)/250 # 137.036 exactly? -const g₀,atm,Tₛ = Constant(9.80665),Constant(101325.0),Constant(288.16) +const g₀,atm,T₀ = Constant(9.80665),Constant(101325.0),Constant(273.15) const ft,ftUS,lb = Constant(0.3048),Constant(1200/3937),Constant(0.45359237) const inHg,Ωᵢₜ,Vᵢₜ = Constant(1/3386.389),Constant(1.000495),Constant(1.00033) const ΔνCs,Kcd,mP = Constant(9192631770.0),Constant(683*555.016/555),Constant(2.176434e-8) @@ -288,13 +308,14 @@ const αinv,R∞ = Constant(137.035999084),Constant(10973731.5681601) const RK1990,KJ1990,Rᵤ2014 = Constant(25812.807),Constant(4.835979e14),Constant(8.3144598) const RK2014,KJ2014 = Constant(25812.8074555),Constant(4.835978525e14) const GME,GMJ = Constant(398600441.8e6),Constant(1.26686534e17) -const k,H0,ΩΛ = Constant(0.01720209895),Constant(67.66),Constant(0.6889) +const kG,H0,ΩΛ = Constant(3548.18761),Constant(67.66),Constant(0.6889) const aⱼ,au,LD = Constant(365.25),Constant(149597870.7e3),Constant(384402e3) +const zetta, yotta, yocto = Constant(1e21), Constant(1e24), Constant(1e-24) const 𝟏,𝟐,𝟑,𝟓,𝟕,𝟏𝟎,𝟏𝟏,𝟏𝟗,𝟒𝟑,τ,α = Constant(1),Constant(2),Constant(3),Constant(5),Constant(7),Constant(10),Constant(11),Constant(19),Constant(43),Constant(2π),inv(αinv) include("initdata.jl") -const lbm,lbmUS,rankine,kelvin = g₀/ft,g₀/ftUS,°R,K +const slug,lbm,lbmUS,rankine,kelvin = lb*g₀/ft,g₀/ft,g₀/ftUS,°R,K const ħ1990,ħ2014 = planckreduced(Conventional),planckreduced(CODATA) const mₑ1990,mₑ2014 = electronmass(Conventional),electronmass(CODATA) const δμ₀,ly,mₛ,GG = μ₀-4π*1e-7,aⱼ*𝘤*DAY,GM☉/G,G @@ -307,25 +328,25 @@ const calₜₕ,cal₄,cal₁₀,cal₂₀,calₘ,calᵢₜ = (kcalₜₕ,kcal # physical constants -@pure electronmass(U::typeof(Planck),C::Coupling) = sqrt(sphere(U)*coupling(C)) +@pure electronmass(U::typeof(Planck),C::Coupling) = sqrt(spat(U)*coupling(C)) @pure electronmass(U::typeof(PlanckGauss),C::Coupling) = sqrt(coupling(C)) @pure electronmass(U::UnitSystem{kB,ħ,𝘤,μ₀,√(αG*αinv)},C::Coupling) where {kB,ħ,𝘤,μ₀} = sqrt(coupling(C)/finestructure(C)) @pure electronmass(U::UnitSystem{kB,ħ,𝘤,μ₀,1/μₚₑ},C::Coupling) where {kB,ħ,𝘤,μ₀} = 1/protonelectron(C) -@pure vacuumpermeability(U::UnitSystem{kB,ħ,𝘤,4π/αinv^2},C::Coupling) where {kB,ħ,𝘤} = sphere(U)*finestructure(C)^2 -@pure vacuumpermeability(U::UnitSystem{kB,ħ,𝘤,π/αinv^2},C::Coupling) where {kB,ħ,𝘤} = sphere(U)/two(U)^2*finestructure(C)^2 +@pure vacuumpermeability(U::UnitSystem{kB,ħ,𝘤,4π/αinv^2},C::Coupling) where {kB,ħ,𝘤} = spat(U)*finestructure(C)^2 +@pure vacuumpermeability(U::UnitSystem{kB,ħ,𝘤,π/αinv^2},C::Coupling) where {kB,ħ,𝘤} = spat(U)/two(U)^2*finestructure(C)^2 @pure lightspeed(U::UnitSystem{kB,ħ,αinv},C::Coupling) where {kB,ħ} = inv(finestructure(C)) @pure lightspeed(U::UnitSystem{kB,ħ,2αinv},C::Coupling) where {kB,ħ} = two(U)/finestructure(C) @pure planckreduced(U::UnitSystem{kB,αinv},C::Coupling) where kB = inv(finestructure(C)) -@pure electronmass(U::UnitSystem{kB,ħ,𝘤,μ₀,mₑ},C::Coupling) where {kB,ħ,μ₀} = electronmass(planck(U),C) +@pure electronmass(U::UnitSystem{kB,ħ,𝘤,μ₀,mₑ},C::Coupling) where {kB,ħ,μ₀} = electronmass(U)#electronmass(planck(U),C) @pure electronmass(U::UnitSystem{kB,ħ,100𝘤,μ₀,1000mₑ},C::Coupling) where {kB,ħ,μ₀} = electronmass(SI,C)*(two(U)*five(U))^3 @pure electronmass(U::UnitSystem{kB,ħ,𝘤,μ₀,mₑ/1000},C::Coupling) where {kB,ħ,μ₀} = electronmass(SI,C)/(two(U)*five(U))^3 @pure electronmass(U::UnitSystem{kB,ħ,𝘤,μ₀,electronmass(CODATA)},C::Coupling) where {kB,ħ,μ₀} = electronmass(planck(U),C) @pure electronmass(U::UnitSystem{kB,ħ,𝘤,μ₀,electronmass(Conventional)},C::Coupling) where {kB,ħ,μ₀} = electronmass(planck(U),C) -@pure electronmass(U::UnitSystem{kB,ħ,𝘤/ftUS,μ₀,mₑ/slug},C::Coupling) where {kB,ħ,μ₀} = electronmass(SI,C)/slug +@pure electronmass(U::UnitSystem{kB,ħ,𝘤/ftUS,μ₀,mₑ*ft/lb/g₀},C::Coupling) where {kB,ħ,μ₀} = electronmass(SI,C)*ft/lb/g₀ @pure vacuumpermeability(U::UnitSystem{kB,ħ,𝘤,μ₀},C::Coupling) where {kB,ħ,𝘤} = finestructure(C)*2𝘩/𝘤/𝘦^2 -@pure vacuumpermeability(U::typeof(ESU2019),C::Coupling) = 1e3*vacuumpermeability(SI,C)/𝘤^2 -@pure vacuumpermeability(U::typeof(EMU2019),C::Coupling) = 1e7*vacuumpermeability(SI,C) +#@pure vacuumpermeability(U::typeof(ESU2019),C::Coupling) = 1e3*vacuumpermeability(SI,C)/𝘤^2 +#@pure vacuumpermeability(U::typeof(EMU2019),C::Coupling) = 1e7*vacuumpermeability(SI,C) @pure vacuumpermeability(U::typeof(CODATA),C::Coupling) = 2RK2014*finestructure(C)/𝘤 @pure vacuumpermeability(U::typeof(Conventional),C::Coupling) = 2RK1990*finestructure(C)/𝘤 @@ -336,6 +357,12 @@ $unit(v::Real,U::UnitSystem,S::UnitSystem) = v/$unit(U,S) ``` """ +unitext(unit,text) = """ +```Julia +$unit(U::UnitSystem) = $text +``` +""" + include("kinematic.jl") include("electromagnetic.jl") include("thermodynamic.jl") diff --git a/src/constant.jl b/src/constant.jl index 78e1c24..4d3840d 100644 --- a/src/constant.jl +++ b/src/constant.jl @@ -23,7 +23,7 @@ end @pure param(::Constant{D}) where D = D Base.float(x::Constant) = float(constant(x)) Base.convert(::Type{Float64},c::Constant) = float(c) -dB(x::Constant{D}) where D = Constant{dB(D)}() +logdb(x::Constant{D}) where D = Constant{logdb(D)}() Base.:+(a::Constant,b::Constant) = Constant(constant(a)+constant(b)) Base.:-(a::Constant,b::Constant) = Constant(constant(a)-constant(b)) Base.:+(a::Constant{D},::Constant{D}) where D = 𝟐*a diff --git a/src/derived.jl b/src/derived.jl new file mode 100644 index 0000000..b703e28 --- /dev/null +++ b/src/derived.jl @@ -0,0 +1,258 @@ + +# This file is part of UnitSystems.jl +# It is licensed under the MIT license +# UnitSystems Copyright (C) 2020 Michael Reed +# _ _ _ +# | | | | | | +# ___| |__ __ _| | ___ __ __ ___ ____ _| | __ _ +# / __| '_ \ / _` | |/ / '__/ _` \ \ / / _` | |/ _` | +# | (__| | | | (_| | <| | | (_| |\ V / (_| | | (_| | +# \___|_| |_|\__,_|_|\_\_| \__,_| \_/ \__,_|_|\__,_| +# +# https://github.com/chakravala +# https://crucialflow.com + +@pure deka(U::UnitSystem) = two(U)*five(U) +@pure hecto(U::UnitSystem) = deka(U)^2 +@pure kilo(U::UnitSystem) = deka(U)^3 +@pure mega(U::UnitSystem) = (Constant(1.0)*kilo(U))^2 +@pure giga(U::UnitSystem) = (Constant(1.0)*kilo(U))^3 +@pure tera(U::UnitSystem) = (Constant(1.0)*kilo(U))^4 +@pure peta(U::UnitSystem) = (Constant(1.0)*kilo(U))^5 +@pure exa(U::UnitSystem) = (Constant(1.0)*kilo(U))^6 +@pure zetta(U::UnitSystem) = (Constant(1.0)*kilo(U))^7 +@pure yotta(U::UnitSystem) = (Constant(1.0)*kilo(U))^8 +@pure deci(U::UnitSystem) = inv(deka(U)) +@pure centi(U::UnitSystem) = inv(hecto(U)) +@pure milli(U::UnitSystem) = inv(kilo(U)) +@pure micro(U::UnitSystem) = inv(mega(U)) +@pure nano(U::UnitSystem) = inv(giga(U)) +@pure pico(U::UnitSystem) = inv(tera(U)) +@pure femto(U::UnitSystem) = inv(peta(U)) +@pure atto(U::UnitSystem) = inv(exa(U)) +@pure zepto(U::UnitSystem) = inv(zetta(U)) +@pure yocto(U::UnitSystem) = inv(yotta(U)) +@pure kibi(U::UnitSystem) = two(U)^10 +@pure mebi(U::UnitSystem) = two(U)^20 +@pure gibi(U::UnitSystem) = two(U)^30 +@pure tebi(U::UnitSystem) = two(U)^40 +@pure pebi(U::UnitSystem) = two(U)^50 +@pure exbi(U::UnitSystem) = two(U)^60 +@pure zebi(U::UnitSystem) = (Constant(1.0)*two(U))^70 +@pure yobi(U::UnitSystem) = (Constant(1.0)*two(U))^80 + +# angle + +@pure radian(U::UnitSystem) = angle(one(U),U,Metric) +@pure steradian(U::UnitSystem) = solidangle(one(U),U,Metric) +@pure degree(U::UnitSystem) = angle(turn(U)/two(U)^3/three(U)^2/five(U),U,Metric) +@pure gradian(U::UnitSystem) = angle(turn(U)/two(U)^4/five(U)^2,U,Metric) +@pure arcminute(U::UnitSystem) = degree(U)/two(U)^2/three(U)/five(U) +@pure arcsecond(U::UnitSystem) = arcminute(U)/two(U)^2/three(U)/five(U) + +@pure rpm(U::UnitSystem) = one(U)/minute(U) +#@pure rpd(U::UnitSystem) = turn(U)/day(U) + +# time + +@pure second(U::UnitSystem) = time(one(U),U,Metric) +@pure minute(U::UnitSystem) = two(U)^2*three(U)*five(U)*second(U) +@pure hour(U::UnitSystem) = two(U)^2*three(U)*five(U)*minute(U) +@pure day(U::UnitSystem) = two(U)^3*three(U)*hour(U) +@pure year(U::UnitSystem) = aⱼ*day(U) +@pure radarmile(U::UnitSystem) = two(U)*nauticalmile(U)/lightspeed(U) + +# length + +@pure meter(U::UnitSystem) = length(one(U),U,Metric) +@pure earthmeter(U::UnitSystem) = length(one(U),U,Meridian) +#@pure navigationmeter(U::UnitSystem) = greatcircle(U)/two(U)^9/five(U)^7 +@pure angstrom(U::UnitSystem) = hecto(U)*pico(U)*meter(U) +@pure foot(U::UnitSystem) = length(one(U),U,English) +@pure inch(U::UnitSystem) = length(one(U),U,IPS) +#@pure rackunit(U::UnitSystem) = foot(U)*seven(U)/two(U)^4/three(U) +@pure yard(U::UnitSystem) = three(U)*foot(U) +@pure surveyfoot(U::UnitSystem) = length(one(U),U,Survey) +@pure statutemile(U::UnitSystem) = length(two(U)^5*three(U)*five(U)*eleven(U),U,Survey) +@pure earthradius(U::UnitSystem) = sqrt(earthmass(U)*gravitation(U)/gforce(U)) +#@pure navigationradius(U::UnitSystem) = length(sqrt(earthmass(Metric)*gravitation(Metric)/(gforce(Metric) - gravitation(Metric)*(lunarmass(Metric)/lunardistance(Metric)^2+solarmass(Metric)/astronomicalunit(Metric)^2))),U,Metric) +@pure greatcircle(U::UnitSystem) = normal(turn(U))*earthradius(U) +#@pure greatcircle(U::UnitSystem) = normal(turn(U))*navigationradius(U) +@pure nauticalmile(U::UnitSystem) = length(one(U),U,Nautical) +#@pure navigationmile(U::UnitSystem) = greatcircle(U)/two(U)^5/three(U)^3/five(U)^2 +@pure astronomicalunit(U::UnitSystem) = length(𝟏,U,IAU) +@pure lunardistance(U::UnitSystem) = length(LD,U,Metric) +@pure mile(U::UnitSystem) = length(two(U)^5*three(U)*five(U)*eleven(U),U,English) +@pure admiraltymile(U::UnitSystem) = length(two(U)^6*five(U)*nineteen(U),U,English) +@pure meridianmile(U::UnitSystem) = length(two(U)^4*five(U)^5/three(U)^3,U,Metric) +@pure lightyear(U::UnitSystem) = year(U)*lightspeed(U) +@pure parsec(U::UnitSystem) = astronomicalunit(U)*two(U)^7*three(U)^4*five(U)^3/turn(U) + +# area + +@pure barn(U::UnitSystem) = area((two(U)*five(U))^-28,U,Metric) +@pure hectare(U::UnitSystem) = area(hecto(U)*hecto(U),U,Metric) +@pure acre(U::UnitSystem) = area(two(U)^-7/five(U),U,MPH) +@pure surveyacre(U::UnitSystem) = area(two(U)^3*three(U)^2*five(U)*eleven(U)^2,U,Survey) +#@pure township(U::UnitSystem) = two(U)^9*three(U)^2*five(U)*surveyacre(U) +#@pure footballfield(U::UnitSystem) = area(two(U)^8*three(U)^2*five(U)^2,U,English) + +# volume + +@pure gallon(U::UnitSystem) = volume(three(U)*seven(U)*eleven(U),U,IPS) +@pure liter(U::UnitSystem) = volume(inv((two(U)*five(U))^3),U,Metric) +@pure quart(U::UnitSystem) = gallon(U)/two(U)^2 +@pure pint(U::UnitSystem) = quart(U)/two(U) +@pure cup(U::UnitSystem) = pint(U)/two(U) +@pure fluidounce(U::UnitSystem) = cup(U)/two(U)^3 +@pure teaspoon(U::UnitSystem) = five(U)*milli(U)*liter(U) +@pure tablespoon(U::UnitSystem) = three(U)*teaspoon(U) +#@pure oilbarrel(U::UnitSystem) = two(U)*three(U)*seven(U)*gallon(U) + +# mass + +@pure grain(U::UnitSystem) = milli(U)*pound(U)/seven(U) +@pure gram(U::UnitSystem) = mass(one(U),U,Gauss) +@pure earthgram(U::UnitSystem) = mass(milli(U),U,Meridian) +@pure kilogram(U::UnitSystem) = mass(one(U),U,Metric) +@pure tonne(U::UnitSystem) = mass(kilo(U),U,Metric) +@pure ton(U::UnitSystem) = mass(two(U)*kilo(U),U,English) +@pure pound(U::UnitSystem) = mass(one(U),U,English) +@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) + +# force + +@pure dyne(U::UnitSystem) = force(one(U),U,Gauss) +@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) + +# pressure + +@pure pascal(U::UnitSystem) = pressure(one(U),U,Metric) +@pure bar(U::UnitSystem) = pressure(hecto(U)*kilo(U),U,Metric) +@pure barye(U::UnitSystem) = pressure(one(U),U,Gauss) +@pure psi(U::UnitSystem) = pressure(one(U),U,IPS) +@pure technicalatmosphere(U::UnitSystem) = kilopond(U)/(centi(U)*meter(U))^2 +@pure atmosphere(U::UnitSystem) = pressure(atm,U,Metric) +@pure inchmercury(U::UnitSystem) = pressure(inHg,U,Metric) +@pure torr(U::UnitSystem) = pressure(atm/(two(U)^3*five(U)*nineteen(U)),U,Metric) + +# energy + +@pure electronvolt(U::UnitSystem) = elementarycharge(U)*electricpotential(one(U),U,SI2019) +@pure erg(U::UnitSystem) = energy(one(U),U,Gauss) +@pure joule(U::UnitSystem) = energy(one(U),U,Metric) +@pure footpound(U::UnitSystem) = poundforce(U)*foot(U) +@pure meancalorie(U::UnitSystem) = energy(two(U)^2*five(U)*three(U)^2/fourtythree(U),U,InternationalMean) +@pure kilocalorie(U::UnitSystem) = energy(two(U)^5*five(U)^4*three(U)^2/fourtythree(U),U,International) +@pure calorie(U::UnitSystem) = kilocalorie(U)/(two(U)*five(U))^3 +@pure earthcalorie(U::UnitSystem) = molaramount(temperature(calorie(U),Metric,Meridian),Metric,Meridian) +@pure thermalunit(U::UnitSystem) = mass(temperature(kilocalorie(U),Metric,English),Metric,English) +@pure tontnt(U::UnitSystem) = giga(U)*calorie(U) +@pure gasgallon(U::UnitSystem) = two(U)*three(U)*nineteen(U)*kilo(U)*thermalunit(U) + +# power + +@pure watt(U::UnitSystem) = power(one(U),U,Metric) +@pure tonsrefrigeration(U::UnitSystem) = frequency(two(U)*five(U)/three(U),U,Metric)*thermalunit(U) +@pure boilerhorsepower(U::UnitSystem) = frequency(Constant(1339)/(two(U)^4*three(U)^2),U,Metric)*thermalunit(U) +# thermalconductivity_water(British) ≈ 0.5778 +@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(twopi(U)),U,British) +@pure horsepowermetric(U::UnitSystem) = power(three(U)*five(U)^2,U,GravitationalMetric) +@pure electricalhorsepower(U::UnitSystem) = power(Constant(746),U,Metric) + +# electromagnetic + +@pure coulomb(U::UnitSystem) = charge(one(U),U,Metric) +@pure ampere(U::UnitSystem) = current(one(U),U,Metric) +@pure volt(U::UnitSystem) = electricpotential(one(U),U,Metric) +@pure henry(U::UnitSystem) = inductance(one(U),U,Metric) +@pure ohm(U::UnitSystem) = resistance(one(U),U,Metric) +@pure siemens(U::UnitSystem) = conductance(one(U),U,Metric) +@pure farad(U::UnitSystem) = capacitance(one(U),U,Metric) +@pure weber(U::UnitSystem) = magneticflux(one(U),U,Metric) +@pure tesla(U::UnitSystem) = magneticfluxdensity(one(U),U,Metric) +@pure abcoulomb(U::UnitSystem) = charge(one(U),U,EMU) +@pure abampere(U::UnitSystem) = current(one(U),U,EMU) +@pure abvolt(U::UnitSystem) = electricpotential(one(U),U,EMU) +@pure abhenry(U::UnitSystem) = inductance(one(U),U,EMU) +@pure abohm(U::UnitSystem) = resistance(one(U),U,EMU) +@pure abmho(U::UnitSystem) = conductance(one(U),U,EMU) +@pure abfarad(U::UnitSystem) = capacitance(one(U),U,EMU) +@pure maxwell(U::UnitSystem) = magneticflux(one(U),U,EMU) +@pure gauss(U::UnitSystem) = magneticfluxdensity(one(U),U,EMU) +@pure oersted(U::UnitSystem) = magneticfield(one(U),U,EMU) +@pure gilbert(U::UnitSystem) = abampere(U)/two(U)/turn(U) +@pure statcoulomb(U::UnitSystem) = charge(one(U),U,ESU) +@pure statampere(U::UnitSystem) = current(one(U),U,ESU) +@pure statvolt(U::UnitSystem) = electricpotential(one(U),U,ESU) +@pure stathenry(U::UnitSystem) = inductance(one(U),U,ESU) +@pure statohm(U::UnitSystem) = resistance(one(U),U,ESU) +@pure statmho(U::UnitSystem) = conductance(one(U),U,ESU) +@pure statfarad(U::UnitSystem) = capacitance(one(U),U,ESU) +@pure statweber(U::UnitSystem) = magneticflux(one(U),U,ESU) +@pure stattesla(U::UnitSystem) = magneticfluxdensity(one(U),U,ESU) +@pure earthcoulomb(U::UnitSystem) = charge(one(U),U,Meridian) + +# temperature + +@pure sealevel(U::UnitSystem) = temperature(T₀+𝟑*𝟓,U,Metric) +@pure kelvin(U::UnitSystem) = temperature(one(U),U,Metric) +@pure rankine(U::UnitSystem) = temperature(one(U),U,English) +#@pure delisle(U::UnitSystem) = temperature(two(U)/three(U),U,Metric) +#@pure reaumur(U::UnitSystem) = temperature(five(U)/two(U)^2,U,Metric) + +# mole + +@pure mole(U::UnitSystem) = molaramount(one(U),U,Metric) +@pure earthmole(U::UnitSystem) = molaramount(one(U),U,Meridian) +@pure poundmole(U::UnitSystem) = molaramount(one(U),U,English) +@pure slugmole(U::UnitSystem) = molaramount(one(U),U,British) +@pure slinchmole(U::UnitSystem) = molaramount(one(U),U,IPS) + +# photometric + +@pure lumen(U::UnitSystem) = luminousflux(one(U),U,Metric) +@pure candela(U::UnitSystem) = luminousintensity(one(U),U,Metric) +@pure lux(U::UnitSystem) = illuminance(one(U),U,Metric) +@pure footcandle(U::UnitSystem) = illuminance(one(U),U,English) +@pure phot(U::UnitSystem) = illuminance(one(U),U,Gauss) +@pure nit(U::UnitSystem) = luminance(one(U),U,Metric) +@pure apostilb(U::UnitSystem) = luminance(two(U)/turn(U),U,Metric) +@pure stilb(U::UnitSystem) = luminance(one(U),U,Gauss) +@pure lambert(U::UnitSystem) = luminance(two(U)/turn(U),U,Gauss) +@pure footlambert(U::UnitSystem) = luminance(two(U)/turn(U),U,English) +@pure bril(U::UnitSystem) = centi(U)*nano(U)*lambert(U) + +#const neper = Metric(one(U),log(𝟙)) +#const bel = Metric(one(U),log10(𝟙)) +#const decibel = Metric(one(U),dB(𝟙)) +@pure hertz(U::UnitSystem) = one(U)/second(U) +@pure kayser(U::UnitSystem) = wavenumber(one(U),U,Gauss) +@pure diopter(U::UnitSystem) = wavenumber(one(U),U,Metric) +@pure bubnoff(U::UnitSystem) = meter(U)/year(U) +@pure gforce(U::UnitSystem) = specificforce(one(U),U,English) +@pure galileo(U::UnitSystem) = specificforce(one(U),U,Gauss) +@pure eotvos(U::UnitSystem) = specificforce(nano(U),U,Gauss)/length(one(U),U,Gauss) +@pure darcy(U::UnitSystem) = area(milli(U)/normal(atmosphere(Metric)),U,Gauss) +@pure poise(U::UnitSystem) = viscosity(one(U),U,Gauss) +@pure reyn(U::UnitSystem) = viscosity(one(U),U,IPS) +@pure stokes(U::UnitSystem) = diffusivity(one(U),U,Gauss) +@pure rayl(U::UnitSystem) = specificimpedance(one(U),U,Metric) +@pure katal(U::UnitSystem) = catalysis(one(U),U,Metric) +@pure mpge(U::UnitSystem) = mile(U)/gasgallon(U) +@pure langley(U::UnitSystem) = calorie(U)/(centi(U)*meter(U))^2 +@pure jansky(U::UnitSystem) = fluence((Constant(1.0)*deci(U))^26,U,Metric) +@pure solarflux(U::UnitSystem) = hecto(U)^2*jansky(U) +@pure curie(U::UnitSystem) = Constant(37)*giga(U)*hertz(U) +@pure sievert(U::UnitSystem) = energy(one(U),U,Metric)/mass(U,Metric) +@pure rem(U::UnitSystem) = centi(U)*sievert(U) +@pure roentgen(U::UnitSystem) = chargedensity(one(U),U,ESU)/density(Constant(1.293),U,Metric) + diff --git a/src/derivedocs.jl b/src/derivedocs.jl new file mode 100644 index 0000000..8abb0f6 --- /dev/null +++ b/src/derivedocs.jl @@ -0,0 +1,2665 @@ + +# This file is part of UnitSystems.jl +# It is licensed under the MIT license +# UnitSystems Copyright (C) 2020 Michael Reed +# _ _ _ +# | | | | | | +# ___| |__ __ _| | ___ __ __ ___ ____ _| | __ _ +# / __| '_ \ / _` | |/ / '__/ _` \ \ / / _` | |/ _` | +# | (__| | | | (_| | <| | | (_| |\ V / (_| | | (_| | +# \___|_| |_|\__,_|_|\_\_| \__,_| \_/ \__,_|_|\__,_| +# +# https://github.com/chakravala +# https://crucialflow.com + +@doc """ +```Julia +julia> deka +$deka + +julia> hecto +$hecto + +julia> kilo +$kilo + +julia> mega +$mega + +julia> giga +$giga + +julia> tera +$tera + +julia> peta +$peta + +julia> exa +$exa + +julia> zetta +$zetta + +julia> yotta +$yotta +``` +""" deka,hecto,kilo,mega,giga,tera,peta,exa,zetta,yotta + +@doc """ +```Julia +julia> deci +$deci + +julia> centi +$centi + +julia> milli +$milli + +julia> micro +$micro + +julia> nano +$nano + +julia> pico +$pico + +julia> femto +$femto + +julia> atto +$atto + +julia> zepto +$zepto + +julia> yocto +$yocto +``` +""" deci,centi,milli,micro,nano,pico,femto,atto,zepto,yocto + +@doc """ +```Julia +julia> byte +$byte + +julia> kibi +$kibi + +julia> mebi +$mebi + +julia> gibi +$gibi + +julia> tebi +$tebi + +julia> pebi +$pebi + +julia> exbi +$exbi + +julia> zebi +$zebi + +julia> yobi +$yobi +``` +""" byte,kibi,mebi,gibi,tebi,pebi,exbi,zebi,yobi + +# angle + +@doc """ +$(unitext(:radian,"angle(𝟏,U,Metric)")) + +Unit of `angle` which is dimensionless. +```Julia +julia> radian(MetricEngineering) +$(radian(MetricEngineering)) +``` +""" radian + +@doc """ +$(unitext(:steradian,"solidangle(𝟏,U,Metric)")) + +Unit of `solidangle` which is dimensionless. +```Julia +julia> steradian(MetricEngineering) +$(steradian(MetricEngineering)) +``` +""" steradian + +@doc """ +$(unitext(:degree,"angle(τ/𝟐^3/𝟑^2/𝟓,U,Metric)")) + +Unit of `angle` which divides a `turn` into `360` parts. +```Julia +julia> degree(MetricEngineering) +$(degree(MetricEngineering)) +``` +""" degree + +@doc """ +$(unitext(:gradian,"angle(τ/𝟐^4/𝟓^2,U,Metric)")) + +Unit of `angle` which divides a `turn` into `400` parts. +```Julia +julia> gradian(MetricEngineering) +$(gradian(MetricEngineering)) +``` +""" gradian + +@doc """ +$(unitext(:arcminute,"degree(U)/𝟐^2/𝟑/𝟓")) + +Unit of `angle` which divides a `degree` into `60` parts. +```Julia +julia> arcminute(MetricEngineering) +$(arcminute(MetricEngineering)) +``` +""" arcminute + +@doc """ +$(unitext(:arcsecond,"arcminute(U)/𝟐^2/𝟑/𝟓")) + +Unit of `angle` which divides a `arcminute` into `60` parts. +```Julia +julia> arcsecond(MetricEngineering) +$(arcsecond(MetricEngineering)) +``` +""" arcsecond + +# time + +@doc """ +$(unitext(:second,"time(𝟏,U,Metric)")) + +Unit of `time` defined by `hyperfine` transition frequency of Cs-133 atom. +```Julia +julia> second(Metric) # s +$(second(Metric)) + +julia> second(MPH) # h +$(second(MPH)) + +julia> second(IAU) # D +$(second(IAU)) +``` +""" second + +@doc """ +$(unitext(:minute,"𝟐^2*𝟑*𝟓*second(U)")) + +Unit of `time` defined by 60 `second` intervals. +```Julia +julia> minute(Metric) # s +$(minute(Metric)) + +julia> minute(MPH) # h +$(minute(MPH)) + +julia> minute(IAU) # D +$(minute(IAU)) +``` +""" minute + +@doc """ +$(unitext(:hour,"𝟐^2*𝟑*𝟓*minute(U)")) + +Unit of `time` defined by 60 `minute` intervals. +```Julia +julia> hour(Metric) # s +$(hour(Metric)) + +julia> hour(MPH) # h +$(hour(MPH)) + +julia> hour(IAU) # D +$(hour(IAU)) +``` +""" hour, HOUR + +@doc """ +$(unitext(:day,"𝟐^3*𝟑*hour(U)")) + +Unit of `time` defined by 24 `hour` intervals. +```Julia +julia> day(Metric) # s +$(day(Metric)) + +julia> day(MPH) # h +$(day(MPH)) + +julia> day(IAU) # D +$(day(IAU)) +``` +""" day, DAY + +@doc """ +$(unitext(:year,"aⱼ*day(U)")) + +Unit of `time` defined by Julian calendar year interval. +```Julia +julia> year(Metric) # s +$(year(Metric)) + +julia> year(MPH) # h +$(year(MPH)) + +julia> year(IAU) # D +$(year(IAU)) +``` +""" year, aⱼ + +@doc """ +$(unitext(:radarmile,"𝟐*nauticalmile(U)/lightspeed(U)")) + +Unit of `time` delay from a two-way `nauticalmile` radar return. +```Julia +julia> radarmile(Metric) +$(radarmile(Metric)) +``` +""" radarmile + +# length + +@doc """ +$(unitext(:meter,"length(𝟏,U,Metric)")) + +Metric unit of `length` (m or ft). +```Julia +julia> meter(CGS) # cm +$(meter(CGS)) + +julia> meter(English) # ft +$(meter(English)) + +julia> meter(Meridian) # em +$(meter(Meridian)) +``` +""" meter + +@doc """ +$(unitext(:earthmeter,"greatcircle(U)/𝟐^9/𝟓^7")) + +Meridian unit of `length` as originally defined in France (m or ft). +```Julia +julia> earthmeter(CGS) # cm +$(earthmeter(CGS)) + +julia> earthmeter(English) # ft +$(earthmeter(English)) + +julia> earthmeter(Meridian) # em +$(earthmeter(Meridian)) +``` +""" earthmeter + +@doc """ +$(unitext(:angstrom,"hecto*pico*meter(U)")) + +Metric unit of `length` (m or ft). +```Julia +julia> angstrom(CGS) # cm +$(angstrom(CGS)) + +julia> angstrom(English) # ft +$(angstrom(English)) + +julia> angstrom(IPS) # in +$(angstrom(IPS)) +``` +""" angstrom + +@doc """ +$(unitext(:foot,"length(𝟏,U,English)")) + +English unit of `length` (m or ft). +```Julia +julia> foot(Metric) # m +$(foot(Metric)) + +julia> foot(Survey) # ftUS +$(foot(Survey)) + +julia> foot(IPS) # in +$(foot(IPS)) +``` +""" foot + +@doc """ +$(unitext(:surveyfoot,"length(𝟏,U,Survey)")) + +Survey unit of `length` (m or ft). +```Julia +julia> surveyfoot(Metric) # m +$(surveyfoot(Metric)) + +julia> surveyfoot(English) # ft +$(surveyfoot(English)) + +julia> surveyfoot(IPS) # in +$(surveyfoot(IPS)) +``` +""" surveyfoot + +@doc """ +$(unitext(:inch,"length(𝟏,U,IPS)")) + +English unit of `length` (m or ft). +```Julia +julia> inch(Metric) # m +$(inch(Metric)) + +julia> inch(English) # ft +$(inch(English)) + +julia> inch(IPS) # in +$(inch(IPS)) +``` +""" inch + +#=@doc """ +$(unitext(:rackunit,"length($(ft*𝟕/𝟐^4/𝟑),U,English)")) + +Height unit of a 19-inch rack frame (m or ft). +```Julia +julia> rackunit(Metric) # m +$(rackunit(Metric)) + +julia> rackunit(CGS) # cm +$(rackunit(CGS)) + +julia> rackunit(English) # ft +$(rackunit(English)) +``` +""" rackunit=# + +@doc """ +$(unitext(:yard,"𝟑*foot(U)")) + +English unit of `length` (m or ft). +```Julia +julia> yard(Metric) # m +$(yard(Metric)) + +julia> yard(English) # ft +$(yard(English)) + +julia> yard(IPS) # in +$(yard(IPS)) +``` +""" yard + +@doc """ +$(unitext(:statutemile,"length(𝟐^5*𝟑*𝟓*𝟏𝟏,U,Survey)")) + +Statute `Survey` mile (m or ft). +```Julia +julia> statutemile(Metric) # m +$(statutemile(Metric)) + +julia> statutemile(English) # ft +$(statutemile(English)) + +julia> statutemile(Survey) # ftUS +$(statutemile(Survey)) +``` +""" statutemile + +@doc """ +$(unitext(:astronomicalunit,"length(𝟏,U,IAU)")) + +Standard astronomical unit from the International Astronomical Union (m or ft). +```Julia +julia> astronomicalunit(Metric) # m +$(astronomicalunit(Metric)) + +julia> astronomicalunit(English) # ft +$(astronomicalunit(English)) + +julia> astronomicalunit(Nautical) # nm +$(astronomicalunit(Nautical)) +``` +""" astronomicalunit, au + +@doc """ +$(unitext(:lunardistance,"length($LD,U,Metric)")) + +Standard distance between the Earth and the Moon (m or ft). +```Julia +julia> lunardistance(Metric) # m +$(lunardistance(Metric)) + +julia> lunardistance(English) # ft +$(lunardistance(English)) + +julia> lunardistance(Nautical) # nm +$(lunardistance(Nautical)) +``` +""" lunardistance, LD + +@doc """ +$(unitext(:mile,"length(𝟏,U,MPH)")) + +Statute `English` mile (m or ft). +```Julia +julia> mile(Metric) # m +$(mile(Metric)) + +julia> mile(English) # ft +$(mile(English)) + +julia> mile(Nautical) # nm +$(mile(Survey)) +``` +""" mile + +@doc """ +$(unitext(:admiraltymile,"length(𝟐^6*𝟓*𝟏𝟗,U,English)")) + +Historic nautical mile as defined by the Clarke authalic radius (m or ft). +```Julia +julia> admiraltymile(Metric) # m +$(admiraltymile(Metric)) + +julia> admiraltymile(English) # ft +$(admiraltymile(English)) + +julia> admiraltymile(Nautical) # nm +$(admiraltymile(Nautical)) +``` +""" admiraltymile + +@doc """ +$(unitext(:meridianmile,"length(𝟐^4*𝟓^5/𝟑^3,U,Metric)")) + +Historic nautical mile as defined by naive meridian assumption (m or ft). +```Julia +julia> meridianmile(Metric) # m +$(meridianmile(Metric)) + +julia> meridianmile(English) # ft +$(meridianmile(English)) + +julia> meridianmile(Nautical) # nm +$(meridianmile(Nautical)) +``` +""" meridianmile + +@doc """ +$(unitext(:nauticalmile,"greatcircle(U)/𝟐^5/𝟑^3/𝟓^2")) + +Standard `nauticalmile` as defined by `earthradius` (m or ft). +```Julia +julia> nauticalmile(Metric) # m +$(nauticalmile(Metric)) + +julia> nauticalmile(Meridian) # em +$(nauticalmile(Meridian)) + +julia> nauticalmile(English) # ft +$(nauticalmile(English)) +``` +""" nauticalmile, nm + +@doc """ +$(unitext(:lightyear,"year(U)*lightspeed(U)")) + +Unit of `length` defined by distance traveled by light in 1 `year` unit. +```Julia +julia> lightyear(Metric) # m +$(lightyear(Metric)) + +julia> lightyear(English) # ft +$(lightyear(English)) + +julia> lightyear(IAU) # au +$(lightyear(IAU)) +``` +""" lightyear, ly + +@doc """ +$(unitext(:parsec,"astronomicalunit(U)*𝟐^2*𝟑^4*𝟓^3/τ")) + +Unit of `length` defined at which 1 `astronomicalunit` subtends an angle of 1 arcsecond. +```Julia +julia> parsec(Metric) # m +$(parsec(Metric)) + +julia> parsec(English) # ft +$(parsec(English)) + +julia> parsec(IAU) # au +$(parsec(IAU)) +``` +""" parsec, pc + +# area + +@doc """ +$(unitext(:barn,"area((𝟐*𝟓)^-28,U,Metric)")) + +Unit of `area` defined by `100` square femto-meters (m² or ft²). +```Julia +julia> barn(Metric) # m² +$(barn(Metric)) + +julia> barn(CGS) # cm² +$(barn(CGS)) + +julia> barn(English) # ft² +$(barn(English)) +``` +""" barn + +@doc """ +$(unitext(:hectare,"area(hecto^2,U,Metric)")) + +Metric unit of land `area` defined by `100` square meters (m² or ft²). +```Julia +julia> hectare(Metric) # m² +$(hectare(Metric)) + +julia> hectare(English) # ft² +$(hectare(English)) + +julia> hectare(Survey) # ftUS² +$(hectare(Survey)) +``` +""" hectare + +@doc """ +$(unitext(:acre,"area(𝟐^4*𝟓^4,U,Metric)")) + +English unit of land `area` (m² or ft²). +```Julia +julia> acre(Metric) # m² +$(acre(Metric)) + +julia> acre(English) # ft² +$(acre(English)) + +julia> acre(Survey) # ftUS² +$(acre(Survey)) +``` +""" acre + +@doc """ +$(unitext(:surveyacre,"area(𝟐^3*𝟑^2*𝟓*𝟏𝟏^2,U,Survey)")) + +Survey unit of land `area` (m² or ft²). +```Julia +julia> surveyacre(Metric) # m² +$(surveyacre(Metric)) + +julia> surveyacre(English) # ft² +$(surveyacre(English)) + +julia> surveyacre(Survey) # ftUS² +$(surveyacre(Survey)) +``` +""" surveyacre + +# volume + +@doc """ +$(unitext(:gallon,"volume(𝟕*𝟏𝟏/𝟐^2,U,English)")) + +Unit of `volume` derived from the US liquid `gallon` in cubic inches (m³ or ft³). +```Julia +julia> gallon(Metric) # m³ +$(gallon(Metric)) + +julia> gallon(CGS) # cm³ +$(gallon(CGS)) + +julia> gallon(IPS) # in³ +$(gallon(IPS)) +``` +""" gallon, gal + +@doc """ +$(unitext(:liter,"volume(𝟏𝟎^-3,U,Metric)")) + +Unit of `volume` derived from 1 cubic decimeter (m³ or ft³). +```Julia +julia> liter(Metric) # m³ +$(liter(Metric)) + +julia> liter(CGS) # cm³ +$(liter(CGS)) + +julia> liter(IPS) # in³ +$(liter(IPS)) +``` +""" liter + +@doc """ +$(unitext(:quart,"gallon(U)/𝟐^2")) + +English unit of `volume` (m³ or ft³). +```Julia +julia> quart(Metric) # m³ +$(quart(Metric)) + +julia> quart(CGS) # cm³ +$(quart(CGS)) + +julia> quart(IPS) # in³ +$(quart(IPS)) +``` +""" quart + +@doc """ +$(unitext(:pint,"quart(U)/𝟐")) + +English unit of `volume` (m³ or ft³). +```Julia +julia> pint(Metric) # m³ +$(pint(Metric)) + +julia> pint(CGS) # cm³ +$(pint(CGS)) + +julia> pint(IPS) # in³ +$(pint(IPS)) +``` +""" pint + +@doc """ +$(unitext(:cup,"pint(U)/𝟐")) + +English unit of `volume` (m³ or ft³). +```Julia +julia> cup(Metric) # m³ +$(cup(Metric)) + +julia> cup(CGS) # cm³ +$(cup(CGS)) + +julia> cup(IPS) # in³ +$(cup(IPS)) +``` +""" cup + +@doc """ +$(unitext(:fluidounce,"cup(U)/𝟐^3")) + +English unit of `volume` (m³ or ft³). +```Julia +julia> fluidounce(Metric) # m³ +$(fluidounce(Metric)) + +julia> fluidounce(CGS) # cm³ +$(fluidounce(CGS)) + +julia> fluidounce(IPS) # in³ +$(fluidounce(IPS)) +``` +""" fluidounce + +@doc """ +$(unitext(:teaspoon,"𝟓*milli*liter(U)")) + +Measuring `teaspoon` unit of `volume` (m³ or ft³). +```Julia +julia> teaspoon(Metric) # m³ +$(teaspoon(Metric)) + +julia> teaspoon(CGS) # cm³ +$(teaspoon(CGS)) + +julia> teaspoon(IPS) # in³ +$(teaspoon(IPS)) +``` +""" teaspoon + +@doc """ +$(unitext(:tablespoon,"𝟑*teaspoon(U)")) + +Measuring `tablespoon` unit of `volume` (m³ or ft³). +```Julia +julia> tablespoon(Metric) # m³ +$(tablespoon(Metric)) + +julia> tablespoon(CGS) # cm³ +$(tablespoon(CGS)) + +julia> tablespoon(IPS) # in³ +$(tablespoon(IPS)) +``` +""" tablespoon + +# mass + +@doc """ +$(unitext(:grain,"milli(U)*pound(U)/𝟕")) + +Ideal `grain` seed of cereal, unit of `mass` (kg or lb). +```Julia +julia> grain(Metric) # kg +$(grain(Metric)) + +julia> grain(CGS) # g +$(grain(CGS)) + +julia> grain(English) # lb +$(grain(English)) +``` +""" grain + +@doc """ +$(unitext(:gram,"mass(𝟏,U,Gauss)")) + +Metric `gram` unit of `mass` (kg or lb). +```Julia +julia> gram(Metric) # kg +$(gram(Metric)) + +julia> gram(CGS) # g +$(gram(CGS)) + +julia> gram(English) # lb +$(gram(English)) + +julia> gram(British) # slug +$(gram(British)) + +julia> gram(GravitationalMetric) # hyl +$(gram(GravitationalMetric)) +``` +""" gram + +@doc """ +$(unitext(:earthgram,"mass(milli,U,Meridian)")) + +Meridian `gram` unit of `mass` based on `earthmeter` (kg or lb). +```Julia +julia> earthgram(Meridian) # keg +$(earthgram(Meridian)) + +julia> earthgram(CGS) # g +$(earthgram(CGS)) + +julia> earthgram(English) # lb +$(earthgram(English)) + +julia> earthgram(British) # slug +$(earthgram(British)) + +julia> earthgram(GravitationalMetric) # hyl +$(earthgram(GravitationalMetric)) +``` +""" earthgram + +@doc """ +$(unitext(:kilogram,"mass(𝟏,U,Metric)")) + +Metric `kilogram` unit of `mass` (kg or lb). +```Julia +julia> kilogram(Metric) # kg +$(kilogram(Metric)) + +julia> kilogram(CGS) # g +$(kilogram(CGS)) + +julia> kilogram(English) # lb +$(kilogram(English)) + +julia> kilogram(British) # slug +$(kilogram(British)) + +julia> kilogram(GravitationalMetric) # hyl +$(kilogram(GravitationalMetric)) +``` +""" kilogram + +@doc """ +$(unitext(:tonne,"mass(𝟏,U,MTS)")) + +Metric `tonne` unit of `mass` (kg or lb). +```Julia +julia> tonne(Metric) # kg +$(tonne(Metric)) + +julia> tonne(MTS) # t +$(tonne(MTS)) + +julia> tonne(English) # lb +$(tonne(English)) + +julia> tonne(British) # slug +$(tonne(British)) + +julia> tonne(GravitationalMetric) # hyl +$(tonne(GravitationalMetric)) +``` +""" tonne + +@doc """ +$(unitext(:ton,"mass(𝟐*kilo,U,English)")) + +English `ton` unit of `mass` (kg or lb). +```Julia +julia> ton(Metric) # kg +$(ton(Metric)) + +julia> ton(MTS) # t +$(ton(MTS)) + +julia> ton(English) # lb +$(ton(English)) + +julia> ton(British) # slug +$(ton(British)) + +julia> ton(GravitationalMetric) # hyl +$(ton(GravitationalMetric)) +``` +""" ton + +@doc """ +$(unitext(:pound,"mass(𝟏,U,English)")) + +English `pound` unit of `mass` (kg or lb). +```Julia +julia> pound(Metric) # kg +$(pound(Metric)) + +julia> pound(CGS) # g +$(pound(CGS)) + +julia> pound(English) # lb +$(pound(English)) + +julia> pound(British) # slug +$(pound(British)) + +julia> pound(GravitationalMetric) # hyl +$(pound(GravitationalMetric)) +``` +""" pound + +@doc """ +$(unitext(:ounce,"pound(U)/𝟐^4")) + +English `ounce` unit of `mass` (kg or lb). +```Julia +julia> ounce(Metric) # kg +$(ounce(Metric)) + +julia> ounce(CGS) # g +$(ounce(CGS)) + +julia> ounce(English) # lb +$(ounce(English)) + +julia> ounce(British) # slug +$(ounce(British)) + +julia> ounce(GravitationalMetric) # hyl +$(ounce(GravitationalMetric)) +``` +""" ounce + +@doc """ +$(unitext(:slug,"mass(𝟏,U,British)")) + +British gravitational `slug` unit of `mass` (kg or lb). +```Julia +julia> slug(Metric) # kg +$(slug(Metric)) + +julia> slug(CGS) # g +$(slug(CGS)) + +julia> slug(English) # lb +$(slug(English)) + +julia> slug(British) # slug +$(slug(British)) + +julia> slug(GravitationalMetric) # hyl +$(slug(GravitationalMetric)) +``` +""" slug + +@doc """ +$(unitext(:slinch,"mass(𝟏,U,IPS)")) + +British gravitational `slinch` unit of `mass` (kg or lb). +```Julia +julia> slinch(Metric) # kg +$(slinch(Metric)) + +julia> slinch(CGS) # g +$(slinch(CGS)) + +julia> slinch(English) # lb +$(slinch(English)) + +julia> slinch(British) # slug +$(slinch(British)) + +julia> slinch(GravitationalMetric) # hyl +$(slinch(GravitationalMetric)) +``` +""" slinch + +@doc """ +$(unitext(:hyl,"mass(𝟏,U,GravitationalMetric)")) + +Gravitational Metric `hyl` unit of `mass` (kg or lb). +```Julia +julia> hyl(Metric) # kg +$(hyl(Metric)) + +julia> hyl(CGS) # g +$(hyl(CGS)) + +julia> hyl(English) # lb +$(hyl(English)) + +julia> hyl(British) # slug +$(hyl(British)) + +julia> hyl(GravitationalMetric) # hyl +$(hyl(GravitationalMetric)) +``` +""" hyl + +# force + +@doc """ +$(unitext(:dyne,"force(𝟏,U,Gauss)")) + +Historical `dyne` unit of `force` (N or lb). +```Julia +julia> dyne(Metric) # N +$(dyne(Metric)) + +julia> dyne(CGS) # dyn +$(dyne(CGS)) + +julia> dyne(English) # lb +$(dyne(English)) + +julia> dyne(FPS) # pdl +$(dyne(FPS)) + +julia> dyne(MetricEngineering) # kp +$(dyne(MetricEngineering)) +``` +""" dyne + +@doc """ +$(unitext(:newton,"force(𝟏,U,Metric)")) + +Metric `newton` unit of `force` (N or lb). +```Julia +julia> newton(Metric) # N +$(newton(Metric)) + +julia> newton(CGS) # dyn +$(newton(CGS)) + +julia> newton(English) # lb +$(newton(English)) + +julia> newton(FPS) # pdl +$(newton(FPS)) + +julia> newton(MetricEngineering) # kp +$(newton(MetricEngineering)) +``` +""" newton + +@doc """ +$(unitext(:poundal,"force(𝟏,U,FPS)")) + +Absolute English `poundal` unit of `force` (N or lb). +```Julia +julia> poundal(Metric) # N +$(poundal(Metric)) + +julia> poundal(CGS) # dyn +$(poundal(CGS)) + +julia> poundal(English) # lb +$(poundal(English)) + +julia> poundal(FPS) # pdl +$(poundal(FPS)) + +julia> poundal(MetricEngineering) # kp +$(poundal(MetricEngineering)) +``` +""" poundal + +@doc """ + kilopond(U::UnitSystem) = force(𝟏,U,MetricEngineering) + +Gravitational `kilopond` unit of `force` used in engineering systems (N or lb). +```Julia +julia> kilopond(Metric) # N +$(kilopond(Metric)) + +julia> kilopond(CGS) # dyn +$(kilopond(CGS)) + +julia> kilopond(English) # lb +$(kilopond(English)) + +julia> kilopond(FPS) # pdl +$(kilopond(FPS)) + +julia> kilopond(MetricEngineering) # kp +$(kilopond(MetricEngineering)) +``` +""" kilopond + +@doc """ +$(unitext(:poundforce,"force(𝟏,U,English)")) + +English `poundforce` unit of `force` used in engineering systems (N or lb). +```Julia +julia> poundforce(Metric) # N +$(poundforce(Metric)) + +julia> poundforce(CGS) # dyn +$(poundforce(CGS)) + +julia> poundforce(English) # lb +$(poundforce(English)) + +julia> poundforce(FPS) # pdl +$(poundforce(FPS)) + +julia> poundforce(MetricEngineering) # kp +$(poundforce(MetricEngineering)) +``` +""" poundforce + +# pressure + +@doc """ +$(unitext(:pascal,"pressure(𝟏,U,Metric)")) + +Metric unit of `pressure` (Pa or lb⋅ft⁻²). +```Julia +julia> pascal(Metric) # Pa +$(pascal(Metric)) + +julia> pascal(English) # lb⋅ft⁻² +$(pascal(English)) + +julia> pascal(IPS) # lb⋅in⁻² +$(pascal(IPS)) +``` +""" pascal + +@doc """ +$(unitext(:bar,"pressure(hecto*kilo,U,Metric)")) + +Reference unit of `pressure` (Pa or lb⋅ft⁻²). +```Julia +julia> bar(Metric) # Pa +$(bar(Metric)) + +julia> bar(English) # lb⋅ft⁻² +$(bar(English)) + +julia> bar(IPS) # lb⋅in⁻² +$(bar(IPS)) +``` +""" bar + +@doc """ +$(unitext(:barye,"pressure(𝟏,U,Gauss)")) + +Historical unit of `pressure` (Pa or lb⋅ft⁻²). +```Julia +julia> barye(Metric) # Pa +$(barye(Metric)) + +julia> barye(English) # lb⋅ft⁻² +$(barye(English)) + +julia> barye(IPS) # lb⋅in⁻² +$(barye(IPS)) +``` +""" barye + +@doc """ +$(unitext(:psi,"pressure(𝟏,U,IPS)")) + +English unit of `pressure` (Pa or lb⋅ft⁻²). +```Julia +julia> psi(Metric) # Pa +$(psi(Metric)) + +julia> psi(English) # lb⋅ft⁻² +$(psi(English)) + +julia> psi(IPS) # lb⋅in⁻² +$(psi(IPS)) +``` +""" psi + +@doc """ +$(unitext(:technicalatmosphere,"kilopond(U)/(centi*meter(U))^2")) + +Gravitational Metric unit of `pressure` (Pa or lb⋅ft⁻²). +```Julia +julia> technicalatmosphere(Metric) # Pa +$(technicalatmosphere(Metric)) + +julia> technicalatmosphere(English) # lb⋅ft⁻² +$(technicalatmosphere(English)) + +julia> technicalatmosphere(IPS) # lb⋅in⁻² +$(technicalatmosphere(IPS)) +``` +""" technicalatmosphere + +@doc """ +$(unitext(:atmosphere,"pressure($atm,U)")) + +Standard `pressure` reference level of one atmosphere `atm` (Pa or lb⋅ft⁻²). +```Julia +julia> atmosphere(Metric) # Pa +$(atmosphere(Metric)) + +julia> atmosphere(English) # lb⋅ft⁻² +$(atmosphere(English)) + +julia> atmosphere(IPS) # lb⋅in⁻² +$(atmosphere(IPS)) +``` +""" atmosphere, atm + +@doc """ +$(unitext(:inchmercury,"pressure(inHg,U,Metric)")) + +Unit of `pressure` exerted by 1 inch of mercury at standard atmospheric conditions. +```Julia +juila> inchmercury(Metric) # Pa +$(inchmercury(Metric)) + +julia> inchmercury(English) # lb⋅ft⁻² +$(inchmercury(English)) + +julia> inchmercury(IPS) # lb⋅in⁻² +$(inchmercury(IPS)) +``` +""" inchmercury, inHg + +@doc """ +$(unitext(:torr,"pressure(atm/𝟐^3/𝟓/𝟏𝟗,U,Metric)")) + +Unit of `pressure` exerted by 1 mm of mercury at standard atmospheric conditions. +```Julia +juila> torr(Metric) # Pa +$(torr(Metric)) + +julia> torr(English) # lb⋅ft⁻² +$(torr(English)) + +julia> torr(IPS) # lb⋅in⁻² +$(torr(IPS)) +``` +""" torr + +# energy + +@doc """ +$(unitext(:erg,"energy(𝟏,U,Gauss)")) + +Historical unit of `energy` (J or lb⋅ft). +```Julia +julia> erg(Metric) # J +$(erg(Metric)) + +julia> erg(CGS) # erg +$(erg(CGS)) + +julia> erg(British) # lb⋅ft +$(erg(British)) +``` +""" erg + +@doc """ +$(unitext(:joule,"energy(𝟏,U,Metric)")) + +Metric unit of `energy` (J or lb⋅ft). +```Julia +julia> joule(Metric) # J +$(joule(Metric)) + +julia> joule(CGS) # erg +$(joule(CGS)) + +julia> joule(British) # lb⋅ft +$(joule(British)) +``` +""" joule + +@doc """ +$(unitext(:tontnt,"giga*calorie(U)")) + +Ton TNT equivalent reference unit of `energy` (J or lb⋅ft). +```Julia +julia> tontnt(Metric) # J +$(tontnt(Metric)) + +julia> tontnt(CGS) # erg +$(tontnt(CGS)) + +julia> tontnt(British) # lb⋅ft +$(tontnt(British)) +``` +""" tontnt + +@doc """ +$(unitext(:gasgallon,"𝟐*𝟑*𝟏𝟗*kilo*thermalunit(U)")) + +Gasoline gallon equivalent reference unit of `energy` (J or lb⋅ft). +```Julia +julia> gasgallon(Metric) # J +$(gasgallon(Metric)) + +julia> gasgallon(CGS) # erg +$(gasgallon(CGS)) + +julia> gasgallon(British) # lb⋅ft +$(gasgallon(British)) +``` +""" gasgallon + +@doc """ +$(unitext(:footpound,"poundforce(U)*foot(U)")) + +English unit of `energy` in gravitational and engineering systems (J or lb⋅ft). +```Julia +julia> footpound(Metric) # J +$(footpound(Metric)) + +julia> footpound(CGS) # erg +$(footpound(CGS)) + +julia> footpound(British) # lb⋅ft +$(footpound(British)) +``` +""" footpound + +@doc """ +$(unitext(:kilocalorie,"energy(𝟐^5*𝟓^4*𝟑^2/𝟒𝟑,U,International)")) + +Heat energy required to raise 1 kg of water by 1 Kelvin (`kcal`) in `International` units. +```Julia +julia> kilocalorie(International) # J +$(kilocalorie(International)) + +julia> kilocalorie(Metric) # J +$(kilocalorie(Metric)) + +julia> kilocalorie(English) # ft⋅lb +$(kilocalorie(English)) +``` +""" kilocalorie, kcal + +@doc """ +$(unitext(:calorie,"kilocalorie(U)/𝟐^3/𝟓^3")) + +Heat energy required to raise 1 g of water by 1 Kelvin (`cal`) in `International` units. +```Julia +julia> calorie(International) # J +$(calorie(International)) + +julia> calorie(Metric) # J +$(calorie(Metric)) + +julia> calorie(English) # ft⋅lb +$(calorie(English)) +``` +""" calorie, cal + +@doc """ +$(unitext(:meancalorie,"energy(𝟐^2*𝟓*𝟑^2/𝟒𝟑,U,InternationalMean)")) + +Heat energy required to raise 1 g of water by 1 Kelvin (`cal`) in `InternationalMean` units. +```Julia +julia> meancalorie(InternationalMean) # J +$(meancalorie(InternationalMean)) + +julia> meancalorie(Metric) # J +$(meancalorie(Metric)) + +julia> meancalorie(English) # ft⋅lb +$(meancalorie(English)) +``` +""" meancalorie + +@doc """ +$(unitext(:earthcalorie,"calorie(U)*(sqrt(g₀/GME)/τ)^3*𝟐^27*𝟓^21")) + +Heat energy required to raise 1 `earthgram` of water by 1 `kelvin` in `Meridian` units. +```Julia +julia> earthcalorie(Meridian) # J +$(earthcalorie(Meridian)) + +julia> earthcalorie(Metric) # J +$(earthcalorie(Metric)) + +julia> earthcalorie(British) # ft⋅lb +$(earthcalorie(British)) +``` +""" earthcalorie + +@doc """ +$(unitext(:thermalunit,"kilocalorie(U)*𝟑^2/𝟓/lb")) + +Heat energy required to raise 1 lb of water by 1 Rankine (`BTU`) in `International` units. +```Julia +julia> thermalunit(British) # J +$(thermalunit(British)) + +julia> thermalunit(International) # J +$(thermalunit(International)) + +julia> thermalunit(Metric) # ft⋅lb +$(thermalunit(Metric)) +``` +""" thermalunit, BTU, BTUJ, BTUftlb + +@doc """ +$(unitext(:electronvolt,"elementarycharge(U)*volt(U)")) + +Unit of `energy` gained by a rest electron accelerated by 1 `volt` in vacuum (J or lb⋅ft). +```Julia +julia> electronvolt(SI2019) # J +$(electronvolt(SI2019)) + +julia> electronvolt(SI2019)/lightspeed(SI2019) # kg⋅m⋅s⁻¹ +$(electronvolt(SI2019)/lightspeed(SI2019)) + +julia> electronvolt(SI2019)/lightspeed(SI2019)^2 # kg +$(electronvolt(SI2019)/lightspeed(SI2019)^2) + +julia> electronvolt(SI2019)/planck(SI2019)/lightspeed(SI2019) # m⁻¹ +$(electronvolt(SI2019)/planck(SI2019)/lightspeed(SI2019)) + +julia> electronvolt(SI2019)/boltzmann(SI2019) # K +$(electronvolt(SI2019)/boltzmann(SI2019)) +``` +""" electronvolt, eV + +# power + +@doc """ +$(unitext(:watt,"power(𝟏,U,Metric)")) + +Metric `watt` unit of `power` (W or lb⋅ft⋅s⁻¹). +```Julia +julia> watt(Metric) # W +$(watt(Metric)) + +julia> watt(English) # lb⋅ft⋅s⁻¹ +$(watt(English)) + +julia> watt(MetricEngineering) # kgf⋅m⋅s⁻¹ +$(watt(MetricEngineering)) +``` +""" watt + +@doc """ +$(unitext(:tonsrefrigeration,"frequency(𝟐*𝟓/𝟑,U,Metric)*thermalunit(U)")) + +Unit of `power` derived from melting of 1 short ton of ice in 24 hours. +```Julia +julia> tonsrefrigeration(British) # lb⋅ft⋅s⁻¹ +$(tonsrefrigeration(British)) + +julia> tonsrefrigeration(Metric) # W +$(tonsrefrigeration(Metric)) + +julia> tonsrefrigeration(MetricEngineering) # kgf⋅m⋅s⁻¹ +$(tonsrefrigeration(MetricEngineering)) +``` +""" tonsrefrigeration + +@doc """ +$(unitext(:boilerhorsepower,"frequency(1339/𝟐^4/𝟑^2,U,Metric)*thermalunit(U)")) + +Unit of `power` derived from evaporating 34.5 lb of boiling water in 1 hour. +```Julia +julia> boilerhorsepower(British) # lb⋅ft⋅s⁻¹ +$(boilerhorsepower(British)) + +julia> boilerhorsepower(Metric) # W +$(boilerhorsepower(Metric)) + +julia> boilerhorsepower(MetricEngineering) # kgf⋅m⋅s⁻¹ +$(boilerhorsepower(MetricEngineering)) +``` +""" boilerhorsepower + +@doc """ +$(unitext(:horsepower,"power(𝟐*𝟓^2*𝟏𝟏,U,British)")) + +Unit of `power` derived from raising 550 lb by 1 ft in 1 in 1 s. +```Julia +julia> horsepower(British) # lb⋅ft⋅s⁻¹ +$(horsepower(British)) + +julia> horsepower(Metric) # W +$(horsepower(Metric)) + +julia> horsepower(MetricEngineering) # kgf⋅m⋅s⁻¹ +$(horsepower(MetricEngineering)) +``` +""" horsepower, HP + +@doc """ +$(unitext(:horsepowerwatt,"power(𝟐^4*𝟑^3/𝟓*τ,U,British)")) + +Unit of `power` derived from Watt's exact original horse power estimate. +```Julia +julia> horsepowerwatt(British) # lb⋅ft⋅s⁻¹ +$(horsepowerwatt(British)) + +julia> horsepowerwatt(Metric) # W +$(horsepowerwatt(Metric)) + +julia> horsepowerwatt(MetricEngineering) # kgf⋅m⋅s⁻¹ +$(horsepowerwatt(MetricEngineering)) +``` +""" horsepowerwatt + +@doc """ +$(unitext(:horsepowermetric,"power(𝟑*𝟓^2,U,GravitationalMetric)")) + +Unit of `power` derived from raising 75 kp by 1 m in 1 in 1 s. +```Julia +julia> horsepowermetric(British) # lb⋅ft⋅s⁻¹ +$(horsepowermetric(British)) + +julia> horsepowermetric(Metric) # W +$(horsepowermetric(Metric)) + +julia> horsepowermetric(MetricEngineering) # kgf⋅m⋅s⁻¹ +$(horsepowermetric(MetricEngineering)) +``` +""" horsepowermetric + +@doc """ +$(unitext(:electricalhorsepower,"power(746,U,Metric)")) + +Unit of `power` for electrical motors in the United States. +```Julia +julia> electricalhorsepower(British) # lb⋅ft⋅s⁻¹ +$(electricalhorsepower(British)) + +julia> electricalhorsepower(Metric) # W +$(electricalhorsepower(Metric)) + +julia> electricalhorsepower(MetricEngineering) # kgf⋅m⋅s⁻¹ +$(electricalhorsepower(MetricEngineering)) +``` +""" electricalhorsepower + +# electromagnetic + +@doc """ +$(unitext(:coulomb,"charge(𝟏,U,Metric)")) + +Metric unit of `charge` (C). +```Julia +julia> coulomb(Metric) # C +$(coulomb(Metric)) + +julia> coulomb(EMU) # abC +$(coulomb(EMU)) + +julia> coulomb(ESU) # statC +$(coulomb(ESU)) +``` +""" coulomb + +@doc """ +$(unitext(:ampere,"current(𝟏,U,Metric)")) + +Metric unit of `current` (C⋅s⁻¹). +```Julia +julia> ampere(Metric) # C⋅s⁻¹ +$(ampere(Metric)) + +julia> ampere(EMU) # abC⋅s⁻¹ +$(ampere(EMU)) + +julia> ampere(ESU) # statC⋅s⁻¹ +$(ampere(ESU)) +``` +""" ampere + +@doc """ +$(unitext(:volt,"electricpotential(𝟏,U,Metric)")) + +Metric unit of `electricpotential` (V). +```Julia +julia> volt(Metric) # V +$(volt(Metric)) + +julia> volt(EMU) # abV +$(volt(EMU)) + +julia> volt(ESU) # statV +$(volt(ESU)) +``` +""" volt + +@doc """ +$(unitext(:henry,"inductance(𝟏,U,Metric)")) + +Metric unit of `inductance` (H). +```Julia +julia> henry(Metric) # H +$(henry(Metric)) + +julia> henry(EMU) # abH +$(henry(EMU)) + +julia> henry(ESU) # statH +$(henry(ESU)) +``` +""" henry + +@doc """ +$(unitext(:ohm,"resistance(𝟏,U,Metric)")) + +Metric unit of `resistance` (Ω). +```Julia +julia> ohm(Metric) # Ω +$(ohm(Metric)) + +julia> ohm(EMU) # abΩ +$(ohm(EMU)) + +julia> ohm(ESU) # statΩ +$(ohm(ESU)) +``` +""" ohm + +@doc """ +$(unitext(:siemens,"conductance(𝟏,U,Metric)")) + +Metric unit of `conductance` (S). +```Julia +julia> siemens(Metric) # S +$(siemens(Metric)) + +julia> siemens(EMU) # abS +$(siemens(EMU)) + +julia> siemens(ESU) # statS +$(siemens(ESU)) +``` +""" siemens + +@doc """ +$(unitext(:farad,"capacitance(𝟏,U,Metric)")) + +Metric unit of `capacitance` (F). +```Julia +julia> farad(Metric) # F +$(farad(Metric)) + +julia> farad(EMU) # abF +$(farad(EMU)) + +julia> farad(ESU) # statF +$(farad(ESU)) +``` +""" farad + +@doc """ +$(unitext(:weber,"magneticflux(𝟏,U,Metric)")) + +Metric unit of `magneticflux` (Wb). +```Julia +julia> weber(Metric) # Wb +$(weber(Metric)) + +julia> weber(EMU) # Mx +$(weber(EMU)) + +julia> weber(ESU) # statWb +$(weber(ESU)) +``` +""" weber + +@doc """ +$(unitext(:tesla,"magneticfluxdensity(𝟏,U,Metric)")) + +Metric unit of `magneticfluxdensity` (T). +```Julia +julia> tesla(Metric) # T +$(tesla(Metric)) + +julia> tesla(EMU) # G +$(tesla(EMU)) + +julia> tesla(ESU) # statT +$(tesla(ESU)) +``` +""" tesla + +@doc """ +$(unitext(:abcoulomb,"charge(𝟏,U,EMU)")) + +Electromagnetic unit of `charge` (C). +```Julia +julia> abcoulomb(Metric) # C +$(abcoulomb(Metric)) + +julia> abcoulomb(EMU) # abC +$(abcoulomb(EMU)) + +julia> abcoulomb(ESU) # statC +$(abcoulomb(ESU)) +``` +""" abcoulomb + +@doc """ +$(unitext(:abampere,"current(𝟏,U,EMU)")) + +Electromagnetic unit of `current` (C⋅s⁻¹). +```Julia +julia> abampere(Metric) # C⋅s⁻¹ +$(abampere(Metric)) + +julia> abampere(EMU) # abC⋅s⁻¹ +$(abampere(EMU)) + +julia> abampere(ESU) # statC⋅s⁻¹ +$(abampere(ESU)) +``` +""" abampere + +@doc """ +$(unitext(:abvolt,"electricpotential(𝟏,U,EMU)")) + +Electromagnetic unit of `electricpotential` (V). +```Julia +julia> abvolt(Metric) # V +$(abvolt(Metric)) + +julia> abvolt(EMU) # abV +$(abvolt(EMU)) + +julia> abvolt(ESU) # statV +$(abvolt(ESU)) +``` +""" abvolt + +@doc """ +$(unitext(:abhenry,"inductance(𝟏,U,EMU)")) + +Electromagnetic unit of `inductance` (H). +```Julia +julia> abhenry(Metric) # H +$(abhenry(Metric)) + +julia> abhenry(EMU) # abH +$(abhenry(EMU)) + +julia> abhenry(ESU) # statH +$(abhenry(ESU)) +``` +""" abhenry + +@doc """ +$(unitext(:abohm,"resistance(𝟏,U,EMU)")) + +Electromagnetic unit of `resistance` (Ω). +```Julia +julia> abohm(Metric) # Ω +$(abohm(Metric)) + +julia> abohm(EMU) # abΩ +$(abohm(EMU)) + +julia> abohm(ESU) # statΩ +$(abohm(ESU)) +``` +""" abohm + +@doc """ +$(unitext(:abmho,"conductance(𝟏,U,EMU)")) + +Electromagnetic unit of `conductance` (S). +```Julia +julia> abmho(Metric) # S +$(abmho(Metric)) + +julia> abmho(EMU) # abS +$(abmho(EMU)) + +julia> abmho(ESU) # statS +$(abmho(ESU)) +``` +""" abmho + +@doc """ +$(unitext(:abfarad,"capacitance(𝟏,U,EMU)")) + +Electromagnetic unit of `capacitance` (F). +```Julia +julia> abfarad(Metric) # F +$(abfarad(Metric)) + +julia> abfarad(EMU) # abF +$(abfarad(EMU)) + +julia> abfarad(ESU) # statF +$(abfarad(ESU)) +``` +""" abfarad + +@doc """ +$(unitext(:maxwell,"magneticflux(𝟏,U,EMU)")) + +Electromagnetic unit of `magneticflux` (Wb). +```Julia +julia> maxwell(Metric) # Wb +$(maxwell(Metric)) + +julia> maxwell(EMU) # Mx +$(maxwell(EMU)) + +julia> maxwell(ESU) # statWb +$(maxwell(ESU)) +``` +""" maxwell + +@doc """ +$(unitext(:gauss,"magneticfluxdensity(𝟏,U,EMU)")) + +Electromagnetic unit of `magneticfluxdensity` (T). +```Julia +julia> gauss(Metric) # T +$(gauss(Metric)) + +julia> gauss(EMU) # G +$(gauss(EMU)) + +julia> gauss(ESU) # statT +$(gauss(ESU)) +``` +""" gauss + +@doc """ +$(unitext(:oersted,"magneticfield(𝟏,U,EMU)")) + +Electromagnetic unit of `magneticfield` (Oe). +```Julia +julia> oersted(Metric) # A⋅m⁻¹ +$(oersted(Metric)) + +julia> oersted(EMU) # Oe +$(oersted(EMU)) + +julia> oersted(ESU) # statA⋅cm⁻¹ +$(oersted(ESU)) +``` +""" oersted + +@doc """ +$(unitext(:gilbert,"abampere(U)/𝟐/turn(U)")) + +Electromagnetic unit of magnetization (Gb). +```Julia +julia> gilbert(Metric) # A⋅rad⁻¹ +$(gilbert(Metric)) + +julia> gilbert(EMU) # Gb +$(gilbert(EMU)) + +julia> gilbert(ESU) # statA⋅rad⁻¹ +$(gilbert(ESU)) +``` +""" gilbert + +@doc """ +$(unitext(:statcoulomb,"charge(𝟏,U,ESU)")) + +Electrostatic unit of `charge` (C). +```Julia +julia> statcoulomb(Metric) # C +$(statcoulomb(Metric)) + +julia> statcoulomb(EMU) # abC +$(statcoulomb(EMU)) + +julia> statcoulomb(ESU) # statC +$(statcoulomb(ESU)) +``` +""" statcoulomb + +@doc """ +$(unitext(:statampere,"current(𝟏,U,ESU)")) + +Electrostatic unit of `current` (C⋅s⁻¹). +```Julia +julia> statampere(Metric) # C⋅s⁻¹ +$(statampere(Metric)) + +julia> statampere(EMU) # abC⋅s⁻¹ +$(statampere(EMU)) + +julia> statampere(ESU) # statC⋅s⁻¹ +$(statampere(ESU)) +``` +""" statampere + +@doc """ +$(unitext(:statvolt,"electricpotential(𝟏,U,ESU)")) + +Electrostatic unit of `electricpotential` (V). +```Julia +julia> statvolt(Metric) # V +$(statvolt(Metric)) + +julia> statvolt(EMU) # abV +$(statvolt(EMU)) + +julia> statvolt(ESU) # statV +$(statvolt(ESU)) +``` +""" statvolt + +@doc """ +$(unitext(:stathenry,"inductance(𝟏,U,ESU)")) + +Electrostatic unit of `inductance` (H). +```Julia +julia> stathenry(Metric) # H +$(stathenry(Metric)) + +julia> stathenry(EMU) # abH +$(stathenry(EMU)) + +julia> stathenry(ESU) # statH +$(stathenry(ESU)) +``` +""" stathenry + +@doc """ +$(unitext(:statohm,"resistance(𝟏,U,ESU)")) + +Electrostatic unit of `resistance` (Ω). +```Julia +julia> statohm(Metric) # Ω +$(statohm(Metric)) + +julia> statohm(EMU) # abΩ +$(statohm(EMU)) + +julia> statohm(ESU) # statΩ +$(statohm(ESU)) +``` +""" statohm + +@doc """ +$(unitext(:statmho,"conductance(𝟏,U,ESU)")) + +Electrostatic unit of `conductance` (S). +```Julia +julia> statmho(Metric) # S +$(statmho(Metric)) + +julia> statmho(EMU) # abS +$(statmho(EMU)) + +julia> statmho(ESU) # statS +$(statmho(ESU)) +``` +""" statmho + +@doc """ +$(unitext(:statfarad,"capacitance(𝟏,U,ESU)")) + +Electrostatic unit of `capacitance` (F). +```Julia +julia> statfarad(Metric) # F +$(statfarad(Metric)) + +julia> statfarad(EMU) # abF +$(statfarad(EMU)) + +julia> statfarad(ESU) # statF +$(statfarad(ESU)) +``` +""" statfarad + +@doc """ +$(unitext(:statweber,"magneticflux(𝟏,U,ESU)")) + +Electrostatic unit of `magneticflux` (Wb). +```Julia +julia> statweber(Metric) # Wb +$(statweber(Metric)) + +julia> statweber(EMU) # Mx +$(statweber(EMU)) + +julia> statweber(ESU) # statWb +$(statweber(ESU)) +``` +""" statweber + +@doc """ +$(unitext(:stattesla,"magneticfluxdensity(𝟏,U,ESU)")) + +Electrostatic unit of `magneticfluxdensity` (T). +```Julia +julia> stattesla(Metric) # T +$(stattesla(Metric)) + +julia> stattesla(EMU) # G +$(stattesla(EMU)) + +julia> stattesla(ESU) # statT +$(stattesla(ESU)) +``` +""" stattesla + +@doc """ +$(unitext(:earthcoulomb,"charge(𝟏,U,Meridian)")) + +Meridian unit of `charge` (C). +```Julia +julia> earthcoulomb(Metric) # C +$(earthcoulomb(Metric)) + +julia> earthcoulomb(EMU) # abC +$(earthcoulomb(EMU)) + +julia> earthcoulomb(ESU) # statC +$(earthcoulomb(ESU)) +``` +""" earthcoulomb + +# temperature + +@doc """ +$(unitext(:kelvin,"temperature(𝟏,U,Metric)")) + +Metric unit of `temperature` (K or °R). +```Julia +julia> kelvin(Metric) # K +$(kelvin(Metric)) + +julia> kelvin(SI2019) # K +$(kelvin(SI2019)) + +julia> kelvin(British) # °R +$(kelvin(British)) +``` +""" kelvin + +@doc """ +$(unitext(:rankine,"temperature(𝟏,U,English)")) + +English unit of `temperature` (K or °R). +```Julia +julia> rankine(Metric) # K +$(rankine(Metric)) + +julia> rankine(SI2019) # K +$(rankine(SI2019)) + +julia> rankine(British) # °R +$(rankine(British)) +``` +""" rankine + +#=@doc """ +$(unitext(:delisle,"temperature(𝟐/𝟑,U,Metric)")) + +Historical unit of `temperature` (K or °R). +```Julia +julia> delisle(Metric) # K +$(delisle(Metric)) + +julia> delisle(SI2019) # K +$(delisle(SI2019)) + +julia> delisle(British) # °R +$(delisle(British)) +``` +""" delisle + +@doc """ +$(unitext(:reaumur,"temperature(𝟓/𝟐^2,U,Metric)")) + +Historical unit of `temperature` (K or °R). +```Julia +julia> reaumur(Metric) # K +$(reaumur(Metric)) + +julia> reaumur(SI2019) # K +$(reaumur(SI2019)) + +julia> reaumur(British) # °R +$(reaumur(British)) +``` +""" reaumur=# + +@doc """ +$(unitext(:sealevel,"temperature(T₀+𝟑*𝟓,U)")) + +Standard `temperature` reference at `sealevel` (K or °R). +```Julia +julia> sealevel(Metric) # K +$(sealevel(Metric)) + +julia> sealevel(SI2019) # K +$(sealevel(SI2019)) + +julia> sealevel(English) # °R +$(sealevel(English)) +``` +""" sealevel, T₀ + +# mole + +@doc """ +$(unitext(:mole,"molaramount(𝟏,U,Metric)")) + +Molecular `molaramount` unit (mol or lb-mol). +```Julia +julia> mole(Metric) # mol +$(mole(Metric)) + +julia> mole(English) # lb-mol +$(mole(English)) + +julia> mole(British) # slug-mol +$(mole(British)) +``` +""" mole + +@doc """ +$(unitext(:earthmole,"molaramount(𝟏,U,Meridian)")) + +Molecular `molaramount` unit (mol or lb-mol). +```Julia +julia> earthmole(Metric) # mol +$(earthmole(Metric)) + +julia> earthmole(English) # lb-mol +$(earthmole(English)) + +julia> earthmole(British) # slug-mol +$(earthmole(British)) +``` +""" earthmole + +@doc """ +$(unitext(:poundmole,"molaramount(𝟏,U,English)")) + +Molecular `molaramount` unit (mol or lb-mol). +```Julia +julia> poundmole(Metric) # mol +$(poundmole(Metric)) + +julia> poundmole(English) # lb-mol +$(poundmole(English)) + +julia> poundmole(British) # slug-mol +$(poundmole(British)) +``` +""" poundmole + +@doc """ +$(unitext(:slinchmole,"molaramount(𝟏,U,IPS)")) + +Molecular `molaramount` unit (mol or lb-mol). +```Julia +julia> slinchmole(Metric) # mol +$(slinchmole(Metric)) + +julia> slinchmole(English) # lb-mol +$(slinchmole(English)) + +julia> slinchmole(British) # slug-mol +$(slinchmole(British)) +``` +""" slinchmole + +@doc """ +$(unitext(:slugmole,"molaramount(𝟏,U,British)")) + +Molecular `molaramount` unit (mol or lb-mol). +```Julia +julia> slugmole(Metric) # mol +$(slugmole(Metric)) + +julia> slugmole(English) # lb-mol +$(slugmole(English)) + +julia> slugmole(British) # slug-mol +$(slugmole(British)) +``` +""" slugmole + +# photometric + +@doc """ +$(unitext(:lumen,"luminousflux(𝟏,U,Metric)")) + +Common unit of `luminousflux` (lm). +```Julia +julia> lumen(Metric) # lm +$(lumen(Metric)) + +julia> lumen(CGS) # lm +$(lumen(CGS)) + +julia> lumen(English) # lm +$(lumen(English)) +``` +""" lumen + +@doc """ +$(unitext(:candela,"luminousintensity(𝟏,U,Metric)")) + +Common unit of `luminousintensity` (cd). +```Julia +julia> candela(MetricEngineering) # cd +$(candela(Metric)) + +julia> candela(CGS) # cd +$(candela(CGS)) + +julia> candela(English) # cd +$(candela(English)) +``` +""" candela + +@doc """ +$(unitext(:lux,"illuminance(𝟏,U,Metric)")) + +Metric unit of `illuminance` (lx). +```Julia +julia> lux(Metric) # lx +$(lux(Metric)) + +julia> lux(CGS) # ph +$(lux(CGS)) + +julia> lux(English) # fc +$(lux(English)) +``` +""" lux + +@doc """ +$(unitext(:footcandle,"illuminance(𝟏,U,English)")) + +English unit of `illuminance` (lx). +```Julia +julia> footcandle(Metric) # lx +$(footcandle(Metric)) + +julia> footcandle(CGS) # ph +$(footcandle(CGS)) + +julia> footcandle(English) # fc +$(footcandle(English)) +``` +""" footcandle + +@doc """ +$(unitext(:phot,"illuminance(𝟏,U,Gauss)")) + +Historic unit of `illuminance` (lx). +```Julia +julia> phot(Metric) # lx +$(phot(Metric)) + +julia> phot(CGS) # ph +$(phot(CGS)) + +julia> phot(English) # fc +$(phot(English)) +``` +""" phot + +@doc """ +$(unitext(:nit,"luminance(𝟏,U,Metric)")) + +Metric unit of `luminance` (lx⋅rad⁻²). +```Julia +julia> nit(Metric) # nt +$(nit(Metric)) + +julia> nit(CGS) # sb +$(nit(CGS)) + +julia> nit(English) # fc +$(nit(English)) +``` +""" nit + +@doc """ +$(unitext(:apostilb,"luminance(𝟐/turn(U),U,Metric)")) + +Metric unit of `luminance` (lx⋅rad⁻²). +```Julia +julia> apostilb(Metric) # nt +$(apostilb(Metric)) + +julia> apostilb(CGS) # sb +$(apostilb(CGS)) + +julia> apostilb(English) # fc +$(apostilb(English)) +``` +""" apostilb + +@doc """ +$(unitext(:stilb,"luminance(𝟏,U,Gauss)")) + +Historic unit of `luminance` (lx⋅rad⁻²). +```Julia +julia> stilb(Metric) # nt +$(stilb(Metric)) + +julia> stilb(CGS) # sb +$(stilb(CGS)) + +julia> stilb(English) # fc +$(stilb(English)) +``` +""" stilb + +@doc """ +$(unitext(:lambert,"luminance(𝟐/turn(U),U,Gauss)")) + +Historic unit of `luminance` (nt). +```Julia +julia> lambert(Metric) # nt +$(lambert(Metric)) + +julia> lambert(CGS) # sb +$(lambert(CGS)) + +julia> lambert(English) # fc +$(lambert(English)) +``` +""" lambert + +@doc """ +$(unitext(:footlambert,"luminance(𝟐/turn(U),U,English)")) + +English unit of `luminance` (nt). +```Julia +julia> footlambert(Metric) # nt +$(footlambert(Metric)) + +julia> footlambert(CGS) # sb +$(footlambert(CGS)) + +julia> footlambert(English) # fc +$(footlambert(English)) +``` +""" footlambert + +@doc """ +$(unitext(:bril,"centi*nano*lambert(U)")) + +Reference unit of `luminance` (nt). +```Julia +julia> bril(Metric) # nt +$(bril(Metric)) + +julia> bril(CGS) # sb +$(bril(CGS)) + +julia> bril(English) # fc +$(bril(English)) +``` +""" bril + +# special + +@doc """ +$(unitext(:hertz,"𝟏/second(U)")) + +Metric unit of `frequency` (s⁻¹). +```Julia +julia> hertz(MetricEngineering) # rad⋅s⁻¹ +$(hertz(MetricEngineering)) + +julia> hertz(IAU) # D⁻¹ +$(hertz(IAU)) +``` +""" hertz + +@doc """ +$(unitext(:rpm,"𝟏/minute(U)")) + +Engineering unit of `frequency` (s⁻¹). +```Julia +julia> rpm(MetricEngineering) # rad⋅s⁻¹ +$(rpm(MetricEngineering)) + +julia> rpm(IAU) # D⁻¹ +$(rpm(IAU)) +``` +""" rpm + +@doc """ +$(unitext(:kayser,"wavenumber(𝟏,U,Gauss)")) + +Metric unit of `wavenumber` or curvature (m⁻¹ or ft⁻¹). +```Julia +julia> kayser(Metric) # m⁻¹ +$(kayser(Metric)) + +julia> kayser(CGS) # cm⁻¹ +$(kayser(CGS)) + +julia> kayser(English) # ft⁻¹ +$(kayser(English)) +``` +""" kayser + +@doc """ +$(unitext(:diopter,"wavenumber(𝟏,U,Metric)")) + +Metric unit of `wavenumber` or curvature (m⁻¹ or ft⁻¹). +```Julia +julia> diopter(Metric) # m⁻¹ +$(diopter(Metric)) + +julia> diopter(CGS) # cm⁻¹ +$(diopter(CGS)) + +julia> diopter(English) # ft⁻¹ +$(diopter(English)) +``` +""" diopter + +@doc """ +$(unitext(:bubnoff,"meter(U)/year(U)")) + +Reference unit of erosion `speed` (m⋅s⁻¹ or ft⋅s⁻¹). +```Julia +julia> bubnoff(Metric) # m⋅s⁻¹ +$(bubnoff(Metric)) + +julia> bubnoff(CGS) # cm⋅s⁻¹ +$(bubnoff(CGS)) + +julia> bubnoff(English) # ft⋅s⁻¹ +$(bubnoff(English)) +``` +""" bubnoff + +@doc """ +$(unitext(:gforce,"specificforce(𝟏,U,English)")) + +Standard gravity `specificforce` `g₀` at geodetic reference latitude (m⋅s⁻² or ft⋅s⁻²). +```Julia +julia> gforce(CGS) # gal +$(gforce(CGS)) + +julia> gforce(British) # ft⋅s⁻² +$(gforce(British)) + +julia> gforce(English) # lbf⋅lbm⁻¹ +$(gforce(English)) +``` +""" gforce, g₀, g0, lbm + +@doc """ +$(unitext(:galileo,"specificforce(𝟏,U,Gauss)")) + +Metric unit of `specificforce` used in gravimetry (m⋅s⁻² or ft⋅s⁻²). +```Julia +julia> galileo(Metric) # m⋅s⁻² +$(galileo(Metric)) + +julia> galileo(CGS) # gal +$(galileo(CGS)) + +julia> galileo(English) # lbf⋅lbm⁻¹ +$(galileo(English)) +``` +""" galileo + +@doc """ +$(unitext(:eotvos,"specificforce(nano,U,Gauss)/length(𝟏,U,Gauss)")) + +Metric unit of `specificforce` per `length` used in gravimetry (s⁻² or gal⋅cm⁻¹). +```Julia +julia> eotvos(Metric) # s⁻² +$(eotvos(Metric)) + +julia> eotvos(CGS) # gal⋅cm⁻¹ +$(eotvos(CGS)) + +julia> eotvos(English) # lbf⋅lbm⁻¹ft⁻¹ +$(eotvos(English)) +``` +""" eotvos + +@doc """ +$(unitext(:darcy,"area(milli/atm,U,Gauss)")) + +Metric unit of permeability (m² or ft²). +```Julia +julia> darcy(Metric) # m² +$(darcy(Metric)) + +julia> darcy(CGS) # cm² +$(darcy(CGS)) + +julia> darcy(English) # ft² +$(darcy(English)) +``` +""" darcy + +@doc """ +$(unitext(:poise,"viscosity(𝟏,U,Gauss)")) + +Metric unit of `viscosity` (kg⋅m⁻¹⋅s⁻¹ or lb⋅s⋅ft⁻²). +```Julia +julia> poise(Metric) # kg⋅m⁻¹⋅s⁻¹ +$(poise(Metric)) + +julia> poise(CGS) # g⋅cm⁻¹⋅s⁻¹ +$(poise(CGS)) + +julia> poise(English) # lb⋅s⋅ft⁻² +$(poise(English)) +``` +""" poise + +@doc """ +$(unitext(:reyn,"viscosity(𝟏,U,IPS)")) + +IPS unit of `viscosity` named after Reynolds (kg⋅m⁻¹⋅s⁻¹ or lb⋅s⋅ft⁻²). +```Julia +julia> reyn(Metric) # kg⋅m⁻¹⋅s⁻¹ +$(reyn(Metric)) + +julia> reyn(CGS) # g⋅cm⁻¹⋅s⁻¹ +$(reyn(CGS)) + +julia> reyn(English) # lb⋅s⋅ft⁻² +$(reyn(English)) +``` +""" reyn + +@doc """ +$(unitext(:stokes,"diffusivity(𝟏,U,Gauss)")) + +Metric unit of `diffusivity` (m²⋅s⁻¹ or ft²⋅s⁻¹). +```Julia +julia> stokes(Metric) # m²⋅s⁻¹ +$(stokes(Metric)) + +julia> stokes(CGS) # cm²⋅s⁻¹ +$(stokes(CGS)) + +julia> stokes(English) # ft²⋅s⁻¹ +$(stokes(English)) +``` +""" stokes + +@doc """ +$(unitext(:rayl,"specificimpedance(𝟏,U,Metric)")) + +Metric unit of `specificimpedance` (kg⋅m⁻²⋅s⁻¹ or lb⋅s⋅ft⁻³). +```Julia +julia> rayl(Metric) # kg⋅m⁻²⋅s⁻¹ +$(rayl(Metric)) + +julia> rayl(CGS) # g⋅cm⁻²⋅s⁻¹ +$(rayl(CGS)) + +julia> rayl(English) # lb⋅s⋅ft⁻³ +$(rayl(English)) +``` +""" rayl + +@doc """ +$(unitext(:katal,"catalysis(𝟏,U,Metric)")) + +Metric unit of `catalysis` (mol⋅s⁻¹ or lb-mol⋅s⁻¹). +```Julia +julia> katal(Metric) # mol⋅s⁻¹ +$(katal(Metric)) + +julia> katal(English) # lb-mol⋅s⁻¹ +$(katal(English)) + +julia> katal(British) # slug-mol⋅s⁻¹ +$(katal(British)) +``` +""" katal + +@doc """ +$(unitext(:mpge,"mile(U)/gasgallon(U)")) + +Equivalent `mile` per `gasgallon` reference unit of `length` per `energy` (N⁻¹ or lb⁻¹). +```Julia +julia> mpge(Metric) # N⁻¹ +$(mpge(Metric)) + +julia> mpge(CGS) # dyn⁻¹ +$(mpge(CGS)) + +julia> mpge(English) # lb⁻¹ +$(mpge(English)) +``` +""" mpge + +@doc """ +$(unitext(:langley,"calorie(U)/(centi*meter(U))^2")) + +Solar radiation unit (kg⋅s⁻² or lb⋅ft⁻¹). +```Julia +julia> langley(Metric) # kg⋅s⁻² +$(langley(Metric)) + +julia> langley(CGS) # g⋅s⁻² +$(langley(CGS)) + +julia> langley(English) # lb⋅ft⁻¹ +$(langley(English)) +``` +""" langley + +@doc """ +$(unitext(:jansky,"fluence(deci^-26,U,Metric)")) + +Reference unit of spectral irradiance (kg⋅s⁻² or lb⋅ft⁻¹). +```Julia +julia> jansky(Metric) # kg⋅s⁻² +$(jansky(Metric)) + +julia> jansky(CGS) # g⋅s⁻² +$(jansky(CGS)) + +julia> jansky(English) # lb⋅ft⁻¹ +$(jansky(English)) +``` +""" jansky + +@doc """ +$(unitext(:solarflux,"hecto^2*jansky(U)")) + +Reference unit of spectral irradiance (kg⋅s⁻² or lb⋅ft⁻¹). +```Julia +julia> solarflux(Metric) # kg⋅s⁻² +$(solarflux(Metric)) + +julia> solarflux(CGS) # g⋅s⁻² +$(solarflux(CGS)) + +julia> solarflux(English) # lb⋅ft⁻¹ +$(solarflux(English)) +``` +""" solarflux + +@doc """ +$(unitext(:curie,"frequency(𝟏,U,Metric)")) + +Reference unit of radioactivity (Bq or s⁻¹). +```Julia +julia> curie(Metric) # Bq +$(curie(Metric)) + +julia> curie(IAU) # D⁻¹ +$(curie(IAU)) +``` +""" curie + +@doc """ +$(unitext(:sievert,"energy(𝟏,U,Metric)/mass(U,Metric)")) + +Metric unit of radioactivity (Sv or m²⋅s⁻²). +```Julia +julia> sievert(Metric) # Sv +$(sievert(Metric)) +``` +""" sievert + +@doc """ + rem(U::UnitSystem) = centi*sievert(U) + +Obsolete unit of radioactivity (Sv or m²⋅s⁻²). +```Julia +julia> rem(Metric) # Sv +$(rem(Metric)) +``` +""" rem + +@doc """ +$(unitext(:roentgen,"chargedensity(𝟏,U,ESU)/density(Constant(1.293),U,Metric)")) + +Legacy unit of ionisation `exposure` (R or C⋅kg⁻¹). +```Julia +julia> roentgen(Metric) # R +$(roentgen(Metric)) +``` +""" roentgen diff --git a/src/electromagnetic.jl b/src/electromagnetic.jl index 0db855f..f06bfac 100644 --- a/src/electromagnetic.jl +++ b/src/electromagnetic.jl @@ -37,12 +37,12 @@ const voltage = electricpotential @pure exposure(U::UnitSystem,S::UnitSystem) = unit(charge(U,S)/mass(U,S)) @pure resistivity(U::UnitSystem,S::UnitSystem) = unit(resistance(U,S)*length(U,S)) @pure linearchargedensity(U::UnitSystem,S::UnitSystem) = unit(charge(U,S)/length(U,S)) -@pure magneticdipolemoment(U::UnitSystem,S::UnitSystem) = unit(current(U,S)*lorentz(U,S)*area(U,S)) -@pure mobility(U::UnitSystem,S::UnitSystem) = unit(charge(U,S)*time(U,S)/mass(U,S)) +@pure magneticdipolemoment(U::UnitSystem,S::UnitSystem) = unit(current(U,S)*lorentz(U,S)*area(U,S)/gravity(U,S)/angle(U,S)) +@pure mobility(U::UnitSystem,S::UnitSystem) = unit(length(U,S)*speed(U,S)*electricpotential(U,S)) @pure reluctance(U::UnitSystem,S::UnitSystem) = unit(rationalization(U,S)*lorentz(U,S)^2/inductance(U,S)) @pure vectorpotential(U::UnitSystem,S::UnitSystem) = unit(magneticflux(U,S)/length(U,S)) @pure magneticmoment(U::UnitSystem,S::UnitSystem) = unit(magneticflux(U,S)*length(U,S)) -@pure rigidity(U::UnitSystem,S::UnitSystem) = unit(magneticfluxdensity(U,S)*length(U,S)) +#@pure rigidity(U::UnitSystem,S::UnitSystem) = unit(magneticfluxdensity(U,S)*length(U,S)) @pure susceptibility(U::UnitSystem,S::UnitSystem) = unit(rationalization(S,U)) # WARNING unchecked: rigidity, magneticmoment, vectorpotential, mobility, linearchargedensity, exposure @@ -55,10 +55,10 @@ const voltage = electricpotential @pure polestrength(U::UnitSystem,S::UnitSystem) = unit(magneticdipolemoment(U,S)/length(U,S)) @pure permeance(U::UnitSystem,S::UnitSystem) = reluctance(S,U) @pure specificsusceptibility(U::UnitSystem,S::UnitSystem) = unit(magneticdipolemoment(U,S)/magneticfield(U,S)/mass(U,S)) -@pure magnetizability(U::UnitSystem,S::UnitSystem) = unit(magneticmoment(U,S)/magneticfluxdensity(U,S)) +#@pure magnetizability(U::UnitSystem,S::UnitSystem) = unit(magneticmoment(U,S)/magneticfluxdensity(U,S)) @pure electricpolarizability(U::UnitSystem,S::UnitSystem) = unit(electricdipolemoment(U,S)/electricfield(U,S)) @pure magneticpolarizability(U::UnitSystem,S::UnitSystem) = unit(magneticdipolemoment(U,S)/magneticfield(U,S)) -@pure magnetization(U::UnitSystem,S::UnitSystem) = unit(magneticmoment(U,S)/volume(U,S)) +#@pure magnetization(U::UnitSystem,S::UnitSystem) = unit(magneticmoment(U,S)/volume(U,S)) # specificmagnetization, mass magnetization = 1? # magneticfluxdensity(Metric,EMU)/density(Metric,EMU) diff --git a/src/electromagneticdocs.jl b/src/electromagneticdocs.jl index 84c3688..41418b9 100644 --- a/src/electromagneticdocs.jl +++ b/src/electromagneticdocs.jl @@ -146,7 +146,7 @@ $(magneticflux(Metric,SI2019)) @doc """ $(convertext(:magneticfluxdensity,"magneticflux(U,S)/area(U,S)")) -Magnetic induction or surface `magneticfluxdensity` (T, Wb⋅m⁻²), unit conversion factor. +Magnetic induction or `magneticmoment` per `volume` (T or Wb⋅m⁻²), unit conversion factor. ```Julia julia> magneticfluxdensity(EMU,Metric) # T⋅G⁻¹ @@ -373,7 +373,7 @@ $(linearchargedensity(Metric,SI2019)) """ linearchargedensity @doc """ -$(convertext(:magneticdipolemoment,"current(U,S)*lorentz(U,S)/area(U,S)")) +$(convertext(:magneticdipolemoment,"current(U,S)*lorentz(U,S)/area(U,S)/gravity(U,S)/angle(U,S)")) Magnetic dipole moment or `magneticdipolemoment` (J⋅T⁻¹, A⋅m²), unit conversion factor. @@ -390,9 +390,9 @@ $(magneticdipolemoment(Metric,SI2019)) """ magneticdipolemoment @doc """ -$(convertext(:mobility,"charge(U,S)*time(U,S)/mass(U,S)")) +$(convertext(:mobility,"length(U,S)*speed(U,S)/electricpotential(U,S)")) -Electron `mobility` in solid state physics (m²⋅V⁻¹⋅s⁻¹, A⋅s²⋅kg⁻¹), unit conversion factor. +Electron `mobility` in solid state physics (m²⋅V⁻¹⋅s⁻¹, A⋅s⋅kg⁻¹), unit conversion factor. ```Julia julia> mobility(EMU,Metric) # C⋅g⋅abC⁻¹⋅kg @@ -429,7 +429,7 @@ $(reluctance(Metric,SI2019)) @doc """ $(convertext(:vectorpotential,"magneticflux(U,S)/length(U,S)")) -Magnetic `vectorpotential` (Wb⋅m⁻¹), unit conversion factor. +Magnetic `vectorpotential` or electromagnetic rigidity (Wb⋅m⁻¹ or T⋅m), unit conversion factor. ```julia julia> vectorpotential(EMU,Metric) # Wb⋅cm⋅Mx⁻¹⋅m⁻¹ @@ -446,7 +446,7 @@ $(vectorpotential(Metric,SI2019)) @doc """ $(convertext(:magneticmoment,"magneticflux(U,S)*length(U,S)")) -Amount of `magneticmoment` or `magneticflux` by `length` (Wb⋅m), unit conversion factor. +Amount of `magneticmoment` or `magneticflux` by `length` (Wb⋅m or T⋅m³), unit conversion factor. ```Julia julia> magneticmoment(EMU,Metric) # Wb⋅m⋅Mx⁻¹⋅cm⁻¹ @@ -460,7 +460,7 @@ $(magneticmoment(Metric,SI2019)) ``` """ magneticmoment -@doc """ +#=@doc """ $(convertext(:rigidity,"magneticfluxdensity(U,S)*length(U,S)")) Electromagnetic `rigidity` (T⋅m), unit conversion factor. @@ -475,7 +475,7 @@ $(rigidity(EMU,ESU)) julia> rigidity(Metric,SI2019) # T⋅T⁻¹ $(rigidity(Metric,SI2019)) ``` -""" rigidity +""" rigidity=# @doc """ $(convertext(:susceptibility,"1/rationalization(U,S)")) @@ -599,7 +599,7 @@ $(specificsusceptibility(Metric,SI2019)) ``` """ specificsusceptibility -@doc """ +#=@doc """ $(convertext(:magnetizability,"magneticmoment(U,S)/magneticfluxdensity(U,S)")) Quantity of `magneticmoment` per `magneticfluxdensity` (m⁻¹), unit conversion factor. @@ -614,7 +614,7 @@ $(magnetizability(ESU,Metric)) julia> magnetizability(Metric,SI2019) # m⋅m⁻¹ $(magnetizability(Metric,SI2019)) ``` -""" magnetizability +""" magnetizability=# @doc """ $(convertext(:electricpolarizability,"electricdipolemoment(U,S)/electricfield(U,S)")) @@ -656,7 +656,7 @@ $(electricpolarizability(Metric,SI2019)) ``` """ magneticpolarizability -@doc """ +#=@doc """ $(convertext(:magnetization,"magneticmoment(U,S)/volume(U,S)")) Amount of `magneticmoment` per `volume` (Wb⋅m⁻²), unit conversion factor. @@ -671,7 +671,7 @@ $(magnetization(ESU,Metric)) julia> magnetization(Metric,SI2019) # Wb⋅Wb⁻¹ $(magnetization(Metric,SI2019)) ``` -""" magnetization +""" magnetization=# # specificmagnetization, mass magnetization = 1? # magneticfluxdensity(Metric,EMU)/density(Metric,EMU) diff --git a/src/initdata.jl b/src/initdata.jl index 055fd5d..0bbfdab 100644 --- a/src/initdata.jl +++ b/src/initdata.jl @@ -12,15 +12,23 @@ # https://github.com/chakravala # https://crucialflow.com -const centi,milli,HOUR = inv((𝟐*𝟓)^2),inv((𝟐*𝟓)^3),𝟐^4*𝟑^2*𝟓^2 -const fur,slug,slugUS,°R,K = 𝟐^2*𝟑*𝟓*𝟏𝟏*ft,lb*g₀/ft,lb*g₀/ftUS,𝟓/𝟑^2,𝟑^2/𝟓 +const deka,byte = 𝟐*𝟓,𝟐^3 +const hecto, kilo = deka^2, deka^3 +const mega,giga,tera,peta,exa = kilo^2, kilo^3, kilo^4, kilo^5, kilo^6 +const deci,centi,milli,micro,nano,pico,femto,atto,zepto = inv(deka),inv(hecto),inv(kilo),inv(mega),inv(giga),inv(tera),inv(peta),inv(exa),inv(zetta) +const kibi,mebi,gibi,tebi,pebi,exbi,zebi,yobi = 𝟐^10,𝟐^20,𝟐^30,𝟐^40,𝟐^50,𝟐^60,(Constant(1.0)*𝟐)^70,(Constant(1.0)*𝟐)^80 + +const fur,°R,K,HOUR,k = 𝟐^2*𝟑*𝟓*𝟏𝟏*ft,𝟓/𝟑^2,𝟑^2/𝟓,𝟐^4*𝟑^2*𝟓^2,kG*τ/(𝟐^7*𝟑^4*𝟓^3) const mₑ,μ₀ = αinv^2*R∞*𝟐*𝘩/𝘤,𝟐*𝘩/𝘤*α/𝘦^2 # ≈ 4π*(1e-7+5.5e-17), exact charge const ħ,μₚₑ,Rᵤ,αL,αG,Mᵤ = 𝘩/τ,μₚᵤ/μₑᵤ,NA*kB,centi/𝘤,(mₑ/mP)^2,NA*mₑ/μₑᵤ -const pc,G,DAY,nm = au*𝟐^7*𝟑^4*𝟓^3/τ,𝘤*ħ/mP^2,𝟐^7*𝟑^3*𝟓^2,𝟐^4*𝟓^5/𝟑^3 # nautical mile +const pc,G,DAY,nm = au*𝟐^7*𝟑^4*𝟓^3/τ,𝘤*ħ/mP^2,𝟐^7*𝟑^3*𝟓^2,sqrt(GME/g₀)*τ/𝟐^5/𝟑^3/𝟓^2 const GM☉ =au^3*k^2/DAY^2; const th = 𝟏𝟎^3*pc/H0; const ΛC = 𝟑*ΩΛ*(th*𝘤)^-2 const lc,mc,ρΛ = 𝟐*sqrt(τ/ΛC),𝘤^2/(𝟐*sqrt(τ*ΛC*G)),ΛC*𝘤^4/(𝟐^2*τ)/G const lcq,mcq = sqrt.(sqrt.((𝘤*ħ/ρΛ,ρΛ*ħ^3/𝘤^5))) -const tcq = lcq*sqrt(mcq/sqrt(sqrt(ρΛ*(𝘤*ħ)^3))) +const tcq,em,mi = lcq*sqrt(mcq/sqrt(sqrt(ρΛ*(𝘤*ħ)^3))),sqrt(GME/g₀)*τ/𝟐^9/𝟓^7,𝟐^5*𝟑*𝟓*𝟏𝟏 + +@pure sackurtetrode(P,T=𝟏) = sackurtetrode(SI2019,P,T) +@pure sackurtetrode(U::UnitSystem,P=atm,T=𝟏) = normal(log(Constant(exp(5/2))*T*boltzmann(U)/P*sqrt(electronmass(U)/gravity(U)/electronunit(U)*boltzmann(U)*T/turn(U)/planckreduced(U)^2)^3)) const Universe = Coupling(αG,α,μₑᵤ,μₚᵤ,ΩΛ) @@ -32,14 +40,14 @@ export AstronomicalSystem, ElectricSystem, GaussSystem, EntropySystem """ MetricSystem(Mu=Mᵤ,μ0=μ₀,Ru=Rᵤ,g0=𝟏,h=𝘩) -Constructs new `UnitSystem` from `molarmass` constant, `vacuumpermeability`, `universal` gas constant, `gravity` force reference, and `planck` constant. +Constructs new `UnitSystem` from `molarmass` constant, `vacuumpermeability`, `molargas` constant, `gravity` force reference, and `planck` constant. Examples include `SI2019`, `Metric`, `SI2019Engineering`, `MetricEngineering`, `SI1976`. In addition, the `ConventionalSystem` constructor further builds on `MetricSystem`, resulting in variations. """ -MetricSystem(Mu=Mᵤ,μ0=μ₀,Ru=Rᵤ,g0=𝟏,h=𝘩,me=αinv^2*R∞*𝟐*h/𝘤/g0) = UnitSystem(Ru*me/Mu/μₑᵤ/g0,h/τ/g0,𝘤,μ0,me,Mu,Kcd*(mₑ/me)^2*(h/𝘩)*g0,𝟏,𝟏,𝟏,g0,Universe,τ,𝟐,𝟑,𝟓,𝟕,𝟏𝟏,𝟏𝟗,𝟒𝟑) +MetricSystem(Mu=Mᵤ,μ0=μ₀,Ru=Rᵤ,g0=𝟏,h=𝘩,me=αinv^2*R∞*𝟐*h/𝘤) = UnitSystem(Ru*me/Mu/μₑᵤ/g0,h/τ/g0,𝘤,μ0,me,Mu,Kcd*(mₑ/me)^2*(h/𝘩)*g0,𝟏,𝟏,𝟏,g0,Universe,τ,𝟐,𝟑,𝟓,𝟕,𝟏𝟏,𝟏𝟗,𝟒𝟑) """ - ConventionalSystem(RK,KJ,Ru=Rᵤ,g0=𝟏) = MetricSystem(0.001,𝟐*RK/𝘤*α,Ru,g0,𝟒/RK/KJ^2) + ConventionalSystem(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. @@ -48,58 +56,63 @@ Examples include `Conventional` (based on 1990) and `CODATA` (based on 2014). ConventionalSystem(klitz,joseph,Ru=Rᵤ,g0=𝟏) = MetricSystem(milli,𝟐*klitz/𝘤*α,Ru,g0,(𝟐*𝟐)/klitz/(joseph*joseph)) """ - RankineSystem(U::UnitSystem,l,m,g0=𝟏) = EntropySystem(U,𝟏,l,m,°R,𝟐*τ,1000molarmass(U),g0) + RankineSystem(U::UnitSystem,l,m,g0=𝟏) = EntropySystem(U,𝟏,l,m,°R,vacuumpermeability(U)/m/l/g0,kilo*molarmass(U),g0) Constructs new `UnitSystem` from `U` rescaled along `length` and `mass` with optional `gravity` reference constant used to define technical and engineering units. -Examples: `British`, `British2019`, `Survey`, `Survey2019`, `English`, `English2019`, `FPS`, `FPS2019`. +Examples: `FPS`, `British`, `IPS`, `English`, `Survey`. """ -RankineSystem(u,l,m,g0=𝟏) = EntropySystem(u,𝟏,l,m,°R,𝟐*τ,UnitSystems.unit(𝟏𝟎^3*UnitSystems.molarmass(u)),g0) +RankineSystem(u,l,m,g0=𝟏) = EntropySystem(u,𝟏,l,m,°R,UnitSystems.vacuumpermeability(u)/(m*l)/g0,UnitSystems.unit(kilo*UnitSystems.molarmass(u)),g0) # historical units const SI2019 = Quantity(MetricSystem()) -const Metric = Quantity(MetricSystem(milli,𝟐*τ/𝟏𝟎^7)) -const SI2019Engineering = Quantity(MetricSystem(Mᵤ,μ₀,Rᵤ,g₀)) -const MetricEngineering = Quantity(MetricSystem(milli,𝟐*τ/𝟏𝟎^7,Rᵤ,g₀)) -const SI1976 = Quantity(MetricSystem(milli,𝟐*τ/𝟏𝟎^7,Constant(8.31432))) +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 SI1976 = Quantity(MetricSystem(milli,τ/𝟐^6/𝟓^7,Constant(8.31432))) const CODATA = Quantity(ConventionalSystem(RK2014,KJ2014,Rᵤ2014)) const Conventional = Quantity(ConventionalSystem(RK1990,KJ1990)) const International = Quantity(ElectricSystem(Metric,Ωᵢₜ,Vᵢₜ)) const InternationalMean = Quantity(ElectricSystem(Metric,Constant(1.00049),Constant(1.00034))) const EMU = Quantity(GaussSystem(Metric,𝟏,𝟐*τ)) -const ESU = Quantity(GaussSystem(Metric,(𝟏𝟎^2*𝘤)^-2,𝟐*τ)) +const ESU = Quantity(GaussSystem(Metric,(hecto*𝘤)^-2,𝟐*τ)) const Gauss = Quantity(GaussSystem(Metric,𝟏,𝟐*τ,centi/𝘤)) const LorentzHeaviside = Quantity(GaussSystem(Metric,𝟏,𝟏,centi/𝘤)) -const Thomson = Quantity(GaussSystem(Metric,𝟏,𝟐*τ,inv(𝟐))) +#const Thomson = Quantity(GaussSystem(Metric,𝟏,𝟐*τ,inv(𝟐))) const Kennelly = Quantity(GaussSystem(Metric,inv(𝟏𝟎^7),𝟐*τ,𝟏,𝟏,𝟏)) -const British = Quantity(RankineSystem(Metric,ft,slug)) -const British2019 = Quantity(RankineSystem(SI2019,ft,slug)) +const British = Quantity(RankineSystem(Metric,ft,lb*g₀/ft)) +#const British2019 = Quantity(RankineSystem(SI2019,ft,lb*g₀/ft)) const Survey = Quantity(RankineSystem(Metric,ftUS,lb,g₀/ftUS)) -const Survey2019 = Quantity(RankineSystem(SI2019,ftUS,lb,g₀/ftUS)) +#const Survey2019 = Quantity(RankineSystem(SI2019,ftUS,lb,g₀/ftUS)) const English = Quantity(RankineSystem(Metric,ft,lb,g₀/ft)) -const English2019 = Quantity(RankineSystem(SI2019,ft,lb,g₀/ft)) +#const English2019 = Quantity(RankineSystem(SI2019,ft,lb,g₀/ft)) const FPS = Quantity(RankineSystem(Metric,ft,lb)) -const FPS2019 = Quantity(RankineSystem(SI2019,ft,lb)) +#const FPS2019 = Quantity(RankineSystem(SI2019,ft,lb)) +const IPS = Quantity(RankineSystem(Metric,ft/𝟐^2/𝟑,lb*g₀*𝟐^2*𝟑/ft)) +#const IPS2019 = Quantity(RankineSystem(SI2019,ft/𝟐^2/𝟑,lb*g₀*𝟐^2*𝟑/ft)) -const Astronomical = Quantity(AstronomicalSystem(Metric)) +#const Astronomical = Quantity(AstronomicalSystem(Metric)) const Hubble = Quantity(EntropySystem(Metric,th,𝘤*th,𝟏)) const Cosmological = Quantity(EntropySystem(Metric,lc/𝘤,lc,mc)) const CosmologicalQuantum = Quantity(EntropySystem(Metric,tcq,lcq,mcq)) -const EMU2019 = Quantity(EntropySystem(SI2019,𝟏,centi,milli)) -const ESU2019 = Quantity(EntropySystem(SI2019,𝟏,centi,milli,𝟏,𝟏𝟎^3*μ₀/𝘤^2)) -const Mixed = Quantity(EntropySystem(Metric,𝟏,𝟏,𝟏,𝟏,μ₀)) +#const EMU2019 = Quantity(EntropySystem(SI2019,𝟏,centi,milli)) +#const ESU2019 = Quantity(EntropySystem(SI2019,𝟏,centi,milli,𝟏,kilo*μ₀/𝘤^2)) +#const Mixed = Quantity(EntropySystem(Metric,𝟏,𝟏,𝟏,𝟏,μ₀)) +const Nautical = Quantity(EntropySystem(Metric,HOUR,nm,em^3,𝟏,τ*𝟑^3/𝟐^10/𝟓^12,milli)) +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 GravitationalMeridian = Quantity(EntropySystem(Metric,𝟏,em,g₀*em^3,𝟏,τ/𝟐^6/𝟓^7/g₀,milli)) const IAU☉ = Quantity(EntropySystem(Metric,DAY,au,GM☉/G)) const IAUE = Quantity(EntropySystem(Metric,DAY,au,GME/G)) const IAUJ = Quantity(EntropySystem(Metric,DAY,au,GMJ/G)) -const MTS = Quantity(EntropySystem(Metric,𝟏,𝟏,𝟏𝟎^3)) -const KKH = Quantity(EntropySystem(Metric,HOUR,𝟏𝟎^3,𝟏)) -const MPH = Quantity(EntropySystem(English,HOUR,𝟐^5*𝟑*𝟓*𝟏𝟏,𝟏)) -const Nautical = Quantity(EntropySystem(English,HOUR,𝟐^6*𝟓*𝟏𝟗,𝟏)) +const MTS = Quantity(EntropySystem(Metric,𝟏,𝟏,kilo)) +const KKH = Quantity(EntropySystem(Metric,HOUR,kilo,𝟏)) +const MPH = Quantity(EntropySystem(FPS,HOUR,mi,𝟏)) const FFF = Quantity(EntropySystem(Metric,𝟕*𝟐*DAY,fur,(𝟐*𝟑^2*𝟓)*lb,°R,Constant(0.),𝟏)) # natural units @@ -121,11 +134,11 @@ export SI, MKS, SIE, ME, GSI2019, GSI, GM, CGS, CGS2019, CGSm, CGSe, HLU, FFF, A export EnglishEngineering, BritishGravitational, AbsoluteEnglish, EnglishUS, EE2019, IAU const SI, MKS, SIE, ME, IAU = SI2019, Metric, SI2019Engineering, MetricEngineering, IAU☉ const GSI2019, GSI, GM = GravitationalSI2019, GravitationalSI2019, GravitationalMetric -const CGS, CGS2019, CGSm, CGSe, HLU = Gauss, EMU2019, EMU, ESU, LorentzHeaviside +const CGS, CGSm, CGSe, HLU = Gauss, EMU, ESU, LorentzHeaviside const EnglishEngineering, BritishGravitational, BG = English, British, British -const EnglishUS, AbsoluteEnglish, AE, EE, EE2019 = Survey, FPS, FPS, English, English2019 -const EnglishEngineering2019,BritishGravitational2019,BG2019 = English2019,British2019,British2019 -const AbsoluteEnglish2019,AE2019 = FPS2019,FPS2019 +const EnglishUS, AbsoluteEnglish, AE, EE = Survey, FPS, FPS, English +#const EnglishEngineering2019,BritishGravitational2019,BG2019 = English2019,British2019,British2019 +#const EE2019,AbsoluteEnglish2019,AE2019 = English2019,FPS2019,FPS2019 for u ∈ Systems @eval unitname(::typeof(normal($u))) = $(string(u)) diff --git a/src/kinematic.jl b/src/kinematic.jl index 688437d..a9317b6 100644 --- a/src/kinematic.jl +++ b/src/kinematic.jl @@ -13,14 +13,14 @@ # https://crucialflow.com """ - kilograms(m::Real) = $(slug)m + kilograms(m::Real) = $(lb*g₀/ft)m Converts mass `m` from slugs to kilogram (kg). """ @pure kilograms(m::Number,U::UnitSystem=English) = mass(m,Metric,U) """ - slugs(m::Real) = $(1/slug)m + slugs(m::Real) = $(ft/lb/g₀)m Converts mass `m` from kilograms to slugs (slug). """ @@ -114,6 +114,7 @@ $(time(PlanckGauss,Metric)) @pure wavenumber(U::UnitSystem,S::UnitSystem) = unit(length(S,U)) @pure angularwavenumber(U::UnitSystem,S::UnitSystem) = unit(angle(U,S)*length(S,U)) @pure fuelefficiency(U::UnitSystem,S::UnitSystem) = area(S,U) +@pure numberdensity(U::UnitSystem,S::UnitSystem) = volume(S,U) @pure frequency(U::UnitSystem,S::UnitSystem) = time(S,U) @pure angularfrequency(U::UnitSystem,S::UnitSystem) = unit(angle(U,S)*time(S,U)) @pure frequencydrift(U::UnitSystem,S::UnitSystem) = unit(time(S,U)^2) @@ -132,7 +133,8 @@ $(time(PlanckGauss,Metric)) @pure energy(U::UnitSystem,S::UnitSystem) = unit(mass(U,S)*specificenergy(U,S)) @pure power(U::UnitSystem,S::UnitSystem) = unit(energy(U,S)/time(U,S)) @pure force(U::UnitSystem,S::UnitSystem) = unit(inertia(U,S)*acceleration(U,S)) -@pure gforce(U::UnitSystem,S::UnitSystem) = unit(acceleration(U,S)/gravity(U,S)) +@pure specificforce(U::UnitSystem,S::UnitSystem) = unit(acceleration(U,S)/gravity(U,S)) +@pure gravityforce(U::UnitSystem,S::UnitSystem) = unit(gravity(U,S)) @pure pressure(U::UnitSystem,S::UnitSystem) = unit(force(U,S)/area(U,S)) # mechanical @@ -146,7 +148,7 @@ $(time(PlanckGauss,Metric)) @pure specificweight(U::UnitSystem,S::UnitSystem) = unit(pressure(U,S)/speed(U,S)^2) @pure specificvolume(U::UnitSystem,S::UnitSystem) = unit(volume(U,S)/mass(U,S)) @pure action(U::UnitSystem,S::UnitSystem) = unit(energy(U,S)*time(U,S)) -@pure stiffness(U::UnitSystem,S::UnitSystem) = unit(force(U,S)/length(U,S)) +#@pure stiffness(U::UnitSystem,S::UnitSystem) = unit(force(U,S)/length(U,S)) @pure intensity(U::UnitSystem,S::UnitSystem) = unit(power(U,S)/area(U,S)) @pure diffusivity(U::UnitSystem,S::UnitSystem) = unit(speed(U,S)*length(U,S)) @pure viscosity(U::UnitSystem,S::UnitSystem) = unit(force(U,S)/speed(U,S)/length(U,S)) diff --git a/src/kinematicdocs.jl b/src/kinematicdocs.jl index f560816..60571b0 100644 --- a/src/kinematicdocs.jl +++ b/src/kinematicdocs.jl @@ -112,6 +112,20 @@ $(fuelefficiency(English,Metric)) ``` """ fuelefficiency +@doc """ +$(convertext(:numberdensity,"1/volume(U,S)")) + +Number per `volume` or `numberdensity` (m⁻³ or ft⁻³), unit conversion factor. + +```Julia +julia> numberdensity(CGS,Metric) # cm³⋅m⁻³ +$(numberdensity(CGS,Metric)) + +julia> numberdensity(English,Metric) # ft³⋅m⁻³ +$(numberdensity(English,Metric)) +``` +""" numberdensity + @doc """ $(convertext(:frequency,"1/time(U,S)")) @@ -327,7 +341,7 @@ $(mass(IAU,Metric)) julia> mass(PlanckGauss,Metric) # kg⋅mP⁻¹ $(mass(PlanckGauss,Metric)) ``` -""" mass, slug, M +""" mass, M @doc """ $(convertext(:inertia,"mass(U,S)/gravity(U,S)")) @@ -420,10 +434,36 @@ $(force(MetricEngineering,Metric)) """ force, F @doc """ -$(convertext(:gforce,"acceleration(U,S)/gravity(U,S)")) +$(convertext(:specificforce,"acceleration(U,S)/gravity(U,S)")) + +Weight or `force` per `mass` or `gforce` (N/kg, m⋅s⁻²), unit conversion factor. +```Julia +julia> specificforce(CGS,Metric) +$(specificforce(CGS,Metric)) + +julia> specificforce(MetricEngineering,Metric) +$(specificforce(MetricEngineering,Metric)) + +julia> specificforce(English,Metric) +$(specificforce(English,Metric)) +``` +""" specificforce + +@doc """ +$(convertext(:gravityforce,"acceleration(U,S)/specificforce(U,S)")) -Weight or force per `mass` or `gforce` (N/kg, m⋅s⁻²), unit conversion factor. -""" gforce +Reference `acceleration` per `specificforce` (𝟏, F⁻¹MLT⁻²), unit conversion factor. +```Julia +julia> gravityforce(Metric,CGS) +$(gravityforce(Metric,CGS)) + +julia> gravityforce(Metric,MetricEngineering) +$(gravityforce(Metric,MetricEngineering)) + +julia> gravityforce(Metric,English) +$(gravityforce(Metric,English)) +``` +""" gravityforce @doc """ $(convertext(:pressure,"force(U,S)/area(U,S)")) @@ -439,10 +479,11 @@ $(inv(atm)) julia> pressure(English,Metric) # Pa⋅ft²⋅lb⁻¹ $(pressure(English,Metric)) + +julia> pressure(Metric,IPS) # psi⋅Pa⁻¹ +$(pressure(Metric,IPS)) ``` """ pressure -#julia> pressure(Metric,English)/12^2 # psi⋅Pa⁻¹ -#$(pressure(Metric,English)/(𝟐^2*𝟑)^2) # mechanical @@ -601,7 +642,7 @@ $(action(English,Metric)) ``` """ action -@doc """ +#=@doc """ $(convertext(:stiffness,"force(U,S)/length(U,S)")) Amount of `force` per `length` or `stiffness` (N⋅m⁻¹, J⋅m⁻², kg⋅s⁻²), unit conversion factor. @@ -616,7 +657,7 @@ $(stiffness(CGS,English)) julia> stiffness(English,Metric) # kg⋅lb⁻¹ $(stiffness(English,Metric)) ``` -""" stiffness +""" stiffness=# @doc """ $(convertext(:intensity,"power(U,S)/area(U,S)")) @@ -751,20 +792,24 @@ $(compressibility(CGS,Metric)) julia> compressibility(English,Metric) # lb⋅ft⁻²⋅Pa⁻¹ $(compressibility(English,Metric)) + +julia> compressibility(Metric,IPS) # Pa⋅psi⁻¹ +$(compressibility(Metric,IPS)) ``` """ compressibility -#julia> compressibility(Metric,English)/12^2 # Pa⋅psi⁻¹ -#$(compressibility(Metric,English)/12^2) @doc """ $(convertext(:fluence,"energy(U,S)/area(U,S")) -Radiant exposure or `energy` per `area` or `fluence` (J⋅m⁻²), unit conversion factor. +Radiant exposure or `force` per `length` or stiffness (N⋅m⁻¹, J⋅m⁻²), unit conversion factor. ```Julia julia> fluence(CGS,Metric) # kg⋅g⁻¹ $(mass(CGS,Metric)) +julia> fluence(CGS,English) # lb⋅g⁻¹ +$(fluence(CGS,English)) + julia> fluence(CODATA,Metric) # kg⋅kg⁻¹ $(mass(CODATA,Metric)) diff --git a/src/physics.jl b/src/physics.jl index 6d11e8d..f4b3646 100644 --- a/src/physics.jl +++ b/src/physics.jl @@ -15,79 +15,44 @@ @pure avogadro(U::UnitSystem,C::Coupling=universe(U)) = molarmass(U,C)*electronunit(C)/electronmass(U,C) @pure atomicmass(U::UnitSystem,C::Coupling=universe(U)) = electronmass(U,C)/electronunit(C) @pure protonmass(U::UnitSystem,C::Coupling=universe(U)) = protonelectron(C)*electronmass(U,C) -@pure einstein(U::UnitSystem,C::Coupling=universe(U)) = two(U)*sphere(U)*newton(U,C)/lightspeed(U,C)^4 -@pure einstein2(U::UnitSystem,C::Coupling=universe(U)) = two(U)*sphere(U)*newton(U,C)/lightspeed(U,C)^2 -@pure universalgas(U::UnitSystem,C::Coupling=universe(U)) = boltzmann(U,C)*avogadro(U,C) -@pure stefan(U::UnitSystem,C::Coupling=universe(U)) = normal(turn(U))^4/two(U)^5*sphere(U)*boltzmann(U,C)^4/(three(U)*five(U)*planck(U,C)^3*lightspeed(U,C)^2) +@pure gaussgravitation(U::UnitSystem,C::Coupling=universe(U)) = sqrt(gravitation(U,C)) +@pure einstein(U::UnitSystem,C::Coupling=universe(U)) = two(U)*spat(U)*gravitation(U,C)/lightspeed(U,C)^4 +#@pure einstein2(U::UnitSystem,C::Coupling=universe(U)) = two(U)*spat(U)*gravitation(U,C)/lightspeed(U,C)^2 +@pure molargas(U::UnitSystem,C::Coupling=universe(U)) = boltzmann(U,C)*avogadro(U,C) +@pure stefan(U::UnitSystem,C::Coupling=universe(U)) = normal(turn(U))^4/two(U)^5*spat(U)*boltzmann(U,C)^4/(three(U)*five(U)*planck(U,C)^3*lightspeed(U,C)^2) @pure radiationdensity(U::UnitSystem,C::Coupling=universe(U)) = two(U)^2*stefan(U,C)/lightspeed(U,C) @pure vacuumpermittivity(U::UnitSystem,C::Coupling=universe(U)) = inv(vacuumpermeability(U,C)*(lightspeed(U,C)*lorentz(U))^2) -@pure coulomb(U::UnitSystem,C::Coupling=universe(U)) = rationalization(U)/sphere(U)/vacuumpermittivity(U,C) -@pure biotsavart(U::UnitSystem,C::Coupling=universe(U)) = vacuumpermeability(U,C)*lorentz(U)*(rationalization(U)/sphere(U)) -@pure ampere(U::UnitSystem) = lorentz(U)*biotsavart(U) +@pure electrostatic(U::UnitSystem,C::Coupling=universe(U)) = rationalization(U)/spat(U)/vacuumpermittivity(U,C) +@pure biotsavart(U::UnitSystem,C::Coupling=universe(U)) = vacuumpermeability(U,C)*lorentz(U)*(rationalization(U)/spat(U)) +@pure magnetostatic(U::UnitSystem) = lorentz(U)*biotsavart(U) @pure vacuumimpedance(U::UnitSystem,C::Coupling=universe(U)) = vacuumpermeability(U,C)*lightspeed(U,C)*rationalization(U)*lorentz(U)^2 @pure faraday(U::UnitSystem,C::Coupling=universe(U)) = elementarycharge(U,C)*avogadro(U,C) @pure josephson(U::UnitSystem,C::Coupling=universe(U)) = two(U)*elementarycharge(U,C)*lorentz(U)/planck(U,C) @pure magneticfluxquantum(U::UnitSystem,C::Coupling=universe(U)) = inv(josephson(U,C)) @pure klitzing(U::UnitSystem,C::Coupling=universe(U)) = planck(U,C)/elementarycharge(U,C)^2 @pure conductancequantum(U::UnitSystem,C::Coupling=universe(U)) = two(U)*elementarycharge(U,C)^2/planck(U,C) -@pure hartree(U::UnitSystem,C::Coupling=universe(U)) = electronmass(U,C)*(lightspeed(U,C)*finestructure(C))^2 +@pure hartree(U::UnitSystem,C::Coupling=universe(U)) = electronmass(U,C)/gravity(U)*(lightspeed(U,C)*finestructure(C))^2 @pure rydberg(U::UnitSystem,C::Coupling=universe(U)) = hartree(U,C)/(two(U)*planck(U,C))/lightspeed(U,C) -@pure bohr(U::UnitSystem,C::Coupling=universe(U)) = planckreduced(U,C)/electronmass(U,C)/lightspeed(U,C)/finestructure(C) -@pure bohrreduced(U::UnitSystem,C::Coupling=universe(U)) = bohr(U,C)*(one(U)+inv(protonelectron(C))) -@pure electronradius(U::UnitSystem,C::Coupling=universe(U)) = finestructure(C)*planckreduced(U,C)/electronmass(U,C)/lightspeed(U,C) +@pure bohr(U::UnitSystem,C::Coupling=universe(U)) = planckreduced(U,C)*gravity(U)/electronmass(U,C)/lightspeed(U,C)/finestructure(C) +#@pure bohrreduced(U::UnitSystem,C::Coupling=universe(U)) = bohr(U,C)*(one(U)+inv(protonelectron(C))) +@pure electronradius(U::UnitSystem,C::Coupling=universe(U)) = finestructure(C)*planckreduced(U,C)*gravity(U)/electronmass(U,C)/lightspeed(U,C) @pure magneton(U::UnitSystem,C::Coupling=universe(U)) = elementarycharge(U,C)*planckreduced(U,C)*lorentz(U)/(two(U)*electronmass(U,C)) @pure hyperfine(U::UnitSystem) = frequency(ΔνCs,U,Metric) @pure hubble(U::UnitSystem) = time(one(U),Hubble,U) @pure cosmological(U::UnitSystem,C::Coupling=universe(U)) = three(U)*darkenergydensity(C)*(hubble(U)/lightspeed(U,C))^2 -@pure standardgravity(U::UnitSystem) = acceleration(g₀,U,Metric) -@pure standardpressure(U::UnitSystem) = pressure(atm,U,Metric) -@pure standardtemperature(U::UnitSystem) = temperature(Tₛ,U,Metric) +@pure loschmidt(U::UnitSystem,P=atmosphere(U),T=T₀*temperature(SI2019,U)) = P/T/boltzmann(U) +@pure amagat(U::UnitSystem) = loschmidt(U)/avogadro(U) +@pure wienwavelength(U::UnitSystem) = planck(U)*lightspeed(U)/boltzmann(U)/Constant(4.965114231744276303) +@pure wienfrequency(U::UnitSystem) = Constant(2.821439372122078893)*boltzmann(U)/planck(U) @pure solarmass(U::UnitSystem) = mass(GM☉/G,U,Metric) @pure earthmass(U::UnitSystem) = mass(GME/G,U,Metric) @pure jupitermass(U::UnitSystem) = mass(GMJ/G,U,Metric) @pure lunarmass(U::UnitSystem) = earthmass(U)/μE☾ -@pure astronomicalunit(U::UnitSystem) = length(𝟏,U,IAU) -@pure lunardistance(U::UnitSystem) = length(LD,U,Metric) -@pure mile(U::UnitSystem) = length(two(U)^5*three(U)*five(U)*eleven(U),U,English) -@pure clarkemile(U::UnitSystem) = length(two(U)^6*five(U)*nineteen(U),U,English) -@pure nauticalmile(U::UnitSystem) = length(two(U)^4*five(U)^5/three(U)^3,U,Metric) -@pure meancalorie(U::UnitSystem) = energy(two(U)^2*five(U)*three(U)^2/fourtythree(U),U,InternationalMean) -@pure kilocalorie(U::UnitSystem) = energy(two(U)^5*five(U)^4*three(U)^2/fourtythree(U),U,International) -@pure calorie(U::UnitSystem) = kilocalorie(U)/(two(U)*five(U))^3 - -@pure thermalunit(U::UnitSystem) = mass(temperature(kilocalorie(U),Metric,English),Metric,English) -@pure tonsrefrigeration(U::UnitSystem) = frequency(two(U)*five(U)/three(U),U,Metric)*thermalunit(U) -@pure boilerhorsepower(U::UnitSystem) = frequency(Constant(1339)/(two(U)^4*three(U)^2),U,Metric)*thermalunit(U) -# thermalconductivity_water(British) ≈ 0.5778 -@pure thermalconductivity_water(U::UnitSystem) = thermalconductivity((two(U)^2*three(U)*five(U))^2/thermalunit(U),U,Metric) - -@pure gallon(U::UnitSystem) = volume(seven(U)*eleven(U)/two(U)^2,U,English) -@pure litre(U::UnitSystem) = volume(inv((two(U)*five(U))^3),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(twopi(U)),U,British) -@pure horsepowermetric(U::UnitSystem) = power(three(U)*five(U)^2,U,GravitationalMetric) -@pure electricalhorsepower(U::UnitSystem) = power(Constant(746),U,Metric) -@pure inchmercury(U::UnitSystem) = pressure(inHg,U,Metric) -@pure torr(U::UnitSystem) = pressure(atm/(two(U)^3*five(U)*nineteen(U)),U,Metric) - -@pure second(U::UnitSystem) = time(one(U),U,Metric) -@pure minute(U::UnitSystem) = two(U)^2*three(U)*five(U)*second(U) -@pure hour(U::UnitSystem) = two(U)^2*three(U)*five(U)*minute(U) -@pure day(U::UnitSystem) = two(U)^3*three(U)*hour(U) -@pure year(U::UnitSystem) = aⱼ*day(U) +@pure mechanicalheat(U::UnitSystem) = molargas(U)*normal(calorie(Metric)/molargas(Metric)) @pure gaussianyear(U::UnitSystem) = (τ/k)*day(U) -@pure siderealyear(U::UnitSystem) = (τ/k/√(solarmass(IAU)+earthmass(IAU)+lunarmass(IAU)))*day(U) -@pure lightyear(U::UnitSystem) = year(U)*lightspeed(U) -@pure parsec(U::UnitSystem) = astronomicalunit(U)*two(U)^7*three(U)^4*five(U)^3/turn(U) +@pure siderealyear(U::UnitSystem) = gaussianyear(U)/√(solarmass(IAU)+earthmass(IAU)+lunarmass(IAU)) -include("physicsdocs.jl") +include("derived.jl") -#=@pure kilogram(U::UnitSystem) = mass(Metric,U) -@pure slug(U::UnitSystem) = mass(English,U) - -@pure meter(U::UnitSystem) = length(Metric,U) -@pure foot(U::UnitSystem) = length(English,U)=# - -#rankine, kelvin, moles/molecules -#add gravitional units of weight?? +include("physicsdocs.jl") diff --git a/src/physicsdocs.jl b/src/physicsdocs.jl index 9456bfb..52be393 100644 --- a/src/physicsdocs.jl +++ b/src/physicsdocs.jl @@ -39,7 +39,7 @@ $ΩΛ """ Universe, μₑᵤ, μₚᵤ, μₚₑ, αinv, αG, meu, mpu, mpe, ainv, aG, ΩΛ, electronunit, protonunit, protonelectron, finestructure, coupling, darkenergydensity @doc """ - turn(U::UnitSystem) = 2π/angle(U) +$(unitext(:turn,"2π/angle(U)")) Complete rotation `angle` of revolution from a full circle. ```Julia @@ -49,20 +49,17 @@ $(turn(MetricEngineering)) """ turn @doc """ - sphere(U::UnitSystem) = turn(U)/angle(U) +$(unitext(:spat,"4π/solidangle(U)")) -Complete spherical `solidangle` of from a full sphere. +Complete spherical `solidangle` around point from a full sphere. ```Julia -julia> sphere(MetricEngineering) -$(sphere(MetricEngineering)) +julia> spat(MetricEngineering) +$(spat(MetricEngineering)) ``` -""" sphere +""" spat @doc """ -```Julia -luminousefficacy(U::UnitSystem{1}) = 1 -luminousefficacy(U::UnitSystem) = $(Kcd)power(U) -``` +$(unitext(:luminousefficacy,"Kcd*power(U)\nluminousefficacy(U::UnitSystem{𝟏}) = 𝟏")) Luminous efficacy of monochromatic radiation `Kcd` of frequency 540 THz (lm⋅W⁻¹). ```Julia @@ -75,8 +72,8 @@ $(luminousefficacy(CODATA)) julia> luminousefficacy(Conventional) # lm⋅W⁻¹ $(luminousefficacy(Conventional)) -julia> luminousefficacy(CGS) # lm⋅s⋅erg⁻¹ -$(luminousefficacy(CGS)) +julia> luminousefficacy(International) # lm⋅W⁻¹ +$(luminousefficacy(International)) julia> luminousefficacy(British) # lm⋅s³⋅slug⋅ft⁻² $(luminousefficacy(British)) @@ -84,26 +81,26 @@ $(luminousefficacy(British)) """ luminousefficacy, Kcd @doc """ - molarmass(U::UnitSystem) = avogadro(U)*electronmass(U)/electronunit(U) +$(unitext(:molarmass,"avogadro(U)*electronmass(U)/electronunit(U)")) Molar mass constant `Mᵤ` is the ratio of the `molarmass` and `relativemass` of a chemical. ```Julia julia> molarmass(CGS) # g⋅mol⁻¹ $(molarmass(CGS)) -julia> molarmass(CGS2019) # g⋅mol⁻¹ -$(molarmass(CGS2019)) - julia> molarmass(Metric) # kg⋅mol⁻¹ $(molarmass(Metric)) julia> molarmass(SI2019) # kg⋅mol⁻¹ $(molarmass(SI2019)) + +julia> molarmass(International) # kg⋅mol⁻¹ +$(molarmass(International)) ``` """ molarmass, Mᵤ, Mu @doc """ - avogadro(x) = universalgas(x)/boltzmann(x) # Mᵤ/atomicmass(x), Mᵤ ≈ 0.001-3.5e-13 +$(unitext(:avogadro, "molargas(x)/boltzmann(x) # Mᵤ/atomicmass(x)")) Avogadro `NA` is `molarmass(x)/atomicmass(x)` number of atoms in a 12 g sample of C₁₂. ```Julia @@ -113,6 +110,12 @@ $(avogadro(SI2019)) julia> avogadro(Metric) # mol⁻¹ $(avogadro(Metric)) +julia> avogadro(CODATA) # mol⁻¹ +$(avogadro(CODATA)) + +julia> avogadro(Conventional) # mol⁻¹ +$(avogadro(Conventional)) + julia> avogadro(English) # lb-mol⁻¹ $(avogadro(English)) @@ -122,7 +125,7 @@ $(avogadro(British)) """ avogadro, NA @doc """ - planckreduced(x) = planck(x)/turn(x) +$(unitext(:planckreduced,"planck(x)/turn(x)")) Reduced Planck constant `ħ` is a Planck per radian (J⋅s⋅rad⁻¹ or ft⋅lb⋅s⋅rad⁻¹). @@ -151,7 +154,7 @@ $(planckreduced(British)) """ planckreduced, ħ @doc """ - planck(x) = turn(x)*planckreduced(x) +$(unitext(:planck,"turn(x)*planckreduced(x)")) Planck constant `𝘩` is energy per electromagnetic frequency (J⋅s or ft⋅lb⋅s). @@ -175,12 +178,12 @@ julia> planck(SI2019)*lightspeed(SI2019)/elementarycharge(SI2019) # eV⋅m $(planck(SI2019)*lightspeed(SI2019)/elementarycharge(SI2019)) julia> planck(British) # ft⋅lb⋅s -$(planck(English)) +$(planck(British)) ``` """ planck, 𝘩, hh @doc """ - boltzmann(x) = universalgas(x)/avogadro(x) +$(unitext(:boltzmann,"molargas(x)/avogadro(x)")) Boltzmann constant `kB` is the entropy amount of a unit number microstate permutation. ```Julia @@ -225,7 +228,7 @@ $(dB(boltzmann(SI2019))) """ boltzmann, kB @doc """ - lightspeed(U::UnitSystem) = 1/sqrt(vacuumpermeability(U)*vacuumpermittivity(U))/lorentz(U) +$(unitext(:lightspeed,"𝟏/sqrt(vacuumpermeability(U)*vacuumpermittivity(U))/lorentz(U)")) Speed of light in a vacuum `𝘤` for massless particles (m⋅s⁻¹ or ft⋅s⁻¹). @@ -239,7 +242,7 @@ $(lightspeed(English)) """ lightspeed, 𝘤, cc @doc """ - vacuumpermeability(U::UnitSystem) = 1/vacuumpermittivity(U)/(lightspeed(U)*lorentz(U))^2 +$(unitext(:vacuumpermeability,"𝟏/vacuumpermittivity(U)/(lightspeed(U)*lorentz(U))^2")) Magnetic permeability in a classical vacuum defined as `μ₀` in SI units (H⋅m⁻¹, kg⋅m²⋅C⁻²). @@ -256,6 +259,9 @@ $(vacuumpermeability(CODATA)) julia> vacuumpermeability(SI2019) # H⋅m⁻¹ $(vacuumpermeability(SI2019)) +julia> vacuumpermeability(International) # H⋅m⁻¹ +$(vacuumpermeability(International)) + julia> vacuumpermeability(EMU) # abH⋅cm⁻¹ $(vacuumpermeability(EMU)) @@ -265,7 +271,7 @@ $(vacuumpermeability(ESU)) """ vacuumpermeability, μ₀, m0 @doc """ - lorentz(U::UnitSystem) = sphere(U)*biotsavart(U)/vacuumpermeability(U)/rationalization(U) +$(unitext(:lorentz,"spat(U)*biotsavart(U)/vacuumpermeability(U)/rationalization(U)")) Electromagnetic proportionality constant `αL` for the Lorentz's law force (dimensionless). @@ -273,8 +279,8 @@ Electromagnetic proportionality constant `αL` for the Lorentz's law force (dime julia> lorentz(Metric) $(lorentz(Metric)) -julia> lorentz(Thomson) -$(lorentz(Thomson)) +julia> lorentz(LorentzHeaviside) +$(lorentz(LorentzHeaviside)) julia> lorentz(Gauss) $(lorentz(Gauss)) @@ -282,9 +288,9 @@ $(lorentz(Gauss)) """ lorentz, αL, aL, C @doc """ - rationalization(U::UnitSystem) = sphere(U)*biotsavart(U)/vacuumpermeability(U)/lorentz(U) +$(unitext(:rationalization,"spat(U)*biotsavart(U)/vacuumpermeability(U)/lorentz(U)")) -Constant of magnetization and polarization density or `sphere(U)*coulomb(U)*permittivity(U)`. +Constant of magnetization and polarization density or `spat(U)*coulomb(U)*permittivity(U)`. ```Julia julia> rationalization(Metric) @@ -296,13 +302,22 @@ $(rationalization(Gauss)) """ rationalization, Λ @doc """ - electronmass(U::UnitSystem) = protonmass(U)/protonelectron(U) # αinv^2*R∞*2𝘩/𝘤 +$(unitext(:electronmass,"protonmass(U)/protonelectron(U) # αinv^2*R∞*2𝘩/𝘤")) Electron rest mass `mₑ` of subatomic particle with `-𝘦` elementary charge (kg or slugs). ```Julia julia> electronmass(Metric) # kg $(electronmass(Metric)) +julia> electronmass(CODATA) # kg +$(electronmass(CODATA)) + +julia> electronmass(Conventional) # kg +$(electronmass(Conventional)) + +julia> electronmass(International) # kg +$(electronmass(International)) + julia> electronmass(Metric)/atomicmass(Metric) # Da $μₑᵤ @@ -318,7 +333,7 @@ $(electronmass(English)) """ electronmass, mₑ, me @doc """ - atomicmass(U::UnitSystem) = Mᵤ/avogadro(U) # $(molarmass(SI2019)) ≈ 0.001-3.5e-13 +$(unitext(:atomicmass,"Mᵤ/avogadro(U) # $(molarmass(SI2019)) ≈ 0.001-3.5e-13")) Atomic mass unit `mᵤ` of 1/12 of the C₁₂ carbon-12 atom's mass (kg or slugs). ```Julia @@ -340,7 +355,7 @@ $(atomicmass(British)) """ atomicmass, mᵤ, mu @doc """ - protonmass(U::UnitSystem) = protonunit(U)*atomicmass(U) +$(unitext(:protonmass,"protonunit(U)*atomicmass(U)")) Proton mass `mₚ` of subatomic particle with `+𝘦` elementary charge (kg or mass). ```Julia @@ -359,7 +374,7 @@ $(protonmass(Metric)/electronmass(Metric)) """ protonmass, mₚ, mp @doc """ - planckmass(U::UnitSystem) = electronmass(U)/sqrt(coupling(U)) +$(unitext(:planckmass,"electronmass(U)/sqrt(coupling(U))")) Planck mass factor `mP` from the gravitational coupling constant `αG` (kg or slugs). ```Julia @@ -381,29 +396,39 @@ $(planckmass(Metric)/sqrt(𝟐^2*τ)) """ planckmass, mP @doc """ - newton(U::UnitSystem) = lightspeed(U)*planckreduced(U)/planckmass(U)^2 +$(unitext(:gravitation,"lightspeed(U)*planckreduced(U)/planckmass(U)^2")) Universal gravitational constant `G` of Newton's law (m³⋅kg⁻¹⋅s⁻² or ft³⋅slug⁻¹⋅s⁻²). ```Julia -juila> newton(Metric) # m³⋅kg⁻¹⋅s⁻² -$(newton(Metric)) +juila> gravitation(Metric) # m³⋅kg⁻¹⋅s⁻² +$(gravitation(Metric)) + +julia> gravitation(English) # ft³⋅lbm⁻¹⋅s⁻² +$(gravitation(English)) -julia> newton(English) # ft³⋅lbm⁻¹⋅s⁻² -$(newton(English)) +julia> gravitation(PlanckGauss) +$(gravitation(PlanckGauss)) +``` +""" gravitation, G, GG + +@doc """ +$(unitext(:gaussgravitation,"sqrt(lightspeed(U)*planckreduced(U))/planckmass(U)")) -julia> newton(IAU) # au³⋅M☉⁻¹⋅day⁻² -$(newton(IAU)) +Gaussian gravitational constant `k` of Newton's laws. +```Julia +julia> gaussgravitation(IAU) +$(gaussgravitation(IAU)) -julia> newton(Astronomical) # N⋅s⁴⋅m⁻⁴ -$(newton(Astronomical)) +juila> gaussgravitation(Cosmological) +$(gaussgravitation(Cosmological)) -julia> newton(PlanckGauss) -$(newton(PlanckGauss)) +julia> gaussgravitation(PlanckGauss) +$(gaussgravitation(PlanckGauss)) ``` -""" newton, G, GG +""" gaussgravitation, k, kG @doc """ - einstein(U::UnitSystem) = 2sphere(U)*newton(U)/lightspeed(U)^4 +$(unitext(:einstein,"𝟐*spat(U)*gravitation(U)/lightspeed(U)^4")) Einstein's gravitational constant from the Einstein field equations (s⋅²⋅m⁻¹⋅kg⁻¹). ```Julia @@ -415,8 +440,8 @@ $(einstein(IAU)) ``` """ einstein, κ -@doc """ - einstein2(U::UnitSystem) = 2sphere(U)*newton(U)/lightspeed(U)^2 +#=@doc """ +$(unitext(:einstein2,"𝟐*spat(U)*gravitation(U)/lightspeed(U)^2")) Einstein's gravitational constant from the Einstein field equations (m⋅kg⁻¹). ```Julia @@ -426,10 +451,10 @@ $(einstein2(Metric)) julia> einstein2(IAU) # au⋅M☉⁻¹ $(einstein2(IAU)) ``` -""" einstein2 +""" einstein2=# @doc """ - gravity(U::UnitSystem) # mass*acceleration/force +$(unitext(:gravity,"# mass*acceleration/force")) Gravitational force reference used in technical engineering units (kg⋅m⋅N⁻¹⋅s⁻²). ```Julia @@ -445,7 +470,7 @@ $(gravity(English)) """ gravity @doc """ - universalgas(x) = boltzmann(x)*avogadro(x) +$(unitext(:molargas,"boltzmann(x)*avogadro(x)")) Universal gas constant `Rᵤ` is factored into specific `gasconstant(x)*molarmass(x)` values. ```Julia @@ -454,50 +479,58 @@ pressure*molarmass == density*universal*temperature It satisfies the ideal gas law. ```Julia -julia> universalgas(SI2019) # J⋅K⁻¹⋅mol⁻¹ -$(universalgas(SI2019)) +julia> molargas(SI2019) # J⋅K⁻¹⋅mol⁻¹ +$(molargas(SI2019)) -julia> universalgas(English)/𝟐^4/𝟑^2 # psi⋅ft³⋅°R⁻¹⋅lb-mol⁻¹ -$(universalgas(English)/𝟐^4/𝟑^2) +julia> molargas(English)/𝟐^4/𝟑^2 # psi⋅ft³⋅°R⁻¹⋅lb-mol⁻¹ +$(molargas(English)/𝟐^4/𝟑^2) -julia> universalgas(English)/standardpressure(English) # atm⋅ft³⋅R⁻¹⋅lb-mol⁻¹ -$(universalgas(English)/standardpressure(English)) +julia> molargas(English)/atmosphere(English) # atm⋅ft³⋅R⁻¹⋅lb-mol⁻¹ +$(molargas(English)/atmosphere(English)) -julia> universalgas(English)/thermalunit(English) # BTU⋅°R⁻¹⋅lb-mol⁻¹ -$(universalgas(English)/thermalunit(English)) +julia> molargas(English)/thermalunit(English) # BTU⋅°R⁻¹⋅lb-mol⁻¹ +$(molargas(English)/thermalunit(English)) -julia> universalgas(Metric)/calorie(Metric) # cal⋅K⁻¹⋅mol⁻¹ -$(universalgas(Metric)/calorie(Metric)) +julia> molargas(Metric)/atmosphere(Metric) # atm⋅m³⋅K⁻¹⋅mol⁻¹ +$(molargas(Metric)/atmosphere(Metric)) -julia> universalgas(Metric)/standardpressure(Metric) # atm⋅m³⋅K⁻¹⋅mol⁻¹ -$(universalgas(Metric)/standardpressure(Metric)) +julia> molargas(Metric)/torr(Metric) # m³⋅torr⋅K⁻¹⋅mol⁻¹ +$(molargas(Metric)/torr(Metric)) -julia> universalgas(Metric)/torr(Metric) # m³⋅torr⋅K⁻¹⋅mol⁻¹ -$(universalgas(Metric)/torr(Metric)) +julia> molargas(English)/torr(English) # ft³⋅torr⋅°R⁻¹⋅lb-mol⁻¹ +$(molargas(English)/torr(English)) -julia> universalgas(English)/torr(English) # ft³⋅torr⋅°R⁻¹⋅lb-mol⁻¹ -$(universalgas(English)/torr(English)) +julia> molargas(CGS) # erg⋅K⁻¹⋅mol⁻¹ +$(molargas(CGS)) -julia> universalgas(CGS) # erg⋅K⁻¹⋅mol⁻¹ -$(universalgas(CGS)) +julia> molargas(English) # ft⋅lb⋅°R⁻¹⋅lb-mol⁻¹ +$(molargas(English)) -julia> universalgas(British) # ft⋅lb⋅°R⁻¹⋅slug-mol⁻¹ -$(universalgas(British)) +julia> molargas(British) # ft⋅lb⋅°R⁻¹⋅slug-mol⁻¹ +$(molargas(British)) + +julia> molargas(SI1976) # J⋅K⁻¹⋅mol⁻¹ (US1976 Standard Atmosphere) +$(molargas(SI1976)) ``` -The 1976 United States Standard Atmosphere used R* = 8.31432 exactly. -""" universalgas, Rᵤ, Ru +""" molargas, Rᵤ, Ru @doc """ - stefan(U::UnitSystem) = π^4/2*sphere(U)*boltzmann(U)^4/(15planck(U)^3*lightspeed(U)^2) +$(unitext(:stefan,"π^4/𝟐*spat(U)*boltzmann(U)^4/(15planck(U)^3*lightspeed(U)^2)")) Stefan-Boltzmann proportionality `σ` of black body radiation (W⋅m⁻²⋅K⁻⁴ or ?⋅ft⁻²⋅°R⁻⁴). ```Julia +julia> stefan(SI2019) # W⋅m⁻²⋅K⁻⁴ +$(stefan(SI2019)) + julia> stefan(Metric) # W⋅m⁻²⋅K⁻⁴ $(stefan(Metric)) -julia> stefan(CGS) # erg⋅cm⁻²⋅s⁻¹⋅K⁻⁴ -$(stefan(CGS)) +julia> stefan(Conventional) # W⋅m⁻²⋅K⁻⁴ +$(stefan(Conventional)) + +julia> stefan(CODATA) # W⋅m⁻²⋅K⁻⁴ +$(stefan(CODATA)) julia> stefan(Metric)*day(Metric)/(calorie(Metric)*100^2) # cal⋅cm⁻²⋅day⁻¹⋅K⁻⁴ $(stefan(Metric)*day(Metric)/calorie(Metric)) @@ -508,7 +541,7 @@ $(stefan(English)) """ stefan, σ, SB @doc """ - radiationdensity(U::UnitSystem) = 4stefan(U)/lightspeed(U) +$(unitext(:radiationdensity,"𝟐^2*stefan(U)/lightspeed(U)")) Raditation density constant of black body radiation (J⋅m⁻³⋅K⁻⁴ or lb⋅ft⁻²⋅°R⁻⁴). @@ -516,13 +549,22 @@ Raditation density constant of black body radiation (J⋅m⁻³⋅K⁻⁴ or lb julia> radiationdensity(Metric) # J⋅m⁻³⋅K⁻⁴ $(radiationdensity(Metric)) -julia> radiationdensity(CGS) # erg⋅cm⁻³⋅K⁻⁴ -$(radiationdensity(CGS)) +julia> radiationdensity(SI2019) # J⋅m⁻³⋅K⁻⁴ +$(radiationdensity(SI2019)) + +julia> radiationdensity(Conventional) # J⋅m⁻³⋅K⁻⁴ +$(radiationdensity(Conventional)) + +julia> radiationdensity(CODATA) # J⋅m⁻³⋅K⁻⁴ +$(radiationdensity(CODATA)) + +julia> radiationdensity(International) # J⋅m⁻³⋅K⁻⁴ +$(radiationdensity(International)) ``` """ radiationdensity @doc """ - vacuumpermittivity(U::UnitSystem) = 1/vacuumpermeability(U)/(lightspeed(U)*lorentz(U))^2 +$(unitext(:vacuumpermittivity,"𝟏/vacuumpermeability(U)/(lightspeed(U)*lorentz(U))^2")) Dielectric permittivity constant `ε₀` of a classical vacuum (C²⋅N⁻¹⋅m⁻²). @@ -539,6 +581,9 @@ $(vacuumpermittivity(CODATA)) julia> vacuumpermittivity(SI2019) # F⋅m⁻¹ $(vacuumpermittivity(SI2019)) +julia> vacuumpermittivity(International) # F⋅m⁻¹ +$(vacuumpermittivity(International)) + julia> vacuumpermittivity(EMU) # abF⋅cm⁻¹ $(vacuumpermittivity(EMU)) @@ -551,36 +596,39 @@ $(vacuumpermittivity(SI2019)/elementarycharge(SI2019)) """ vacuumpermittivity, ε₀, ϵ₀, e0 @doc """ - coulomb(U::UnitSystem) = rationalization(U)/sphere(U)/vacuumpermittivity(U) +$(unitext(:electrostatic,"rationalization(U)/spat(U)/vacuumpermittivity(U)")) Electrostatic proportionality constant `kₑ` for the Coulomb's law force (N⋅m²⋅C⁻²). ```Julia -julia> coulomb(Metric) # N⋅m²⋅C⁻² -$(coulomb(Metric)) +julia> electrostatic(Metric) # N⋅m²⋅C⁻² +$(electrostatic(Metric)) -julia> coulomb(CODATA) # N·m²⋅C⁻² -$(coulomb(CODATA)) +julia> electrostatic(CODATA) # N·m²⋅C⁻² +$(electrostatic(CODATA)) -julia> coulomb(SI2019) # N·m²⋅C⁻² -$(coulomb(SI2019)) +julia> electrostatic(SI2019) # N·m²⋅C⁻² +$(electrostatic(SI2019)) -julia> coulomb(Conventional) # N·m²⋅C⁻² -$(coulomb(Conventional)) +julia> electrostatic(Conventional) # N·m²⋅C⁻² +$(electrostatic(Conventional)) -julia> coulomb(EMU) # dyn⋅cm²⋅abC⁻² -$(coulomb(EMU)) +julia> electrostatic(International) # N·m²⋅C⁻² +$(electrostatic(International)) -julia> coulomb(ESU) # dyn⋅cm²⋅statC⁻² -$(coulomb(ESU)) +julia> electrostatic(EMU) # dyn⋅cm²⋅abC⁻² +$(electrostatic(EMU)) -julia> coulomb(HLU) # dyn⋅cm²⋅hlC⁻² -$(coulomb(HLU)) +julia> electrostatic(ESU) # dyn⋅cm²⋅statC⁻² +$(electrostatic(ESU)) + +julia> electrostatic(HLU) # dyn⋅cm²⋅hlC⁻² +$(electrostatic(HLU)) ``` -""" coulomb, kₑ, ke +""" electrostatic, kₑ, ke @doc """ - biotsavart(U::UnitSystem) = vacuumpermeability(U)*lorentz(U)*rationalization(U)/sphere(U) +$(unitext(:biotsavart,"vacuumpermeability(U)*lorentz(U)*rationalization(U)/spat(U)")) Magnetostatic proportionality constant `αB` for the Biot-Savart's law (H/m). @@ -597,6 +645,12 @@ $(biotsavart(SI2019)) julia> biotsavart(Conventional) # H⋅m⁻¹ $(biotsavart(Conventional)) +julia> biotsavart(International) # H⋅m⁻¹ +$(biotsavart(International)) + +julia> biotsavart(InternationalMean) # H⋅m⁻¹ +$(biotsavart(InternationalMean)) + julia> biotsavart(EMU) # abH⋅cm⁻¹ $(biotsavart(EMU)) @@ -612,36 +666,39 @@ $(biotsavart(HLU)) """ biotsavart, αB, aB @doc """ - ampere(U::UnitSystem) = lorentz(U)*biotsavart(U) # coulomb(U)/lightspeed(U)^2 +$(unitext(:magnetostatic,"lorentz(U)*biotsavart(U) # electrostatic(U)/lightspeed(U)^2")) Magnetic proportionality constant `kₘ` for the Ampere's law force (N·s²⋅C⁻²). ```Julia -julia> ampere(Metric) # H⋅m⁻¹ -$(ampere(Metric)) +julia> magnetostatic(Metric) # H⋅m⁻¹ +$(magnetostatic(Metric)) + +julia> magnetostatic(CODATA) # H⋅m⁻¹ +$(magnetostatic(CODATA)) -julia> ampere(CODATA) # H⋅m⁻¹ -$(ampere(CODATA)) +julia> magnetostatic(SI2019) # H⋅m⁻¹ +$(magnetostatic(SI2019)) -julia> ampere(SI2019) # H⋅m⁻¹ -$(ampere(SI2019)) +julia> magnetostatic(Conventional) # H⋅m⁻¹ +$(magnetostatic(Conventional)) -julia> ampere(Conventional) # H⋅m⁻¹ -$(ampere(Conventional)) +julia> magnetostatic(International) # H⋅m⁻¹ +$(magnetostatic(International)) -julia> ampere(EMU) # abH⋅m⁻¹ -$(ampere(EMU)) +julia> magnetostatic(EMU) # abH⋅m⁻¹ +$(magnetostatic(EMU)) -julia> ampere(ESU) # statH⋅m⁻¹ -$(ampere(ESU)) +julia> magnetostatic(ESU) # statH⋅m⁻¹ +$(magnetostatic(ESU)) -julia> ampere(HLU) # hlH⋅m⁻¹ -$(ampere(HLU)) +julia> magnetostatic(HLU) # hlH⋅m⁻¹ +$(magnetostatic(HLU)) ``` -""" ampere, kₘ, km +""" magnetostatic, kₘ, km @doc """ - vacuumimpedance(U::UnitSystem) = vacuumpermeability(U)*lightspeed(U)*rationalization(U)*lorentz(U)^2 +$(unitext(:vacuumimpedance,"vacuumpermeability(U)*lightspeed(U)*rationalization(U)*lorentz(U)^2")) Vacuum impedance of free space `Z₀` is magnitude ratio of electric to magnetic field (Ω). ```Julia @@ -657,6 +714,12 @@ $(vacuumimpedance(CODATA)) julia> vacuumimpedance(SI2019) # Ω $(vacuumimpedance(SI2019)) +julia> vacuumimpedance(International) # Ω +$(vacuumimpedance(International)) + +julia> vacuumimpedance(InternationalMean) # Ω +$(vacuumimpedance(InternationalMean)) + julia> 120π # 3e8*μ₀ # Ω $(120π) @@ -672,7 +735,7 @@ $(vacuumimpedance(HLU)) """ vacuumimpedance, Z₀, Z0 @doc """ - elementarycharge(U::UnitSystem) = √(2planck(U)*finestructure(U)/vacuumimpedance(U)) +$(unitext(:elementarycharge,"√(𝟐*planck(U)*finestructure(U)/vacuumimpedance(U))")) Quantized elementary charge `𝘦` of a proton or electron `2/(klitzing(U)*josephson(U))` (C). ```Julia @@ -688,6 +751,9 @@ $(elementarycharge(CODATA)) julia> elementarycharge(Conventional) # C $(elementarycharge(Conventional)) +julia> elementarycharge(International) # C +$(elementarycharge(International)) + julia> elementarycharge(EMU) # abC $(elementarycharge(EMU)) @@ -700,7 +766,7 @@ $(elementarycharge(Planck)) """ elementarycharge, 𝘦, ee @doc """ - faraday(U::UnitSystem) = elementarycharge(U)*avogadro(U) +$(unitext(:faraday,"elementarycharge(U)*avogadro(U)")) Electric charge per mole of electrons `𝔉` based on elementary charge (C⋅mol⁻¹). ```Julia @@ -716,6 +782,12 @@ $(faraday(CODATA)) julia> faraday(Conventional) # C⋅mol⁻¹ $(faraday(Conventional)) +julia> faraday(International) # C⋅mol⁻¹ +$(faraday(International)) + +julia> faraday(InternationalMean) # C⋅mol⁻¹ +$(faraday(InternationalMean)) + julia> faraday(EMU) # abC⋅mol⁻¹ $(faraday(EMU)) @@ -731,7 +803,7 @@ $(faraday(Metric)/HOUR) """ faraday, 𝔉, FF @doc """ - josephson(U::UnitSystem) = 2elementarycharge(U)*lorentz(U)/planck(U) # 1/magneticflux(U) +$(unitext(:josephson,"𝟐*elementarycharge(U)*lorentz(U)/planck(U) # 𝟏/magneticfluxquantum(U)")) Josephson constant `KJ` relating potential difference to irradiation frequency (Hz⋅V⁻¹). ```Julia @@ -747,6 +819,9 @@ $(josephson(Conventional)) julia> josephson(CODATA) # Hz⋅V⁻¹ $(josephson(CODATA)) +julia> josephson(International) # Hz⋅V⁻¹ +$(josephson(International)) + julia> josephson(EMU) # Hz⋅abV⁻¹ $(josephson(EMU)) @@ -756,9 +831,9 @@ $(josephson(ESU)) """ josephson, KJ @doc """ - magneticfluxquantum(U::UnitSystem) = planck(U)/2elementarycharge(U)/lorentz(U) +$(unitext(:magneticfluxquantum,"planck(U)/𝟐/elementarycharge(U)/lorentz(U)")) -Magnetic flux quantum `Φ₀` is `1/josephson(U)` (Wb). +Magnetic flux quantum `Φ₀` is `𝟏/josephson(U)` (Wb). ```Julia julia> magneticfluxquantum(SI2019) # Wb $(magneticfluxquantum(SI2019)) @@ -769,6 +844,12 @@ $(magneticfluxquantum(Metric)) julia> magneticfluxquantum(Conventional) # Wb $(magneticfluxquantum(Conventional)) +julia> magneticfluxquantum(International) # Wb +$(magneticfluxquantum(International)) + +julia> magneticfluxquantum(InternationalMean) # Wb +$(magneticfluxquantum(InternationalMean)) + julia> magneticfluxquantum(EMU) # Mx $(magneticfluxquantum(EMU)) @@ -778,7 +859,7 @@ $(magneticfluxquantum(ESU)) """ magneticfluxquantum, Φ₀ @doc """ - klitzing(U::UnitSystem) = planck(U)/elementarycharge(U)^2 +$(unitext(:klitzing,"planck(U)/elementarycharge(U)^2")) Quantized Hall resistance `RK` (Ω). ```Julia @@ -791,6 +872,9 @@ $(klitzing(Metric)) julia> klitzing(Conventional) # Ω $(klitzing(Conventional)) +julia> klitzing(International) # Ω +$(klitzing(International)) + julia> klitzing(CODATA) # Ω $(klitzing(CODATA)) @@ -803,7 +887,7 @@ $(klitzing(ESU)) """ klitzing, RK @doc """ - conductancequantum(U::UnitSystem) = 2elementarycharge(U)^2/planck(U) # 2/klitzing(U) +$(unitext(:conductancequantum,"𝟐*elementarycharge(U)^2/planck(U) # 2/klitzing(U)")) Conductance quantum `G₀` is a quantized unit of electrical conductance (S). ```Julia @@ -819,6 +903,12 @@ $(conductancequantum(Conventional)) julia> conductancequantum(CODATA) # S $(conductancequantum(CODATA)) +julia> conductancequantum(International) # S +$(conductancequantum(International)) + +julia> conductancequantum(InternationalMean) # S +$(conductancequantum(InternationalMean)) + julia> conductancequantum(EMU) # abS $(conductancequantum(EMU)) @@ -828,7 +918,7 @@ $(conductancequantum(ESU)) """ conductancequantum, G₀, G0 @doc """ - hartree(U::UnitSystem) = electronmass(U)*(lightspeed(U)*finestructure(U))^2 # mₑ*(𝘤/αinv)^2 +$(unitext(:hartree,"electronmass(U)/gravity(U)*(lightspeed(U)*finestructure(U))^2")) Hartree electric potential energy `Eₕ` of the hydrogen atom at ground state is `2R∞*𝘩*𝘤` (J). ```Julia @@ -841,16 +931,16 @@ $(hartree(Metric)) julia> hartree(CGS) # erg $(hartree(CGS)) -julia> hartree(Metric)*avogadro(Metric)/1000 # kJ⋅mol⁻¹ -$(hartree(Metric)*avogadro(Metric)/(𝟐*𝟑)^3) +julia> hartree(Metric)*avogadro(Metric)/kilo # kJ⋅mol⁻¹ +$(hartree(Metric)*avogadro(Metric)/kilo) julia> hartree(Metric)*avogadro(Metric)/kilocalorie(Metric) # kcal⋅mol⁻¹ $(hartree(Metric)*avogadro(Metric)/kilocalorie(Metric)) -julia> 2rydberg(Metric)/100 # Eₕ/𝘩/𝘤/100 cm⁻¹ +julia> 𝟐*centi*rydberg(Metric) # Eₕ/𝘩/𝘤/100 cm⁻¹ $(hartree(Metric)/planck(Metric)/lightspeed(Metric)/(𝟐*𝟓)^2) -julia> hartree(Metric)/planck(Metric)/10^12 # THz +julia> hartree(Metric)/planck(Metric) # Hz $(hartree(Metric)/planck(Metric)) julia> hartree(Metric)/boltzmann(Metric) # K @@ -860,7 +950,7 @@ In a Gaussian unit system where `4π*ε₀ == 1` the Hartree energy is `𝘦^2/a """ hartree, Eₕ, Eh @doc """ - rydberg(U::UnitSystem) = hartree(U)/2planck(U)/lightspeed(U) # Eₕ/2𝘩/𝘤 +$(unitext(:rydberg,"hartree(U)/2planck(U)/lightspeed(U) # Eₕ/2𝘩/𝘤")) Rydberg constant `R∞` is lowest energy photon capable of ionizing atom at ground state (m⁻¹). ```Julia @@ -877,7 +967,7 @@ Rydberg unit of photon energy `Ry` is `𝘩*𝘤*R∞` or `Eₕ/2` (J). julia> hartree(Metric)/2 # J $(hartree(Metric)/𝟐) -julia> hartree(SI2019)/𝟐/charge(SI2019) # eV +julia> hartree(SI2019)/𝟐/elementarycharge(SI2019) # eV $(hartree(SI2019)/𝟐/elementarycharge(SI2019)) ``` Rydberg photon frequency `𝘤*R∞` or `Eₕ/2𝘩` (Hz). @@ -897,7 +987,7 @@ Precision measurements of the Rydberg constants are within a relative standard u """ rydberg, R∞, RH, Ry @doc """ - bohr(U) = planckreduced(U)/electronmass(U)/lightspeed(U)/finestructure(U) +$(unitext(:bohr,"planckreduced(U)*gravity(U)/electronmass(U)/lightspeed(U)/finestructure(U)")) Bohr radius of the hydrogen atom in its ground state `a₀` (m). ```Julia @@ -908,8 +998,8 @@ $(bohr(Metric)) #julia> bohr(Metric)/length(PlanckGauss) # ℓP #$(bohr(Metric)/length(PlanckGauss)) -@doc """ - bohrreduced(U::UnitSystem) = bohr(U)*(1+1/protonelectron(U)) +#=@doc """ +$(unitext(:bohrreduced,"bohr(U)*(1+1/protonelectron(U))")) Reduced Bohr radius including the effect of reduced mass in hydrogen atom (m). ```Julia @@ -919,10 +1009,10 @@ $(bohrreduced(Metric)) julia> bohrreduced(Metric)/bohr(Metric) # a₀ $(bohrreduced(Metric)/bohr(Metric)) ``` -""" bohrreduced +""" bohrreduced=# @doc """ - electronradius(U) = finestructure(U)*planckreduced(U)/electronmass(U)/lightspeed(U) +$(unitext(:electronradius,"finestructure(U)*planckreduced(U)*gravity(U)/electronmass(U)/lightspeed(U)")) Classical electron radius or Lorentz radius or Thomson scattering length (m). ```Julia @@ -938,7 +1028,7 @@ $(electronradius(Conventional)) """ electronradius, rₑ, re @doc """ - magneton(U::UnitSystem) = elementarycharge(U)*planckreduced(U)*lorentz(U)/2electronmass(U) +$(unitext(:magneton,"elementarycharge(U)*planckreduced(U)*lorentz(U)/2electronmass(U)")) Bohr magneton `μB` natural unit for expressing magnetic moment of electron (J⋅T⁻¹). ```Julia @@ -954,11 +1044,11 @@ $(magneton(CODATA)) julia> magneton(Conventional) # J⋅T⁻¹ $(magneton(Conventional)) -julia> magneton(EMU2019) # erg⋅G⁻¹ -$(magneton(EMU2019)) +julia> magneton(International) # J⋅T⁻¹ +$(magneton(International)) -julia> magneton(ESU2019) # statA⋅cm² -$(magneton(ESU2019)) +julia> magneton(ESU) # statA⋅cm² +$(magneton(ESU)) julia> magneton(SI2019)/elementarycharge(SI2019) # eV⋅T⁻¹ $(magneton(SI2019)/elementarycharge(SI2019)) @@ -969,91 +1059,140 @@ $(magneton(Hartree)) """ magneton, μB @doc """ - hyperfine(U::UnitSystem) = frequency($ΔνCs,U) +$(unitext(:wienwavelength,"planck(U)*lightspeed(U)/boltzmann(U)/(𝟓+W₀(-𝟓*exp(-𝟓)))")) -Unperturbed groundstate hyperfine transition frequency `ΔνCs` of caesium-133 atom (Hz). +Wien wavelength displacement law constant based on Lambert `W₀` evaluation (m⋅K or ft⋅°R). ```Julia -julia> hyperfine(Metric) # Hz -$(hyperfine(Metric)) +julia> wienwavelength(Metric) # m⋅K +$(wienwavelength(Metric)) + +julia> wienwavelength(SI2019) # m⋅K +$(wienwavelength(SI2019)) + +julia> wienwavelength(Conventional) # m⋅K +$(wienwavelength(Conventional)) + +julia> wienwavelength(CODATA) # m⋅K +$(wienwavelength(CODATA)) + +julia> wienwavelength(English) # ft⋅°R +$(wienwavelength(English)) ``` -""" hyperfine, ΔνCs +""" wienwavelength @doc """ - hubble(U::UnitSystem) = time(U,Hubble) +$(unitext(:wienfrequency,"(𝟑+W₀(-𝟑*exp(-𝟑)))*boltzmann(U)/planck(U)")) -Hubble parameter. +Wien frequency displacement law constant based on Lambert `W₀` evaluation (Hz⋅K⁻¹). ```Julia -julia> hubble(SI2019) -$(hubble(SI2019)) +julia> wienfrequency(Metric) # Hz⋅K⁻¹ +$(wienfrequency(Metric)) -julia> hubble(Hubble) -$(hubble(Hubble)) +julia> wienfrequency(SI2019) # Hz⋅K⁻¹ +$(wienfrequency(SI2019)) + +julia> wienfrequency(Conventional) # Hz⋅K⁻¹ +$(wienfrequency(Conventional)) + +julia> wienfrequency(CODATA) # Hz⋅K⁻¹ +$(wienfrequency(CODATA)) + +julia> wienfrequency(English) # Hz⋅°R⁻¹ +$(wienfrequency(English)) ``` -""" hubble +""" wienfrequency @doc """ - cosmological(U::UnitSystem) = 3darkenergydensity(U)*(hubble(U)/lightspeed(U))^2 +$(unitext(:loschmidt,"atmosphere(U)/boltzmann(U)/temperature(T₀,SI2019,U)")) -Cosmological constant. +Number of molecules (number density) of an ideal gas in a unit volume (m⁻³ or ft⁻³). ```Julia -julia> cosmological(SI2019) -$(cosmological(SI2019)) +julia> loschmidt(SI2019) # m⁻³ +$(loschmidt(SI2019)) + +julia> loschmidt(Metric,atm,T₀) # m⁻³ +$(loschmidt(Metric,atm,T₀)) + +julia> loschmidt(Conventional,atm,T₀) # m⁻³ +$(loschmidt(Conventional,atm,T₀)) + +julia> loschmidt(CODATA,atm,T₀) # m⁻³ +$(loschmidt(CODATA,atm,T₀)) + +julia> loschmidt(SI1976,atm,T₀) # m⁻³ +$(loschmidt(SI1976,atm,T₀)) + +julia> loschmidt(English) # ft⁻³ +$(loschmidt(English)) + +julia> loschmidt(IAU) # au⁻³ +$(loschmidt(IAU)) ``` -""" cosmological +""" loschmidt @doc """ - standardgravity(U::UnitSystem) = acceleration($g₀,U) +$(unitext(:amagat,"loschmidt(U)/avogadro(U)")) -Standard gravity `acceleration` `g₀` at geodetic reference latitude (m⋅s⁻² or ft⋅s⁻²). +Number of moles of an ideal gas in a unit volume (mol⋅m⁻³ or lb-mol⋅ft⁻³). ```Julia -julia> standardgravity(Metric) # m⋅s⁻² -$(standardgravity(Metric)) +julia> amagat(Metric) # mol⋅m⁻³ +$(amagat(Metric)) + +julia> amagat(SI2019) # mol⋅m⁻³ +$(amagat(SI2019)) + +julia> amagat(English) # slug-mol⋅ft⁻³ +$(amagat(English)) +``` +""" amagat -julia> standardgravity(English) # ft⋅s⁻² -$(standardgravity(English)) +@doc """ +$(unitext(:hyperfine,"frequency($ΔνCs,U)")) -julia> standardgravity(Survey) # ftUS⋅s⁻² -$(standardgravity(Survey)) +Unperturbed groundstate hyperfine transition frequency `ΔνCs` of caesium-133 atom (Hz). +```Julia +julia> hyperfine(Metric) # Hz +$(hyperfine(Metric)) ``` -""" standardgravity, g₀, g0, lbm +""" hyperfine, ΔνCs @doc """ - pressure(U::UnitSystem) = pressure($atm,U) +$(unitext(:hubble,"time(U,Hubble)")) -Standard `pressure` reference level of one atmosphere `atm` (Pa or lb⋅ft⁻²). +Hubble universe expansion frequency parameter. ```Julia -julia> standardpressure(Metric) # Pa -$(standardpressure(Metric)) +julia> hubble(Metric) +$(hubble(Metric)) + +julia> hubble(Hubble) +$(hubble(Hubble)) -julia> standardpressure(English) # lbm⋅ft⁻¹⋅s⁻² -$(standardpressure(English)) +julia> hubble(Cosmological) +$(hubble(Cosmological)) -julia> standardpressure(Survey) # lbm⋅ftUS⁻¹⋅s⁻² -$(standardpressure(Survey)) +julia> 𝟏/hubble(Metric)/year(Metric) +$(𝟏/hubble(Metric)/year(Metric)) ``` -""" standardpressure, atm +""" hubble @doc """ - temperature(U::UnitSystem) = temperature($atm,U) +$(unitext(:cosmological,"𝟑*darkenergydensity(U)*(hubble(U)/lightspeed(U))^2")) -Standard `temperature` reference level at sea level (K or °R). +Cosmological constant from Einstein's controversial theory expanded on by Hubble. ```Julia -julia> standardtemperature(Metric) # K -$(standardtemperature(Metric)) - -julia> standardtemperature(SI2019) # K -$(standardtemperature(SI2019)) +julia> cosmological(Metric) +$(cosmological(Metric)) -julia> standardtemperature(English) # °R -$(standardtemperature(English)) +julia> cosmological(Hubble) +$(cosmological(Hubble)) -julia> standardtemperature(English2019) # °R -$(standardtemperature(English2019)) +julia> cosmological(Cosmological) +$(cosmological(Cosmological)) ``` -""" standardtemperature, Tₛ +""" cosmological @doc """ - solarmass(U::UnitSystem) = mass($(GM☉/G),U) +$(unitext(:solarmass,"mass($(GM☉/G),U)")) Solar `mass` estimated from gravitational constant estimates (kg or slug). ```Julia @@ -1075,7 +1214,7 @@ $(solarmass(IAUJ)) """ solarmass, mₛ @doc """ - earthmass(U::UnitSystem) = mass($(GME/G),U) +$(unitext(:earthmass,"mass($(GME/G),U)")) Earth `mass` estimated from gravitational constant estimates (kg or slug). ```Julia @@ -1097,7 +1236,7 @@ $(earthmass(IAUJ)) """ earthmass @doc """ - jupitermass(U::UnitSystem) = mass($(GMJ/G),U) +$(unitext(:jupitermass,"mass($(GMJ/G),U)")) Jupiter `mass` estimated from gravitational constant estimates (kg or slug). ```Julia @@ -1119,14 +1258,14 @@ $(jupitermass(IAUE)) """ jupitermass @doc """ - lunarmass(U::UnitSystem) = earthmass(U)/μE☾ +$(unitext(:lunarmass,"earthmass(U)/μE☾")) Lunar `mass` estimated from `μE☾` Earth-Moon mass ratio (kg or slug). ```Julia julia> lunarmass(Metric) # kg $(lunarmass(Metric)) -julia> jupitermass(British) # slug +julia> lunarmass(British) # slug $(lunarmass(British)) julia> lunarmass(English) # lb @@ -1144,404 +1283,107 @@ $(lunarmass(IAUJ)) """ lunarmass @doc """ - astronomicalunit(U::UnitSystem) = length($au,U) - -Standard astronomical unit from the International Astronomical Union (m or ft). -```Julia -julia> astronomicalunit(Metric) # m -$(astronomicalunit(Metric)) - -julia> astronomicalunit(English) # ft -$(astronomicalunit(English)) - -julia> astronomicalunit(Survey) # ftUS -$(astronomicalunit(Survey)) -``` -""" astronomicalunit, au - -@doc """ - lunardistance(U::UnitSystem) = length($LD,U) - -Standard distance between the Earth and the Moon (m or ft). -```Julia -julia> lunardistance(Metric) # m -$(lunardistance(Metric)) - -julia> lunardistance(English) # ft -$(lunardistance(English)) - -julia> lunardistance(Survey) # ftUS -$(lunardistance(Survey)) -``` -""" lunardistance, LD - -@doc """ - mile(U::UnitSystem) = length($(Constant(5280)*ft),U) - -Statute mile (m or ft). -```Julia -julia> mile(Metric) # m -$(mile(Metric)) - -julia> mile(English) # ft -$(mile(English)) - -julia> mile(Survey) # ftUS -$(mile(Survey)) -``` -""" mile - -@doc """ - clarkemile(U::UnitSystem) = length($nm,U) - -Historic nautical mile as defined by the Clarke (m or ft). -```Julia -julia> clarkemile(Metric) # m -$(clarkemile(Metric)) - -julia> clarkemile(English) # ft -$(clarkemile(English)) - -julia> clarkemile(Survey) # ftUS -$(clarkemile(Survey)) -``` -""" clarkemile - -@doc """ - nauticalmile(U::UnitSystem) = length($nm,U) - -Historic nautical mile as defined by the French (m or ft). -```Julia -julia> nauticalmile(Metric) # m -$(nauticalmile(Metric)) - -julia> nauticalmile(English) # ft -$(nauticalmile(English)) - -julia> nauticalmile(Survey) # ftUS -$(nauticalmile(Survey)) -``` -""" nauticalmile, nm - -@doc """ - kilocalorie(U::UnitSystem) = energy(𝟐^5*𝟓^4*𝟑^2/𝟒𝟑,U,International) - -Heat energy required to raise 1 kg of water by 1 Kelvin (`kcal`). -```Julia -julia> kilocalorie(International) -$(kilocalorie(International)) - -julia> kilocalorie(Metric) -$(kilocalorie(Metric)) -``` -""" kilocalorie, kcal - -@doc """ - calorie(U::UnitSystem) = kilocalorie(U)/𝟐^3/𝟓^3 - -Heat energy required to raise 1 g of water by 1 Kelvin (`kcal`) in `International` scale. -```Julia -julia> calorie(International) -$(calorie(International)) - -julia> calorie(Metric) -$(calorie(Metric)) -``` -""" calorie, cal - -@doc """ - meancalorie(U::UnitSystem) = energy(𝟐^2*𝟓*𝟑^2/𝟒𝟑,U,InternationalMean) - -Heat energy required to raise 1 g of water by 1 Kelvin (`kcal`) in `InternationalMean`. -```Julia -julia> meancalorie(InternationalMean) -$(meancalorie(InternationalMean)) - -julia> meancalorie(Metric) -$(meancalorie(Metric)) -``` -""" meancalorie - -@doc """ - thermalunit(U::UnitSystem) = kilocalorie(U)*𝟑^2/𝟓/lb - -Heat energy required to raise 1 lb of water by 1 Rankine (`BTU`) in `International` scale. -```Julia -julia> thermalunit(British) -$(thermalunit(British)) - -julia> thermalunit(International) -$(thermalunit(International)) - -julia> thermalunit(Metric) -$(thermalunit(Metric)) -``` -""" thermalunit, BTU, BTUJ, BTUftlb - -@doc """ - tonsrefrigeration(U::UnitSystem) = frequency(𝟐*𝟓/𝟑,U,Metric)*thermalunit(U) - -Unit of `power` derived from melting of 1 short ton of ice in 24 hours. -```Julia -julia> tonsrefrigeration(British) -$(tonsrefrigeration(British)) - -julia> tonsrefrigeration(Metric) -$(tonsrefrigeration(Metric)) -``` -""" tonsrefrigeration - -@doc """ - boilerhorsepower(U::UnitSystem) = frequency(1339/𝟐^4/𝟑^2,U,Metric)*thermalunit(U) - -Unit of `power` derived from evaporating 34.5 lb of boiling water in 1 hour. -```Julia -julia> boilerhorsepower(British) -$(boilerhorsepower(British)) - -julia> boilerhorsepower(Metric) -$(boilerhorsepower(Metric)) -``` -""" boilerhorsepower - -@doc """ - horsepower(U::UnitSystem) = power(𝟐*𝟓^2*𝟏𝟏,U,British) - -Unit of `power` derived from raising 550 lb by 1 ft in 1 in 1 s. -```Julia -julia> horsepower(British) -$(horsepower(British)) - -julia> horsepower(Metric) -$(horsepower(Metric)) - -julia> horsepower(MetricEngineering) -$(horsepower(MetricEngineering)) -``` -""" horsepower, HP - -@doc """ - horsepowerwatt(U::UnitSystem) = power(𝟐^4*𝟑^3/𝟓*τ,U,British) - -Unit of `power` derived from Watt's exact original horse power estimate. -```Julia -julia> horsepowerwatt(British) -$(horsepowerwatt(British)) - -julia> horsepowerwatt(Metric) -$(horsepowerwatt(Metric)) - -julia> horsepowerwatt(MetricEngineering) -$(horsepowerwatt(MetricEngineering)) -``` -""" horsepowerwatt - -@doc """ - horsepowermetric(U::UnitSystem) = power(𝟑*𝟓^2,U,GravitationalMetric) - -Unit of `power` derived from raising 75 kp by 1 m in 1 in 1 s. -```Julia -julia> horsepowermetric(British) -$(horsepowermetric(British)) - -julia> horsepowermetric(Metric) -$(horsepowermetric(Metric)) - -julia> horsepowermetric(MetricEngineering) -$(horsepowermetric(MetricEngineering)) -``` -""" horsepowermetric - -@doc """ - electricalhorsepower(U::UnitSystem) = power(746,U,Metric) - -Unit of `power` for electrical motors in the United States. -```Julia -julia> electricalhorsepower(British) -$(electricalhorsepower(British)) - -julia> electricalhorsepower(Metric) -$(electricalhorsepower(Metric)) - -julia> electricalhorsepower(MetricEngineering) -$(electricalhorsepower(MetricEngineering)) -``` -""" electricalhorsepower - -@doc """ - gallon(U::UnitSystem) = volume(𝟕*𝟏𝟏/𝟐^2,U,English) - -Unit of `volume` derived from the US liquid `gallon` in cubic inches. -```Julia -julia> gallon(English) -$(gallon(English)) - -julia> gallon(Metric) -$(gallon(Metric)) -``` -""" gallon, gal - -@doc """ - litre(U::UnitSystem) = volume(𝟏𝟎^-3,U,Metric) +$(unitext(:gaussianyear,"(τ/k)*day(U)")) -Unit of `volume` derived from 1 cubic decimetre. +Orbit `time` defined by `gaussgravitation(IAU)` constant `k` value for neglible `mass`. ```Julia -julia> litre(Metric) -$(gallon(Metric)) - -julia> gallon(English) -$(gallon(English)) -``` -""" litre - -@doc """ - inchmercury(U::UnitSystem) = pressure(inHg,U,Metric) +julia> gaussianyear(Metric) # s +$(gaussianyear(Metric)) -Unit of `pressure` exerted by 1 inch of mercury at standard atmospheric conditions. -```Julia -juila> inchmercury(Metric) -$(inchmercury(Metric)) +julia> gaussianyear(MPH) # h +$(gaussianyear(MPH)) -julia> inchmercury(English) -$(inchmercury(English)) +julia> gaussianyear(IAU) # D +$(gaussianyear(IAU)) ``` -""" inchmercury, inHg +""" gaussianyear @doc """ - torr(U::UnitSystem) = pressure(atm/𝟐^3/𝟓/𝟏𝟗,U,Metric) +$(unitext(:siderealyear,"gaussianyear(U)/√(𝟏+earthmass(IAU)+lunarmass(IAU))")) -Unit of `pressure` exerted by 1 mm of mercury at standard atmospheric conditions. +Orbit `time` defined by `gaussgravitation(IAU)` constant and the Earth system `mass`. ```Julia -juila> torr(Metric) -$(torr(Metric)) - -julia> torr(English) -$(torr(English)) -``` -""" torr - -@doc """ - second(U::UnitSystem) = time(𝟏,U,Metric) +julia> siderealyear(Metric) # s +$(siderealyear(Metric)) -Unit of `time` defined by `hyperfine` transition frequency of Cs-133 atom. -```Julia -julia> second(Metric) -$(second(Metric)) +julia> siderealyear(MPH) # h +$(siderealyear(MPH)) -julia> second(IAU) -$(second(IAU)) +julia> siderealyear(IAU) # D +$(siderealyear(IAU)) ``` -""" second +""" siderealyear @doc """ - minute(U::UnitSystem) = 𝟐^2*𝟑*𝟓*second(U) +$(unitext(:earthradius,"sqrt(earthmass(U)*gravitation(U)/gforce(U))")) -Unit of `time` defined by 60 `second` intervals. +Approximate `length` of standard Earth two-body radius consistent with units (m or ft). ```Julia -julia> minute(Metric) -$(minute(Metric)) - -julia> minute(IAU) -$(minute(IAU)) -``` -""" minute +julia> earthradius(KKH) # km +$(earthradius(KKH)) -@doc """ - hour(U::UnitSystem) = 𝟐^2*𝟑*𝟓*minute(U) - -Unit of `time` defined by 60 `minute` intervals. -```Julia -julia> hour(Metric) -$(hour(Metric)) +julia> earthradius(Nautical) # nm +$(earthradius(Nautical)) -julia> hour(IAU) -$(hour(IAU)) +julia> earthradius(IAU) # au +$(earthradius(IAU)) ``` -""" hour, HOUR +""" earthradius @doc """ - day(U::UnitSystem) = 𝟐^3*𝟑*hour(U) +$(unitext(:greatcircle,"τ*earthradius(U)")) -Unit of `time` defined by 24 `hour` intervals. +Approximate `length` of standard Earth two-body circle consistent with units (m or ft). ```Julia -julia> day(Metric) -$(day(Metric)) +julia> greatcircle(KKH) # km +$(greatcircle(KKH)) -julia> day(IAU) -$(day(IAU)) -``` -""" day, DAY - -@doc """ - year(U::UnitSystem) = aⱼ*day(U) +julia> greatcircle(Nautical) # nm +$(greatcircle(Nautical)) -Unit of `time` defined by Julian calendar year interval. -```Julia -julia> year(Metric) -$(year(Metric)) - -julia> year(IAU) -$(year(IAU)) +julia> greatcircle(IAU) # au +$(greatcircle(IAU)) ``` -""" year, aⱼ +""" greatcircle @doc """ - gaussianyear(U::UnitSystem) = (τ/k)*day(U) + sackurtetrode(P,T=𝟏) = log(Constant(exp(5/2))*T*kB/P*sqrt(mₑ/μₑᵤ*kB*T/τ/ħ^2)^3) + sackurtetrode(U::UnitSystem,P=atm,T=𝟏) = # Sackur-Tetrode formula -Unit of `time` defined by Gaussian gravitational constant. +Entropy ratio of a monatomic ideal gas at pressure `P` and temperature `T` (dimensionless). ```Julia -julia> gaussianyear(Metric) -$(gaussianyear(Metric)) +julia> sackurtetrode(Metric) +$(sackurtetrode(Metric)) -julia> gaussianyear(IAU) -$(gaussianyear(IAU)) -``` -""" gaussianyear +julia> sackurtetrode(SI2019) +$(sackurtetrode(SI2019)) -@doc """ - siderealyear(U::UnitSystem) = τ/k/√(𝟏+earthmass(IAU)+lunarmass(IAU))*day(U) +julia> sackurtetrode(Conventional) +$(sackurtetrode(Conventional)) -Unit of `time` defined by Gaussian gravitational constant and the Earth system mass. -```Julia -julia> siderealyear(Metric) -$(siderealyear(Metric)) +julia> sackurtetrode(CODATA) +$(sackurtetrode(CODATA)) -julia> siderealyear(IAU) -$(siderealyear(IAU)) +julia> sackurtetrode(SI2019,𝟏𝟎^5) +$(sackurtetrode(SI2019,𝟏𝟎^5)) ``` -""" siderealyear +""" sackurtetrode @doc """ - lightyear(U::UnitSystem) = year(U)*lightspeed(U) + mechanicalheat(U::UnitSystem) = molargas(U)/molargas(Metric)*calorie(Metric) + energy : [FL], [FL], [ML²T⁻²], [ML²T⁻²], [ML²T⁻²] -Unit of `length` defined by distance traveled by light in 1 `year` unit. +Heat to raise 1 `mass` unit of water by 1 `temperature` unit, or $(normal(molargas(Metric)/calorie(Metric))) `mechanicalheat` per `molaramount` per `temperature` units (J or ft⋅lb). ```Julia -julia> lightyear(Metric) -$(lightyear(Metric)) +julia> mechanicalheat(Metric) # J +$(mechanicalheat(Metric)) -julia> lightyear(IAU) -$(lightyear(IAU)) -``` -""" lightyear, ly - -@doc """ - parsec(U::UnitSystem) = astronomicalunit(U)*𝟐^2*𝟑^4*𝟓^3/τ +julia> mechanicalheat(English) # ft⋅lb +$(mechanicalheat(English)) -Unit of `length` defined at which 1 `astronomicalunit` subtends an angle of 1 arcsecond. -```Julia -julia> parsec(Metric) -$(parsec(Metric)) - -julia> parsec(IAU) -$(parsec(IAU)) +julia> mechanicalheat(British) # ft⋅lb +$(mechanicalheat(British)) ``` -""" parsec, pc - -#=@pure kilogram(U::UnitSystem) = mass(Metric,U) -@pure slug(U::UnitSystem) = mass(English,U) - -@pure meter(U::UnitSystem) = length(Metric,U) -@pure foot(U::UnitSystem) = length(English,U)=# +""" mechanicalheat -#rankine, kelvin, moles/molecules -#add gravitional units of weight?? +include("derivedocs.jl") diff --git a/src/systems.jl b/src/systems.jl index 1c90909..806fa10 100644 --- a/src/systems.jl +++ b/src/systems.jl @@ -12,17 +12,25 @@ # https://github.com/chakravala # https://crucialflow.com -export slug, ft, KJ1990, KJ2014, RK1990, RK2014, mₑ1990, mₑ2014, temp, units, °R +export deka,hecto,kilo,mega,giga,tera,peta,exa,zetta,yotta +export deci,centi,milli,micro,nano,pico,femto,atto,zepto,yocto +export byte,kibi,mebi,gibi,tebi,pebi,exbi,zebi,yobi + +export slug, ft, KJ1990, KJ2014, RK1990, RK2014, mₑ1990, mₑ2014, temp, units, °R, T₀, eV export slugs, kilograms, lbm, meters, feet, rankine, kelvin, moles, molecules, universal export Universe, UnitSystem, US, universe, HOUR, DAY, th, lc, mc, tcq, lcq, mcq -export similitude, 𝟙, F, M, L, T, Q, Θ, N, J, A, Λ, C +export similitude, 𝟙, F, M, L, T, Q, Θ, N, J, A, Λ, C, sackurtetrode +export °R, τ, 𝟏𝟎, 𝟐, 𝟑, 𝟓, nm, 𝟏, mₑ, μ₀, Mᵤ, Rᵤ, αG, GG, slug, ħ, μₚₑ, αL, 𝟕, 𝟏𝟏, 𝟏𝟗, 𝟒𝟑 + +const EMU2019,ESU2019,stiffness = EMU,ESU,fluence # == Metric is different +const eV = electronvolt(SI2019) const κ = einstein(SI2019) const σ = stefan(SI2019) # const μB = magneton(SI2019) # const ε₀ = vacuumpermittivity(SI2019) # -const kₑ = coulomb(SI2019) # +const kₑ = electrostatic(SI2019) # const mₚ = protonmass(SI2019) const mᵤ = atomicmass(SI2019) const 𝔉 = faraday(SI2019) # @@ -61,7 +69,7 @@ const HP = horsepower(Metric) const gal = gallon(Metric) const kcal = kilocalorie(SI2019) const cal = calorie(SI2019) -const universal = universalgas +const universal = molargas # constant aliases @@ -75,7 +83,7 @@ export lP, tP, TP, lS, tS, mS, qS, lA, tA, mA, qA, lQCD, tQCD, mQCD, ϵ₀, αL, # engineering unit systems docs @doc """ - Metric = MetricSystem(𝟏𝟎^-3,𝟐*τ/𝟏𝟎^7) + Metric = MetricSystem(milli,𝟐*τ/𝟏𝟎^7) Systeme International d'Unites (the SI units) adopted as the preferred `UnitSystem`. @@ -97,6 +105,9 @@ $(electronmass(Metric)) julia> molarmass(Metric) # kg⋅mol⁻¹ $(molarmass(Metric)) + +julia> luminousefficacy(Metric) # lm⋅W⁻¹ +$(luminousefficacy(Metric)) ``` """ Metric, MKS @@ -123,25 +134,28 @@ $(electronmass(SI2019)) julia> molarmass(SI2019) # kg⋅mol⁻¹ $(molarmass(SI2019)) + +julia> luminousefficacy(SI2019) # lm⋅W⁻¹ +$(luminousefficacy(SI2019)) ``` """ SI2019, SI @doc """ - MetricEngineering = MetricSystem(𝟏𝟎^-3,𝟐*τ/𝟏𝟎^7,Rᵤ,g₀) + MetricEngineering = MetricSystem(milli,𝟐*τ/𝟏𝟎^7,Rᵤ,g₀) Systeme International d'Unites (the SI units) based on kilogram and kilopond units. ```Julia -julia> boltzmann(MetricEngineering) # J⋅K⁻¹ +julia> boltzmann(MetricEngineering) # kgf⋅m⋅K⁻¹ $(boltzmann(MetricEngineering)) -julia> planckreduced(MetricEngineering) # J⋅s⋅rad⁻¹ +julia> planckreduced(MetricEngineering) # kgf⋅m⋅s⋅rad⁻¹ $(planckreduced(MetricEngineering)) julia> lightspeed(MetricEngineering) # m⋅s⁻¹ $(lightspeed(MetricEngineering)) -julia> vacuumpermeability(MetricEngineering) # H⋅m⁻¹ +julia> vacuumpermeability(MetricEngineering) # kgf⋅s²⋅C⁻² $(vacuumpermeability(MetricEngineering)) julia> electronmass(MetricEngineering) # kg @@ -150,7 +164,10 @@ $(electronmass(MetricEngineering)) julia> molarmass(MetricEngineering) # kg⋅mol⁻¹ $(molarmass(MetricEngineering)) -julia> gravity(MetricEngineering) # kg⋅m⋅N⁻¹⋅s⁻² +julia> luminousefficacy(MetricEngineering) # lm⋅s⋅m⁻¹⋅kgf⁻¹ +$(luminousefficacy(MetricEngineering)) + +julia> gravity(MetricEngineering) # kg⋅m⋅kgf⁻¹⋅s⁻² $(gravity(MetricEngineering)) ``` """ MetricEngineering, ME @@ -161,16 +178,16 @@ $(gravity(MetricEngineering)) Systeme International d'Unites (the SI units) based on kilogram and kilopond units. ```Julia -julia> boltzmann(SI2019Engineering) # J⋅K⁻¹ +julia> boltzmann(SI2019Engineering) # kgf⋅m⋅K⁻¹ $(boltzmann(SI2019Engineering)) -julia> planckreduced(SI2019Engineering) # J⋅s⋅rad⁻¹ +julia> planckreduced(SI2019Engineering) # kgf⋅m⋅s⋅rad⁻¹ $(planckreduced(SI2019Engineering)) julia> lightspeed(SI2019Engineering) # m⋅s⁻¹ $(lightspeed(SI2019Engineering)) -julia> vacuumpermeability(SI2019Engineering) # H⋅m⁻¹ +julia> vacuumpermeability(SI2019Engineering) # kgf⋅s²⋅C⁻² $(vacuumpermeability(SI2019Engineering)) julia> electronmass(SI2019Engineering) # kg @@ -179,13 +196,16 @@ $(electronmass(SI2019Engineering)) julia> molarmass(SI2019Engineering) # kg⋅mol⁻¹ $(molarmass(SI2019Engineering)) -julia> gravity(SI2019Engineering) # kg⋅m⋅N⁻¹⋅s⁻² +julia> luminousefficacy(SI2019Engineering) # lm⋅s⋅m⁻¹⋅kgf⁻¹ +$(luminousefficacy(SI2019Engineering)) + +julia> gravity(SI2019Engineering) # kg⋅m⋅kgf⁻¹⋅s⁻² $(gravity(SI2019Engineering)) ``` """ SI2019Engineering, SIE @doc """ - SI1976 = MetricSystem(𝟏𝟎^-3,𝟐*τ/𝟏𝟎^7,8.31432) + SI1976 = MetricSystem(milli,𝟐*τ/𝟏𝟎^7,8.31432) Systeme International d'Unites (the SI units) with universal gas constant of `8.31432`. @@ -207,6 +227,9 @@ $(electronmass(SI1976)) julia> molarmass(SI1976) # kg⋅mol⁻¹ $(molarmass(SI1976)) + +julia> luminousefficacy(SI1976) # lm⋅W⁻¹ +$(luminousefficacy(SI1976)) ``` """ SI1976 @@ -216,6 +239,12 @@ $(molarmass(SI1976)) Metric `UnitSystem` based on Committee on Data of the International Science Council. ```Julia +julia> josephson(CODATA) # Hz⋅V⁻¹ +$(josephson(CODATA)) + +julia> klitzing(CODATA) # Ω +$(klitzing(CODATA)) + julia> boltzmann(CODATA) # J⋅K⁻¹ $(boltzmann(CODATA)) @@ -233,6 +262,9 @@ $(electronmass(CODATA)) julia> molarmass(CODATA) # kg⋅mol⁻¹ $(molarmass(CODATA)) + +julia> luminousefficacy(CODATA) # lm⋅W⁻¹ +$(luminousefficacy(CODATA)) ``` """ CODATA @@ -242,6 +274,12 @@ $(molarmass(CODATA)) Conventional electronic `UnitSystem` with 1990 tuned `josephson` and `klitzing` constants. ```Julia +julia> josephson(Conventional) # Hz⋅V⁻¹ +$(josephson(Conventional)) + +julia> klitzing(Conventional) # Ω +$(klitzing(Conventional)) + julia> boltzmann(Conventional) # J⋅K⁻¹ $(boltzmann(Conventional)) @@ -259,15 +297,24 @@ $(electronmass(Conventional)) julia> molarmass(Conventional) # kg⋅mol⁻¹ $(molarmass(Conventional)) + +julia> luminousefficacy(Conventional) # lm⋅W⁻¹ +$(luminousefficacy(Conventional)) ``` """ Conventional @doc """ - International = ElectricSystem(Metric,Ωᵢₜ,Vᵢₜ) + International = ElectricSystem(Metric,$Ωᵢₜ,$Vᵢₜ) International `UnitSystem` with United States measurements of `Ωᵢₜ` and `Vᵢₜ`. ```Julia +julia> resistance(International,Metric) # Ω⋅Ω⁻¹ +$(resistance(International,Metric)) + +julia> electricpotential(International,Metric) # V⋅V⁻¹ +$(electricpotential(International,Metric)) + julia> boltzmann(International) # J⋅K⁻¹ $(boltzmann(International)) @@ -285,6 +332,9 @@ $(electronmass(International)) julia> molarmass(International) # kg⋅mol⁻¹ $(molarmass(International)) + +julia> luminousefficacy(International) # lm⋅W⁻¹ +$(luminousefficacy(International)) ``` """ International @@ -294,6 +344,12 @@ $(molarmass(International)) International `UnitSystem` with mean measurements of `Ωᵢₜ` and `Vᵢₜ`. ```Julia +julia> resistance(InternationalMean,Metric) # Ω⋅Ω⁻¹ +$(resistance(InternationalMean,Metric)) + +julia> electricpotential(InternationalMean,Metric) # V⋅V⁻¹ +$(electricpotential(InternationalMean,Metric)) + julia> boltzmann(InternationalMean) # J⋅K⁻¹ $(boltzmann(InternationalMean)) @@ -311,9 +367,74 @@ $(electronmass(InternationalMean)) julia> molarmass(InternationalMean) # kg⋅mol⁻¹ $(molarmass(InternationalMean)) + +julia> luminousefficacy(International) # lm⋅W⁻¹ +$(luminousefficacy(International)) ``` """ InternationalMean +@doc """ + Meridian = EntropySystem(Metric,𝟏,em,em^3,𝟏,τ/𝟐^6/𝟓^7,milli) + +Systeme International d'Unites (the SI units) adopted as the preferred `UnitSystem`. + +```Julia +julia> boltzmann(Meridian) # eJ⋅K⁻¹ +$(boltzmann(Meridian)) + +julia> planckreduced(Meridian) # eJ⋅s⋅rad⁻¹ +$(planckreduced(Meridian)) + +julia> lightspeed(Meridian) # em⋅s⁻¹ +$(lightspeed(Meridian)) + +julia> vacuumpermeability(Meridian) # kegf⋅s²⋅eC⁻² +$(vacuumpermeability(Meridian)) + +julia> electronmass(Meridian) # keg +$(electronmass(Meridian)) + +julia> molarmass(Meridian) # keg⋅eg-mol⁻¹ +$(molarmass(Meridian)) + +julia> luminousefficacy(Meridian) # lm⋅W⁻¹ +$(luminousefficacy(Meridian)) +``` +""" Meridian + +@doc """ + MeridianEngineering = EntropySystem(MetricEngineering,𝟏,em,em^3,𝟏,τ/𝟐^6/𝟓^7/g₀^2,milli) + +Systeme International d'Unites (the SI units) based on kilogram and kilopond units. + +```Julia +julia> boltzmann(MeridianEngineering) # kegf⋅em⋅K⁻¹ +$(boltzmann(MeridianEngineering)) + +julia> planckreduced(MeridianEngineering) # kegf⋅em⋅s⋅rad⁻¹ +$(planckreduced(MeridianEngineering)) + +julia> lightspeed(MeridianEngineering) # em⋅s⁻¹ +$(lightspeed(MeridianEngineering)) + +julia> vacuumpermeability(MeridianEngineering) # kegf⋅s²⋅eC⁻² +$(vacuumpermeability(MeridianEngineering)) + +julia> electronmass(MeridianEngineering) # keg +$(electronmass(MeridianEngineering)) + +julia> molarmass(MeridianEngineering) # keg⋅eg-mol⁻¹ +$(molarmass(MeridianEngineering)) + +julia> luminousefficacy(MeridianEngineering) # lm⋅s⋅m⁻¹⋅kgf⁻¹ +$(luminousefficacy(MeridianEngineering)) + +julia> gravity(MeridianEngineering) # keg⋅em⋅kegf⁻¹⋅s⁻² +$(gravity(MeridianEngineering)) +``` +""" MeridianEngineering + + cgstext(US,AMP,cgs=eval(US)) = """ ```Julia julia> boltzmann($US) # erg⋅K⁻¹ @@ -334,6 +455,9 @@ $(electronmass(cgs)) julia> molarmass($US) # g⋅mol⁻¹ $(molarmass(cgs)) +julia> luminousefficacy($US) # lm⋅s⋅erg⁻¹ +$(luminousefficacy(cgs)) + julia> rationalization($US) $(rationalization(cgs)) ``` @@ -342,23 +466,23 @@ $(rationalization(cgs)) for U ∈ (:CGSm,:CGSe,:EMU,:ESU) (EU,AMP) = QuoteNode.(U ∉ (:CGSe,:ESU) ? (:EMU,:Bi) : (:ESU,:statA)) @eval @doc """ - $($(QuoteNode(U))) = GaussSystem(Metric,$($EU≠:EMU ? "(𝟏𝟎*𝘤)^-2" : 𝟏),𝟐*τ) + $($(QuoteNode(U))) = GaussSystem(Metric,$($EU≠:EMU ? "(𝟏𝟎*𝘤)^-2" : "𝟏"),𝟐*τ) Centimetre-gram-second `UnitSystem` variant based on `$($EU)` (non-rationalized). $(cgstext($(QuoteNode(U)),$AMP)) """ $U -U ∉ (:CGSm,:CGSe) && @eval @doc """ +#=U ∉ (:CGSm,:CGSe) && @eval @doc """ $(Symbol($(QuoteNode(U)),:2019)) = EntropySystem(SI2019,𝟏,0.01,0.001,𝟏,$($EU≠:EMU ? "1e3*μ₀/𝘤^2" : "1e7*μ₀")) Centimetre-gram-second `UnitSystem` variant of tuned `SI2019` based on `$($EU)` (rationalized). $(cgstext(Symbol($(QuoteNode(U)),:2019),$AMP)) -""" $(Symbol(U,:2019)) +""" $(Symbol(U,:2019))=# end -@doc """ +#=@doc """ Thomson = GaussSystem(Metric,𝟏,𝟐*τ,𝟏/𝟐) Centimetre-gram-second `UnitSystem` variant `Thomson` (EMU-Lorentz, non-rationalized). @@ -382,13 +506,16 @@ $(electronmass(Thomson)) julia> molarmass(Thomson) # g⋅mol⁻¹ $(molarmass(Thomson)) +julia> luminousefficacy(Thomson) # lm⋅s⋅erg⁻¹ +$(luminousefficacy(Thomson)) + julia> rationalization(Thomson) $(rationalization(Thomson)) julia> lorentz(Thomson) $(lorentz(Thomson)) ``` -""" Thomson +""" Thomson=# @doc """ Gauss = GaussSystem(Metric,𝟏,𝟐*τ,𝟏𝟎^-2/𝘤) @@ -414,6 +541,9 @@ $(electronmass(Gauss)) julia> molarmass(Gauss) # g⋅mol⁻¹ $(molarmass(Gauss)) +julia> luminousefficacy(Gauss) # lm⋅s⋅erg⁻¹ +$(luminousefficacy(Gauss)) + julia> rationalization(Gauss) $(rationalization(Gauss)) @@ -423,7 +553,7 @@ $(lorentz(Gauss)) """ Gauss, CGS @doc """ - LorentzHeaviside = GaussSystem(Metric,𝟏,𝟏,𝟏𝟎^-2/𝘤) + LorentzHeaviside = GaussSystem(Metric,𝟏,𝟏,centi/𝘤) Centimetre-gram-second `UnitSystem` variant `HLU` (Heaviside-Lorentz, rationalized). @@ -446,6 +576,9 @@ $(electronmass(LorentzHeaviside)) julia> molarmass(LorentzHeaviside) # g⋅mol⁻¹ $(molarmass(LorentzHeaviside)) +julia> luminousefficacy(LorentzHeaviside) # lm⋅s⋅erg⁻¹ +$(luminousefficacy(LorentzHeaviside)) + julia> rationalization(LorentzHeaviside) $(rationalization(LorentzHeaviside)) @@ -478,6 +611,9 @@ $(electronmass(Kennelly)) julia> molarmass(Kennelly) # kg⋅mol⁻¹ $(molarmass(Kennelly)) +julia> luminousefficacy(Kennelly) # lm⋅W⁻¹ +$(luminousefficacy(Kennelly)) + julia> rationalization(Kennelly) $(rationalization(Kennelly)) ``` @@ -489,10 +625,10 @@ $(rationalization(Kennelly)) Systeme International d'Unites (the SI units) based on hyl and kilopond units. ```Julia -julia> boltzmann(GravitationalMetric) # J⋅K⁻¹ +julia> boltzmann(GravitationalMetric) # kgf⋅m⋅K⁻¹ $(boltzmann(GravitationalMetric)) -julia> planckreduced(GravitationalMetric) # J⋅s⋅rad⁻¹ +julia> planckreduced(GravitationalMetric) # kgf⋅m⋅s⋅rad⁻¹ $(planckreduced(GravitationalMetric)) julia> lightspeed(GravitationalMetric) # m⋅s⁻¹ @@ -506,6 +642,9 @@ $(electronmass(GravitationalMetric)) julia> molarmass(GravitationalMetric) # hyl⋅mol⁻¹ $(molarmass(GravitationalMetric)) + +julia> luminousefficacy(GravitationalMetric) # lm⋅s⋅m⁻¹⋅kgf⁻¹ +$(luminousefficacy(GravitationalMetric)) ``` """ GravitationalMetric, GM @@ -515,28 +654,60 @@ $(molarmass(GravitationalMetric)) Systeme International d'Unites (the SI units) based on hyl and kilopond units. ```Julia -julia> boltzmann(GravitationalSI2019) # J⋅K⁻¹ +julia> boltzmann(GravitationalSI2019) # kgf⋅m⋅K⁻¹ $(boltzmann(GravitationalSI2019)) -julia> planckreduced(GravitationalSI2019) # J⋅s⋅rad⁻¹ +julia> planckreduced(GravitationalSI2019) # kgf⋅m⋅s⋅rad⁻¹ $(planckreduced(GravitationalSI2019)) julia> lightspeed(GravitationalSI2019) # m⋅s⁻¹ $(lightspeed(GravitationalSI2019)) -julia> vacuumpermeability(SI2019Engineering) # H⋅m⁻¹ +julia> vacuumpermeability(GravitationalSI2019) # kgf⋅s²⋅C⁻² $(vacuumpermeability(GravitationalSI2019)) -julia> electronmass(SI2019Engineering) # hyl +julia> electronmass(GravitationalSI2019) # hyl $(electronmass(GravitationalSI2019)) -julia> molarmass(SI2019) # hyl⋅mol⁻¹ -$(molarmass(SI2019Engineering)) +julia> molarmass(GravitationalSI2019) # hyl⋅mol⁻¹ +$(molarmass(GravitationalSI2019)) + +julia> luminousefficacy(GravitationalMetric) # lm⋅s⋅m⁻¹⋅kgf⁻¹ +$(luminousefficacy(GravitationalMetric)) ``` """ GravitationalSI2019, GSI, GSI2019 @doc """ - MTS = EntropySystem(SI2019,𝟏,𝟏,𝟏𝟎^3) + GravitationalMeridian = EntropySystem(Metric,𝟏,em,g₀*em^3,𝟏,τ/𝟐^6/𝟓^7/g₀,milli) + +Systeme International d'Unites (the SI units) based on hyl and kilopond units. + +```Julia +julia> boltzmann(GravitationalMeridian) # kegf⋅em⋅K⁻¹ +$(boltzmann(GravitationalMeridian)) + +julia> planckreduced(GravitationalMeridian) # kegf⋅em⋅s⋅rad⁻¹ +$(planckreduced(GravitationalMeridian)) + +julia> lightspeed(GravitationalMeridian) # em⋅s⁻¹ +$(lightspeed(GravitationalMeridian)) + +julia> vacuumpermeability(GravitationalMeridian) # kegf⋅s²⋅eC⁻² +$(vacuumpermeability(GravitationalMeridian)) + +julia> electronmass(GravitationalMeridian) # ehyl +$(electronmass(GravitationalMeridian)) + +julia> molarmass(GravitationalMeridian) # ehyl⋅eg-mol⁻¹ +$(molarmass(GravitationalMeridian)) + +julia> luminousefficacy(GravitationalMeridian) # lm⋅s⋅em⁻¹⋅kegf⁻¹ +$(luminousefficacy(GravitationalMeridian)) +``` +""" GravitationalMeridian + +@doc """ + MTS = EntropySystem(SI2019,𝟏,𝟏,kilo) Metre-tonne-second `UnitSystem` variant of `Metric` system. @@ -558,25 +729,28 @@ $(electronmass(MTS)) julia> molarmass(MTS) # t⋅mol⁻¹ $(molarmass(MTS)) + +julia> luminousefficacy(MTS) # lm⋅kW⁻¹ +$(luminousefficacy(MTS)) ``` """ MTS @doc """ - KKH = EntropySystem(Metric,HOUR,𝟏𝟎^3,𝟏) + KKH = EntropySystem(Metric,HOUR,kilo,𝟏) Kilometer-kilogram-hour `UnitSystem` variant of `Metric` system. ```Julia -julia> boltzmann(KKH) +julia> boltzmann(KKH) # kg⋅km²⋅h⁻²⋅K⁻¹ $(boltzmann(KKH)) -julia> planckreduced(KKH) +julia> planckreduced(KKH) # kg⋅km²⋅h⁻¹ $(planckreduced(KKH)) julia> lightspeed(KKH) # km⋅hr⁻¹ $(lightspeed(KKH)) -julia> vacuumpermeability(KKH) +julia> vacuumpermeability(KKH) # kg⋅km⋅C⁻² $(vacuumpermeability(KKH)) julia> electronmass(KKH) # kg @@ -584,6 +758,9 @@ $(electronmass(KKH)) julia> molarmass(KKH) # kg⋅mol⁻¹ $(molarmass(KKH)) + +julia> luminousefficacy(KKH) # lm⋅h³⋅kg⁻¹⋅km⁻² +$(luminousefficacy(KKH)) ``` """ KKH @@ -611,8 +788,11 @@ $(electronmass(IAU)) julia> molarmass(IAU) # M☉⋅mol⁻¹ $(molarmass(IAU)) -julia> newton(IAU) -$(newton(IAU)) +julia> luminousefficacy(IAU) # lm⋅D³⋅M☉⁻¹⋅au⁻² +$(luminousefficacy(IAU)) + +julia> gaussgravitation(IAU) # au³ᐟ²⋅M☉⁻¹ᐟ²⋅D⁻¹ +$(gaussgravitation(IAU)) ``` """ IAU☉, IAU @@ -639,6 +819,9 @@ $(electronmass(IAUE)) julia> molarmass(IAUE) # ME⋅mol⁻¹ $(molarmass(IAUE)) + +julia> luminousefficacy(IAUE) # lm⋅D³⋅ME⁻¹⋅au⁻² +$(luminousefficacy(IAUE)) ``` """ IAUE @@ -660,15 +843,18 @@ $(lightspeed(IAUJ)) julia> vacuumpermeability(IAUJ) # MJ⋅au²⋅C⁻² $(vacuumpermeability(IAUJ)) -julia> electronmass(IAU) # MJ +julia> electronmass(IAUJ) # MJ $(electronmass(IAUJ)) julia> molarmass(IAUJ) # MJ⋅mol⁻¹ $(molarmass(IAUJ)) + +julia> luminousefficacy(IAUJ) # lm⋅D³⋅MJ⁻¹⋅au⁻² +$(luminousefficacy(IAUJ)) ``` """ IAUJ -@doc """ +#=@doc """ Astronomical = AstronomicalSystem(Metric) Astronomical `UnitSystem` defined by making the `newton` gravitational constant 1. @@ -692,10 +878,13 @@ $(electronmass(Astronomical)) julia> molarmass(Astronomical) $(molarmass(Astronomical)) -julia> newton(Astronomical) -$(newton(Astronomical)) +julia> luminousefficacy(Astronomical) +$(luminousefficacy(Astronomical)) + +julia> gravitation(Astronomical) +$(gravitation(Astronomical)) ``` -""" Astronomical +""" Astronomical=# @doc """ Hubble = EntropySystem(Metric,th,𝘤*th,𝟏) @@ -721,8 +910,14 @@ $(electronmass(Hubble)) julia> molarmass(Hubble) $(molarmass(Hubble)) +julia> luminousefficacy(Hubble) +$(luminousefficacy(Hubble)) + julia> hubble(Hubble) $(hubble(Hubble)) + +julia> cosmological(Hubble) +$(cosmological(Hubble)) ``` """ Hubble @@ -749,6 +944,15 @@ $(electronmass(Cosmological)) julia> molarmass(Cosmological) $(molarmass(Cosmological)) + +julia> luminousefficacy(Cosmological) +$(luminousefficacy(Cosmological)) + +julia> hubble(Cosmological) +$(hubble(Cosmological)) + +julia> cosmological(Cosmological) +$(cosmological(Cosmological)) ``` """ Cosmological @@ -773,8 +977,11 @@ $(vacuumpermeability(CosmologicalQuantum)) julia> electronmass(CosmologicalQuantum) $(electronmass(CosmologicalQuantum)) -julia> molarmass(Cosmological) -$(molarmass(Cosmological)) +julia> molarmass(CosmologicalQuantum) +$(molarmass(CosmologicalQuantum)) + +julia> luminousefficacy(CosmologicalQuantum) +$(luminousefficacy(CosmologicalQuantum)) ``` """ CosmologicalQuantum @@ -793,7 +1000,7 @@ $(planckreduced(British)) julia> lightspeed(British) # ft⋅s⁻¹ $(lightspeed(British)) -julia> vacuumpermeability(British) # slug⋅ft²⋅?⁻² +julia> vacuumpermeability(British) # slug⋅ft⋅C⁻² $(vacuumpermeability(British)) julia> electronmass(British) # slugs @@ -801,34 +1008,11 @@ $(electronmass(British)) julia> molarmass(British) # slug⋅slug-mol⁻¹ $(molarmass(British)) -``` -""" British, BritishGravitational, BG - -@doc """ - British2019 = RankineSystem(SI2019,ft,slug) - -British Gravitational `UnitSystem` historically used by Britain and United States. - -```Julia -julia> boltzmann(British2019) # ft⋅lb⋅°R⁻¹ -$(boltzmann(British2019)) - -julia> planckreduced(British2019) # ft⋅lb⋅s⋅rad⁻¹ -$(planckreduced(British2019)) - -julia> lightspeed(British2019) # ft⋅s⁻¹ -$(lightspeed(British2019)) - -julia> vacuumpermeability(British2019) # slug⋅ft²⋅?⁻² -$(vacuumpermeability(British2019)) -julia> electronmass(British2019) # slugs -$(electronmass(British2019)) - -julia> molarmass(British2019) # slug⋅slug-mol⁻¹ -$(molarmass(British2019)) +julia> luminousefficacy(British) # lm⋅s⋅ft⁻¹⋅lb⁻¹ +$(luminousefficacy(British)) ``` -""" British2019, BritishGravitational2019, BG2019 +""" British, BritishGravitational, BG @doc """ English = RankineSystem(Metric,ft,lb,g₀/ft) @@ -845,7 +1029,7 @@ $(planckreduced(English)) julia> lightspeed(English) # ft⋅s⁻¹ $(lightspeed(English)) -julia> vacuumpermeability(English) # lbm⋅ft²⋅?⁻² +julia> vacuumpermeability(English) # lbm⋅ft⋅C⁻² $(vacuumpermeability(English)) julia> electronmass(English) # lbm @@ -854,40 +1038,14 @@ $(electronmass(English)) julia> molarmass(English) # lbm⋅lb-mol⁻¹ $(molarmass(English)) +julia> luminousefficacy(English) # lm⋅s⋅ft⁻¹⋅lbf⁻¹ +$(luminousefficacy(English)) + julia> gravity(English) # lbm⋅ft⋅lbf⁻¹⋅s⁻² $(gravity(English)) ``` """ English, EnglishEngineering, EE -@doc """ - English2019 = RankineSystem(SI2019,ft,lb,g₀/ft) - -English Engineering `UnitSystem` historically used in the United States of America. - -```Julia -julia> boltzmann(English2019) # ftUS⋅lbf⋅°R⁻¹ -$(boltzmann(English2019)) - -julia> planckreduced(English2019) # ft⋅lbf⋅s⋅rad⁻¹ -$(planckreduced(English2019)) - -julia> lightspeed(English2019) # ft⋅s⁻¹ -$(lightspeed(English2019)) - -julia> vacuumpermeability(English2019) # lbm⋅ft²⋅?⁻² -$(vacuumpermeability(English2019)) - -julia> electronmass(English2019) # lbm -$(electronmass(English2019)) - -julia> molarmass(English2019) # lbm⋅lb-mol⁻¹ -$(molarmass(English2019)) - -julia> gravity(English2019) # lbm⋅ft⋅lbf⁻¹⋅s⁻² -$(gravity(English2019)) -``` -""" English2019, EnglishEngineering2019, EE2019 - @doc """ Survey = RankineSystem(Metric,ftUS,lb,g₀/ftUS) @@ -903,7 +1061,7 @@ $(planckreduced(Survey)) julia> lightspeed(Survey) # ftUS⋅s⁻¹ $(lightspeed(Survey)) -julia> vacuumpermeability(Survey) # lbm⋅ftUS²⋅?⁻² +julia> vacuumpermeability(Survey) # lbm⋅ftUS⋅C⁻² $(vacuumpermeability(Survey)) julia> electronmass(Survey) # lbm @@ -912,40 +1070,14 @@ $(electronmass(Survey)) julia> molarmass(Survey) # lbm⋅lb-mol⁻¹ $(molarmass(Survey)) +julia> luminousefficacy(Survey) # lm⋅s⋅ft⁻¹⋅lbf⁻¹ +$(luminousefficacy(Survey)) + julia> gravity(Survey) # lbm⋅ftUS⋅lbf⁻¹⋅s⁻² $(gravity(Survey)) ``` """ Survey, EnglishUS -@doc """ - Survey2019 = RankineSystem(SI2019,ftUS,lb,g₀/ftUS) - -English Engineering `UnitSystem` based on the geophysical US survey foot (1200/3937). - -```Julia -julia> boltzmann(Survey2019) # ftUS⋅lbf⋅°R⁻¹ -$(boltzmann(Survey2019)) - -julia> planckreduced(Survey2019) # ftUS⋅lbf⋅s⋅rad⁻¹ -$(planckreduced(Survey2019)) - -julia> lightspeed(Survey2019) # ftUS⋅s⁻¹ -$(lightspeed(Survey2019)) - -julia> vacuumpermeability(Survey2019) # lbm⋅ftUS²⋅?⁻² -$(vacuumpermeability(Survey2019)) - -julia> electronmass(Survey2019) # lbm -$(electronmass(Survey2019)) - -julia> molarmass(Survey2019) # lbm⋅lb-mol⁻¹ -$(molarmass(Survey2019)) - -julia> gravity(Survey2019) # lbm⋅ftUS⋅lbf⁻¹⋅s⁻² -$(gravity(Survey2019)) -``` -""" Survey2019 - @doc """ FPS = RankineSystem(Metric,ft,lb) @@ -961,7 +1093,7 @@ $(planckreduced(FPS)) julia> lightspeed(FPS) # ft⋅s⁻¹ $(lightspeed(FPS)) -julia> vacuumpermeability(FPS) # lb⋅ft²⋅?⁻² +julia> vacuumpermeability(FPS) # lb⋅ft⋅C⁻² $(vacuumpermeability(FPS)) julia> electronmass(FPS) # lb @@ -969,34 +1101,40 @@ $(electronmass(FPS)) julia> molarmass(FPS) # lb⋅lb-mol⁻¹ $(molarmass(FPS)) + +julia> luminousefficacy(FPS) # lm⋅s³⋅lb⁻¹⋅ft⁻² +$(luminousefficacy(FPS)) ``` """ FPS, AbsoluteEnglish, AE @doc """ - FPS2019 = RankineSystem(SI2019,ft,lb) + IPS = RankineSystem(Metric,ft/𝟐^2/𝟑,lb*g₀*𝟐^2*𝟑/ft) -Absolute English `UnitSystem` based on the foot, pound, second, and poundal. +British Gravitational `UnitSystem` historically used in the United States of America. ```Julia -julia> boltzmann(FPS2019) # ft⋅pdl⋅°R⁻¹ -$(boltzmann(FPS2019)) +julia> boltzmann(IPS) # in⋅lb⋅°R⁻¹ +$(boltzmann(IPS)) -julia> planckreduced(FPS2019) # ft⋅pdl⋅s⋅rad⁻¹ -$(planckreduced(FPS2019)) +julia> planckreduced(IPS) # in⋅lb⋅s⋅rad⁻¹ +$(planckreduced(IPS)) -julia> lightspeed(FPS2019) # ft⋅s⁻¹ -$(lightspeed(FPS2019)) +julia> lightspeed(IPS) # in⋅s⁻¹ +$(lightspeed(IPS)) -julia> vacuumpermeability(FPS2019) # lb⋅ft²⋅?⁻² -$(vacuumpermeability(FPS2019)) +julia> vacuumpermeability(IPS) # slinch⋅in⋅C⁻² +$(vacuumpermeability(IPS)) -julia> electronmass(FPS2019) # lb -$(electronmass(FPS2019)) +julia> electronmass(IPS) # slinch +$(electronmass(IPS)) -julia> molarmass(FPS2019) # lb⋅lb-mol⁻¹ -$(molarmass(FPS2019)) +julia> molarmass(IPS) # slinch⋅slinch-mol⁻¹ +$(molarmass(IPS)) + +julia> luminousefficacy(IPS) # lm⋅s⋅in⁻¹⋅lb⁻¹ +$(luminousefficacy(IPS)) ``` -""" FPS2019, AE2019, AbsoluteEnglish2019 +""" IPS @doc """ FFF = EntropySystem(Metric,𝟐*𝟕*DAY,fur,𝟐*𝟑^2*𝟓*lb,°R,0,𝟏) @@ -1013,7 +1151,7 @@ $(planckreduced(FFF)) julia> lightspeed(FFF) # fur⋅ftn⁻¹ $(lightspeed(FFF)) -julia> vacuumpermeability(FFF) # fir⋅fur²⋅Inf⁻² +julia> vacuumpermeability(FFF) # fir⋅fur⋅Inf⁻² $(vacuumpermeability(FFF)) julia> electronmass(FFF) # fir @@ -1021,13 +1159,16 @@ $(electronmass(FFF)) julia> molarmass(FFF) # fir⋅fir-mol⁻¹ $(molarmass(FFF)) + +julia> luminousefficacy(FFF) # lm⋅ftn³⋅fir⁻¹⋅fur⁻² +$(luminousefficacy(FFF)) ``` """ FFF @doc """ - MPH = EntropySystem(English,HOUR,𝟐^5*𝟑*𝟓*𝟏𝟏,𝟏) + MPH = EntropySystem(FPS,HOUR,mi,𝟏) -Miles, pound, hour specification based on `English` Engineering `UnitSystem`. +Miles, pound, hour specification based on `FPS` absolute `UnitSystem`. ```Julia julia> boltzmann(MPH) # lbf⋅mi²⋅hr⁻²⋅F⁻¹ @@ -1039,7 +1180,7 @@ $(planckreduced(MPH)) julia> lightspeed(MPH) # mi⋅hr⁻¹ $(lightspeed(MPH)) -julia> vacuumpermeability(MPH) # lbm⋅mi²⋅Inf⁻² +julia> vacuumpermeability(MPH) # lbm⋅mi⋅C⁻² $(vacuumpermeability(MPH)) julia> electronmass(MPH) # lbm @@ -1047,32 +1188,38 @@ $(electronmass(MPH)) julia> molarmass(MPH) # lbm⋅lb-mol⁻¹ $(molarmass(MPH)) + +julia> luminousefficacy(MPH) # lm⋅h³⋅lb⁻¹⋅mi⁻² +$(luminousefficacy(MPH)) ``` """ MPH @doc """ - Nautical = EntropySystem(English,HOUR,𝟐^6*𝟓*𝟏𝟗,𝟏) + Nautical = EntropySystem(Metric,HOUR,nm,em^3,𝟏,τ*𝟑^3/𝟐^10/𝟓^12,milli) -Nautical miles, pound, hour specification based on `English` Engineering `UnitSystem`. +Nautical miles, kilo-earthgram, hour specification based on `Meridian` definition. ```Julia -julia> boltzmann(Nautical) # lbf⋅nm²⋅hr⁻²⋅F⁻¹ +julia> boltzmann(Nautical) # keg⋅nm²⋅hr⁻²⋅K⁻¹ $(boltzmann(Nautical)) -julia> planckreduced(Nautical) # lbf⋅nm²⋅hr⁻¹⋅rad⁻¹ +julia> planckreduced(Nautical) # keg⋅nm²⋅hr⁻¹⋅rad⁻¹ $(planckreduced(Nautical)) julia> lightspeed(Nautical) # nm⋅hr⁻¹ $(lightspeed(Nautical)) -julia> vacuumpermeability(Nautical) # lbm⋅nm²⋅Inf⁻² +julia> vacuumpermeability(Nautical) # keg⋅nm⋅eC⁻² $(vacuumpermeability(Nautical)) -julia> electronmass(Nuatical) # lbm +julia> electronmass(Nautical) # keg $(electronmass(Nautical)) -julia> molarmass(Nautical) # lbm⋅lb-mol⁻¹ +julia> molarmass(Nautical) # keg⋅eg-mol⁻¹ $(molarmass(Nautical)) + +julia> luminousefficacy(Nautical) # lm⋅h³⋅keg⁻¹⋅nm⁻² +$(luminousefficacy(Nautical)) ``` """ Nautical diff --git a/src/thermodynamic.jl b/src/thermodynamic.jl index b153104..8ff624b 100644 --- a/src/thermodynamic.jl +++ b/src/thermodynamic.jl @@ -46,6 +46,7 @@ Converts the number of moles `n` to number of molecules (dimensionless). @pure volumeheatcapacity(U::UnitSystem,S::UnitSystem) = unit(entropy(U,S)/volume(U,S)) @pure thermalconductivity(U::UnitSystem,S::UnitSystem) = unit(force(U,S)/time(U,S)/temperature(U,S)) @pure thermalconductance(U::UnitSystem,S::UnitSystem) = unit(thermalconductivity(U,S)*length(U,S)) +@pure thermalresistivity(U::UnitSystem,S::UnitSystem) = thermalconductivity(S,U) @pure thermalresistance(U::UnitSystem,S::UnitSystem) = thermalconductance(S,U) @pure thermalexpansion(U::UnitSystem,S::UnitSystem) = temperature(S,U) @pure lapserate(U::UnitSystem,S::UnitSystem) = unit(temperature(U,S)/length(U,S)) @@ -53,21 +54,23 @@ Converts the number of moles `n` to number of molecules (dimensionless). # molar @pure molality(U::UnitSystem,S::UnitSystem) = molarmass(S,U) -@pure mole(U::UnitSystem,S::UnitSystem) = unit(mass(U,S)*molality(U,S)) -@pure molarity(U::UnitSystem,S::UnitSystem) = unit(mole(U,S)/volume(U,S)) -@pure molarvolume(U::UnitSystem,S::UnitSystem) = unit(volume(U,S)/mole(U,S)) -@pure molarentropy(U::UnitSystem,S::UnitSystem) = unit(entropy(U,S)/mole(U,S)) -@pure molarenergy(U::UnitSystem,S::UnitSystem) = unit(energy(U,S)/mole(U,S)) -@pure molarconductivity(U::UnitSystem,S::UnitSystem) = unit(conductivity(U,S)*area(U,S)/mole(U,S)) +@pure molaramount(U::UnitSystem,S::UnitSystem) = unit(mass(U,S)*molality(U,S)) +@pure molarity(U::UnitSystem,S::UnitSystem) = unit(molaramount(U,S)/volume(U,S)) +@pure molarvolume(U::UnitSystem,S::UnitSystem) = unit(volume(U,S)/molaramount(U,S)) +@pure molarentropy(U::UnitSystem,S::UnitSystem) = unit(entropy(U,S)/molaramount(U,S)) +@pure molarenergy(U::UnitSystem,S::UnitSystem) = unit(energy(U,S)/molaramount(U,S)) +@pure molarconductivity(U::UnitSystem,S::UnitSystem) = unit(conductivity(U,S)*area(U,S)/molaramount(U,S)) @pure molarsusceptibility(U::UnitSystem,S::UnitSystem) = unit(specificsusceptibility(U,S)*molarmass(U,S)) -@pure catalysis(U::UnitSystem,S::UnitSystem) = unit(mole(U,S)/time(U,S)) -@pure specificity(U::UnitSystem,S::UnitSystem) = unit(volume(U,S)/mole(U,S)/time(U,S)) +@pure catalysis(U::UnitSystem,S::UnitSystem) = unit(molaramount(U,S)/time(U,S)) +@pure specificity(U::UnitSystem,S::UnitSystem) = unit(volume(U,S)/molaramount(U,S)/time(U,S)) # photometrics -@pure luminousflux(U::UnitSystem,S::UnitSystem) = unit(frequency(U,S)^2*(luminousefficacy(S)*planckreduced(S))/(luminousefficacy(U)*planckreduced(U))) -@pure luminance(U::UnitSystem,S::UnitSystem) = unit(luminousflux(U,S)/area(U,S)) -@pure luminousenergy(U::UnitSystem,S::UnitSystem) = unit(frequency(U,S)*(luminousefficacy(S)*planckreduced(S))/(luminousefficacy(U)*planckreduced(U))) -@pure luminousexposure(U::UnitSystem,S::UnitSystem) = unit(luminance(U,S)*time(U,S)) +@pure luminousflux(U::UnitSystem,S::UnitSystem) = unit(frequency(U,S)*luminousenergy(U,S)) +@pure luminousintensity(U::UnitSystem,S::UnitSystem) = unit(luminousflux(U,S)/solidangle(U,S)) +@pure illuminance(U::UnitSystem,S::UnitSystem) = unit(luminousflux(U,S)/area(U,S)) +@pure luminance(U::UnitSystem,S::UnitSystem) = unit(luminousintensity(U,S)/area(U,S)) +@pure luminousenergy(U::UnitSystem,S::UnitSystem) = unit(frequency(U,S)*(luminousefficacy(S)*planck(S))/(luminousefficacy(U)*planck(U))) +@pure luminousexposure(U::UnitSystem,S::UnitSystem) = unit(illuminance(U,S)*time(U,S)) include("thermodynamicdocs.jl") diff --git a/src/thermodynamicdocs.jl b/src/thermodynamicdocs.jl index 8a8419b..76bcc32 100644 --- a/src/thermodynamicdocs.jl +++ b/src/thermodynamicdocs.jl @@ -145,6 +145,24 @@ $(thermalresistance(English,Metric)) ``` """ thermalresistance +@doc """ +$(convertext(:thermalresistivity,"1/thermalconductivity(U,S)")) + +Resistance to heat flow or `thermalresistance` (K⋅W⁻¹), unit conversion factor. + +```Julia +julia> thermalresistance(Metric,SI2019) # K⋅K⁻¹ +$(thermalresistance(Metric,SI2019)) + +julia> thermalresistance(CGS,Metric) # erg⋅s⁻¹⋅W⁻¹ +$(thermalresistance(CGS,Metric)) + +julia> thermalresistance(English,Metric) # ft⋅lb⋅K⋅°R⁻¹⋅J⁻¹ +$(thermalresistance(English,Metric)) +``` +""" thermalresistivity + + @doc """ $(convertext(:thermalexpansion,"1/temperature(U,S)")) @@ -190,7 +208,7 @@ $(convertext(:molarmass,"molarmass(S)/molarmass(U)")) Molar mass or `mass` per `mole` (kg⋅mol⁻¹), unit conversion factor. ```Julia -julia> molarmass(CGS,Metric) # mol⋅mol⁻¹ +julia> molarmass(CGS,Metric) # kg⋅g⁻¹ $(molarmass(CGS,Metric)) julia> molarmass(Metric,SI2019) # mol⋅mol⁻¹ @@ -204,7 +222,7 @@ $(convertext(:molality,"molarmass(U)/molarmass(S)")) Molality or `mole` per `mass` (mol⋅kg⁻¹), unit conversion factor. ```Julia -julia> molality(CGS,Metric) # mol⋅mol⁻¹ +julia> molality(CGS,Metric) # kg⋅g⁻¹ $(molality(CGS,Metric)) julia> molality(Metric,SI2019) # mol⋅mol⁻¹ @@ -213,28 +231,28 @@ $(molality(Metric,SI2019)) """ molality @doc """ -$(convertext(:mole,"mass(U,S)*molality(U,S)")) +$(convertext(:molaramount,"mass(U,S)*molality(U,S)")) -Amount of molecular substance or `mole` (mol), unit conversion factor. +Amount of molecular substance or `molaramount` (mol), unit conversion factor. ```Julia -julia> mole(SI2019,Metric) # mol⋅mol⁻¹ -$(mole(SI2019,Metric)) +julia> molaramount(SI2019,Metric) # mol⋅mol⁻¹ +$(molaramount(SI2019,Metric)) -julia> mole(British,SI2019) # mol⋅slug-mol⁻¹ -$(mole(English,SI2019)) +julia> molaramount(British,SI2019) # mol⋅slug-mol⁻¹ +$(molaramount(English,SI2019)) -julia> mole(English,SI2019) # mol⋅lb-mol⁻¹ -$(mole(English,SI2019)) +julia> molaramount(English,SI2019) # mol⋅lb-mol⁻¹ +$(molaramount(English,SI2019)) ``` -""" mole, N -#julia> mole(English,SI2019)*ft/g₀ # mol⋅lb-mol⁻¹ -#$(mole(English,SI2019)*ft/g₀) +""" molaramount, N +#julia> molaramount(English,SI2019)*ft/g₀ # mol⋅lb-mol⁻¹ +#$(molaramount(English,SI2019)*ft/g₀) @doc """ -$(convertext(:molarity,"mole(U,S)/volume(U,S)")) +$(convertext(:molarity,"molaramount(U,S)/volume(U,S)")) -Molar concentration or `mole` per `volume` or `molarity` (mol⋅m⁻³), unit conversion factor. +Molar concentration or `molaramount` per `volume` (mol⋅m⁻³), unit conversion factor. ```Julia julia> molarity(CGS,Metric) # cm³⋅m⁻³ @@ -246,9 +264,9 @@ $(molarity(English,SI2019)) """ molarity @doc """ -$(convertext(:molarvolume,"volume(U,S)/mole(U,S)")) +$(convertext(:molarvolume,"volume(U,S)/molaramount(U,S)")) -Occupied `volume` per `mole` or `molarvolume` (m³⋅mol⁻¹), unit conversion factor. +Occupied `volume` per `molaramount` or `molarvolume` (m³⋅mol⁻¹), unit conversion factor. ```Julia julia> molarvolume(CGS,Metric) # m³⋅cm⁻³ @@ -260,9 +278,9 @@ $(molarvolume(English,SI2019)) """ molarvolume @doc """ -$(convertext(:molarentropy,"entropy(U,S)/mole(U,S)")) +$(convertext(:molarentropy,"entropy(U,S)/molaramount(U,S)")) -Molar heat capacity or `entropy` per `mole` (J⋅K⁻¹⋅mol⁻¹), unit conversion factor. +Molar heat capacity or `entropy` per `molaramount` (J⋅K⁻¹⋅mol⁻¹), unit conversion factor. ```Julia julia> molarentropy(CGS,Metric) # J⋅erg⁻¹ @@ -274,7 +292,7 @@ $(molarentropy(English,SI2019)) """ molarentropy @doc """ -$(convertext(:molarenergy,"energy(U,S)/mole(U,S)")) +$(convertext(:molarenergy,"energy(U,S)/molaramount(U,S)")) Gibbs free `energy` per `mole` or `molarenergy` (J⋅mol⁻¹), unit conversion factor. @@ -288,7 +306,7 @@ $(molarenergy(English,SI2019)) """ molarenergy @doc """ -$(convertext(:molarconductivity,"conductivity(U,S)*area(U,S)/mole(U,S)")) +$(convertext(:molarconductivity,"conductivity(U,S)*area(U,S)/molaramount(U,S)")) Conductivity per `molarvolume` or `molarconductivity` (S⋅m²⋅mol⁻¹), unit conversion factor. @@ -316,9 +334,9 @@ $(molarsusceptibility(Metric,SI2019)) """ molarsusceptibility @doc """ -$(convertext(:catalysis,"mole(U,S)/time(U,S)")) +$(convertext(:catalysis,"molaramount(U,S)/time(U,S)")) -Catalytic activity or `mole` per `time` or `catalysis` (kat, mol⋅s⁻¹), unit conversion factor. +Catalytic activity or `molaramount` per `time` (kat, mol⋅s⁻¹), unit conversion factor. ```Julia julia> catalysis(English,Metric) # kat⋅s⋅lb-mol⁻¹ @@ -327,7 +345,7 @@ $(catalysis(English,Metric)) """ catalysis @doc """ -$(convertext(:specificity,"volume(U,S)/mole(U,S)/time(U,S)")) +$(convertext(:specificity,"volume(U,S)/molaramount(U,S)/time(U,S)")) Catalytic efficiency or `volume` per `mole` per `time` (m³⋅mol⁻¹⋅s⁻¹), unit conversion factor. @@ -343,15 +361,21 @@ $(specificity(English,Metric)) # photometrics @doc """ -$(convertext(:luminousflux,"luminousefficacy(U,S)*planck(U,S)/time(U,S)^2")) +$(convertext(:luminousflux,"luminousenergy(U,S)*frequency(U,S)")) -Perceived power of light or `luminousflux` (lm, cd⋅sr), unit conversion factor. +Perceived power of light or `luminousflux` (lm, cd⋅rad⋅²), unit conversion factor. """ luminousflux, J @doc """ -$(convertext(:luminance,"luminousflux(U,S)/area(U,S)")) +$(convertext(:luminousintensity,"luminousflux(U,S)/solidangle(U,S)")) + +Perceived power of light or `luminousintensity` (cd, lm⋅rad⁻²), unit conversion factor. +""" luminousintensity + +@doc """ +$(convertext(:luminance,"luminousintensity(U,S)/area(U,S)")) -Luminous intensity per `area` or `luminance` (lx, lm⋅m⁻², cd⋅m⁻²⋅sr), unit conversion factor. +Luminous intensity per `area` or `luminance` (cd⋅m⁻², lm⋅m⁻²⋅rad⁻²), unit conversion factor. ```Julia julia> luminance(CGS,Metric) # lx⋅ph⁻¹ @@ -368,6 +392,26 @@ $(1/10.76) ``` """ luminance +@doc """ +$(convertext(:illuminance,"luminousflux(U,S)/area(U,S)")) + +Luminous flux per `area` or `luminance` (lx, lm⋅m⁻², cd⋅m⁻²⋅rad²), unit conversion factor. + +```Julia +julia> illuminance(CGS,Metric) # lx⋅ph⁻¹ +$(illuminance(CGS,Metric)) + +julia> illuminance(IAU,Metric) # lx⋅au²⋅lm⁻¹ +$(illuminance(IAU,Metric)) + +julia> illuminance(English,Metric) # ft²⋅m⁻² +$(illuminance(English,Metric)) + +julia> 1/10.76 # lx⋅fc⁻¹ +$(1/10.76) +``` +""" illuminance + @doc """ $(convertext(:luminousenergy,"luminousflux(U,S)*time(U,S)")) @@ -380,7 +424,7 @@ $(luminousenergy(IAU,Metric)) """ luminousenergy @doc """ -$(convertext(:luminousexposure,"luminance(U,S)*time(U,S)")) +$(convertext(:luminousexposure,"illuminance(U,S)*time(U,S)")) Integrated `luminance` along `time` (lx⋅s, lm⋅s⋅m⁻², cd⋅s⋅m⁻²⋅sr), unit conversion factor. diff --git a/test/runtests.jl b/test/runtests.jl index 498b263..f89ab17 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -3,7 +3,7 @@ using UnitSystems, Test for S ∈ UnitSystems.Systems U = eval(S) S ∉ () && @testset "UnitSystem: $S" begin - @testset "Dimensionless constants" begin + S≠:FFF && @testset "Dimensionless constants" begin @test μₑᵤ ≈ electronmass(U)/atomicmass(U) @test μₚᵤ ≈ protonmass(U)/atomicmass(U) @test μₚₑ ≈ protonmass(U)/electronmass(U) @@ -11,41 +11,41 @@ for S ∈ UnitSystems.Systems @test αG ≈ (electronmass(U)/mass(PlanckGauss,U))^2 @test 1/αinv ≈ elementarycharge(U)^2*rationalization(U)/4π/vacuumpermittivity(U)/planckreduced(U)/lightspeed(U) @test 1/αinv ≈ vacuumpermeability(U)*lightspeed(U)*(elementarycharge(U)*lorentz(U))^2*rationalization(U)/4π/planckreduced(U) - @test 1/αinv ≈ coulomb(U)*elementarycharge(U)^2/planckreduced(U)/lightspeed(U) + @test 1/αinv ≈ electrostatic(U)*elementarycharge(U)^2/planckreduced(U)/lightspeed(U) @test 1/αinv ≈ elementarycharge(U)^2*rationalization(U)/2vacuumpermittivity(U)/lightspeed(U)/planck(U) @test 1/αinv ≈ lightspeed(U)*vacuumpermeability(U)*rationalization(U)*lorentz(U)^2/2klitzing(U) @test 1/αinv ≈ elementarycharge(U)^2*vacuumimpedance(U)/2planck(U) end @testset "Fundamental constants" begin @testset "lightspeed" begin - @test lightspeed(U) ≈ 1/lorentz(U)/sqrt(vacuumpermeability(U)*vacuumpermittivity(U)) - @test lightspeed(U) ≈ αinv*sqrt(hartree(U)/electronmass(U)) - @test lightspeed(U) ≈ planckreduced(U)/αinv/electronmass(U)/electronradius(U) - @test lightspeed(U) ≈ elementarycharge(U)^2*coulomb(U)/planckreduced(U)*αinv - @test lightspeed(U) ≈ electronmass(U)^2*newton(U)/planckreduced(U)/αG + S≠:FFF && @test lightspeed(U) ≈ 1/lorentz(U)/sqrt(vacuumpermeability(U)*vacuumpermittivity(U)) + @test lightspeed(U) ≈ αinv*sqrt(hartree(U)*gravity(U)/electronmass(U)) + @test lightspeed(U) ≈ planckreduced(U)/αinv/electronmass(U)/electronradius(U)*gravity(U) + S≠:FFF && @test lightspeed(U) ≈ elementarycharge(U)^2*electrostatic(U)/planckreduced(U)*αinv + @test lightspeed(U) ≈ electronmass(U)^2*gravitation(U)/planckreduced(U)/αG end - @testset "planck" begin + S≠:FFF && @testset "planck" begin @test planck(U) == 2π*planckreduced(U) @test planck(U) ≈ 2elementarycharge(U)*lorentz(U)/josephson(U) @test planck(U) ≈ 8/αinv/rationalization(U)/lightspeed(U)/vacuumpermeability(U)/josephson(U)^2 @test planck(U) ≈ 4lorentz(U)^2/josephson(U)^2/klitzing(U) end @testset "planckmass" begin - @test planckmass(U) ≈ sqrt(planckreduced(U)*lightspeed(U)/newton(U)) + @test planckmass(U) ≈ sqrt(planckreduced(U)*lightspeed(U)/gravitation(U)) @test planckmass(U) ≈ electronmass(U)/sqrt(αG) - @test planckmass(U) ≈ 2rydberg(U)*planck(U)/lightspeed(U)*αinv^2/sqrt(αG) + @test planckmass(U) ≈ 2rydberg(U)*planck(U)/lightspeed(U)*αinv^2/sqrt(αG)*gravity(U) end - @testset "newton" begin - @test newton(U) ≈ planckreduced(U)*lightspeed(U)/planckmass(U)^2 - @test newton(U) ≈ planckreduced(U)*lightspeed(U)*αG/electronmass(U)^2 - @test newton(U) ≈ lightspeed(U)^3/αinv^4*αG/8π/rydberg(U)^2/planck(U) - @test newton(U) ≈ einstein(U)*lightspeed(U)^4/8π + @testset "gravitation" begin + @test gravitation(U) ≈ planckreduced(U)*lightspeed(U)/planckmass(U)^2 + @test gravitation(U) ≈ planckreduced(U)*lightspeed(U)*αG/electronmass(U)^2 + @test gravitation(U) ≈ lightspeed(U)^3/αinv^4*αG/8π/rydberg(U)^2/planck(U)/gravity(U)^2 + @test gravitation(U) ≈ einstein(U)*lightspeed(U)^4/8π end @testset "einstein" begin - @test einstein(U) ≈ 8π*newton(U)/lightspeed(U)^4 + @test einstein(U) ≈ 8π*gravitation(U)/lightspeed(U)^4 @test einstein(U) ≈ 8π*planckreduced(U)/lightspeed(U)^3/planckmass(U)^2 @test einstein(U) ≈ 8π*planckreduced(U)*αG/lightspeed(U)^3/electronmass(U)^2 - @test einstein(U) ≈ αG/αinv^4/rydberg(U)^2/planck(U)/lightspeed(U) + @test einstein(U) ≈ αG/αinv^4/rydberg(U)^2/planck(U)/lightspeed(U)/gravity(U)^2 end end @testset "Atomic constants" begin @@ -53,51 +53,49 @@ for S ∈ UnitSystems.Systems @test atomicmass(U) ≈ molarmass(U)/avogadro(U) @test atomicmass(U) ≈ electronmass(U)/μₑᵤ @test atomicmass(U) ≈ protonmass(U)/μₚᵤ - @test atomicmass(U) ≈ 2rydberg(U)*planck(U)/μₑᵤ/lightspeed(U)*αinv^2 + @test atomicmass(U) ≈ 2rydberg(U)*planck(U)/μₑᵤ/lightspeed(U)*αinv^2*gravity(U) @test atomicmass(U) ≈ planckmass(U)*sqrt(αG)/μₑᵤ end @testset "protonmass" begin @test protonmass(U) ≈ μₚᵤ*atomicmass(U) @test protonmass(U) ≈ μₚᵤ*molarmass(U)/avogadro(U) @test protonmass(U) ≈ μₚₑ*electronmass(U) - @test protonmass(U) ≈ μₚₑ*2rydberg(U)*planck(U)/lightspeed(U)*αinv^2 + @test protonmass(U) ≈ μₚₑ*2rydberg(U)*planck(U)/lightspeed(U)*αinv^2*gravity(U) @test protonmass(U) ≈ planckmass(U)*μₚₑ*sqrt(αG) end @testset "electronmass" begin @test electronmass(U) ≈ μₑᵤ*atomicmass(U) @test electronmass(U) ≈ μₑᵤ*molarmass(U)/avogadro(U) @test electronmass(U) ≈ protonmass(U)/μₚₑ - @test electronmass(U) ≈ 2rydberg(U)*planck(U)/lightspeed(U)*αinv^2 + @test electronmass(U) ≈ 2rydberg(U)*planck(U)/lightspeed(U)*αinv^2*gravity(U) @test electronmass(U) ≈ planckmass(U)*sqrt(αG) end @testset "hartree" begin - @test hartree(U) ≈ electronmass(U)*(lightspeed(U)/αinv)^2 + @test hartree(U) ≈ electronmass(U)/gravity(U)*(lightspeed(U)/αinv)^2 @test hartree(U) ≈ planckreduced(U)*lightspeed(U)/αinv/bohr(U) - @test hartree(U) ≈ planckreduced(U)^2/electronmass(U)/bohr(U)^2 + @test hartree(U) ≈ planckreduced(U)^2/electronmass(U)/bohr(U)^2*gravity(U) @test hartree(U) ≈ 2rydberg(U)*planck(U)*lightspeed(U) - @test hartree(U) ≈ planckmass(U)*sqrt(αG)*(lightspeed(U)/αinv)^2 + @test hartree(U) ≈ planckmass(U)*sqrt(αG)*(lightspeed(U)/αinv)^2/gravity(U) end @testset "rydberg" begin @test rydberg(U) ≈ hartree(U)/2planck(U)/lightspeed(U) - @test rydberg(U) ≈ electronmass(U)*lightspeed(U)/αinv^2/2planck(U) + @test rydberg(U) ≈ electronmass(U)*lightspeed(U)/αinv^2/2planck(U)/gravity(U) @test rydberg(U) ≈ 1/αinv/4π/bohr(U) - @test rydberg(U) ≈ electronmass(U)*electronradius(U)*lightspeed(U)/2planck(U)/bohr(U) - @test rydberg(U) ≈ electronmass(U)*lightspeed(U)/αinv^2/4π/planckreduced(U) - @test rydberg(U) ≈ planckmass(U)*lightspeed(U)*sqrt(αG)/αinv^2/2planck(U) + @test rydberg(U) ≈ electronmass(U)*electronradius(U)*lightspeed(U)/2planck(U)/bohr(U)/gravity(U) + @test rydberg(U) ≈ electronmass(U)*lightspeed(U)/αinv^2/4π/planckreduced(U)/gravity(U) + @test rydberg(U) ≈ planckmass(U)*lightspeed(U)*sqrt(αG)/αinv^2/2planck(U)/gravity(U) end @testset "bohr" begin - @test bohr(U) ≈ planckreduced(U)/electronmass(U)/lightspeed(U)*αinv - @test bohr(U) ≈ planckreduced(U)^2/coulomb(U)/electronmass(U)/elementarycharge(U)^2 - @test bohr(U) ≈ μₚₑ*bohrreduced(U)/(μₚₑ+1) + @test bohr(U) ≈ planckreduced(U)/electronmass(U)/lightspeed(U)*αinv*gravity(U) + S≠:FFF && @test bohr(U) ≈ planckreduced(U)^2/electrostatic(U)/electronmass(U)/elementarycharge(U)^2*gravity(U) @test bohr(U) ≈ electronradius(U)*αinv^2 @test bohr(U) ≈ 1/αinv/4π/rydberg(U) - @test bohrreduced(U) == (1+1/μₚₑ)*bohr(U) end @testset "electronradius" begin - @test electronradius(U) ≈ planckreduced(U)/αinv/electronmass(U)/lightspeed(U) + @test electronradius(U) ≈ planckreduced(U)/αinv/electronmass(U)/lightspeed(U)*gravity(U) @test electronradius(U) ≈ bohr(U)/αinv^2 - @test electronradius(U) ≈ elementarycharge(U)^2*coulomb(U)/electronmass(U)/lightspeed(U)^2 - @test electronradius(U) ≈ 2planck(U)*rydberg(U)*bohr(U)/electronmass(U)/lightspeed(U) + S≠:FFF && @test electronradius(U) ≈ elementarycharge(U)^2*electrostatic(U)/electronmass(U)/lightspeed(U)^2*gravity(U) + @test electronradius(U) ≈ 2planck(U)*rydberg(U)*bohr(U)/electronmass(U)/lightspeed(U)*gravity(U) @test electronradius(U) ≈ 1/αinv^3/4π/rydberg(U) end end @@ -106,82 +104,82 @@ for S ∈ UnitSystems.Systems @test molarmass(U) ≈ atomicmass(U)*avogadro(U) @test molarmass(U) ≈ avogadro(U)*electronmass(U)/μₑᵤ @test molarmass(U) ≈ avogadro(U)*protonmass(U)/μₚᵤ - @test molarmass(U) ≈ avogadro(U)*2rydberg(U)*planck(U)/μₑᵤ/lightspeed(U)*αinv^2 + @test molarmass(U) ≈ avogadro(U)*2rydberg(U)*planck(U)/μₑᵤ/lightspeed(U)*αinv^2*gravity(U) end @testset "avogadro" begin - @test avogadro(U) ≈ universalgas(U)/boltzmann(U) + @test avogadro(U) ≈ molargas(U)/boltzmann(U) @test avogadro(U) ≈ molarmass(U)/atomicmass(U) @test avogadro(U) ≈ molarmass(U)*μₑᵤ/electronmass(U) - @test avogadro(U) ≈ molarmass(U)*μₑᵤ*lightspeed(U)/αinv^2/2rydberg(U)/planck(U) + @test avogadro(U) ≈ molarmass(U)*μₑᵤ*lightspeed(U)/αinv^2/2rydberg(U)/planck(U)/gravity(U) end @testset "boltzmann" begin - @test boltzmann(U) == universalgas(U)/avogadro(U) + @test boltzmann(U) == molargas(U)/avogadro(U) @test boltzmann(U) ≈ atomicmass(U)*universal(U)/molarmass(U) @test boltzmann(U) ≈ electronmass(U)*universal(U)/μₑᵤ/molarmass(U) - @test boltzmann(U) ≈ 2universalgas(U)*rydberg(U)*planck(U)/molarmass(U)/μₑᵤ/lightspeed(U)*αinv^2 + @test boltzmann(U) ≈ 2molargas(U)*rydberg(U)*planck(U)/molarmass(U)/μₑᵤ/lightspeed(U)*αinv^2*gravity(U) end - @testset "universalgas" begin - @test universalgas(U) == boltzmann(U)*avogadro(U) - @test universalgas(U) ≈ boltzmann(U)*molarmass(U)/atomicmass(U) - @test universalgas(U) ≈ boltzmann(U)*molarmass(U)*μₑᵤ/electronmass(U) - @test universalgas(U) ≈ boltzmann(U)*molarmass(U)*μₑᵤ*lightspeed(U)/αinv^2/2planck(U)/rydberg(U) + @testset "molargas" begin + @test molargas(U) == boltzmann(U)*avogadro(U) + @test molargas(U) ≈ boltzmann(U)*molarmass(U)/atomicmass(U) + @test molargas(U) ≈ boltzmann(U)*molarmass(U)*μₑᵤ/electronmass(U) + @test molargas(U) ≈ boltzmann(U)*molarmass(U)*μₑᵤ*lightspeed(U)/αinv^2/2planck(U)/rydberg(U)/gravity(U) end S≠:Cosmological && @testset "stefan" begin @test stefan(U) ≈ 2π^5*boltzmann(U)^4/15planck(U)^3/lightspeed(U)^2 @test stefan(U) ≈ π^2*boltzmann(U)^4/60planckreduced(U)^3/lightspeed(U)^2 - @test stefan(U) ≈ 32π^5*planck(U)/15lightspeed(U)^6*αinv^8*(universalgas(U)*rydberg(U)/μₑᵤ/molarmass(U))^4 + @test stefan(U) ≈ 32π^5*planck(U)/15lightspeed(U)^6*αinv^8*(molargas(U)*rydberg(U)/μₑᵤ/molarmass(U)*gravity(U))^4 end S≠:Cosmological && @testset "radiationdensity" begin @test radiationdensity(U) ≈ 4stefan(U)/lightspeed(U) @test radiationdensity(U) ≈ 8π^5*boltzmann(U)^4/15planck(U)^3/lightspeed(U)^3 @test radiationdensity(U) ≈ π^2*boltzmann(U)^4/15planckreduced(U)^3/lightspeed(U)^3 - @test radiationdensity(U) ≈ 2^7*π^5*planck(U)/15lightspeed(U)^7*αinv^8*(universalgas(U)*rydberg(U)/μₑᵤ/molarmass(U))^4 + @test radiationdensity(U) ≈ 2^7*π^5*planck(U)/15lightspeed(U)^7*αinv^8*(molargas(U)*rydberg(U)/μₑᵤ/molarmass(U)*gravity(U))^4 end end - @testset "Electromagnetic constants" begin + S≠:FFF && @testset "Electromagnetic constants" begin @testset "rationalization" begin @test rationalization(U) ≈ 4π*biotsavart(U)/vacuumpermeability(U)/lorentz(U) - @test rationalization(U) ≈ 4π*coulomb(U)*vacuumpermittivity(U) + @test rationalization(U) ≈ 4π*electrostatic(U)*vacuumpermittivity(U) @test rationalization(U) ≈ vacuumimpedance(U)*vacuumpermittivity(U)*lightspeed(U) end @testset "vacuumpermeability" begin @test vacuumpermeability(U) ≈ 1/vacuumpermittivity(U)/(lightspeed(U)*lorentz(U))^2 - @test vacuumpermeability(U) ≈ 4π*coulomb(U)/rationalization(U)/(lightspeed(U)*lorentz(U))^2 + @test vacuumpermeability(U) ≈ 4π*electrostatic(U)/rationalization(U)/(lightspeed(U)*lorentz(U))^2 @test vacuumpermeability(U) ≈ 2planck(U)/αinv/rationalization(U)/lightspeed(U)/(elementarycharge(U)*lorentz(U))^2 @test vacuumpermeability(U) ≈ 2klitzing(U)/αinv/rationalization(U)/lightspeed(U)/lorentz(U)^2 end @testset "vacuumpermittivity" begin @test vacuumpermittivity(U) ≈ 1/vacuumpermeability(U)/(lightspeed(U)*lorentz(U))^2 - @test vacuumpermittivity(U) ≈ rationalization(U)/4π/coulomb(U) + @test vacuumpermittivity(U) ≈ rationalization(U)/4π/electrostatic(U) @test vacuumpermittivity(U) ≈ rationalization(U)*elementarycharge(U)^2*αinv/2planck(U)/lightspeed(U) @test vacuumpermittivity(U) ≈ rationalization(U)/2klitzing(U)/lightspeed(U)*αinv end - @testset "coulomb" begin - @test coulomb(U) ≈ rationalization(U)/4π/vacuumpermittivity(U) - @test coulomb(U) ≈ vacuumpermeability(U)*rationalization(U)*(lorentz(U)*lightspeed(U))^2/4π - @test coulomb(U) ≈ planckreduced(U)*lightspeed(U)/αinv/elementarycharge(U)^2 - @test coulomb(U) ≈ klitzing(U)*lightspeed(U)/αinv/2π - @test coulomb(U) ≈ biotsavart(U)/lorentz(U)/vacuumpermeability(U)/vacuumpermittivity(U) - @test coulomb(U) ≈ ampere(U)*lightspeed(U)^2 - end - @testset "ampere" begin - @test ampere(U) == lorentz(U)*biotsavart(U) - @test ampere(U) ≈ vacuumpermeability(U)*lorentz(U)^2*rationalization(U)/4π - @test ampere(U) ≈ coulomb(U)/lightspeed(U)^2 - @test ampere(U) ≈ planckreduced(U)/αinv/lightspeed(U)/elementarycharge(U)^2 - @test ampere(U) ≈ klitzing(U)/αinv/2π/lightspeed(U) + @testset "electrostatic" begin + @test electrostatic(U) ≈ rationalization(U)/4π/vacuumpermittivity(U) + @test electrostatic(U) ≈ vacuumpermeability(U)*rationalization(U)*(lorentz(U)*lightspeed(U))^2/4π + @test electrostatic(U) ≈ planckreduced(U)*lightspeed(U)/αinv/elementarycharge(U)^2 + @test electrostatic(U) ≈ klitzing(U)*lightspeed(U)/αinv/2π + @test electrostatic(U) ≈ biotsavart(U)/lorentz(U)/vacuumpermeability(U)/vacuumpermittivity(U) + @test electrostatic(U) ≈ magnetostatic(U)*lightspeed(U)^2 + end + @testset "magnetostatic" begin + @test magnetostatic(U) == lorentz(U)*biotsavart(U) + @test magnetostatic(U) ≈ vacuumpermeability(U)*lorentz(U)^2*rationalization(U)/4π + @test magnetostatic(U) ≈ electrostatic(U)/lightspeed(U)^2 + @test magnetostatic(U) ≈ planckreduced(U)/αinv/lightspeed(U)/elementarycharge(U)^2 + @test magnetostatic(U) ≈ klitzing(U)/αinv/2π/lightspeed(U) end @testset "lorentz" begin @test lorentz(U) ≈ 1/lightspeed(U)/sqrt(vacuumpermeability(U)*vacuumpermittivity(U)) - @test lorentz(U) ≈ biotsavart(U)/vacuumpermeability(U)/vacuumpermittivity(U)/coulomb(U) + @test lorentz(U) ≈ biotsavart(U)/vacuumpermeability(U)/vacuumpermittivity(U)/electrostatic(U) @test lorentz(U) ≈ 4π*biotsavart(U)/rationalization(U)/vacuumpermeability(U) - @test lorentz(U) == ampere(U)/biotsavart(U) + @test lorentz(U) == magnetostatic(U)/biotsavart(U) end @testset "biotsavart" begin @test biotsavart(U) ≈ vacuumpermeability(U)*lorentz(U)*rationalization(U)/4π - @test biotsavart(U) ≈ lorentz(U)*vacuumpermeability(U)*vacuumpermittivity(U)*coulomb(U) - @test biotsavart(U) == ampere(U)/lorentz(U) - @test biotsavart(U) ≈ coulomb(U)*sqrt(vacuumpermeability(U)*vacuumpermittivity(U))/lightspeed(U) + @test biotsavart(U) ≈ lorentz(U)*vacuumpermeability(U)*vacuumpermittivity(U)*electrostatic(U) + @test biotsavart(U) == magnetostatic(U)/lorentz(U) + @test biotsavart(U) ≈ electrostatic(U)*sqrt(vacuumpermeability(U)*vacuumpermittivity(U))/lightspeed(U) end @testset "elementarycharge" begin @test elementarycharge(U) ≈ sqrt(2planck(U)/αinv/vacuumimpedance(U)) @@ -237,7 +235,7 @@ for S ∈ UnitSystems.Systems @test magneton(U) ≈ planckreduced(U)*lorentz(U)^2/electronmass(U)/josephson(U)/klitzing(U) @test magneton(U) ≈ planck(U)^2*josephson(U)/8π/electronmass(U) @test magneton(U) ≈ lorentz(U)*planckreduced(U)*faraday(U)/2electronmass(U)/avogadro(U) - @test magneton(U) ≈ elementarycharge(U)*lightspeed(U)*lorentz(U)/αinv^2/8π/rydberg(U) + @test magneton(U) ≈ elementarycharge(U)*lightspeed(U)*lorentz(U)/αinv^2/8π/rydberg(U)/gravity(U) end end end @@ -245,7 +243,6 @@ end @testset "CGS conversions" begin @test molarmass(Natural) == molarmass(CGS) == 1000molarmass(Metric) - @test molarmass(CGS2019) == 1000molarmass(SI2019) C = 100𝘤