-
Key: SYSML21-685
-
Status: open
-
Source: Mongoose Enterprises ( Christopher Toth)
-
Summary:
Found by reducing every unit expression in SI.sysml to its dimension and comparing with the quantityPowerFactors of the declared ...Unit type (SysML-v2-Release commit fb97b754). Line numbers are in SI.sysml unless stated.
1. Alternative units from one ISO table cell multiplied into a single product
Line Declaration Expression gives Type declares 136 HartreeEnergyUnit = eV*J*kg*m^2*s^-2 L^6 M^3 T^-6 (energy cubed) also L^6 M^3 T^-6 149 TotalAngularMomentumUnit = J*s*eV*s L^4 M^2 T^-2 L^2 M T^-1 163 EnergyDensityOfStatesUnit = J^-1*m^-3*eV^-1*m^-3 L^-10 M^-2 T^4 L^-5 M^-1 T^2 247 HallCoefficientUnit = m^3/C*m^3*s^-1*A^-1 I^-2 L^6 T^-2 I^-1 L^3 T^-1 Line 136 is the most serious because the error is also in the generated ISQ model: ISQAtomicNuclear.sysml lines 259-263 declare HartreeEnergyUnit with exponents L 6, M 3, T -6, and the documentation (line 247) says "quantity dimension: L^6*M^3*T^-6, measurement unit(s): eV*J*kg*m^2*s^-2" for a quantity defined as an energy, E_H = e^2/(4 pi eps_0 a_0). The three alternative units eV, J, kg*m^2*s^-2 were joined into a product and the dimension was derived from that product. It should be L^2 M T^-2. For line 163 the documentation at ISQCondensedMatter.sysml line 554 repeats the product; for line 247 the documentation at ISQCondensedMatter.sysml line 626 lists the alternatives correctly as "m^3/C, m^3*s^-1*A^-1". Each alternative should become its own unit declaration. Since the ISQ files are generated, the generator's handling of multi-unit cells probably needs the fix, and other quantities may be affected in ways an expression-versus-type comparison cannot see.
2. Exponent sign
Line 137: TotalMassStoppingPowerUnit = eV*m^-2/kg gives T^-2; the type declares L^4 T^-2. Should be eV*m^2/kg (compare line 147, J*m^2/kg).
3. Dose equivalent rate typed as dose equivalent
Lines 286, 299, 239: 'sievert per second' : DoseEquivalentUnit = Sv/s, 'watt per kilogram' : DoseEquivalentUnit = W/kg, 'metre squared second to the power minus 3' : DoseEquivalentUnit = m^2*s^-3. Each expression is L^2 T^-3; DoseEquivalentUnit (ISQAtomicNuclear.sysml line 2520) declares L^2 T^-2. The origin is ISQAtomicNuclear.sysml line 2527, attribute doseEquivalentRate: DoseEquivalentValue, whose own documentation says "quantity dimension: L^2*T^-3". The rate needs its own value and unit types; the "sievert per second" present since the 2020-09 release shows this is long-standing.
4. Why this is not detected
MeasurementReferences.sysml line 276 asserts hasValidUnitPowerFactors : VerifyUnitPowerFactors, but the constraint definition (lines 517-525) has only inputs and documentation, no Boolean expression, and MeasurementRefCalculations.sysml declares unit '*', '/', '^' as signatures without dimension arithmetic. Suggest giving the constraint a body, or adding a library regression check: expression-versus-type dimension comparison, plus anchor values for a few conversion factors (which would also have caught SYSML21-405).
-
Reported: SysML 2.0 — Mon, 21 Sep 2026 22:29 GMT
-
Updated: Mon, 28 Sep 2026 19:01 GMT
SYSML21 — ISQ/SI libraries: unit expressions contradict declared quantity dimensions (Hartree energy is energy cubed, dose rates typed as dose, alternative units multiplied together)
- Key: SYSML21-685
- OMG Task Force: Systems Modeling Language (SysML) 2.1 RTF