You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the base `UnitSystems` package, simply `Float64` numbers are used to generate the group of `UnitSystem` constants.
9
+
However, in the `MeasureSystems` package, instead constant measurements are used to generate an abstract multiplicative `Group`, which is only converted to a `Float64` value when appropriate or at compile time.
10
+
11
+
In `UnitSystems` and `MeasureSystems`, the spectrum of `Group{:Measures}` values is generated by a group of 11 mathematical constants (7 Integer primes and 4 Irrational numbers) with 33 physical measurement definitions.
Furthermore, in `MeasureSystems` there is a dimension type which encodes the dimensional `Group{:USQ}` for the `Quantity` type using the same implementation principles as the `Group{:Measures}`.
15
+
This enables the unified usage of `Group` homomorphisms to transform `Quantity` algebra elements with varying numbers of dimensionless constants.
16
+
17
+
Originally, the Newtonian group used for `UnitSystems` would be made up of `force`, `mass`, `length`, `time` (or `F`, `M`, `L`, `T`).
18
+
Although `force` is typically thought of as a derived dimension when the reference `gravity` is taken to be dimensionless, `force` is actually considered a base dimension in general engineering `UnitSystem` foundations.
19
+
With the development of electricity and magnetism came an interest for an additional dimension called `charge` or `Q`.
20
+
When the thermodynamics of `entropy` became further developed, the `temperature` or `Θ` was introduced as another dimension.
21
+
In the field of chemistry, it became desirable to introduce another dimension of `molaramount` or `N` as fundamental.
22
+
To complete the existing International System of Quantities (ISQ) it is also necessary to consider `luminousflux` or `J` as a visual perception related dimension.
23
+
In order to resolve ambiguity with `solidangle` unit conversion, `angle` or `A` is explicitly tracked in the underlying dimension and `Group`.
24
+
However, this is yet insufficient to fully specify all the historical variations of `UnitSystem`, including the `EMU`, `ESU`, `Gauss` and `LorentzHeavise` specifications.
25
+
Therefore, there is also a dimension basis for `rationalization` (denoted `R`) and `lorentz` (denoted by `C⁻¹`).
26
+
27
+
In combination, all these required base dimension definitions are necessary in order to coherently implement unit conversion for `Quantity` elements.
28
+
Since the existing International System of Quantities (ISQ) is an insufficient definition for dimension, a new Unified System of Quantities (`USQ`) is being proposed here as composed of `force`, `mass`, `length`, `time`, `charge`, `temperature`, `molaramount`, `luminousflux`, `angle`, `rationalization`, and a `nonstandard` dimension (denoted by `F`, `M`, `L`, `T`, `Q`, `Θ`, `N`, `J`, `A`, `R`, `C`).
29
+
8
30
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`.
9
31
This enables a more precise and generalized standardization than the 2019 redefinition, which was comparatively limited in scope.
10
32
Specified default `UnitSystem` values are to be taken as a newly defined mutually-compatible recommended standard, verified to be consistent and coherent.
11
33
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.
12
34
13
-
> 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)
14
-
15
35
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.
16
36
The three packages are designed so that they can be interchanged with compatibility.
17
37
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.
18
-
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.
julia>using MeasureSystems # or UnitSystems or Similitude
23
42
```
24
43
25
-
An optional environment variable `ENV["SIMILITUDE"]` induces `UnitSystems.similitude()` to return `true`, giving flexibility for building dependencies whenever it is desirable to toggle usage between `UnitSystems` (default) and `Similitude` (requires environment variable specification). For example, in `MeasureSystems` and `Geophysics` this option is used to increase flexibility with variety in local compilation workflow.
26
-
27
44
A `UnitSystem` is a consistent set of dimensional values selected to accomodate a particular use case or standardization.
28
45
It is possible to convert derived physical quantities from any `UnitSystem` specification into any other using accurate values.
29
46
Eleven fundamental constants `kB`, `ħ`, `𝘤`, `μ₀`, `mₑ`, `Mᵤ`, `Kcd`, `θ`, `λ`, `αL`, `g₀` are used to govern a specific unit system consistent scaling.
Specification of `Universe` with the dimensionless `Coupling` constants `coupling`, `finestructure`, `electronunit`, `protonunit`, `protonelectron`, and `darkenergydensity`. Alterations to these values can be facilitated and quantified using parametric polymorphism.
72
-
Due to the `Coupling` interoperability, the `MeasureSystems` package is made possible to support calculations with `Measurements` having error standard deviations.
73
-
74
83
Other similar packages include [UnitSystems.jl](https://github.com/chakravala/UnitSystems.jl), [Similitude.jl](https://github.com/chakravala/Similitude.jl), [PhysicalConstants.jl](https://github.com/JuliaPhysics/PhysicalConstants.jl), [MathPhysicalConstants.jl](https://github.com/LaGuer/MathPhysicalConstants.jl), [Unitful.jl](https://github.com/PainterQubits/Unitful.jl.git), [UnitfulUS.jl](https://github.com/PainterQubits/UnitfulUS.jl), [UnitfulAstro.jl](https://github.com/JuliaAstro/UnitfulAstro.jl), [UnitfulAtomic.jl](https://github.com/sostock/UnitfulAtomic.jl), [NaturallyUnitful.jl](https://github.com/MasonProtter/NaturallyUnitful.jl), and [UnitfulMoles.jl](https://github.com/rafaqz/UnitfulMoles.jl).
0 commit comments