Skip to content

Commit d139079

Browse files
committed
Merge pull request #328 from Systems-Modeling/ST6RI-491
ST6RI-491 Complete SI and USCustomaryUnits libraries (continued)
2 parents 1ed7bfb + 326745e commit d139079

16 files changed

Lines changed: 433 additions & 371 deletions

File tree

sysml.library/Domain Libraries/Quantities and Units/ISQ.sysml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,24 @@ package ISQ {
1818
import ISQCharacteristicNumbers::*; // ISO 80000-11 "Characteristic numbers"
1919
import ISQCondensedMatter::*; // ISO 80000-12 "Condensed matter physics"
2020
import ISQInformation::*; // IEC 80000-13 "Information science and technology"
21+
22+
/* Additional quantity declarations */
23+
24+
/**
25+
* temperature difference
26+
*
27+
* A separate temperature difference quantity and unit are needed in order to support °C, °F and centrigrade temperature differences
28+
*/
29+
attribute def TemperatureDifferenceUnit :> SimpleUnit {
30+
private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = 1; }
31+
attribute :>> quantityDimension { :>> quantityPowerFactors = thermodynamicTemperaturePF; }
32+
}
33+
34+
attribute def TemperatureDifferenceValue :> ScalarQuantityValue {
35+
attribute :>> num: Real;
36+
attribute :>> mRef: TemperatureDifferenceUnit[1];
37+
}
38+
39+
attribute temperatureDifference: TemperatureDifferenceValue [*] nonunique :> scalarQuantities;
40+
2141
}

sysml.library/Domain Libraries/Quantities and Units/ISQBase.sysml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,7 @@ package ISQBase {
178178
* Declaration of the International System of Quantities (ISQ),
179179
* including its base quantities and symbols as specified in ISO 80000-1:2009.
180180
*/
181-
attribute isq: SystemOfQuantities {
182-
attribute :>> longName = "International System of Quantities";
181+
attribute <isq> 'International System of Quantities': SystemOfQuantities {
183182
attribute :>> baseQuantities = ( L, M, T, I, 'Θ', N, J );
184183

185184
attribute L: LengthValue[1];
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package <CGS> 'Centimetre-Gram-Second System of Units' {
2+
doc /*
3+
Library package with measurement unit declarations generated from NIST SP811 Appendix B
4+
See https://www.nist.gov/pml/special-publication-811/nist-guide-si-appendix-b-conversion-factors/nist-guide-si-appendix-b8
5+
Generated at 2022-02-11T23:27:48Z
6+
*/
7+
8+
private import UnitsAndScales::*;
9+
import ISQ::*;
10+
import SI::*;
11+
12+
attribute 'abampere' : ElectricCurrentUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = A; :>> conversionFactor = 1.0E+01; } }
13+
attribute 'abcoulomb' : ElectricChargeUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = C; :>> conversionFactor = 1.0E+01; } }
14+
attribute 'abfarad' : CapacitanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = F; :>> conversionFactor = 1.0E+09; } }
15+
//attribute 'abhenry' : InductanceUnit, PermeanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = H; :>> conversionFactor = 1.0E-09; } }
16+
attribute 'abmho' : ConductanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = S; :>> conversionFactor = 1.0E+09; } }
17+
attribute 'abohm' : ResistanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = 'Ω'; :>> conversionFactor = 1.0E-09; } }
18+
attribute 'abvolt' : ElectricPotentialUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = V; :>> conversionFactor = 1.0E-08; } }
19+
attribute <Bi> 'biot' : ElectricCurrentUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = A; :>> conversionFactor = 1.0E+01; } }
20+
attribute <cP> 'centipoise' : DynamicViscosityUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa*s; :>> conversionFactor = 1.0E-03; } }
21+
attribute <cSt> 'centistokes' : KinematicViscosityUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = m^2/s; :>> conversionFactor = 1.0E-06; } }
22+
attribute <D> 'debye' : ElectricDipoleMomentUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = C*m; :>> conversionFactor = 3.335641E-30; :>> isExact = false; } }
23+
attribute <dyn> 'dyne' : ForceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = N; :>> conversionFactor = 1.0E-05; } }
24+
attribute <'dyn⋅cm'> 'dyne centimeter' : MomentOfForceUnit = dyn*cm;
25+
attribute <'dyn/cm²'> 'dyne per square centimeter' : PressureUnit = dyn/cm^2;
26+
attribute 'EMU of capacitance' : CapacitanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = F; :>> conversionFactor = 1.0E+09; } }
27+
attribute 'EMU of current' : ElectricCurrentUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = A; :>> conversionFactor = 1.0E+01; } }
28+
attribute 'EMU of electric potential' : ElectricPotentialUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = V; :>> conversionFactor = 1.0E-08; } }
29+
//attribute 'EMU of inductance' : InductanceUnit, PermeanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = H; :>> conversionFactor = 1.0E-09; } }
30+
attribute 'EMU of resistance' : ResistanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = 'Ω'; :>> conversionFactor = 1.0E-09; } }
31+
attribute <erg> 'erg' : EnergyUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = J; :>> conversionFactor = 1.0E-07; } }
32+
attribute <'erg/s'> 'erg per second' : PowerUnit = erg/s;
33+
attribute <'erg/(cm²⋅s)'> 'erg per square centimeter second' : DensityOfHeatFlowRateUnit = erg/(cm^2*s);
34+
attribute 'ESU of capacitance' : CapacitanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = F; :>> conversionFactor = 1.112650E-12; :>> isExact = false; } }
35+
attribute 'ESU of current' : ElectricCurrentUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = A; :>> conversionFactor = 3.335641E-10; :>> isExact = false; } }
36+
attribute 'ESU of electric potential' : ElectricPotentialUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = V; :>> conversionFactor = 2.997925E+02; :>> isExact = false; } }
37+
//attribute 'ESU of inductance' : InductanceUnit, PermeanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = H; :>> conversionFactor = 8.987552E+11; :>> isExact = false; } }
38+
attribute 'ESU of resistance' : ResistanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = 'Ω'; :>> conversionFactor = 8.987552E+11; :>> isExact = false; } }
39+
attribute <Fr> 'franklin' : ElectricChargeUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = C; :>> conversionFactor = 3.335641E-10; :>> isExact = false; } }
40+
attribute <Gal> 'gal (acceleration)' : AccelerationUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = m/s^2; :>> conversionFactor = 1.0E-02; } }
41+
attribute <'γ'> 'gamma' : MagneticFluxDensityUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = T; :>> conversionFactor = 1.0E-09; } }
42+
attribute <Gs> 'gauss' : MagneticFluxDensityUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = T; :>> conversionFactor = 1.0E-04; } }
43+
alias G for Gs;
44+
attribute <Gi> 'gilbert' : ElectricCurrentUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = A; :>> conversionFactor = 7.957747E-01; :>> isExact = false; } }
45+
attribute <K> 'kayser' : CurvatureUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = m^-1; :>> conversionFactor = 1.0E+02; } }
46+
attribute <Mx> 'maxwell' : MagneticFluxUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Wb; :>> conversionFactor = 1.0E-08; } }
47+
attribute <Oe> 'oersted' : LinearElectricCurrentDensityUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = A/m; :>> conversionFactor = 7.957747E+01; :>> isExact = false; } }
48+
attribute <ph> 'phot' : IlluminanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = lx; :>> conversionFactor = 1.0E+04; } }
49+
attribute <P> 'poise' : DynamicViscosityUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa*s; :>> conversionFactor = 1.0E-01; } }
50+
attribute <rad> 'rad (absorbed dose)' : AbsorbedDoseUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Gy; :>> conversionFactor = 1.0E-02; } }
51+
attribute <rem> 'rem' : DoseEquivalentUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Sv; :>> conversionFactor = 1.0E-02; } }
52+
attribute 'statampere' : ElectricCurrentUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = A; :>> conversionFactor = 3.335641E-10; :>> isExact = false; } }
53+
attribute 'statcoulomb' : ElectricChargeUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = C; :>> conversionFactor = 3.335641E-10; :>> isExact = false; } }
54+
attribute 'statfarad' : CapacitanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = F; :>> conversionFactor = 1.112650E-12; :>> isExact = false; } }
55+
//attribute 'stathenry' : InductanceUnit, PermeanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = H; :>> conversionFactor = 8.987552E+11; :>> isExact = false; } }
56+
attribute 'statmho' : ConductanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = S; :>> conversionFactor = 1.112650E-12; :>> isExact = false; } }
57+
attribute 'statohm' : ResistanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = 'Ω'; :>> conversionFactor = 8.987552E+11; :>> isExact = false; } }
58+
attribute 'statvolt' : ElectricPotentialUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = V; :>> conversionFactor = 2.997925E+02; :>> isExact = false; } }
59+
attribute <sb> 'stilb' : LuminanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = cd/m^2; :>> conversionFactor = 1.0E+04; } }
60+
attribute <St> 'stokes' : KinematicViscosityUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = m^2/s; :>> conversionFactor = 1.0E-04; } }
61+
62+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package <Imp> 'Imperial (Canadian and UK) Units' {
2+
doc /*
3+
Library package with measurement unit declarations generated from NIST SP811 Appendix B
4+
See https://www.nist.gov/pml/special-publication-811/nist-guide-si-appendix-b-conversion-factors/nist-guide-si-appendix-b8
5+
Generated at 2022-02-11T23:27:48Z
6+
*/
7+
8+
private import UnitsAndScales::*;
9+
import ISQ::*;
10+
import SI::*;
11+
12+
attribute <gal> 'gallon (Canadian and UK (Imperial))' : VolumeUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = m^3; :>> conversionFactor = 4.54609E-03; } }
13+
attribute <gi> 'gill (Canadian and UK (Imperial))' : VolumeUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = m^3; :>> conversionFactor = 1.420653E-04; :>> isExact = false; } }
14+
attribute 'horsepower (UK)' : PowerUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = W; :>> conversionFactor = 7.4570E+02; :>> isExact = false; } }
15+
attribute <oz> 'ounce (troy or apothecary)' : MassUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = kg; :>> conversionFactor = 3.110348E-02; :>> isExact = false; } }
16+
attribute <floz> 'ounce (Canadian and UK fluid (Imperial))' : VolumeUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = m^3; :>> conversionFactor = 2.841306E-05; :>> isExact = false; } }
17+
attribute <'oz/gal'> 'ounce (avoirdupois) per gallon (Canadian and UK (Imperial))' : MassDensityUnit = oz/gal;
18+
attribute <dwt> 'pennyweight' : MassUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = kg; :>> conversionFactor = 1.555174E-03; :>> isExact = false; } }
19+
attribute <lb> 'pound (troy or apothecary)' : MassUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = kg; :>> conversionFactor = 3.732417E-01; :>> isExact = false; } }
20+
attribute 'poundal' : ForceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = N; :>> conversionFactor = 1.382550E-01; :>> isExact = false; } }
21+
attribute 'poundal per square foot' : PressureUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa; :>> conversionFactor = 1.488164E+00; :>> isExact = false; } }
22+
attribute 'poundal second per square foot' : DynamicViscosityUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa*s; :>> conversionFactor = 1.488164E+00; :>> isExact = false; } }
23+
attribute <'lb/gal'> 'pound per gallon (Canadian and UK (Imperial))' : MassDensityUnit = lb/gal;
24+
25+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package <SI_deprecated> 'International System of Units - Deprecated units' {
2+
doc /*
3+
Library package with measurement unit declarations generated from NIST SP811 Appendix B
4+
See https://www.nist.gov/pml/special-publication-811/nist-guide-si-appendix-b-conversion-factors/nist-guide-si-appendix-b8
5+
Generated at 2022-02-11T23:27:48Z
6+
*/
7+
8+
private import UnitsAndScales::*;
9+
import ISQ::*;
10+
import SI::*;
11+
12+
attribute <'at'> 'atmosphere, technical' : PressureUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa; :>> conversionFactor = 9.80665E+04; } }
13+
attribute <cal_th> 'calorie (th)' : EnergyUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = J; :>> conversionFactor = 4.184E+00; } }
14+
attribute <cal_mean> 'calorie (mean)' : EnergyUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = J; :>> conversionFactor = 4.19002E+00; :>> isExact = false; } }
15+
attribute <cal_15> 'calorie (15 °C)' : EnergyUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = J; :>> conversionFactor = 4.18580E+00; :>> isExact = false; } }
16+
attribute <cal_20> 'calorie (20 °C)' : EnergyUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = J; :>> conversionFactor = 4.18190E+00; :>> isExact = false; } }
17+
attribute <cal_nutrition_th> 'calorie (th), kilogram (nutrition)' : EnergyUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = J; :>> conversionFactor = 4.184E+03; } }
18+
attribute <cal_nutrition_mean> 'calorie (mean), kilogram (nutrition)' : EnergyUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = J; :>> conversionFactor = 4.19002E+03; :>> isExact = false; } }
19+
attribute <'cal_th/(cm⋅s⋅°C)'> 'calorie (th) per centimeter second degree Celsius' : ThermalConductivityUnit = cal_th/(cm*s*'°C');
20+
attribute <'cal_th/g'> 'calorie (th) per gram' : SpecificEnergyUnit = cal_th/g;
21+
attribute <'cal_th/(g⋅°C)'> 'calorie (th) per gram degree Celsius' : SpecificHeatCapacityUnit = cal_th/(g*'°C');
22+
attribute <'cal_th/(g·K)'> 'calorie (th) per gram kelvin' : SpecificHeatCapacityUnit = cal_th/(g*K);
23+
attribute <'cal_th/min'> 'calorie (th) per minute' : PowerUnit = cal_th/min;
24+
attribute <'cal_th/s'> 'calorie (th) per second' : PowerUnit = cal_th/s;
25+
//attribute <'cal_th/cm²'> 'calorie (th) per square centimeter' : SurfaceHeatDensityUnit = cal_th/cm^2;
26+
attribute <'cal_th/(cm²⋅min)'> 'calorie (th) per square centimeter minute' : DensityOfHeatFlowRateUnit = cal_th/(cm^2*min);
27+
attribute <'cal_th/(cm²⋅s)'> 'calorie (th) per square centimeter second' : DensityOfHeatFlowRateUnit = cal_th/(cm^2*s);
28+
attribute 'centimeter of mercury (0 °C)' : PressureUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa; :>> conversionFactor = 1.33322E+03; :>> isExact = false; } }
29+
attribute <cmHg> 'centimeter of mercury, conventional' : PressureUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa; :>> conversionFactor = 1.333224E+03; :>> isExact = false; } }
30+
attribute 'centimeter of water (4 °C)' : PressureUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa; :>> conversionFactor = 9.80638E+01; :>> isExact = false; } }
31+
attribute <cmH2O> 'centimeter of water, conventional' : PressureUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa; :>> conversionFactor = 9.80665E+01; } }
32+
attribute <Ci> 'curie' : NuclearActivityUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Bq; :>> conversionFactor = 3.7E+10; } }
33+
//attribute 'degree centigrade (temperature)' : ThermodynamicTemperatureUnit; // conversion TBD
34+
//attribute 'degree centigrade (temperature interval)' : TemperatureDifferenceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = '°C'; :>> conversionFactor = 1.0E+00; :>> isExact = false; } }
35+
attribute <gf> 'gram-force' : ForceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = N; :>> conversionFactor = 9.80665E-03; } }
36+
attribute <'gf/cm²'> 'gram-force per square centimeter' : PressureUnit = gf/cm^2;
37+
attribute <hp_metric> 'horsepower (metric)' : PowerUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = W; :>> conversionFactor = 7.354988E+02; :>> isExact = false; } }
38+
attribute <kcal_th> 'kilocalorie (th)' : EnergyUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = J; :>> conversionFactor = 4.184E+03; } }
39+
attribute <kcal_mean> 'kilocalorie (mean)' : EnergyUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = J; :>> conversionFactor = 4.19002E+03; :>> isExact = false; } }
40+
attribute <'kcal_th/min'> 'kilocalorie (th) per minute' : PowerUnit = kcal_th/min;
41+
attribute <'kcal_th/s'> 'kilocalorie (th) per second' : PowerUnit = kcal_th/s;
42+
attribute <kgf> 'kilogram-force' : ForceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = N; :>> conversionFactor = 9.80665E+00; } }
43+
attribute <'kgf⋅m'> 'kilogram-force meter' : MomentOfForceUnit = kgf*m;
44+
attribute <'kgf/cm²'> 'kilogram-force per square centimeter' : PressureUnit = kgf/cm^2;
45+
attribute <'kgf/m²'> 'kilogram-force per square meter' : PressureUnit = kgf/m^2;
46+
attribute <'kgf/mm²'> 'kilogram-force per square millimeter' : PressureUnit = kgf/mm^2;
47+
attribute <'kgf⋅s²/m'> 'kilogram-force second squared per meter' : MassUnit = kgf*s^2/m;
48+
attribute <kp> 'kilopond (kilogram-force)' : ForceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = N; :>> conversionFactor = 9.80665E+00; } }
49+
attribute 'mho' : ConductanceUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = S; :>> conversionFactor = 1.0E+00; } }
50+
attribute <'μ'> 'micron' : LengthUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = m; :>> conversionFactor = 1.0E-06; } }
51+
attribute <mmH2O> 'millimeter of water, conventional' : PressureUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa; :>> conversionFactor = 9.80665E+00; } }
52+
//attribute 'rhe' : ReciprocalDynamicViscosityUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa^-1*s^-1; :>> conversionFactor = 1.0E+01; } }
53+
attribute <R> 'roentgen' : ExposureUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = C/kg; :>> conversionFactor = 2.58E-04; } }
54+
attribute <Torr> 'torr' : PressureUnit { :>> unitConversion: ConversionByConvention { :>> referenceUnit = Pa; :>> conversionFactor = 1.333224E+02; :>> isExact = false; } }
55+
56+
}

0 commit comments

Comments
 (0)