Skip to content

Commit

Permalink
generalized technical engineering UnitSystem specification
Browse files Browse the repository at this point in the history
  • Loading branch information
chakravala committed Mar 26, 2022
1 parent 1eb71c7 commit 85de1c7
Show file tree
Hide file tree
Showing 21 changed files with 5,624 additions and 3,378 deletions.
1 change: 1 addition & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ environment:
- julia_version: 1.4
- julia_version: 1.5
- julia_version: 1.6
- julia_version: 1.7
- julia_version: nightly

platform:
Expand Down
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ julia:
- 1.4
- 1.5
- 1.6
- 1.7
- nightly
matrix:
allow_failures:
Expand Down
112 changes: 86 additions & 26 deletions Kernel/UnitSystems.wl
Original file line number Diff line number Diff line change
@@ -1,20 +1,37 @@
(* ::Package:: *)
(* This file is part of UnitSystems. It is licensed under the MIT license *)
(* UnitSystems Copyright (C) 2021 Michael Reed *)

(* This file is part of UnitSystems *)
(* It is licensed under the MIT license *)
(* UnitSystems Copyright (C) 2021 Michael Reed *)
(* _ _ _ *)
(* | | | | | | *)
(* ___| |__ __ _| | ___ __ __ ___ ____ _| | __ _ *)
(* / __| '_ \ / _` | |/ / '__/ _` \ \ / / _` | |/ _` | *)
(* | (__| | | | (_| | <| | | (_| |\ V / (_| | | (_| | *)
(* \___|_| |_|\__,_|_|\_\_| \__,_| \_/ \__,_|_|\__,_| *)
(* *)
(* https://github.com/chakravala *)
(* https://crucialflow.com *)
(* _ _ _ _ _ ___ ____ _ _ ____ ___ ____ _ _ ____ *)
(* | | |\ | | | [__ \_/ [__ | |___ |\/| [__ *)
(* |__| | \| | | ___] | ___] | |___ | | ___] *)

Unprotect[UnitSystem];
ProtectedList = {Length, Area, Volume, Power, Entropy, MomentOfInertia};
UnitSystemsList = {"Metric", "SI2019", "CODATA", "Conventional", "MTS", "English",
"EnglishUS", "FFF", "IAU", "SI1976", "Mixed", "ESU2019", "EMU2019", "EMU", "ESU",
ProtectedList = {Length, Area, Volume, Power, Entropy, MomentOfInertia, SolidAngle};
UnitSystemsList = {"Metric", "SI2019", "MetricEngineering", "SI2019Engineering",
"GravitationalMetric", "GravitationalSI2019", "CODATA", "Conventional",
"MTS", "KKH", "MPH", "Nautical", "International", "InternationalMean", "Astronomical",
"British","British2019","Survey","Survey2019","English","English2019","FPS","FPS2019",
"FFF", "IAU", "IAUE", "IAUJ", "SI1976", "Mixed", "ESU2019", "EMU2019", "EMU", "ESU",
"Gauss", "LorentzHeaviside", "Thomson", "Kennelly", "Planck", "PlanckGauss", "Stoney",
"Hartree", "Rydberg", "Schrodinger", "Electronic", "Natural", "NaturalGauss",
"QCD", "QCDGauss", "QCDoriginal", "Hubble", "Cosmological", "CosmologicalQuantum"};
DimensionlessList = {GravitationalCouplingConstantElectronElectron, FineStructureConstant, ElectronRelativeAtomicMass, ProtonRelativeAtomicMass, ProtonElectronMassRatio, UniverseDarkEnergyMassDensity}
ConstantsList = {SpeedOfLight, PlanckConstant, ReducedPlanckConstant, ElectronMass,
MolarMassConstant, BoltzmannConstant, MagneticConstant, RationalizationConstant,
LorentzConstant, MonochromaticRadiation540THzLuminousEfficacy};
PhysicsList = {Cesium133HyperfineSplittingFrequency, HubbleParameter,
CosmologicalConstant, AtomicMassConstant, ProtonMass, PlanckMass,
LorentzConstant, MonochromaticRadiation540THzLuminousEfficacy,AngleConstant,GravityConstant};
(*Cesium133HyperfineSplittingFrequency, HubbleParameter, CosmologicalConstant,*)
PhysicsList = {Turn, SphereAngle, AtomicMassConstant, ProtonMass, PlanckMass,
GravitationalConstant, EinsteinConstantSpeedOfLightToTheFourth,
HartreeEnergy, RydbergConstant, BohrRadius,
RelativisticBohrRadius, ClassicalElectronRadius,
Expand All @@ -23,17 +40,17 @@ PhysicsList = {Cesium133HyperfineSplittingFrequency, HubbleParameter,
BiotSavartConstant, ElementaryCharge, FaradayConstant, VacuumImpedance,
ConductanceQuantum, VonKlitzingConstant, JosephsonConstant,
MagneticFluxQuantum, BohrMagneton};
KinematicList = {Time, Length, Area, Volume, Wavenumber,
FuelEconomy, Frequency, FrequencyDrift, Speed, Acceleration,
Jerk, Snap, VolumeFlowRate};
MechanicalList = {Mass, MassFlowRate, LinearMassDensity, MassPerArea, MassDensity,
SpecificVolume, Force, Stiffness, Pressure, Compressibility,
DynamicViscosity, KinematicViscosity, MomentOfInertia, Momentum,
KinematicList = {Angle, SolidAngle, Time, Length, Area, Volume, Wavenumber,
AngularWavenumber, FuelEconomy, Frequency, AngularFrequency, FrequencyDrift, Speed,
Acceleration, Jerk, Snap, Crackle, Pop, VolumeFlowRate};
MechanicalList = {Inertia, Mass, MassFlowRate, LinearMassDensity, MassPerArea, MassDensity,
SpecificWeight, SpecificVolume, Force, GForce, Stiffness, Pressure, Compressibility,
DynamicViscosity, KinematicViscosity, MomentOfInertia, Impulse, Momentum,
AngularMomentum, ForceOnsetRate, Energy, SpecificEnergy, Action, EnergyPerArea,
Power, PowerDensity, Irradiance, PowerGradient, SoundExposure,
AcousticImpedance, SpecificAcousticImpedance, Admittance, Compliance, Inertance};
ElectromagneticList = {ElectricCharge, ElectricChargeDensity, LinearElectricChargeDensity,
ElectricChargePerMass, ElectricalMobility, ElectricCapacitance, MagneticInductance, MagneticReluctance, MagneticPermeance,
ElectricChargePerMass, ElectricalMobility, ElectricCapacitance, ElectricResistance, MagneticInductance, MagneticReluctance, MagneticPermeance,
ElectricPermittivity, MagneticPermeability, MagneticSusceptibility, ElectricCurrent, ElectricConductance,
SpecificSusceptibility, DemagnetizationFactor, MagneticVectorPotential,
ElectricPotential, MagnetomotiveForce, ElectricFieldStrength, MagneticFieldStrength,
Expand Down Expand Up @@ -69,16 +86,28 @@ ReducedPlanckConstant[UnitSystem[_, \[HBar]_, ___]] := \[HBar];
SpeedOfLight[UnitSystem[_, _, c_, ___]] := c;
MagneticConstant[UnitSystem[_, _, _, \[Mu]0_, ___]] := \[Mu]0;
ElectronMass[UnitSystem[_, _, _, _, me_, ___]] := me;
RationalizationConstant[UnitSystem[_, _, _, _, _, \[Lambda]_, ___]] := \[Lambda];
LorentzConstant[UnitSystem[_, _, _, _, _, _, \[Alpha]L_, ___]] := \[Alpha]L;
RationalizationConstant[UnitSystem[_, _, _, _, _, _, _, _, \[Lambda]_, ___]] := \[Lambda];
LorentzConstant[UnitSystem[_, _, _, _, _, _, _, _, _, \[Alpha]L_, ___]] := \[Alpha]L;

AngleConstant[UnitSystem[_, _, _, _, _, _, _, A_, ___]] := A
UnitSystem /: Angle[u_UnitSystem,s_UnitSystem] := Unit[measuratio[AngleConstant[s],AngleConstant[u]]]
RationalizedQ[u_UnitSystem] := RationalizationConstant[u] != SphereAngle[u]
RationalizedQ[u_String] := RationalizedQ[UnitSystem[u]]

MonochromaticRadiation540THzLuminousEfficacy[UnitSystem[_, _, _, _, _, _, Kcd_, ___]] := Kcd
MolarMassConstant[UnitSystem[_, _, _, _, _, Mu_, ___]] := Mu;
GravityConstant[UnitSystem[_, _, _, _, _, _, _, _, _, _, g0_, ___]] := g0
Turn[UnitSystem[_, _, _, _, _, _, _, _, _, _, _, tau_, ___]] := tau

MonochromaticRadiation540THzLuminousEfficacy[_UnitSystem] := 1
MolarMassConstant[_UnitSystem] := 1
AngleConstant[_UnitSystem] := 1
LorentzConstant[_UnitSystem] := 1
RationalizationConstant[_UnitSystem] := 1
RationalizedQ[u_UnitSystem] := RationalizationConstant[u] != 4 Pi
RationalizedQ[u_String] := RationalizedQ[UnitSystem[u]]
GravityConstant[_UnitSystem] := 1
Turn[_UnitSystem] = 2 Pi

Universe[UnitSystem[_?NumericQ, ___]] := Coupling["StandardModel"]
Universe[UnitSystem[_Around, ___]] := Coupling["StandardModel"]
Universe[UnitSystem[_, _, _, _, _, _, _, _, _, _, _, _, C_Coupling, ___]] := C
Unit[x_, y_ : 1] := PowerExpand[x];

UnitSystem[u_String] := If[AbstractUnitSystemQ[u], AbstractUnitSystem[StringDelete[u, "Abstract"]], DimensionSystem[StringDelete[u, "Dimension"]]] /; AbstractUnitSystemQ[u] || StringStartsQ[u, "Dimension"]
Expand All @@ -90,17 +119,24 @@ AbstractUnitSystemQ[_] := False
MatchSystem[u_,s_] := If[AbstractUnitSystemQ[u], AbstractUnitSystem[s], UnitSystem[s]]
DefaultSystem[u_] := MatchSystem[u, "SI2019"]

MeasureMagnitude[m_] := m
MeasureMagnitude[Measure[m_,_,_]] := m
measuratio[a_Measure,b_Measure] := MeasureMagnitude[a]/MeasureMagnitude[b]
measuratio[a_,b_] := a/b

Map[(
#[u_String, c_String] := #[UnitSystem[u], Coupling[c]];
#[u_String] := #[UnitSystem[u]]
) &, Join[ConstantsList, PhysicsList]]

Map[(#[c_String] := #[Coupling[c]]) &, DimensionlessList]

Get["UnitSystems`dimensions`"]
Get["UnitSystems`systems`"]

Universe[_] = Coupling["AbstractUniverse"]
Universe[c_String] := Coupling[c]
Universe[_?DimensionSystemQ] := Coupling["AbstractUniverse"]
Map[(Universe[AbstractUnitSystem[#]] := Coupling["AbstractUniverse"]) &,
{"Planck","PlanckGauss","Stoney","Hartree","Rydberg","Schrodinger","Electronic","Natural","NaturalGauss","QCD","QCDGauss","QCDoriginal"}]

Expand All @@ -116,7 +152,7 @@ Map[(#[u_UnitSystem] := #[u, Universe[u]]) &, {PlanckMass, PlanckConstant, Gravi
Map[(#[u_UnitSystem] := #[Universe[u]]) &, DimensionlessList];
Map[(#[u_UnitSystem, c_Coupling] := #[u]) &, {BoltzmannConstant, ReducedPlanckConstant, SpeedOfLight, MagneticConstant, ElectronMass, MolarMassConstant}];
Map[(
#[u_UnitSystem, s_UnitSystem] := Unit[#[s]/#[u]];
#[u_UnitSystem, s_UnitSystem] := Unit[measuratio[#[s],#[u]]];
#[u_String, s_String] := #[UnitSystem[u], CouplingSystem[s]];
) &, Join[ConstantsList,PhysicsList]]
Map[Unprotect, ProtectedList]
Expand Down Expand Up @@ -214,7 +250,7 @@ CompareUnits[a_String, b_, c_] := CompareUnits[UnitSystem[a], b, c]
CompareUnits[a_, b_String, c_] := CompareUnits[a, UnitSystem[b], c]
CompareUnits[a_String, b_String, c_] := CompareUnits[UnitSystem[a], UnitSystem[b], c]
CompareUnits[a_, b_, c_] := Association[Map[ToString[#] -> #[a, b] &, c]]
DimensionUnits[u_, l_] := CompareUnits["AbstractNatural",DimensionSystem[u], l]
DimensionUnits[u_, l_] := MM/@CompareUnits["AbstractNatural",DimensionSystem[u], l]
DimensionUnits[u_] := DimensionUnits[u, Join[ConstantsList, PhysicsList, ConvertList]]
DimensionPhysics[u_] := DimensionUnits[u, ConvertList]
DimensionConstants[u_] := DimensionUnits[u, Join[ConstantsList, PhysicsList]]
Expand Down Expand Up @@ -331,10 +367,12 @@ AbstractUnits1 = AbstractUnitSystem["AbstractUnits1"]
AbstractUnits2 = AbstractUnitSystem["AbstractUnits2"]
AbstractMetric = AbstractUnitSystem["Metric"]
AbstractSI2019 = AbstractUnitSystem["SI2019"]
AbstractInternational = AbstractUnitSystem["International"]
AbstractCGS = AbstractUnitSystem["Gauss"]
AbstractMTS = AbstractUnitSystem["MTS"]
AbstractBritish = AbstractUnitSystem["British"]
AbstractEnglish = AbstractUnitSystem["English"]
AbstractEnglishUS = AbstractUnitSystem["EnglishUS"]
AbstractSurvey = AbstractUnitSystem["Survey"]
AbstractIAU = AbstractUnitSystem["IAU"]
AbstractFFF = AbstractUnitSystem["FFF"]

Expand All @@ -346,18 +384,36 @@ ESU = UnitSystem["ESU"]
ESU2019 = UnitSystem["ESU2019"]
EMU = UnitSystem["EMU"]
EMU2019 = UnitSystem["EMU2019"]
Nautical = UnitSystem["Nautical"]
MPH = UnitSystem["MPH"]
KKH = UnitSystem["KKH"]
MTS = UnitSystem["MTS"]
Mixed = UnitSystem["Mixed"]
Metric = UnitSystem["Metric"]
SI1976 = UnitSystem["SI1976"]
SI2019 = UnitSystem["SI2019"]
MetricEngineering = UnitSystem["MetricEngineering"]
SI2019Engineering = UnitSystem["SI2019Engineering"]
GravitationalMetric = UnitSystem["GravitationalMetric"]
GravitationalSI2019 = UnitSystem["GravitationalSI2019"]
International = UnitSystem["International"]
InternationalMean = UnitSystem["InternationalMean"]

CODATA = UnitSystem["CODATA"]
Conventional = UnitSystem["Conventional"]
British = UnitSystem["British"]
British2019 = UnitSystem["British2019"]
Survey = UnitSystem["Survey"]
Survey2019 = UnitSystem["Survey2019"]
English = UnitSystem["English"]
EnglishUS = UnitSystem["EnglishUS"]
English2019 = UnitSystem["English2019"]
FPS = UnitSystem["FPS"]
FPS2019 = UnitSystem["FPS2019"]
IAU = UnitSystem["IAU"]
IAUE = UnitSystem["IAUE"]
IAUJ = UnitSystem["IAUJ"]
FFF = UnitSystem["FFF"]
Astronomical = UnitSystem["Astronomical"]
Hubble = UnitSystem["Hubble"]
Cosmological = UnitSystem["Cosmological"]
CosmologicalQuantum = UnitSystem["CosmologicalQuantum"]
Expand All @@ -371,4 +427,8 @@ QCD = UnitSystem["QCD"]
QCDGauss = UnitSystem["QCDGauss"]
QCDoriginal = UnitSystem["QCDoriginal"]

{SI,MKS,CGS, CGS2019, CGSm, CGSe, HLU} = {SI2019, Metric, Gauss, EMU2019, EMU, ESU, LorentzHeaviside};
{SI, MKS, SIE, ME, GSI2019, GSI, GM} = {SI2019, Metric, SI2019Engineering, MetricEngineering, GravitationalSI2019, GravitationalSI2019, GravitationalMetric}
{CGS, CGS2019, CGSm, CGSe, HLU} = {Gauss, EMU2019, EMU, ESU, LorentzHeaviside}
{EnglishEngineering, BritishGravitational, BG} = {English, British, British}
{EnglishUS, AbsoluteEnglish, AE, EE, EE2019} = {Survey, FPS, FPS, English, English2019}
{EnglishEngineering2019, BritishGravitational2019, BG2019, AbsoluteEnglish2019, AE2019} = {English2019, British2019, British2019, FPS2019, FPS2019};
155 changes: 155 additions & 0 deletions Kernel/dimensions.wl
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@

(* This file is part of UnitSystems *)
(* It is licensed under the MIT license *)
(* UnitSystems Copyright (C) 2021 Michael Reed *)
(* _ _ _ *)
(* | | | | | | *)
(* ___| |__ __ _| | ___ __ __ ___ ____ _| | __ _ *)
(* / __| '_ \ / _` | |/ / '__/ _` \ \ / / _` | |/ _` | *)
(* | (__| | | | (_| | <| | | (_| |\ V / (_| | | (_| | *)
(* \___|_| |_|\__,_|_|\_\_| \__,_| \_/ \__,_|_|\__,_| *)
(* *)
(* https://github.com/chakravala *)
(* https://crucialflow.com *)

isq = {"F", "M", "L","T","Q","\[Theta]","N","J","A","\[CapitalLambda]","C"}

d1 = ISQ[{0,0,0,0,0,0,0,0,0,0,0},1]
dF = ISQ[{1,0,0,0,0,0,0,0,0,0,0},1]
dM = ISQ[{0,1,0,0,0,0,0,0,0,0,0},1]
dL = ISQ[{0,0,1,0,0,0,0,0,0,0,0},1]
dT = ISQ[{0,0,0,1,0,0,0,0,0,0,0},1]
dQ = ISQ[{0,0,0,0,1,0,0,0,0,0,0},1]
d0 = ISQ[{0,0,0,0,0,1,0,0,0,0,0},1]
dN = ISQ[{0,0,0,0,0,0,1,0,0,0,0},1]
dJ = ISQ[{0,0,0,0,0,0,0,1,0,0,0},1]
dA = ISQ[{0,0,0,0,0,0,0,0,1,0,0},1]
dR = ISQ[{0,0,0,0,0,0,0,0,0,1,0},1]
dC = ISQ[{0,0,0,0,0,0,0,0,0,0,1},1]

isqbox[{x_, 1}] := ToBoxes[x]
isqbox[{x_, 1.}] := ToBoxes[x]
isqbox[{x_, y_}] := SuperscriptBox[x, ToBoxes[y]]
isqbox[{_, 0}] = Sequence[]
isqbox[{_, 0.}] = Sequence[]

ISQ /: MakeBoxes[ISQ[{0,0,0,0,0,0,0,0,0,0,0}, 1], StandardForm] := "\[DoubleStruckL]"
ISQ /: MakeBoxes[ISQ[l_List, 1], StandardForm] := RowBox[Map[isqbox, Transpose[{isq, l}]]]
ISQ /: MakeBoxes[ISQ[l_List, c_], StandardForm] := RowBox[Prepend[Map[isqbox, Transpose[{isq, l}]], c]]

ISQ /: Plus[a:ISQ[z:{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_],ISQ[z:{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},y_]] := ISQ[z,x+y]
ISQ /: Subtract[ISQ[z:{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_],ISQ[z:{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},y_]] := ISQ[z,x-y]
ISQ /: Times[ISQ[a_List,x_],ISQ[b_List,y_]] := ISQ[a+b,x*y]
ISQ /: Divide[ISQ[a_List,x_],ISQ[b_List,y_]] := ISQ[a-b,x/y]
ISQ /: Power[ISQ[a_List,c_],b_] := ISQ[b*a,Power[c,b]]
ISQ /: Sqrt[ISQ[a_List,c_]] := ISQ[a/2,Sqrt[c]]
ISQ /: Inverse[ISQ[a_List,c_]] := ISQ[-a,1/c]

ISQ /: Times[ISQ[a_List,c_],b_] := ISQ[a,c*b]

(* Measure *)

Measure /: MakeBoxes[Measure[v_, d_ISQ, u_String],StandardForm] := Module[{x=transform[u,d]}, RowBox[{ToBoxes[v], "[", ToBoxes[x], "]", u}]]

Measure /: Times[Measure[v_,d_,u_],a_] := Measure[v*a,d,u]
Measure /: Plus[Measure[v_,d1,u_],a_] := Measure[v+a,d1,u]
Measure /: Subtract[Measure[v_,d1,u_],a_] := Measure[v-a,d1,u]
Measure /: Subtract[a_,Measure[v_,d1,u_]] := Measure[a-v,d1,u]

Measure /: Times[Measure[v1_,d1_,u_],Measure[v2_,d2_,u_]] := Measure[v1*v2,d1*d2,u]
Measure /: Divide[Measure[v1_,d1_,u_],Measure[v2_,d2_,u_]] := Measure[v1/v2,d1/d2,u]
Measure /: Power[Measure[v_,d_,u_],b_] := Measure[v^b,d^b,u]
Measure /: Plus[Measure[v1_,d1_,u_],Measure[v2_,d2_,u_]] := Measure[v1+v2,d1+d2,u]
Measure /: Subtract[Measure[v1_,d1_,u_],Measure[v2_,d2_,u_]] := Measure[v1-v2,d1-d2,u]
Measure /: Sqrt[Measure[v_,d_,u_]] := Measure[Sqrt[v],Sqrt[d],u]

Measure /: Equal[Measure[v_,ISQ[l_,c_],u_],a_] := And[Total[l]==0,a==v*c]

(*quantity /: Log[b_,Power[B_,_ISQ]] := "test"*)

ratio[d_, u_, s_] := ratio[d,MatchSystem[s,u],UnitSystem[s]]
ratio[d_, u_UnitSystem, s_UnitSystem] := ratiocalc[TRANSFORM[d], u, s]
ratiocalc[ISQ[d_,c_], u_, s_] :=
BoltzmannConstant[u, s]^d[[1]]*
ReducedPlanckConstant[u, s]^d[[2]]*
SpeedOfLight[u, s]^d[[3]]*
MagneticConstant[u, s]^d[[4]]*
ElectronMass[u, s]^d[[5]]*
MonochromaticRadiation540THzLuminousEfficacy[u, s]^d[[6]]*
MolarMassConstant[u, s]^d[[7]]*
AngleConstant[u, s]^d[[8]]*
RationalizationConstant[u, s]^d[[9]]*
LorentzConstant[u, s]^d[[10]]*
GravityConstant[u, s]^d[[11]]

Measure /: Entity["UnitSystem", s_][Measure[v_, d_, u_]] := Measure[v*ratio[d, u, s], d, s]
Measure[v_, d_, u_][Entity["UnitSystem",s_]] := Measure[v*ratio[d, u, s], d, s]
Measure[v_, d_, u_][s_String] := Measure[v*ratio[d, u, s], d, s]
ConvertUnit[Measure[v_, d_, u_],s_] := Measure[v*ratio[d, u, s], d, s]

(* 1,2,3,4, 5, 6, 7, 8,9,10,11 *)
(*kB,ħ,𝘤,μ₀,mₑ,Mᵤ,Kcd,A,λ,αL,g₀ *)
(* F,M,L,T, Q, Θ, N, J,A,Λ, C *)

TRANSFORM[ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] := ISQ[{-h,l+t+q/2-f-j,3*f+2*h-l-2*t-q/2,q/-2,m+h+n+2*(f+j)-l-t,-n,j,a-2*r,r-q/2,-q-c,l+t-h-2*(f+j)},x]

transform[_String,x_] := transform["Metric",x]

transform["MetricEngineering",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{f,m,l,t,q,h,n,j,a,0,0},x]
transform["GravitationalMetric",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{f+m,0,l-m,t+2*m,q,h,n,j,0,0,0},x]
transform["Metric",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,f+m,f+l,t-2*f,q,h,n,j,0,0,0},x]
transform["Astronomical",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{f,0,l+3*m,t-2*m,q,h,n,j,a,0,0},x]

transform["Gauss",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,f+m+q/2,f+l+(3/2)*q+c,t-2*f-q-c,0,h,0,j,0,0,0},x]
transform["ESU",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,f+m+q/2,f+l+(3/2)*q,t-2*f-q,0,h,0,j,0,0,0},x]
transform["EMU",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,f+m+q/2,f+l+q/2,t-2*f,0,h,0,j,0,0,0},x]
transform["Kennelly",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,f+m+q/2,f+l+q/2,t-2*f,0,h,n,j,0,0,0},x]

transform["Stoney",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,f+m+h,l+t-f,0,q,0,0,0,0,0,0},x]
transform["Electronic",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,0,l+t-f,0,q,0,0,0,0,0,0},x]
transform["QCDoriginal",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,2*f+m+h-l-t,0,0,q,0,0,0,a,0,0},x]
transform["PlanckGauss",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,2*f+m+h-l-t,0,0,0,0,0,0,a,0,0},x]
transform["Planck",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,2*f+m+q+h-l-t,0,0,0,0,0,0,0,0,0},x]
transform["Natural",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,0,0,0,0,0,0,0,0,0,0},x]
transform["NaturalGauss",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,0,0,0,0,0,0,0,a,0,0},x]

transform["Rydberg",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,m+t+h-f,l+2*(t-h)-3*f,0,q,0,0,0,0,0,0},x]
transform["Hartree",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,0,l+2*(t-h)-3*f,0,q,0,0,0,0,0,0},x]
transform["Hubble",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,f+m,l+t-f,0,q,h,n,j,0,0,0},x]
transform["CosmologicalQuantum",ISQ[{f_,m_,l_,t_,q_,h_,n_,j_,a_,r_,c_},x_]] :=
ISQ[{0,m+2*f-l-t,0,0,q,h,n,j,0,0,0},x]

transform["LorentzHeaviside",x_] := transform["Gauss",x]
transform["Thomson",x_] := transform["EMU",x]
(*transform["Kennelly",x_] := transform["EMU",x]*)
transform["Schrodinger",x_] := transform["Rydberg",x]
transform["QCD",x_] := transform["Planck",x]
transform["QCDGauss",x_] := transform["PlanckGauss",x]
transform["Cosmological",x_] := transform["Hubble",x]

transform["SI2019Engineering",x_] := transform["MetricEngineering",x]
transform["GravitationalSI2019",x_] := transform["GravitationalMetric",x]
transform["British",x_] := transform["GravitationalMetric",x]
transform["British2019",x_] := transform["GravitationalMetric",x]
transform["English",x_] := transform["MetricEngineering",x]
transform["English2019",x_] := transform["MetricEngineering",x]
transform["Survey",x_] := transform["MetricEngineering",x]
transform["Survey2019",x_] := transform["MetricEngineering",x]
Loading

2 comments on commit 85de1c7

@chakravala
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator register()

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request created: JuliaRegistries/General/57349

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v0.3.2 -m "<description of version>" 85de1c7317abfd9d72b5cd4fa5358f6ee7f7aa29
git push origin v0.3.2

Please sign in to comment.