sysmledgraph 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/README.md +71 -0
  2. package/dist/bin/cli.d.ts +6 -0
  3. package/dist/bin/cli.d.ts.map +1 -0
  4. package/dist/bin/cli.js +61 -0
  5. package/dist/bin/cli.js.map +1 -0
  6. package/dist/mcp/index.d.ts +3 -0
  7. package/dist/mcp/index.d.ts.map +1 -0
  8. package/dist/mcp/index.js +8 -0
  9. package/dist/mcp/index.js.map +1 -0
  10. package/dist/src/cli/commands.d.ts +22 -0
  11. package/dist/src/cli/commands.d.ts.map +1 -0
  12. package/dist/src/cli/commands.js +87 -0
  13. package/dist/src/cli/commands.js.map +1 -0
  14. package/dist/src/discovery/find-sysml.d.ts +16 -0
  15. package/dist/src/discovery/find-sysml.d.ts.map +1 -0
  16. package/dist/src/discovery/find-sysml.js +30 -0
  17. package/dist/src/discovery/find-sysml.js.map +1 -0
  18. package/dist/src/discovery/load-order.d.ts +11 -0
  19. package/dist/src/discovery/load-order.d.ts.map +1 -0
  20. package/dist/src/discovery/load-order.js +85 -0
  21. package/dist/src/discovery/load-order.js.map +1 -0
  22. package/dist/src/graph/connection.d.ts +6 -0
  23. package/dist/src/graph/connection.d.ts.map +1 -0
  24. package/dist/src/graph/connection.js +7 -0
  25. package/dist/src/graph/connection.js.map +1 -0
  26. package/dist/src/graph/graph-store.d.ts +37 -0
  27. package/dist/src/graph/graph-store.d.ts.map +1 -0
  28. package/dist/src/graph/graph-store.js +108 -0
  29. package/dist/src/graph/graph-store.js.map +1 -0
  30. package/dist/src/graph/schema.d.ts +13 -0
  31. package/dist/src/graph/schema.d.ts.map +1 -0
  32. package/dist/src/graph/schema.js +21 -0
  33. package/dist/src/graph/schema.js.map +1 -0
  34. package/dist/src/index.d.ts +14 -0
  35. package/dist/src/index.d.ts.map +1 -0
  36. package/dist/src/index.js +14 -0
  37. package/dist/src/index.js.map +1 -0
  38. package/dist/src/indexer/indexer.d.ts +20 -0
  39. package/dist/src/indexer/indexer.d.ts.map +1 -0
  40. package/dist/src/indexer/indexer.js +56 -0
  41. package/dist/src/indexer/indexer.js.map +1 -0
  42. package/dist/src/indexer/pipeline-phases.d.ts +8 -0
  43. package/dist/src/indexer/pipeline-phases.d.ts.map +1 -0
  44. package/dist/src/indexer/pipeline-phases.js +14 -0
  45. package/dist/src/indexer/pipeline-phases.js.map +1 -0
  46. package/dist/src/mcp/resources/context.d.ts +6 -0
  47. package/dist/src/mcp/resources/context.d.ts.map +1 -0
  48. package/dist/src/mcp/resources/context.js +45 -0
  49. package/dist/src/mcp/resources/context.js.map +1 -0
  50. package/dist/src/mcp/resources/schema.d.ts +6 -0
  51. package/dist/src/mcp/resources/schema.d.ts.map +1 -0
  52. package/dist/src/mcp/resources/schema.js +14 -0
  53. package/dist/src/mcp/resources/schema.js.map +1 -0
  54. package/dist/src/mcp/server.d.ts +8 -0
  55. package/dist/src/mcp/server.d.ts.map +1 -0
  56. package/dist/src/mcp/server.js +175 -0
  57. package/dist/src/mcp/server.js.map +1 -0
  58. package/dist/src/mcp/tools/clean-index.d.ts +12 -0
  59. package/dist/src/mcp/tools/clean-index.d.ts.map +1 -0
  60. package/dist/src/mcp/tools/clean-index.js +22 -0
  61. package/dist/src/mcp/tools/clean-index.js.map +1 -0
  62. package/dist/src/mcp/tools/context.d.ts +14 -0
  63. package/dist/src/mcp/tools/context.d.ts.map +1 -0
  64. package/dist/src/mcp/tools/context.js +51 -0
  65. package/dist/src/mcp/tools/context.js.map +1 -0
  66. package/dist/src/mcp/tools/cypher.d.ts +13 -0
  67. package/dist/src/mcp/tools/cypher.d.ts.map +1 -0
  68. package/dist/src/mcp/tools/cypher.js +25 -0
  69. package/dist/src/mcp/tools/cypher.js.map +1 -0
  70. package/dist/src/mcp/tools/generate-map.d.ts +13 -0
  71. package/dist/src/mcp/tools/generate-map.d.ts.map +1 -0
  72. package/dist/src/mcp/tools/generate-map.js +96 -0
  73. package/dist/src/mcp/tools/generate-map.js.map +1 -0
  74. package/dist/src/mcp/tools/impact.d.ts +14 -0
  75. package/dist/src/mcp/tools/impact.d.ts.map +1 -0
  76. package/dist/src/mcp/tools/impact.js +47 -0
  77. package/dist/src/mcp/tools/impact.js.map +1 -0
  78. package/dist/src/mcp/tools/index-db-graph.d.ts +14 -0
  79. package/dist/src/mcp/tools/index-db-graph.d.ts.map +1 -0
  80. package/dist/src/mcp/tools/index-db-graph.js +32 -0
  81. package/dist/src/mcp/tools/index-db-graph.js.map +1 -0
  82. package/dist/src/mcp/tools/list-indexed.d.ts +9 -0
  83. package/dist/src/mcp/tools/list-indexed.d.ts.map +1 -0
  84. package/dist/src/mcp/tools/list-indexed.js +14 -0
  85. package/dist/src/mcp/tools/list-indexed.js.map +1 -0
  86. package/dist/src/mcp/tools/query.d.ts +14 -0
  87. package/dist/src/mcp/tools/query.d.ts.map +1 -0
  88. package/dist/src/mcp/tools/query.js +47 -0
  89. package/dist/src/mcp/tools/query.js.map +1 -0
  90. package/dist/src/mcp/tools/rename.d.ts +19 -0
  91. package/dist/src/mcp/tools/rename.d.ts.map +1 -0
  92. package/dist/src/mcp/tools/rename.js +46 -0
  93. package/dist/src/mcp/tools/rename.js.map +1 -0
  94. package/dist/src/parser/lsp-client.d.ts +52 -0
  95. package/dist/src/parser/lsp-client.d.ts.map +1 -0
  96. package/dist/src/parser/lsp-client.js +230 -0
  97. package/dist/src/parser/lsp-client.js.map +1 -0
  98. package/dist/src/parser/lsp-server-path.d.ts +10 -0
  99. package/dist/src/parser/lsp-server-path.d.ts.map +1 -0
  100. package/dist/src/parser/lsp-server-path.js +29 -0
  101. package/dist/src/parser/lsp-server-path.js.map +1 -0
  102. package/dist/src/parser/symbols.d.ts +13 -0
  103. package/dist/src/parser/symbols.d.ts.map +1 -0
  104. package/dist/src/parser/symbols.js +150 -0
  105. package/dist/src/parser/symbols.js.map +1 -0
  106. package/dist/src/parser/sysml-mcp-client.d.ts +109 -0
  107. package/dist/src/parser/sysml-mcp-client.d.ts.map +1 -0
  108. package/dist/src/parser/sysml-mcp-client.js +185 -0
  109. package/dist/src/parser/sysml-mcp-client.js.map +1 -0
  110. package/dist/src/storage/clean.d.ts +15 -0
  111. package/dist/src/storage/clean.d.ts.map +1 -0
  112. package/dist/src/storage/clean.js +44 -0
  113. package/dist/src/storage/clean.js.map +1 -0
  114. package/dist/src/storage/list.d.ts +9 -0
  115. package/dist/src/storage/list.d.ts.map +1 -0
  116. package/dist/src/storage/list.js +12 -0
  117. package/dist/src/storage/list.js.map +1 -0
  118. package/dist/src/storage/location.d.ts +22 -0
  119. package/dist/src/storage/location.d.ts.map +1 -0
  120. package/dist/src/storage/location.js +36 -0
  121. package/dist/src/storage/location.js.map +1 -0
  122. package/dist/src/storage/registry.d.ts +14 -0
  123. package/dist/src/storage/registry.d.ts.map +1 -0
  124. package/dist/src/storage/registry.js +59 -0
  125. package/dist/src/storage/registry.js.map +1 -0
  126. package/dist/src/symbol-to-graph/mapping.d.ts +17 -0
  127. package/dist/src/symbol-to-graph/mapping.d.ts.map +1 -0
  128. package/dist/src/symbol-to-graph/mapping.js +102 -0
  129. package/dist/src/symbol-to-graph/mapping.js.map +1 -0
  130. package/dist/src/types.d.ts +40 -0
  131. package/dist/src/types.d.ts.map +1 -0
  132. package/dist/src/types.js +35 -0
  133. package/dist/src/types.js.map +1 -0
  134. package/dist/src/worker/client.d.ts +21 -0
  135. package/dist/src/worker/client.d.ts.map +1 -0
  136. package/dist/src/worker/client.js +126 -0
  137. package/dist/src/worker/client.js.map +1 -0
  138. package/dist/src/worker/gateway.d.ts +79 -0
  139. package/dist/src/worker/gateway.d.ts.map +1 -0
  140. package/dist/src/worker/gateway.js +93 -0
  141. package/dist/src/worker/gateway.js.map +1 -0
  142. package/dist/src/worker/graph-worker.d.ts +7 -0
  143. package/dist/src/worker/graph-worker.d.ts.map +1 -0
  144. package/dist/src/worker/graph-worker.js +91 -0
  145. package/dist/src/worker/graph-worker.js.map +1 -0
  146. package/dist/src/worker/protocol.d.ts +21 -0
  147. package/dist/src/worker/protocol.d.ts.map +1 -0
  148. package/dist/src/worker/protocol.js +9 -0
  149. package/dist/src/worker/protocol.js.map +1 -0
  150. package/docs/INSTALL.md +16 -0
  151. package/docs/MCP_CLIENT_TEMPLATE_ANALYSIS.md +196 -0
  152. package/docs/MCP_INTERACTION_GUIDE.md +201 -0
  153. package/docs/MCP_SERVER_FOR_CURSOR.md +124 -0
  154. package/docs/PLAN.md +58 -0
  155. package/docs/PLAN_INDEPENDENT_LSP.md +145 -0
  156. package/docs/SKILL_DESIGN_PATTERNS.md +305 -0
  157. package/docs/TOOLS.md +317 -0
  158. package/lsp/README.md +41 -0
  159. package/lsp/node_modules/.bin/sysml-mcp +12 -0
  160. package/lsp/node_modules/.bin/sysml-mcp.cmd +9 -0
  161. package/lsp/node_modules/.bin/sysml-mcp.ps1 +16 -0
  162. package/lsp/node_modules/.package-lock.json +22 -0
  163. package/lsp/node_modules/sysml-v2-lsp/CHANGELOG.md +188 -0
  164. package/lsp/node_modules/sysml-v2-lsp/LICENSE +21 -0
  165. package/lsp/node_modules/sysml-v2-lsp/README.md +172 -0
  166. package/lsp/node_modules/sysml-v2-lsp/dist/server/mcpServer.js +167 -0
  167. package/lsp/node_modules/sysml-v2-lsp/dist/server/server.js +142 -0
  168. package/lsp/node_modules/sysml-v2-lsp/index.cjs +23 -0
  169. package/lsp/node_modules/sysml-v2-lsp/package.json +131 -0
  170. package/lsp/node_modules/sysml-v2-lsp/sysml.library/.project +17 -0
  171. package/lsp/node_modules/sysml-v2-lsp/sysml.library/.settings/org.eclipse.jdt.core.prefs +11 -0
  172. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/.meta.json +10 -0
  173. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/.project.json +27 -0
  174. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/AnalysisTooling.sysml +34 -0
  175. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/SampledFunctions.sysml +119 -0
  176. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/StateSpaceRepresentation.sysml +143 -0
  177. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/TradeStudies.sysml +171 -0
  178. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/.meta.json +8 -0
  179. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/.project.json +23 -0
  180. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/CausationConnections.sysml +83 -0
  181. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/CauseAndEffect.sysml +81 -0
  182. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/.meta.json +8 -0
  183. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/.project.json +27 -0
  184. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/ShapeItems.sysml +899 -0
  185. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/SpatialItems.sysml +168 -0
  186. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/.meta.json +10 -0
  187. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/.project.json +19 -0
  188. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ImageMetadata.sysml +78 -0
  189. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ModelingMetadata.sysml +143 -0
  190. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ParametersOfInterestMetadata.sysml +39 -0
  191. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/RiskMetadata.sysml +100 -0
  192. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/.meta.json +29 -0
  193. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/.project.json +23 -0
  194. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQ.sysml +42 -0
  195. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQAcoustics.sysml +439 -0
  196. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQAtomicNuclear.sysml +2726 -0
  197. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQBase.sysml +206 -0
  198. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQCharacteristicNumbers.sysml +1991 -0
  199. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQChemistryMolecular.sysml +1353 -0
  200. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQCondensedMatter.sysml +1223 -0
  201. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQElectromagnetism.sysml +2333 -0
  202. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQInformation.sysml +958 -0
  203. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQLight.sysml +1537 -0
  204. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQMechanics.sysml +1564 -0
  205. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQSpaceTime.sysml +1169 -0
  206. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQThermodynamics.sysml +1256 -0
  207. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/MeasurementRefCalculations.sysml +30 -0
  208. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/MeasurementReferences.sysml +526 -0
  209. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/Quantities.sysml +107 -0
  210. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/QuantityCalculations.sysml +70 -0
  211. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/SI.sysml +378 -0
  212. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/SIPrefixes.sysml +48 -0
  213. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/TensorCalculations.sysml +50 -0
  214. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/Time.sysml +274 -0
  215. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/USCustomaryUnits.sysml +260 -0
  216. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/VectorCalculations.sysml +62 -0
  217. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/.meta.json +8 -0
  218. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/.project.json +19 -0
  219. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/DerivationConnections.sysml +63 -0
  220. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/RequirementDerivation.sysml +39 -0
  221. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/.meta.json +9 -0
  222. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/.project.json +11 -0
  223. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/Collections.kerml +147 -0
  224. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/ScalarValues.kerml +23 -0
  225. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/VectorValues.kerml +64 -0
  226. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/.meta.json +23 -0
  227. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/.project.json +15 -0
  228. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/BaseFunctions.kerml +80 -0
  229. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/BooleanFunctions.kerml +22 -0
  230. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/CollectionFunctions.kerml +68 -0
  231. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ComplexFunctions.kerml +47 -0
  232. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ControlFunctions.kerml +117 -0
  233. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/DataFunctions.kerml +43 -0
  234. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/IntegerFunctions.kerml +43 -0
  235. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/NaturalFunctions.kerml +27 -0
  236. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/NumericalFunctions.kerml +43 -0
  237. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/OccurrenceFunctions.kerml +154 -0
  238. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/RationalFunctions.kerml +49 -0
  239. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/RealFunctions.kerml +56 -0
  240. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ScalarFunctions.kerml +33 -0
  241. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/SequenceFunctions.kerml +111 -0
  242. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/StringFunctions.kerml +25 -0
  243. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/TrigFunctions.kerml +35 -0
  244. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/VectorFunctions.kerml +273 -0
  245. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/.meta.json +22 -0
  246. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/.project.json +15 -0
  247. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Base.kerml +95 -0
  248. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Clocks.kerml +156 -0
  249. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/ControlPerformances.kerml +135 -0
  250. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/FeatureReferencingPerformances.kerml +190 -0
  251. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/KerML.kerml +483 -0
  252. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Links.kerml +67 -0
  253. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Metaobjects.kerml +58 -0
  254. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Objects.kerml +212 -0
  255. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Observation.kerml +161 -0
  256. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Occurrences.kerml +992 -0
  257. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Performances.kerml +293 -0
  258. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/SpatialFrames.kerml +197 -0
  259. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/StatePerformances.kerml +145 -0
  260. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Transfers.kerml +281 -0
  261. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/TransitionPerformances.kerml +66 -0
  262. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Triggers.kerml +188 -0
  263. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/.meta.json +27 -0
  264. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/.project.json +19 -0
  265. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Actions.sysml +552 -0
  266. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Allocations.sysml +29 -0
  267. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/AnalysisCases.sysml +38 -0
  268. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Attributes.sysml +25 -0
  269. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Calculations.sysml +37 -0
  270. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Cases.sysml +71 -0
  271. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Connections.sysml +60 -0
  272. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Constraints.sysml +44 -0
  273. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Flows.sysml +126 -0
  274. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Interfaces.sysml +89 -0
  275. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Items.sysml +153 -0
  276. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Metadata.sysml +32 -0
  277. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Parts.sysml +81 -0
  278. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Ports.sysml +54 -0
  279. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Requirements.sysml +194 -0
  280. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/StandardViewDefinitions.sysml +123 -0
  281. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/States.sysml +103 -0
  282. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/SysML.sysml +539 -0
  283. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/UseCases.sysml +57 -0
  284. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/VerificationCases.sysml +103 -0
  285. package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Views.sysml +164 -0
  286. package/lsp/package-lock.json +30 -0
  287. package/lsp/package.json +15 -0
  288. package/lsp/test-server.mjs +120 -0
  289. package/package.json +61 -0
  290. package/scripts/access-sysml-mcp.mjs +45 -0
  291. package/scripts/check-sysml-v2-lsp-version.mjs +39 -0
  292. package/scripts/clean.mjs +14 -0
  293. package/scripts/compare-mcp-vs-lsp-symbols.mjs +76 -0
  294. package/scripts/debug-index.mjs +23 -0
  295. package/scripts/debug-lsp-symbols.mjs +62 -0
  296. package/scripts/deploy-skills.mjs +43 -0
  297. package/scripts/example-sysml-mcp.mjs +27 -0
  298. package/scripts/export-graph.mjs +80 -0
  299. package/scripts/generate-map.mjs +110 -0
  300. package/scripts/index-and-map.mjs +43 -0
  301. package/scripts/index-and-query.mjs +39 -0
  302. package/scripts/query-one.mjs +34 -0
  303. package/scripts/setup-lsp.mjs +36 -0
  304. package/scripts/test-lsp.mjs +55 -0
  305. package/scripts/test-mcp-debug.mjs +32 -0
  306. package/scripts/test-mcp-sysml.mjs +75 -0
  307. package/scripts/test-mcp-tools.mjs +185 -0
  308. package/scripts/test-sysml-mcp-from-node_modules.mjs +56 -0
  309. package/scripts/validate-sysml-file.mjs +69 -0
@@ -0,0 +1,1256 @@
1
+ standard library package ISQThermodynamics {
2
+ doc
3
+ /*
4
+ * International System of Quantities and Units
5
+ * Generated on 2025-03-13T15:00:05Z from standard ISO-80000-5:2019 "Thermodynamics"
6
+ * see also https://www.iso.org/standard/64976.html
7
+ *
8
+ * Note 1: In documentation comments, AsciiMath notation (see http://asciimath.org/) is used for mathematical concepts,
9
+ * with Greek letters in Unicode encoding. In running text, AsciiMath is placed between backticks.
10
+ * Note 2: For vector and tensor quantities currently the unit and quantity value type for their (scalar) magnitude is
11
+ * defined, as well as their typical Cartesian 3d VectorMeasurementReference (i.e. coordinate system)
12
+ * or TensorMeasurementReference.
13
+ */
14
+
15
+ private import ScalarValues::Real;
16
+ private import Quantities::*;
17
+ private import MeasurementReferences::*;
18
+ private import ISQBase::*;
19
+
20
+ /* Quantity definitions referenced from other ISQ packages */
21
+
22
+
23
+ /* ISO-80000-5 item 5-1 thermodynamic temperature, temperature */
24
+ /* See package ISQBase for the declarations of ThermodynamicTemperatureValue and ThermodynamicTemperatureUnit */
25
+
26
+ alias TemperatureUnit for ThermodynamicTemperatureUnit;
27
+ alias TemperatureValue for ThermodynamicTemperatureValue;
28
+ alias temperature for thermodynamicTemperature;
29
+
30
+ /* ISO-80000-5 item 5-2 Celsius temperature */
31
+ attribute def CelsiusTemperatureValue :> ScalarQuantityValue {
32
+ doc
33
+ /*
34
+ * source: item 5-2 Celsius temperature
35
+ * symbol(s): `t`, `θ`
36
+ * application domain: generic
37
+ * name: CelsiusTemperature
38
+ * quantity dimension: Θ^1
39
+ * measurement unit(s): °C
40
+ * tensor order: 0
41
+ * definition: temperature difference from the thermodynamic temperature of the ice point is called the Celsius temperature t, which is defined by the quantity equation: `t = T - T_0` where `T` is thermodynamic temperature (item 5-1) and `T_0 = 273,15 K`
42
+ * remarks: The unit degree Celsius is a special name for the kelvin for use in stating values of Celsius temperature. The unit degree Celsius is by definition equal in magnitude to the kelvin. A difference or interval of temperature may be expressed in kelvin or in degrees Celsius. The thermodynamic temperature `T_0` is 0,01 K below the thermodynamic temperature of the triple point of water. The symbol °C for the degree Celsius shall be preceded by a space (see ISO 80000-1). Prefixes are not allowed in combination with the unit °C.
43
+ */
44
+ attribute :>> num: Real;
45
+ attribute :>> mRef: CelsiusTemperatureUnit[1];
46
+ }
47
+
48
+ attribute celsiusTemperature: CelsiusTemperatureValue[*] nonunique :> scalarQuantities;
49
+
50
+ attribute def CelsiusTemperatureUnit :> DerivedUnit {
51
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = 1; }
52
+ attribute :>> quantityDimension { :>> quantityPowerFactors = thermodynamicTemperaturePF; }
53
+ }
54
+
55
+ /* ISO-80000-5 item 5-3.1 linear expansion coefficient */
56
+ attribute def LinearExpansionCoefficientValue :> ScalarQuantityValue {
57
+ doc
58
+ /*
59
+ * source: item 5-3.1 linear expansion coefficient
60
+ * symbol(s): `α_l`
61
+ * application domain: generic
62
+ * name: LinearExpansionCoefficient
63
+ * quantity dimension: Θ^-1
64
+ * measurement unit(s): K^-1
65
+ * tensor order: 0
66
+ * definition: relative change of length with temperature: `α_l = 1/l * (dl)/(dT)` where l is length (ISO 80000-3) and `T` is thermodynamic temperature (item 5-1)
67
+ * remarks: The subscripts in the symbols may be omitted when there is no risk of confusion.
68
+ */
69
+ attribute :>> num: Real;
70
+ attribute :>> mRef: LinearExpansionCoefficientUnit[1];
71
+ }
72
+
73
+ attribute linearExpansionCoefficient: LinearExpansionCoefficientValue[*] nonunique :> scalarQuantities;
74
+
75
+ attribute def LinearExpansionCoefficientUnit :> DerivedUnit {
76
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
77
+ attribute :>> quantityDimension { :>> quantityPowerFactors = thermodynamicTemperaturePF; }
78
+ }
79
+
80
+ /* ISO-80000-5 item 5-3.2 cubic expansion coefficient */
81
+ attribute def CubicExpansionCoefficientValue :> ScalarQuantityValue {
82
+ doc
83
+ /*
84
+ * source: item 5-3.2 cubic expansion coefficient
85
+ * symbol(s): `α_V`, `γ`
86
+ * application domain: generic
87
+ * name: CubicExpansionCoefficient
88
+ * quantity dimension: Θ^-1
89
+ * measurement unit(s): K^-1
90
+ * tensor order: 0
91
+ * definition: relative change of volume with temperature: `α_V = 1/V * (dV)/(dT)` where `V` is volume (ISO 80000-3) and `T` is thermodynamic temperature (item 5-1)
92
+ * remarks: Also called volumetric expansion coefficient. The subscripts in the symbols may be omitted when there is no risk of confusion.
93
+ */
94
+ attribute :>> num: Real;
95
+ attribute :>> mRef: CubicExpansionCoefficientUnit[1];
96
+ }
97
+
98
+ attribute cubicExpansionCoefficient: CubicExpansionCoefficientValue[*] nonunique :> scalarQuantities;
99
+
100
+ attribute def CubicExpansionCoefficientUnit :> DerivedUnit {
101
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
102
+ attribute :>> quantityDimension { :>> quantityPowerFactors = thermodynamicTemperaturePF; }
103
+ }
104
+
105
+ /* ISO-80000-5 item 5-3.3 relative pressure coefficient */
106
+ attribute def RelativePressureCoefficientValue :> ScalarQuantityValue {
107
+ doc
108
+ /*
109
+ * source: item 5-3.3 relative pressure coefficient
110
+ * symbol(s): `α_p`
111
+ * application domain: generic
112
+ * name: RelativePressureCoefficient
113
+ * quantity dimension: Θ^-1
114
+ * measurement unit(s): K^-1
115
+ * tensor order: 0
116
+ * definition: relative change of pressure with temperature at constant volume: `α_p = 1/p * ((partial p)/(partial T))_V` where `p` is pressure (ISO 80000-4), `T` is thermodynamic temperature (item 5-1), and `V` is volume (ISO 80000-3)
117
+ * remarks: The subscripts in the symbols may be omitted when there is no risk of confusion.
118
+ */
119
+ attribute :>> num: Real;
120
+ attribute :>> mRef: RelativePressureCoefficientUnit[1];
121
+ }
122
+
123
+ attribute relativePressureCoefficient: RelativePressureCoefficientValue[*] nonunique :> scalarQuantities;
124
+
125
+ attribute def RelativePressureCoefficientUnit :> DerivedUnit {
126
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
127
+ attribute :>> quantityDimension { :>> quantityPowerFactors = thermodynamicTemperaturePF; }
128
+ }
129
+
130
+ /* ISO-80000-5 item 5-4 pressure coefficient */
131
+ attribute def PressureCoefficientValue :> ScalarQuantityValue {
132
+ doc
133
+ /*
134
+ * source: item 5-4 pressure coefficient
135
+ * symbol(s): `β`
136
+ * application domain: generic
137
+ * name: PressureCoefficient
138
+ * quantity dimension: L^-1*M^1*T^-2*Θ^-1
139
+ * measurement unit(s): Pa/K, kg*m^-1*s^-2*K^-1
140
+ * tensor order: 0
141
+ * definition: change of pressure with temperature at constant volume: `β = ((partial p)/(partial T))_V` where `p` is pressure (ISO 80000-4), `T` is thermodynamic temperature (item 5-1), and `V` is volume (ISO 80000-3)
142
+ * remarks: None.
143
+ */
144
+ attribute :>> num: Real;
145
+ attribute :>> mRef: PressureCoefficientUnit[1];
146
+ }
147
+
148
+ attribute pressureCoefficient: PressureCoefficientValue[*] nonunique :> scalarQuantities;
149
+
150
+ attribute def PressureCoefficientUnit :> DerivedUnit {
151
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
152
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
153
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
154
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
155
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF); }
156
+ }
157
+
158
+ /* ISO-80000-5 item 5-5.1 isothermal compressibility */
159
+ attribute def IsothermalCompressibilityValue :> ScalarQuantityValue {
160
+ doc
161
+ /*
162
+ * source: item 5-5.1 isothermal compressibility
163
+ * symbol(s): `ϰ_T`
164
+ * application domain: generic
165
+ * name: IsothermalCompressibility
166
+ * quantity dimension: L^1*M^-1*T^2
167
+ * measurement unit(s): Pa^-1, kg^-1*m*s^2
168
+ * tensor order: 0
169
+ * definition: negative relative change of volume with pressure at constant temperature: `ϰ_T = -1/V * ((partial V)/(partial p))_T` where `V` is volume (ISO 80000-3), `p` is pressure (ISO 80000-4), and `T` is thermodynamic temperature (item 5-1)
170
+ * remarks: The subscripts in the symbols may be omitted when there is no risk of confusion.
171
+ */
172
+ attribute :>> num: Real;
173
+ attribute :>> mRef: IsothermalCompressibilityUnit[1];
174
+ }
175
+
176
+ attribute isothermalCompressibility: IsothermalCompressibilityValue[*] nonunique :> scalarQuantities;
177
+
178
+ attribute def IsothermalCompressibilityUnit :> DerivedUnit {
179
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 1; }
180
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
181
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = 2; }
182
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
183
+ }
184
+
185
+ /* ISO-80000-5 item 5-5.2 isentropic compressibility */
186
+ attribute def IsentropicCompressibilityValue :> ScalarQuantityValue {
187
+ doc
188
+ /*
189
+ * source: item 5-5.2 isentropic compressibility
190
+ * symbol(s): `ϰ_S`
191
+ * application domain: generic
192
+ * name: IsentropicCompressibility
193
+ * quantity dimension: L^1*M^-1*T^2
194
+ * measurement unit(s): Pa^-1, kg^-1*m*s^2
195
+ * tensor order: 0
196
+ * definition: negative relative change of volume with pressure at constant entropy: `ϰ_S = -1/V * ((partial V)/(partial p))_S` where `V` is volume (ISO 80000-3), `p` is pressure (ISO 80000-4), and `S` is entropy (item 5-18)
197
+ * remarks: The subscripts in the symbols may be omitted when there is no risk of confusion.
198
+ */
199
+ attribute :>> num: Real;
200
+ attribute :>> mRef: IsentropicCompressibilityUnit[1];
201
+ }
202
+
203
+ attribute isentropicCompressibility: IsentropicCompressibilityValue[*] nonunique :> scalarQuantities;
204
+
205
+ attribute def IsentropicCompressibilityUnit :> DerivedUnit {
206
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 1; }
207
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
208
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = 2; }
209
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
210
+ }
211
+
212
+ /* ISO-80000-5 item 5-6.1 heat, amount of heat */
213
+ attribute heat: EnergyValue :> scalarQuantities {
214
+ doc
215
+ /*
216
+ * source: item 5-6.1 heat, amount of heat
217
+ * symbol(s): `Q`
218
+ * application domain: generic
219
+ * name: Heat (specializes Energy)
220
+ * quantity dimension: L^2*M^1*T^-2
221
+ * measurement unit(s): J, kg*m^2*s^-2
222
+ * tensor order: 0
223
+ * definition: difference between the increase in the internal energy (item 5-20.2) of a system and the work (ISO 80000-4) done on the system, provided that the amounts of substances within the system are not changed
224
+ * remarks: The heat transferred in an isothermal phase transformation should be expressed as the change in the appropriate state functions, e.g. `T ΔS`, where `T` is thermodynamic temperature (item 5-1) and `S` is entropy (item 5-18), or `ΔH`, where `H` is enthalpy (item 5-20.3). NOTE A supply of heat can correspond to an increase in thermodynamic temperature or to other effects, such as phase change or chemical processes; see item 5-6.2.
225
+ */
226
+ }
227
+
228
+ alias amountOfHeat for heat;
229
+
230
+ /* ISO-80000-5 item 5-6.2 latent heat */
231
+ attribute latentHeat: EnergyValue :> scalarQuantities {
232
+ doc
233
+ /*
234
+ * source: item 5-6.2 latent heat
235
+ * symbol(s): `Q`
236
+ * application domain: generic
237
+ * name: LatentHeat (specializes Energy)
238
+ * quantity dimension: L^2*M^1*T^-2
239
+ * measurement unit(s): J, kg*m^2*s^-2
240
+ * tensor order: 0
241
+ * definition: energy released or absorbed by a system during a constant-temperature process
242
+ * remarks: Examples of latent heat are latent heat of fusion (melting) and latent heat of vaporization (boiling).
243
+ */
244
+ }
245
+
246
+ /* ISO-80000-5 item 5-7 heat flow rate */
247
+ attribute def HeatFlowRateValue :> ScalarQuantityValue {
248
+ doc
249
+ /*
250
+ * source: item 5-7 heat flow rate
251
+ * symbol(s): `dot(Q)`
252
+ * application domain: generic
253
+ * name: HeatFlowRate
254
+ * quantity dimension: L^2*M^1*T^-3
255
+ * measurement unit(s): W, J/s, kg*m^2*s^-3
256
+ * tensor order: 0
257
+ * definition: time rate at which heat (item 5-6.1) crosses a given surface
258
+ * remarks: None.
259
+ */
260
+ attribute :>> num: Real;
261
+ attribute :>> mRef: HeatFlowRateUnit[1];
262
+ }
263
+
264
+ attribute heatFlowRate: HeatFlowRateValue[*] nonunique :> scalarQuantities;
265
+
266
+ attribute def HeatFlowRateUnit :> DerivedUnit {
267
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
268
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
269
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -3; }
270
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
271
+ }
272
+
273
+ /* ISO-80000-5 item 5-8 density of heat flow rate */
274
+ attribute def DensityOfHeatFlowRateValue :> ScalarQuantityValue {
275
+ doc
276
+ /*
277
+ * source: item 5-8 density of heat flow rate
278
+ * symbol(s): `q`, `φ`
279
+ * application domain: generic
280
+ * name: DensityOfHeatFlowRate
281
+ * quantity dimension: M^1*T^-3
282
+ * measurement unit(s): W/m^2, kg*s^-3
283
+ * tensor order: 0
284
+ * definition: quotient of heat flow rate and area: `q = dot Q / A` where `dot Q` is heat flow rate (item 5-7) and A is area (ISO 80000-3) of a given surface
285
+ * remarks: None.
286
+ */
287
+ attribute :>> num: Real;
288
+ attribute :>> mRef: DensityOfHeatFlowRateUnit[1];
289
+ }
290
+
291
+ attribute densityOfHeatFlowRate: DensityOfHeatFlowRateValue[*] nonunique :> scalarQuantities;
292
+
293
+ attribute def DensityOfHeatFlowRateUnit :> DerivedUnit {
294
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
295
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -3; }
296
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (massPF, durationPF); }
297
+ }
298
+
299
+ /* ISO-80000-5 item 5-9 thermal conductivity */
300
+ attribute def ThermalConductivityValue :> ScalarQuantityValue {
301
+ doc
302
+ /*
303
+ * source: item 5-9 thermal conductivity
304
+ * symbol(s): `λ_l`, `(ϰ)`
305
+ * application domain: generic
306
+ * name: ThermalConductivity
307
+ * quantity dimension: L^1*M^1*T^-3*Θ^-1
308
+ * measurement unit(s): W/(m*K), kg*m*s^-3*K^-1
309
+ * tensor order: 0
310
+ * definition: quotient of density of heat flow rate (item 5-8) and thermodynamic temperature gradient that has the same direction as the heat flow
311
+ * remarks: None.
312
+ */
313
+ attribute :>> num: Real;
314
+ attribute :>> mRef: ThermalConductivityUnit[1];
315
+ }
316
+
317
+ attribute thermalConductivity: ThermalConductivityValue[*] nonunique :> scalarQuantities;
318
+
319
+ attribute def ThermalConductivityUnit :> DerivedUnit {
320
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 1; }
321
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
322
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -3; }
323
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
324
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF); }
325
+ }
326
+
327
+ /* ISO-80000-5 item 5-10.1 coefficient of heat transfer */
328
+ attribute def CoefficientOfHeatTransferValue :> ScalarQuantityValue {
329
+ doc
330
+ /*
331
+ * source: item 5-10.1 coefficient of heat transfer
332
+ * symbol(s): `K`, `(k)`
333
+ * application domain: generic
334
+ * name: CoefficientOfHeatTransfer
335
+ * quantity dimension: M^1*T^-3*Θ^-1
336
+ * measurement unit(s): W/(m^2*K), kg*s^-3*K^-1
337
+ * tensor order: 0
338
+ * definition: quotient of density of heat flow rate (item 5-8) and thermodynamic temperature (item 5-1) difference
339
+ * remarks: In building technology, the coefficient of heat transfer is often called thermal transmittance, with the symbol U (no longer recommended). See remark to item 5-13.
340
+ */
341
+ attribute :>> num: Real;
342
+ attribute :>> mRef: CoefficientOfHeatTransferUnit[1];
343
+ }
344
+
345
+ attribute coefficientOfHeatTransfer: CoefficientOfHeatTransferValue[*] nonunique :> scalarQuantities;
346
+
347
+ attribute def CoefficientOfHeatTransferUnit :> DerivedUnit {
348
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
349
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -3; }
350
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
351
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (massPF, durationPF, thermodynamicTemperaturePF); }
352
+ }
353
+
354
+ /* ISO-80000-5 item 5-10.2 surface coefficient of heat transfer */
355
+ attribute def SurfaceCoefficientOfHeatTransferValue :> ScalarQuantityValue {
356
+ doc
357
+ /*
358
+ * source: item 5-10.2 surface coefficient of heat transfer
359
+ * symbol(s): `h`, `(α)`
360
+ * application domain: generic
361
+ * name: SurfaceCoefficientOfHeatTransfer
362
+ * quantity dimension: M^1*T^-3*Θ^-1
363
+ * measurement unit(s): W/(m^2*K), kg*s^-3*K^-1
364
+ * tensor order: 0
365
+ * definition: quotient of density of heat flow rate and the difference of the temperature at the surface and a reference temperature: `h = q / (T_s - T_r)` where q is density of heat flow rate (item 5-8), `T_s` is the thermodynamic temperature (item 5-1) at the surface, and `T_r` is a reference thermodynamic temperature characterizing the adjacent surroundings
366
+ * remarks: None.
367
+ */
368
+ attribute :>> num: Real;
369
+ attribute :>> mRef: SurfaceCoefficientOfHeatTransferUnit[1];
370
+ }
371
+
372
+ attribute surfaceCoefficientOfHeatTransfer: SurfaceCoefficientOfHeatTransferValue[*] nonunique :> scalarQuantities;
373
+
374
+ attribute def SurfaceCoefficientOfHeatTransferUnit :> DerivedUnit {
375
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
376
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -3; }
377
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
378
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (massPF, durationPF, thermodynamicTemperaturePF); }
379
+ }
380
+
381
+ /* ISO-80000-5 item 5-11 thermal insulance, coefficient of thermal insulance */
382
+ attribute def ThermalInsulanceValue :> ScalarQuantityValue {
383
+ doc
384
+ /*
385
+ * source: item 5-11 thermal insulance, coefficient of thermal insulance
386
+ * symbol(s): `M`
387
+ * application domain: generic
388
+ * name: ThermalInsulance
389
+ * quantity dimension: M^-1*T^3*Θ^1
390
+ * measurement unit(s): m^2*K/W, kg^-1*s^3*K
391
+ * tensor order: 0
392
+ * definition: inverse of coefficient of heat transfer `K`: `M = 1/K` where `K` is coefficient of heat transfer (item 5-10.1)
393
+ * remarks: In building technology, this quantity is often called thermal resistance, with the symbol R.
394
+ */
395
+ attribute :>> num: Real;
396
+ attribute :>> mRef: ThermalInsulanceUnit[1];
397
+ }
398
+
399
+ attribute thermalInsulance: ThermalInsulanceValue[*] nonunique :> scalarQuantities;
400
+
401
+ attribute def ThermalInsulanceUnit :> DerivedUnit {
402
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
403
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = 3; }
404
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = 1; }
405
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (massPF, durationPF, thermodynamicTemperaturePF); }
406
+ }
407
+
408
+ alias CoefficientOfThermalInsulanceUnit for ThermalInsulanceUnit;
409
+ alias CoefficientOfThermalInsulanceValue for ThermalInsulanceValue;
410
+ alias coefficientOfThermalInsulance for thermalInsulance;
411
+
412
+ /* ISO-80000-5 item 5-12 thermal resistance */
413
+ attribute def ThermalResistanceValue :> ScalarQuantityValue {
414
+ doc
415
+ /*
416
+ * source: item 5-12 thermal resistance
417
+ * symbol(s): `R`
418
+ * application domain: generic
419
+ * name: ThermalResistance
420
+ * quantity dimension: L^-2*M^-1*T^3*Θ^1
421
+ * measurement unit(s): K/W, kg^-1*m^-2*s^3*K
422
+ * tensor order: 0
423
+ * definition: quotient of thermodynamic temperature (item 5-1) difference and heat flow rate (item 5-7)
424
+ * remarks: See remark to item 5-11.
425
+ */
426
+ attribute :>> num: Real;
427
+ attribute :>> mRef: ThermalResistanceUnit[1];
428
+ }
429
+
430
+ attribute thermalResistance: ThermalResistanceValue[*] nonunique :> scalarQuantities;
431
+
432
+ attribute def ThermalResistanceUnit :> DerivedUnit {
433
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -2; }
434
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
435
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = 3; }
436
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = 1; }
437
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF); }
438
+ }
439
+
440
+ /* ISO-80000-5 item 5-13 thermal conductance */
441
+ attribute def ThermalConductanceValue :> ScalarQuantityValue {
442
+ doc
443
+ /*
444
+ * source: item 5-13 thermal conductance
445
+ * symbol(s): `G`, `(H)`
446
+ * application domain: generic
447
+ * name: ThermalConductance
448
+ * quantity dimension: L^2*M^1*T^-3*Θ^-1
449
+ * measurement unit(s): W/K, kg*m^2*s^-3*K^-1
450
+ * tensor order: 0
451
+ * definition: inverse of thermal resistance `R`: `G = 1/R` where `R` is thermal resistance (item 5-12)
452
+ * remarks: See remark to item 5-11. This quantity is also called heat transfer coefficient. See item 5-10.1.
453
+ */
454
+ attribute :>> num: Real;
455
+ attribute :>> mRef: ThermalConductanceUnit[1];
456
+ }
457
+
458
+ attribute thermalConductance: ThermalConductanceValue[*] nonunique :> scalarQuantities;
459
+
460
+ attribute def ThermalConductanceUnit :> DerivedUnit {
461
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
462
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
463
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -3; }
464
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
465
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF); }
466
+ }
467
+
468
+ /* ISO-80000-5 item 5-14 thermal diffusivity */
469
+ attribute def ThermalDiffusivityValue :> ScalarQuantityValue {
470
+ doc
471
+ /*
472
+ * source: item 5-14 thermal diffusivity
473
+ * symbol(s): `a`
474
+ * application domain: generic
475
+ * name: ThermalDiffusivity
476
+ * quantity dimension: L^2*T^-1
477
+ * measurement unit(s): m^2*s^-1
478
+ * tensor order: 0
479
+ * definition: quotient of thermal conductivity and the product of mass density and specific heat capacity: `a = λ / (ρ C_p)` where `λ` is thermal conductivity (item 5-9), `ρ` is mass density (ISO 80000-4), and `c_p` is specific heat capacity at constant pressure (item 5-16.2)
480
+ * remarks: None.
481
+ */
482
+ attribute :>> num: Real;
483
+ attribute :>> mRef: ThermalDiffusivityUnit[1];
484
+ }
485
+
486
+ attribute thermalDiffusivity: ThermalDiffusivityValue[*] nonunique :> scalarQuantities;
487
+
488
+ attribute def ThermalDiffusivityUnit :> DerivedUnit {
489
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
490
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
491
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF); }
492
+ }
493
+
494
+ /* ISO-80000-5 item 5-15 heat capacity */
495
+ attribute def HeatCapacityValue :> ScalarQuantityValue {
496
+ doc
497
+ /*
498
+ * source: item 5-15 heat capacity
499
+ * symbol(s): `C`
500
+ * application domain: generic
501
+ * name: HeatCapacity
502
+ * quantity dimension: L^2*M^1*T^-2*Θ^-1
503
+ * measurement unit(s): J/K, kg*m^2*s^-2*K^-1
504
+ * tensor order: 0
505
+ * definition: derivative of added heat with respect to thermodynamic temperature of a system: `C = (dQ)/(dT)` where `Q` is amount of heat (item 5-6.1) and `T` is thermodynamic temperature (item 5-1)
506
+ * remarks: Heat capacity is not completely defined unless specified as seen in items 5-16.2, 5-16.3 and 5-16.4.
507
+ */
508
+ attribute :>> num: Real;
509
+ attribute :>> mRef: HeatCapacityUnit[1];
510
+ }
511
+
512
+ attribute heatCapacity: HeatCapacityValue[*] nonunique :> scalarQuantities;
513
+
514
+ attribute def HeatCapacityUnit :> DerivedUnit {
515
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
516
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
517
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
518
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
519
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF); }
520
+ }
521
+
522
+ /* ISO-80000-5 item 5-16.1 specific heat capacity */
523
+ attribute def SpecificHeatCapacityValue :> ScalarQuantityValue {
524
+ doc
525
+ /*
526
+ * source: item 5-16.1 specific heat capacity
527
+ * symbol(s): `c`
528
+ * application domain: generic
529
+ * name: SpecificHeatCapacity
530
+ * quantity dimension: L^2*T^-2*Θ^-1
531
+ * measurement unit(s): J/(kg*K), m^2*s^-2*K^-1
532
+ * tensor order: 0
533
+ * definition: quotient of heat capacity and mass: `c = C/m` where `C` is heat capacity (item 5-15) and `m` is mass (ISO 80000-4)
534
+ * remarks: For the corresponding quantities related to the amount of substance, see ISO 80000-9.
535
+ */
536
+ attribute :>> num: Real;
537
+ attribute :>> mRef: SpecificHeatCapacityUnit[1];
538
+ }
539
+
540
+ attribute specificHeatCapacity: SpecificHeatCapacityValue[*] nonunique :> scalarQuantities;
541
+
542
+ attribute def SpecificHeatCapacityUnit :> DerivedUnit {
543
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
544
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
545
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
546
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF, thermodynamicTemperaturePF); }
547
+ }
548
+
549
+ /* ISO-80000-5 item 5-16.2 specific heat capacity at constant pressure */
550
+ attribute def SpecificHeatCapacityAtConstantPressureValue :> ScalarQuantityValue {
551
+ doc
552
+ /*
553
+ * source: item 5-16.2 specific heat capacity at constant pressure
554
+ * symbol(s): `c_p`
555
+ * application domain: generic
556
+ * name: SpecificHeatCapacityAtConstantPressure
557
+ * quantity dimension: L^2*T^-2*Θ^-1
558
+ * measurement unit(s): J/(kg*K), m^2*s^-2*K^-1
559
+ * tensor order: 0
560
+ * definition: specific heat capacity (item 5-16.1) at constant pressure (ISO 80000-4)
561
+ * remarks: Also called specific isobaric heat capacity.
562
+ */
563
+ attribute :>> num: Real;
564
+ attribute :>> mRef: SpecificHeatCapacityAtConstantPressureUnit[1];
565
+ }
566
+
567
+ attribute specificHeatCapacityAtConstantPressure: SpecificHeatCapacityAtConstantPressureValue[*] nonunique :> scalarQuantities;
568
+
569
+ attribute def SpecificHeatCapacityAtConstantPressureUnit :> DerivedUnit {
570
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
571
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
572
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
573
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF, thermodynamicTemperaturePF); }
574
+ }
575
+
576
+ /* ISO-80000-5 item 5-16.3 specific heat capacity at constant volume */
577
+ attribute def SpecificHeatCapacityAtConstantVolumeValue :> ScalarQuantityValue {
578
+ doc
579
+ /*
580
+ * source: item 5-16.3 specific heat capacity at constant volume
581
+ * symbol(s): `c_V`
582
+ * application domain: generic
583
+ * name: SpecificHeatCapacityAtConstantVolume
584
+ * quantity dimension: L^2*T^-2*Θ^-1
585
+ * measurement unit(s): J/(kg*K), m^2*s^-2*K^-1
586
+ * tensor order: 0
587
+ * definition: specific heat capacity (item 5-16.1) at constant volume (ISO 80000-3)
588
+ * remarks: Also called specific isochoric heat capacity.
589
+ */
590
+ attribute :>> num: Real;
591
+ attribute :>> mRef: SpecificHeatCapacityAtConstantVolumeUnit[1];
592
+ }
593
+
594
+ attribute specificHeatCapacityAtConstantVolume: SpecificHeatCapacityAtConstantVolumeValue[*] nonunique :> scalarQuantities;
595
+
596
+ attribute def SpecificHeatCapacityAtConstantVolumeUnit :> DerivedUnit {
597
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
598
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
599
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
600
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF, thermodynamicTemperaturePF); }
601
+ }
602
+
603
+ /* ISO-80000-5 item 5-16.4 specific heat capacity at saturated vapour pressure */
604
+ attribute def SpecificHeatCapacityAtSaturatedVapourPressureValue :> ScalarQuantityValue {
605
+ doc
606
+ /*
607
+ * source: item 5-16.4 specific heat capacity at saturated vapour pressure
608
+ * symbol(s): `c_"sat"`
609
+ * application domain: generic
610
+ * name: SpecificHeatCapacityAtSaturatedVapourPressure
611
+ * quantity dimension: L^2*T^-2*Θ^-1
612
+ * measurement unit(s): J/(kg*K), m^2*s^-2*K^-1
613
+ * tensor order: 0
614
+ * definition: specific heat capacity (item 5-16.1) at saturated vapour pressure (ISO 80000-4)
615
+ * remarks: None.
616
+ */
617
+ attribute :>> num: Real;
618
+ attribute :>> mRef: SpecificHeatCapacityAtSaturatedVapourPressureUnit[1];
619
+ }
620
+
621
+ attribute specificHeatCapacityAtSaturatedVapourPressure: SpecificHeatCapacityAtSaturatedVapourPressureValue[*] nonunique :> scalarQuantities;
622
+
623
+ attribute def SpecificHeatCapacityAtSaturatedVapourPressureUnit :> DerivedUnit {
624
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
625
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
626
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
627
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF, thermodynamicTemperaturePF); }
628
+ }
629
+
630
+ /* ISO-80000-5 item 5-17.1 ratio of specific heat capacities */
631
+ attribute def RatioOfSpecificHeatCapacitiesValue :> DimensionOneValue {
632
+ doc
633
+ /*
634
+ * source: item 5-17.1 ratio of specific heat capacities
635
+ * symbol(s): `γ`
636
+ * application domain: generic
637
+ * name: RatioOfSpecificHeatCapacities (specializes DimensionOneQuantity)
638
+ * quantity dimension: 1
639
+ * measurement unit(s): 1
640
+ * tensor order: 0
641
+ * definition: quotient of specific heat capacity at constant pressure and specific heat capacity at constant volume: `γ = c_p/c_V` where `c_p` is specific heat capacity at constant pressure (item 5-16.2) and `c_V` is specific heat capacity at constant volume (item 5-16.3)
642
+ * remarks: This quantity can also be expressed by `γ = C_p/C_V` where `C_p` is heat capacity at constant pressure and `C_V` is heat capacity at constant volume.
643
+ */
644
+ }
645
+ attribute ratioOfSpecificHeatCapacities: RatioOfSpecificHeatCapacitiesValue :> scalarQuantities;
646
+
647
+ /* ISO-80000-5 item 5-17.2 isentropic exponent, isentropic expansion factor */
648
+ attribute def IsentropicExponentValue :> DimensionOneValue {
649
+ doc
650
+ /*
651
+ * source: item 5-17.2 isentropic exponent, isentropic expansion factor
652
+ * symbol(s): `ϰ`
653
+ * application domain: generic
654
+ * name: IsentropicExponent (specializes DimensionOneQuantity)
655
+ * quantity dimension: 1
656
+ * measurement unit(s): 1
657
+ * tensor order: 0
658
+ * definition: the negative of relative pressure change, divided by relative volume change, at constant entropy: `ϰ = -V/p * ((partial p)/(partial V))_S` where `V` is volume (ISO 80000-3), `p` is pressure (ISO 80000-4), and `S` is entropy (item 5-18)
659
+ * remarks: For an ideal gas, `ϰ` is equal to `γ` (item 5-17.1).
660
+ */
661
+ }
662
+ attribute isentropicExponent: IsentropicExponentValue :> scalarQuantities;
663
+
664
+ alias isentropicExpansionFactor for isentropicExponent;
665
+
666
+ /* ISO-80000-5 item 5-18 entropy */
667
+ attribute def EntropyValue :> ScalarQuantityValue {
668
+ doc
669
+ /*
670
+ * source: item 5-18 entropy
671
+ * symbol(s): `S`
672
+ * application domain: generic
673
+ * name: Entropy
674
+ * quantity dimension: L^2*M^1*T^-2*Θ^-1
675
+ * measurement unit(s): J/K, kg*m^2*s^-2*K^-1
676
+ * tensor order: 0
677
+ * definition: natural logarithm of number of equally probable microscopic configurations in a macroscopic system, multiplied by the Boltzmann constant: `S = k lnW` where `W` is number of configurations and `k` is the Boltzmann constant (ISO 80000-1)
678
+ * remarks: None.
679
+ */
680
+ attribute :>> num: Real;
681
+ attribute :>> mRef: EntropyUnit[1];
682
+ }
683
+
684
+ attribute entropy: EntropyValue[*] nonunique :> scalarQuantities;
685
+
686
+ attribute def EntropyUnit :> DerivedUnit {
687
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
688
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
689
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
690
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
691
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF); }
692
+ }
693
+
694
+ /* ISO-80000-5 item 5-19 specific entropy */
695
+ attribute def SpecificEntropyValue :> ScalarQuantityValue {
696
+ doc
697
+ /*
698
+ * source: item 5-19 specific entropy
699
+ * symbol(s): `s`
700
+ * application domain: generic
701
+ * name: SpecificEntropy
702
+ * quantity dimension: L^2*T^-2*Θ^-1
703
+ * measurement unit(s): J/(kg*K), m^2*s^-2*K^-1
704
+ * tensor order: 0
705
+ * definition: quotient of entropy and mass: `s = S/m` where `S` is entropy (item 5-18) and `m` is mass (ISO 80000-4)
706
+ * remarks: For the corresponding quantity related to amount of substance, see ISO 80000-9.
707
+ */
708
+ attribute :>> num: Real;
709
+ attribute :>> mRef: SpecificEntropyUnit[1];
710
+ }
711
+
712
+ attribute specificEntropy: SpecificEntropyValue[*] nonunique :> scalarQuantities;
713
+
714
+ attribute def SpecificEntropyUnit :> DerivedUnit {
715
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
716
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
717
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
718
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF, thermodynamicTemperaturePF); }
719
+ }
720
+
721
+ /* ISO-80000-5 item 5-20.1 energy */
722
+ attribute def EnergyValue :> ScalarQuantityValue {
723
+ doc
724
+ /*
725
+ * source: item 5-20.1 energy
726
+ * symbol(s): `E`
727
+ * application domain: thermodynamics
728
+ * name: Energy
729
+ * quantity dimension: L^2*M^1*T^-2
730
+ * measurement unit(s): J, kg*m^2*s^-2
731
+ * tensor order: 0
732
+ * definition: ability of a system to do work (ISO 80000-4)
733
+ * remarks: Energy exists in different forms that are mutually transformable into each other, either totally or partially. In contrast to internal energy (item 5-20.2), energy is not a state function.
734
+ */
735
+ attribute :>> num: Real;
736
+ attribute :>> mRef: EnergyUnit[1];
737
+ }
738
+
739
+ attribute energy: EnergyValue[*] nonunique :> scalarQuantities;
740
+
741
+ attribute def EnergyUnit :> DerivedUnit {
742
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
743
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
744
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
745
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
746
+ }
747
+
748
+ /* ISO-80000-5 item 5-20.2 internal energy, thermodynamic energy */
749
+ attribute internalEnergy: EnergyValue :> scalarQuantities {
750
+ doc
751
+ /*
752
+ * source: item 5-20.2 internal energy, thermodynamic energy
753
+ * symbol(s): `U`
754
+ * application domain: generic
755
+ * name: InternalEnergy (specializes Energy)
756
+ * quantity dimension: L^2*M^1*T^-2
757
+ * measurement unit(s): J, kg*m^2*s^-2
758
+ * tensor order: 0
759
+ * definition: energy of a system whose change is given by the amount of the heat (item 5-6.1) transferred to the system and the work (ISO 80000-4) done on the system, provided that the system is closed and no chemical reactions occur
760
+ * remarks: In thermodynamic text books, usually the formula `ΔU = Q + W` is used. Note that the zero of the energy is undefined.
761
+ */
762
+ }
763
+
764
+ alias thermodynamicEnergy for internalEnergy;
765
+
766
+ /* ISO-80000-5 item 5-20.3 enthalpy */
767
+ attribute enthalpy: EnergyValue :> scalarQuantities {
768
+ doc
769
+ /*
770
+ * source: item 5-20.3 enthalpy
771
+ * symbol(s): `H`
772
+ * application domain: generic
773
+ * name: Enthalpy (specializes Energy)
774
+ * quantity dimension: L^2*M^1*T^-2
775
+ * measurement unit(s): J, kg*m^2*s^-2
776
+ * tensor order: 0
777
+ * definition: sum of internal energy of the system and the product of pressure and volume of the system: `H = U + p*V` where U is internal energy (item 5-20.2), `p` is pressure (ISO 80000-4), and `V` is volume (ISO 80000-3)
778
+ * remarks: None.
779
+ */
780
+ }
781
+
782
+ /* ISO-80000-5 item 5-20.4 Helmholtz energy, Helmholtz function */
783
+ attribute helmholtzEnergy: EnergyValue :> scalarQuantities {
784
+ doc
785
+ /*
786
+ * source: item 5-20.4 Helmholtz energy, Helmholtz function
787
+ * symbol(s): `A`, `F`
788
+ * application domain: generic
789
+ * name: HelmholtzEnergy (specializes Energy)
790
+ * quantity dimension: L^2*M^1*T^-2
791
+ * measurement unit(s): J, kg*m^2*s^-2
792
+ * tensor order: 0
793
+ * definition: difference of internal energy of the system and the product of thermodynamic temperature and entropy of the system: `A = U - TS` where `U` is internal energy (item 5-20.2), `T` is thermodynamic temperature (item 5-1), and `S` is entropy (item 5-18)
794
+ * remarks: The name Helmholtz free energy is also used. However, this term is not recommended.
795
+ */
796
+ }
797
+
798
+ alias helmholtzFunction for helmholtzEnergy;
799
+
800
+ /* ISO-80000-5 item 5-20.5 Gibbs energy, Gibbs function */
801
+ attribute gibbsEnergy: EnergyValue :> scalarQuantities {
802
+ doc
803
+ /*
804
+ * source: item 5-20.5 Gibbs energy, Gibbs function
805
+ * symbol(s): `G`
806
+ * application domain: generic
807
+ * name: GibbsEnergy (specializes Energy)
808
+ * quantity dimension: L^2*M^1*T^-2
809
+ * measurement unit(s): J, kg*m^2*s^-2
810
+ * tensor order: 0
811
+ * definition: difference of the enthalpy and the product of thermodynamic temperature and entropy of the system: `G = H - T*S` where H is enthalpy (item 5-20.3), `T` is thermodynamic temperature (item 5-1), and `S` is entropy (item 5-18)
812
+ * remarks: The name Gibbs free energy is also used. However, this term is not recommended.
813
+ */
814
+ }
815
+
816
+ alias gibbsFunction for gibbsEnergy;
817
+
818
+ /* ISO-80000-5 item 5-21.1 specific energy */
819
+ attribute def SpecificEnergyValue :> ScalarQuantityValue {
820
+ doc
821
+ /*
822
+ * source: item 5-21.1 specific energy
823
+ * symbol(s): `e`
824
+ * application domain: generic
825
+ * name: SpecificEnergy
826
+ * quantity dimension: L^2*T^-2
827
+ * measurement unit(s): J/kg, m^2*s^-2
828
+ * tensor order: 0
829
+ * definition: quotient of energy and mass: `e = E/m` where `E` is energy (item 5-20.1) and `m` is mass (ISO 80000-4)
830
+ * remarks: None.
831
+ */
832
+ attribute :>> num: Real;
833
+ attribute :>> mRef: SpecificEnergyUnit[1];
834
+ }
835
+
836
+ attribute specificEnergy: SpecificEnergyValue[*] nonunique :> scalarQuantities;
837
+
838
+ attribute def SpecificEnergyUnit :> DerivedUnit {
839
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
840
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
841
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF); }
842
+ }
843
+
844
+ /* ISO-80000-5 item 5-21.2 specific internal energy, specific thermodynamic energy */
845
+ attribute specificInternalEnergy: SpecificEnergyValue :> scalarQuantities {
846
+ doc
847
+ /*
848
+ * source: item 5-21.2 specific internal energy, specific thermodynamic energy
849
+ * symbol(s): `u`
850
+ * application domain: generic
851
+ * name: SpecificInternalEnergy (specializes SpecificEnergy)
852
+ * quantity dimension: L^2*T^-2
853
+ * measurement unit(s): J/kg, m^2*s^-2
854
+ * tensor order: 0
855
+ * definition: quotient of internal energy and mass: `u = U/m` where `U` is internal energy (item 5-20.2) and `m` is mass (ISO 80000-4)
856
+ * remarks: None.
857
+ */
858
+ }
859
+
860
+ alias specificThermodynamicEnergy for specificInternalEnergy;
861
+
862
+ /* ISO-80000-5 item 5-21.3 specific enthalpy */
863
+ attribute def SpecificEnthalpyValue :> ScalarQuantityValue {
864
+ doc
865
+ /*
866
+ * source: item 5-21.3 specific enthalpy
867
+ * symbol(s): `h`
868
+ * application domain: generic
869
+ * name: SpecificEnthalpy
870
+ * quantity dimension: L^2*T^-2
871
+ * measurement unit(s): J/kg, m^2*s^-2
872
+ * tensor order: 0
873
+ * definition: quotient of enthalpy and mass: `h = H/m` where `H` is enthalpy (item 5-20.3) and `m` is mass (ISO 80000-4)
874
+ * remarks: None.
875
+ */
876
+ attribute :>> num: Real;
877
+ attribute :>> mRef: SpecificEnthalpyUnit[1];
878
+ }
879
+
880
+ attribute specificEnthalpy: SpecificEnthalpyValue[*] nonunique :> scalarQuantities;
881
+
882
+ attribute def SpecificEnthalpyUnit :> DerivedUnit {
883
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
884
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
885
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF); }
886
+ }
887
+
888
+ /* ISO-80000-5 item 5-21.4 specific Helmholtz energy, specific Helmholtz function */
889
+ attribute specificHelmholtzEnergy: SpecificEnergyValue :> scalarQuantities {
890
+ doc
891
+ /*
892
+ * source: item 5-21.4 specific Helmholtz energy, specific Helmholtz function
893
+ * symbol(s): `a`, `f`
894
+ * application domain: generic
895
+ * name: SpecificHelmholtzEnergy (specializes SpecificEnergy)
896
+ * quantity dimension: L^2*T^-2
897
+ * measurement unit(s): J/kg, m^2*s^-2
898
+ * tensor order: 0
899
+ * definition: quotient of Helmholtz energy and mass: `a = A/m` where A is Helmholtz energy (item 5-20.4) and m is mass (ISO 80000-4)
900
+ * remarks: The name specific Helmholtz free energy is also used. However, this term is not recommended.
901
+ */
902
+ }
903
+
904
+ alias specificHelmholtzFunction for specificHelmholtzEnergy;
905
+
906
+ /* ISO-80000-5 item 5-21.5 specific Gibbs energy, specific Gibbs function */
907
+ attribute specificGibbsEnergy: SpecificEnergyValue :> scalarQuantities {
908
+ doc
909
+ /*
910
+ * source: item 5-21.5 specific Gibbs energy, specific Gibbs function
911
+ * symbol(s): `g`
912
+ * application domain: generic
913
+ * name: SpecificGibbsEnergy (specializes SpecificEnergy)
914
+ * quantity dimension: L^2*T^-2
915
+ * measurement unit(s): J/kg, m^2*s^-2
916
+ * tensor order: 0
917
+ * definition: quotient of Gibbs energy and mass: `g = G/m` where `G` is Gibbs energy (item 5-20.5) and `m` is mass (ISO 80000-4)
918
+ * remarks: The name specific Gibbs free energy is also used. However, this term is not recommended.
919
+ */
920
+ }
921
+
922
+ alias specificGibbsFunction for specificGibbsEnergy;
923
+
924
+ /* ISO-80000-5 item 5-22 Massieu function */
925
+ attribute def MassieuFunctionValue :> ScalarQuantityValue {
926
+ doc
927
+ /*
928
+ * source: item 5-22 Massieu function
929
+ * symbol(s): `J`
930
+ * application domain: generic
931
+ * name: MassieuFunction
932
+ * quantity dimension: L^2*M^1*T^-2*Θ^-1
933
+ * measurement unit(s): J/K, kg*m^2*s^-2*K^-1
934
+ * tensor order: 0
935
+ * definition: quotient of the negative of Helmholtz energy and temperature: `J = -A/T` where `A` is Helmholtz energy (item 5-20.4) and `T` is thermodynamic temperature (item 5-1)
936
+ * remarks: None.
937
+ */
938
+ attribute :>> num: Real;
939
+ attribute :>> mRef: MassieuFunctionUnit[1];
940
+ }
941
+
942
+ attribute massieuFunction: MassieuFunctionValue[*] nonunique :> scalarQuantities;
943
+
944
+ attribute def MassieuFunctionUnit :> DerivedUnit {
945
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
946
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
947
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
948
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
949
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF); }
950
+ }
951
+
952
+ /* ISO-80000-5 item 5-23 Planck function */
953
+ attribute def PlanckFunctionValue :> ScalarQuantityValue {
954
+ doc
955
+ /*
956
+ * source: item 5-23 Planck function
957
+ * symbol(s): `Y`
958
+ * application domain: generic
959
+ * name: PlanckFunction
960
+ * quantity dimension: L^2*M^1*T^-2*Θ^-1
961
+ * measurement unit(s): J/K, kg*m^2*s^-2*K^-1
962
+ * tensor order: 0
963
+ * definition: quotient of the negative of Gibbs energy and temperature: `Y = -G/T` where G is Gibbs energy (item 5-20.5) and `T` is thermodynamic temperature (item 5-1)
964
+ * remarks: None.
965
+ */
966
+ attribute :>> num: Real;
967
+ attribute :>> mRef: PlanckFunctionUnit[1];
968
+ }
969
+
970
+ attribute planckFunction: PlanckFunctionValue[*] nonunique :> scalarQuantities;
971
+
972
+ attribute def PlanckFunctionUnit :> DerivedUnit {
973
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
974
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
975
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
976
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
977
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF); }
978
+ }
979
+
980
+ /* ISO-80000-5 item 5-24 Joule-Thomson coefficient */
981
+ attribute def JouleThomsonCoefficientValue :> ScalarQuantityValue {
982
+ doc
983
+ /*
984
+ * source: item 5-24 Joule-Thomson coefficient
985
+ * symbol(s): `μ_"JT"`
986
+ * application domain: generic
987
+ * name: JouleThomsonCoefficient
988
+ * quantity dimension: L^1*M^-1*T^2*Θ^1
989
+ * measurement unit(s): K/Pa, kg^-1*m*s^2*K
990
+ * tensor order: 0
991
+ * definition: change of thermodynamic temperature with respect to pressure in a Joule-Thomson process at constant enthalpy: `μ_(JT) = ((partial T)/(partial p))_H` where `T` is thermodynamic temperature (item 5-1), `p` is pressure (ISO 80000-4) and H is enthalpy (item 5-20.3)
992
+ * remarks: None.
993
+ */
994
+ attribute :>> num: Real;
995
+ attribute :>> mRef: JouleThomsonCoefficientUnit[1];
996
+ }
997
+
998
+ attribute jouleThomsonCoefficient: JouleThomsonCoefficientValue[*] nonunique :> scalarQuantities;
999
+
1000
+ attribute def JouleThomsonCoefficientUnit :> DerivedUnit {
1001
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 1; }
1002
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
1003
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = 2; }
1004
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = 1; }
1005
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF); }
1006
+ }
1007
+
1008
+ /* ISO-80000-5 item 5-25.1 thermal efficiency */
1009
+ attribute def ThermalEfficiencyValue :> DimensionOneValue {
1010
+ doc
1011
+ /*
1012
+ * source: item 5-25.1 thermal efficiency
1013
+ * symbol(s): `η`
1014
+ * application domain: thermodynamics
1015
+ * name: ThermalEfficiency (specializes DimensionOneQuantity)
1016
+ * quantity dimension: 1
1017
+ * measurement unit(s): 1
1018
+ * tensor order: 0
1019
+ * definition: quotient of work (ISO 80000-4) delivered by a heat engine and supplied heat: `η = W/Q` where `W` is work (ISO 80000-4) and `Q` is heat (item 5-6.1)
1020
+ * remarks: None.
1021
+ */
1022
+ }
1023
+ attribute thermalEfficiency: ThermalEfficiencyValue :> scalarQuantities;
1024
+
1025
+ /* ISO-80000-5 item 5-25.2 maximum thermal efficiency */
1026
+ attribute def MaximumThermalEfficiencyValue :> DimensionOneValue {
1027
+ doc
1028
+ /*
1029
+ * source: item 5-25.2 maximum thermal efficiency
1030
+ * symbol(s): `η_"max"`
1031
+ * application domain: generic
1032
+ * name: MaximumThermalEfficiency (specializes DimensionOneQuantity)
1033
+ * quantity dimension: 1
1034
+ * measurement unit(s): 1
1035
+ * tensor order: 0
1036
+ * definition: efficiency determined by the quotient of the temperatures of the hot source and the cold sink: `η_max = 1 - T_c/T_h` where `T_c` is the thermodynamic temperature (item 5-1) of the cold sink and `T_h` is the thermodynamic temperature (item 5-1) of the hot source
1037
+ * remarks: An ideal heat engine operating according to the Carnot process is delivering the maximum efficiency.
1038
+ */
1039
+ }
1040
+ attribute maximumThermalEfficiency: MaximumThermalEfficiencyValue :> scalarQuantities;
1041
+
1042
+ /* ISO-80000-5 item 5-26 specific gas constant */
1043
+ attribute def SpecificGasConstantValue :> ScalarQuantityValue {
1044
+ doc
1045
+ /*
1046
+ * source: item 5-26 specific gas constant
1047
+ * symbol(s): `R_s`
1048
+ * application domain: generic
1049
+ * name: SpecificGasConstant
1050
+ * quantity dimension: L^2*T^-2*Θ^-1
1051
+ * measurement unit(s): J/(kg*K), m^2*s^-2*K^-1
1052
+ * tensor order: 0
1053
+ * definition: quotient of the Boltzmann constant `k` (ISO 80000-1) and the mass `m` (ISO 80000-4) of the gas particle
1054
+ * remarks: None.
1055
+ */
1056
+ attribute :>> num: Real;
1057
+ attribute :>> mRef: SpecificGasConstantUnit[1];
1058
+ }
1059
+
1060
+ attribute specificGasConstant: SpecificGasConstantValue[*] nonunique :> scalarQuantities;
1061
+
1062
+ attribute def SpecificGasConstantUnit :> DerivedUnit {
1063
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
1064
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
1065
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
1066
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF, thermodynamicTemperaturePF); }
1067
+ }
1068
+
1069
+ /* ISO-80000-5 item 5-27 mass concentration of water */
1070
+ attribute def MassConcentrationOfWaterValue :> ScalarQuantityValue {
1071
+ doc
1072
+ /*
1073
+ * source: item 5-27 mass concentration of water
1074
+ * symbol(s): `w`
1075
+ * application domain: generic
1076
+ * name: MassConcentrationOfWater
1077
+ * quantity dimension: L^-3*M^1
1078
+ * measurement unit(s): kg*m^-3
1079
+ * tensor order: 0
1080
+ * definition: quotient of mass of water and a specified volume: `w = m/V` where `m` is mass (ISO 80000-4) of water, irrespective of the form of aggregation state, and `V` is volume (ISO 80000-3)
1081
+ * remarks: Mass concentration of water at saturation is denoted `w_"sat"`.
1082
+ */
1083
+ attribute :>> num: Real;
1084
+ attribute :>> mRef: MassConcentrationOfWaterUnit[1];
1085
+ }
1086
+
1087
+ attribute massConcentrationOfWater: MassConcentrationOfWaterValue[*] nonunique :> scalarQuantities;
1088
+
1089
+ attribute def MassConcentrationOfWaterUnit :> DerivedUnit {
1090
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -3; }
1091
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
1092
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF); }
1093
+ }
1094
+
1095
+ /* ISO-80000-5 item 5-28 mass concentration of water vapour absolute humidity */
1096
+ attribute def MassConcentrationOfWaterVapourAbsoluteHumidityValue :> ScalarQuantityValue {
1097
+ doc
1098
+ /*
1099
+ * source: item 5-28 mass concentration of water vapour absolute humidity
1100
+ * symbol(s): `v`
1101
+ * application domain: generic
1102
+ * name: MassConcentrationOfWaterVapourAbsoluteHumidity
1103
+ * quantity dimension: L^-3*M^1
1104
+ * measurement unit(s): kg*m^-3
1105
+ * tensor order: 0
1106
+ * definition: quotient of mass of water vapour and a specified volume: `v = m/V` where m is mass (ISO 80000-4) of water vapour and `V` is volume (ISO 80000-3)
1107
+ * remarks: Mass concentration of water vapour at saturation is denoted `v_"sat"`.
1108
+ */
1109
+ attribute :>> num: Real;
1110
+ attribute :>> mRef: MassConcentrationOfWaterVapourAbsoluteHumidityUnit[1];
1111
+ }
1112
+
1113
+ attribute massConcentrationOfWaterVapourAbsoluteHumidity: MassConcentrationOfWaterVapourAbsoluteHumidityValue[*] nonunique :> scalarQuantities;
1114
+
1115
+ attribute def MassConcentrationOfWaterVapourAbsoluteHumidityUnit :> DerivedUnit {
1116
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -3; }
1117
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
1118
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF); }
1119
+ }
1120
+
1121
+ /* ISO-80000-5 item 5-29 mass ratio of water to dry matter */
1122
+ attribute def MassRatioOfWaterToDryMatterValue :> DimensionOneValue {
1123
+ doc
1124
+ /*
1125
+ * source: item 5-29 mass ratio of water to dry matter
1126
+ * symbol(s): `u`
1127
+ * application domain: generic
1128
+ * name: MassRatioOfWaterToDryMatter (specializes DimensionOneQuantity)
1129
+ * quantity dimension: 1
1130
+ * measurement unit(s): 1
1131
+ * tensor order: 0
1132
+ * definition: quotient of mass of water and mass of dry matter: `u = m/m_d` where `m` is mass (ISO 80000-4) of water and `m_d` is mass of dry matter
1133
+ * remarks: Mass ratio of water to dry matter at saturation is denoted `u_"sat"`.
1134
+ */
1135
+ }
1136
+ attribute massRatioOfWaterToDryMatter: MassRatioOfWaterToDryMatterValue :> scalarQuantities;
1137
+
1138
+ /* ISO-80000-5 item 5-30 mass ratio of water vapour to dry gas */
1139
+ attribute def MassRatioOfWaterVapourToDryGasValue :> DimensionOneValue {
1140
+ doc
1141
+ /*
1142
+ * source: item 5-30 mass ratio of water vapour to dry gas
1143
+ * symbol(s): `r`, `(x)`
1144
+ * application domain: generic
1145
+ * name: MassRatioOfWaterVapourToDryGas (specializes DimensionOneQuantity)
1146
+ * quantity dimension: 1
1147
+ * measurement unit(s): 1
1148
+ * tensor order: 0
1149
+ * definition: quotient of mass of water vapour and mass of dry gas: `r = m/m_d` where `m` is mass (ISO 80000-4) of water vapour and `m_d` is mass of dry gas
1150
+ * remarks: Mass ratio of water vapour to dry gas at saturation is denoted `r_"sat"`. Mass ratio of water vapour to dry gas is also called mixing ratio.
1151
+ */
1152
+ }
1153
+ attribute massRatioOfWaterVapourToDryGas: MassRatioOfWaterVapourToDryGasValue :> scalarQuantities;
1154
+
1155
+ /* ISO-80000-5 item 5-31 mass fraction of water */
1156
+ attribute def MassFractionOfWaterValue :> DimensionOneValue {
1157
+ doc
1158
+ /*
1159
+ * source: item 5-31 mass fraction of water
1160
+ * symbol(s): `w_(H_(2)O)`
1161
+ * application domain: generic
1162
+ * name: MassFractionOfWater (specializes DimensionOneQuantity)
1163
+ * quantity dimension: 1
1164
+ * measurement unit(s): 1
1165
+ * tensor order: 0
1166
+ * definition: quantity given by: `w_(H_(2)O) = u/(1+u)` where `u` is mass ratio of water to dry matter (item 5-29)
1167
+ * remarks: None.
1168
+ */
1169
+ }
1170
+ attribute massFractionOfWater: MassFractionOfWaterValue :> scalarQuantities;
1171
+
1172
+ /* ISO-80000-5 item 5-32 mass fraction of dry matter */
1173
+ attribute def MassFractionOfDryMatterValue :> DimensionOneValue {
1174
+ doc
1175
+ /*
1176
+ * source: item 5-32 mass fraction of dry matter
1177
+ * symbol(s): `w_d`
1178
+ * application domain: generic
1179
+ * name: MassFractionOfDryMatter (specializes DimensionOneQuantity)
1180
+ * quantity dimension: 1
1181
+ * measurement unit(s): 1
1182
+ * tensor order: 0
1183
+ * definition: quantity given by: `w_d = 1 - w_(H_(2)O)` where `w_(H_(2)O)` is mass fraction of water (item 5-31)
1184
+ * remarks: None.
1185
+ */
1186
+ }
1187
+ attribute massFractionOfDryMatter: MassFractionOfDryMatterValue :> scalarQuantities;
1188
+
1189
+ /* ISO-80000-5 item 5-33 relative humidity */
1190
+ attribute def RelativeHumidityValue :> DimensionOneValue {
1191
+ doc
1192
+ /*
1193
+ * source: item 5-33 relative humidity
1194
+ * symbol(s): `φ`
1195
+ * application domain: generic
1196
+ * name: RelativeHumidity (specializes DimensionOneQuantity)
1197
+ * quantity dimension: 1
1198
+ * measurement unit(s): 1
1199
+ * tensor order: 0
1200
+ * definition: quotient of partial pressure of water vapour and partial pressure at its saturation: `φ = p/p_"sat"` where `p` is partial pressure (ISO 80000-4) of vapour and `p_"sat"` is its partial pressure at saturation at the same temperature
1201
+ * remarks: Relative humidity is often referred to as RH and expressed in percent. See also remark in item 5-35.
1202
+ */
1203
+ }
1204
+ attribute relativeHumidity: RelativeHumidityValue :> scalarQuantities;
1205
+
1206
+ /* ISO-80000-5 item 5-34 relative mass concentration of vapour */
1207
+ attribute def RelativeMassConcentrationOfVapourValue :> DimensionOneValue {
1208
+ doc
1209
+ /*
1210
+ * source: item 5-34 relative mass concentration of vapour
1211
+ * symbol(s): `φ`
1212
+ * application domain: generic
1213
+ * name: RelativeMassConcentrationOfVapour (specializes DimensionOneQuantity)
1214
+ * quantity dimension: 1
1215
+ * measurement unit(s): 1
1216
+ * tensor order: 0
1217
+ * definition: quotient of mass concentration of water vapour and mass concentration at its saturation: `φ = v/v_"sat"` where `v` is mass concentration of water vapour (item 5-28) and `v_"sat"` is its mass concentration of water vapour at saturation of the same temperature
1218
+ * remarks: For water vapour concentrations up to 1 kg/m^3, the relative humidity (item 5-33) is assumed to be equal to relative mass concentration of vapour. For details see Reference [8].
1219
+ */
1220
+ }
1221
+ attribute relativeMassConcentrationOfVapour: RelativeMassConcentrationOfVapourValue :> scalarQuantities;
1222
+
1223
+ /* ISO-80000-5 item 5-35 relative mass ratio of vapour */
1224
+ attribute def RelativeMassRatioOfVapourValue :> DimensionOneValue {
1225
+ doc
1226
+ /*
1227
+ * source: item 5-35 relative mass ratio of vapour
1228
+ * symbol(s): `ψ`
1229
+ * application domain: generic
1230
+ * name: RelativeMassRatioOfVapour (specializes DimensionOneQuantity)
1231
+ * quantity dimension: 1
1232
+ * measurement unit(s): 1
1233
+ * tensor order: 0
1234
+ * definition: quotient of mass ratio of water vapour to dry gas and mass ratio of water vapour to dry gas at saturation: `ψ = r/r_"sat"` where `r` is mass ratio of water vapour to dry gas (item 5-30) and `r_"sat"` is its mass ratio of water vapour to dry gas at saturation of the same temperature
1235
+ * remarks: This quantity is also used as an approximation of relative humidity (item 5-33).
1236
+ */
1237
+ }
1238
+ attribute relativeMassRatioOfVapour: RelativeMassRatioOfVapourValue :> scalarQuantities;
1239
+
1240
+ /* ISO-80000-5 item 5-36 dew-point temperature */
1241
+ attribute dewPointTemperature: ThermodynamicTemperatureValue :> scalarQuantities {
1242
+ doc
1243
+ /*
1244
+ * source: item 5-36 dew-point temperature
1245
+ * symbol(s): `T_d`
1246
+ * application domain: generic
1247
+ * name: DewPointTemperature (specializes ThermodynamicTemperature)
1248
+ * quantity dimension: Θ^1
1249
+ * measurement unit(s): K
1250
+ * tensor order: 0
1251
+ * definition: temperature at which water vapour in the air reaches saturation under isobaric conditions
1252
+ * remarks: The corresponding Celsius temperature, denoted `t_d`, is still called dew-point temperature. The unit for the corresponding Celsius temperature is degree Celsius, symbol °C.
1253
+ */
1254
+ }
1255
+
1256
+ }