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,1353 @@
1
+ standard library package ISQChemistryMolecular {
2
+ doc
3
+ /*
4
+ * International System of Quantities and Units
5
+ * Generated on 2025-03-13T15:00:05Z from standard ISO-80000-9:2019 "Physical chemistry and molecular physics"
6
+ * see also https://www.iso.org/standard/64979.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
+ private import ISQSpaceTime::AngularMeasureValue;
22
+ private import ISQThermodynamics::EnergyValue;
23
+
24
+ /* ISO-80000-9 item 9-1 number of entities */
25
+ attribute numberOfEntities: CountValue :> scalarQuantities {
26
+ doc
27
+ /*
28
+ * source: item 9-1 number of entities
29
+ * symbol(s): `N(X)`, `N_X`
30
+ * application domain: generic
31
+ * name: NumberOfEntities (specializes Count)
32
+ * quantity dimension: 1
33
+ * measurement unit(s): 1
34
+ * tensor order: 0
35
+ * definition: number of elementary entities of kind `X` in a system
36
+ * remarks: The elementary entities must be specified and can be atoms, molecules, ions, electrons, other particle, or a specified group of such particles. It is important to always give a precise specification of the entity involved; this should preferably be done by the empirical chemical formula of the material involved.
37
+ */
38
+ }
39
+
40
+ /* ISO-80000-9 item 9-2 amount of substance, number of moles */
41
+ /* See package ISQBase for the declarations of AmountOfSubstanceValue and AmountOfSubstanceUnit */
42
+
43
+ alias NumberOfMolesUnit for AmountOfSubstanceUnit;
44
+ alias NumberOfMolesValue for AmountOfSubstanceValue;
45
+ alias numberOfMoles for amountOfSubstance;
46
+
47
+ /* ISO-80000-9 item 9-3 relative atomic mass */
48
+ attribute def RelativeAtomicMassValue :> DimensionOneValue {
49
+ doc
50
+ /*
51
+ * source: item 9-3 relative atomic mass
52
+ * symbol(s): `A_r(X)`
53
+ * application domain: generic
54
+ * name: RelativeAtomicMass (specializes DimensionOneQuantity)
55
+ * quantity dimension: 1
56
+ * measurement unit(s): 1
57
+ * tensor order: 0
58
+ * definition: quotient of the average mass (ISO 80000-4) of atom `X` and the unified atomic mass (ISO 80000-10)
59
+ * remarks: A similar quantity "relative molecular mass" can be defined for molecules. EXAMPLE `A_r(Cl) ~~ 35.453` `A_r(CO_2) ~~ 44` The relative atomic or relative molecular mass depends on the nuclidic composition. The International Union of Pure and Applied Chemistry (IUPAC) accepts the use of the special names "atomic weight" and "molecular weight" for the quantities "relative atomic mass" and "relative molecular mass", respectively. The use of these traditional names is deprecated.
60
+ */
61
+ }
62
+ attribute relativeAtomicMass: RelativeAtomicMassValue :> scalarQuantities;
63
+
64
+ /* ISO-80000-9 item 9-4 molar mass */
65
+ attribute def MolarMassValue :> ScalarQuantityValue {
66
+ doc
67
+ /*
68
+ * source: item 9-4 molar mass
69
+ * symbol(s): `M(X)`
70
+ * application domain: generic
71
+ * name: MolarMass
72
+ * quantity dimension: M^1*N^-1
73
+ * measurement unit(s): g/mol, kg*mol^-1
74
+ * tensor order: 0
75
+ * definition: for a pure substance `X`, quotient of mass `m(X)` (ISO 80000-4) and amount `n` of substance (item 9-2): `M = m/n`
76
+ * remarks: None.
77
+ */
78
+ attribute :>> num: Real;
79
+ attribute :>> mRef: MolarMassUnit[1];
80
+ }
81
+
82
+ attribute molarMass: MolarMassValue[*] nonunique :> scalarQuantities;
83
+
84
+ attribute def MolarMassUnit :> DerivedUnit {
85
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
86
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
87
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (massPF, amountOfSubstancePF); }
88
+ }
89
+
90
+ /* ISO-80000-9 item 9-5 molar volume */
91
+ attribute def MolarVolumeValue :> ScalarQuantityValue {
92
+ doc
93
+ /*
94
+ * source: item 9-5 molar volume
95
+ * symbol(s): `V_m`
96
+ * application domain: generic
97
+ * name: MolarVolume
98
+ * quantity dimension: L^3*N^-1
99
+ * measurement unit(s): m^3*mol^-1
100
+ * tensor order: 0
101
+ * definition: for a pure substance, quotient of its volume `V` (ISO 80000-3) and amount `n` of substance (item 9-2): `V_m = V/n`
102
+ * remarks: None.
103
+ */
104
+ attribute :>> num: Real;
105
+ attribute :>> mRef: MolarVolumeUnit[1];
106
+ }
107
+
108
+ attribute molarVolume: MolarVolumeValue[*] nonunique :> scalarQuantities;
109
+
110
+ attribute def MolarVolumeUnit :> DerivedUnit {
111
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 3; }
112
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
113
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, amountOfSubstancePF); }
114
+ }
115
+
116
+ /* ISO-80000-9 item 9-6.1 molar internal energy */
117
+ attribute def MolarInternalEnergyValue :> ScalarQuantityValue {
118
+ doc
119
+ /*
120
+ * source: item 9-6.1 molar internal energy
121
+ * symbol(s): `U_m`
122
+ * application domain: generic
123
+ * name: MolarInternalEnergy
124
+ * quantity dimension: L^2*M^1*T^-2*N^-1
125
+ * measurement unit(s): J/mol, kg*m^2*s^-2*mol^-1
126
+ * tensor order: 0
127
+ * definition: quotient of internal energy `U` (ISO 80000-5) and amount `n` of substance (item 9-2): `U_m = U/n`
128
+ * remarks: Molar quantities are normally only used with reference to pure substances.
129
+ */
130
+ attribute :>> num: Real;
131
+ attribute :>> mRef: MolarInternalEnergyUnit[1];
132
+ }
133
+
134
+ attribute molarInternalEnergy: MolarInternalEnergyValue[*] nonunique :> scalarQuantities;
135
+
136
+ attribute def MolarInternalEnergyUnit :> DerivedUnit {
137
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
138
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
139
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
140
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
141
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, amountOfSubstancePF); }
142
+ }
143
+
144
+ /* ISO-80000-9 item 9-6.2 molar enthalpy */
145
+ attribute def MolarEnthalpyValue :> ScalarQuantityValue {
146
+ doc
147
+ /*
148
+ * source: item 9-6.2 molar enthalpy
149
+ * symbol(s): `H_m`
150
+ * application domain: generic
151
+ * name: MolarEnthalpy
152
+ * quantity dimension: L^2*M^1*T^-2*N^-1
153
+ * measurement unit(s): J/mol, kg*m^2*s^-2*mol^-1
154
+ * tensor order: 0
155
+ * definition: quotient of enthalpy `H` (ISO 80000-5) and amount `n` of substance (item 9-2): `H_m = H/n`
156
+ * remarks: Molar quantities are normally only used with reference to pure substances.
157
+ */
158
+ attribute :>> num: Real;
159
+ attribute :>> mRef: MolarEnthalpyUnit[1];
160
+ }
161
+
162
+ attribute molarEnthalpy: MolarEnthalpyValue[*] nonunique :> scalarQuantities;
163
+
164
+ attribute def MolarEnthalpyUnit :> DerivedUnit {
165
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
166
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
167
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
168
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
169
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, amountOfSubstancePF); }
170
+ }
171
+
172
+ /* ISO-80000-9 item 9-6.3 molar Helmholtz energy */
173
+ attribute def MolarHelmholtzEnergyValue :> ScalarQuantityValue {
174
+ doc
175
+ /*
176
+ * source: item 9-6.3 molar Helmholtz energy
177
+ * symbol(s): `F_m`
178
+ * application domain: generic
179
+ * name: MolarHelmholtzEnergy
180
+ * quantity dimension: L^2*M^1*T^-2*N^-1
181
+ * measurement unit(s): J/mol, kg*m^2*s^-2*mol^-1
182
+ * tensor order: 0
183
+ * definition: quotient of the Helmholtz energy `F` (ISO 80000-5) and amount `n` of substance (item 9-2): `F_m = F/n`
184
+ * remarks: Molar quantities are normally only used with reference to pure substances.
185
+ */
186
+ attribute :>> num: Real;
187
+ attribute :>> mRef: MolarHelmholtzEnergyUnit[1];
188
+ }
189
+
190
+ attribute molarHelmholtzEnergy: MolarHelmholtzEnergyValue[*] nonunique :> scalarQuantities;
191
+
192
+ attribute def MolarHelmholtzEnergyUnit :> DerivedUnit {
193
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
194
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
195
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
196
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
197
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, amountOfSubstancePF); }
198
+ }
199
+
200
+ /* ISO-80000-9 item 9-6.4 molar Gibbs energy */
201
+ attribute def MolarGibbsEnergyValue :> ScalarQuantityValue {
202
+ doc
203
+ /*
204
+ * source: item 9-6.4 molar Gibbs energy
205
+ * symbol(s): `G_m`
206
+ * application domain: generic
207
+ * name: MolarGibbsEnergy
208
+ * quantity dimension: L^2*M^1*T^-2*N^-1
209
+ * measurement unit(s): J/mol, kg*m^2*s^-2*mol^-1
210
+ * tensor order: 0
211
+ * definition: quotient of the Gibbs energy `G` (ISO 80000-5) and amount `n` of substance (item 9-2): `G_m = G/n`
212
+ * remarks: Molar quantities are normally only used with reference to pure substances.
213
+ */
214
+ attribute :>> num: Real;
215
+ attribute :>> mRef: MolarGibbsEnergyUnit[1];
216
+ }
217
+
218
+ attribute molarGibbsEnergy: MolarGibbsEnergyValue[*] nonunique :> scalarQuantities;
219
+
220
+ attribute def MolarGibbsEnergyUnit :> DerivedUnit {
221
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
222
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
223
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
224
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
225
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, amountOfSubstancePF); }
226
+ }
227
+
228
+ /* ISO-80000-9 item 9-7 molar heat capacity */
229
+ attribute def MolarHeatCapacityValue :> ScalarQuantityValue {
230
+ doc
231
+ /*
232
+ * source: item 9-7 molar heat capacity
233
+ * symbol(s): `C_m`
234
+ * application domain: generic
235
+ * name: MolarHeatCapacity
236
+ * quantity dimension: L^2*M^1*T^-2*Θ^-1*N^-1
237
+ * measurement unit(s): J/(mol*K), kg*m^2*s^-2*K^-1*mol^-1
238
+ * tensor order: 0
239
+ * definition: quotient of heat capacity `C` (ISO 80000-5) and amount of substance `n` (item 9-2): `C_m = C/n`
240
+ * remarks: Conditions (constant pressure or volume etc.) must be specified.
241
+ */
242
+ attribute :>> num: Real;
243
+ attribute :>> mRef: MolarHeatCapacityUnit[1];
244
+ }
245
+
246
+ attribute molarHeatCapacity: MolarHeatCapacityValue[*] nonunique :> scalarQuantities;
247
+
248
+ attribute def MolarHeatCapacityUnit :> DerivedUnit {
249
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
250
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
251
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
252
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
253
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
254
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF, amountOfSubstancePF); }
255
+ }
256
+
257
+ /* ISO-80000-9 item 9-8 molar entropy */
258
+ attribute def MolarEntropyValue :> ScalarQuantityValue {
259
+ doc
260
+ /*
261
+ * source: item 9-8 molar entropy
262
+ * symbol(s): `S_m`
263
+ * application domain: generic
264
+ * name: MolarEntropy
265
+ * quantity dimension: L^2*M^1*T^-2*Θ^-1*N^-1
266
+ * measurement unit(s): J/(mol*K), kg*m^2*s^-2*K^-1*mol^-1
267
+ * tensor order: 0
268
+ * definition: quotient of entropy `S` (ISO 80000-5) and amount `n` of substance (item 9-2): `S_m = S/n`
269
+ * remarks: Conditions (constant pressure or volume etc.) must be specified.
270
+ */
271
+ attribute :>> num: Real;
272
+ attribute :>> mRef: MolarEntropyUnit[1];
273
+ }
274
+
275
+ attribute molarEntropy: MolarEntropyValue[*] nonunique :> scalarQuantities;
276
+
277
+ attribute def MolarEntropyUnit :> DerivedUnit {
278
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
279
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
280
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
281
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
282
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
283
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF, amountOfSubstancePF); }
284
+ }
285
+
286
+ /* ISO-80000-9 item 9-9.1 particle concentration */
287
+ attribute def ParticleConcentrationValue :> ScalarQuantityValue {
288
+ doc
289
+ /*
290
+ * source: item 9-9.1 particle concentration
291
+ * symbol(s): `n`, `(C)`
292
+ * application domain: generic
293
+ * name: ParticleConcentration
294
+ * quantity dimension: L^-3
295
+ * measurement unit(s): m^-3
296
+ * tensor order: 0
297
+ * definition: quotient of number `N` of particles (item 9-1) and volume `V `(ISO 80000-3): `n = N/V`
298
+ * remarks: The term "number density" is also used.
299
+ */
300
+ attribute :>> num: Real;
301
+ attribute :>> mRef: ParticleConcentrationUnit[1];
302
+ }
303
+
304
+ attribute particleConcentration: ParticleConcentrationValue[*] nonunique :> scalarQuantities;
305
+
306
+ attribute def ParticleConcentrationUnit :> DerivedUnit {
307
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -3; }
308
+ attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
309
+ }
310
+
311
+ /* ISO-80000-9 item 9-9.2 molecular concentration */
312
+ attribute molecularConcentration: ParticleConcentrationValue :> scalarQuantities {
313
+ doc
314
+ /*
315
+ * source: item 9-9.2 molecular concentration
316
+ * symbol(s): `C(X)`, `C_X`
317
+ * application domain: generic
318
+ * name: MolecularConcentration (specializes ParticleConcentration)
319
+ * quantity dimension: L^-3
320
+ * measurement unit(s): m^-3
321
+ * tensor order: 0
322
+ * definition: for substance `X` in a mixture, quotient of number `N_X` of molecules of substance `X` and volume `V` (ISO 80000-3) of the mixture: `C_X = N_X/V`
323
+ * remarks: None.
324
+ */
325
+ }
326
+
327
+ /* ISO-80000-9 item 9-10 mass concentration */
328
+ attribute def MassConcentrationValue :> ScalarQuantityValue {
329
+ doc
330
+ /*
331
+ * source: item 9-10 mass concentration
332
+ * symbol(s): `γ_X`, `(ρ_X)`
333
+ * application domain: generic
334
+ * name: MassConcentration
335
+ * quantity dimension: L^-3*M^1
336
+ * measurement unit(s): g/l, kg*m^-3
337
+ * tensor order: 0
338
+ * definition: for substance `X` in a mixture, quotient of mass `m_X` (ISO 80000-4) of substance `X` and volume `V` (ISO 80000-3) of the mixture: `γ_X = m_X/V`
339
+ * remarks: Decided by the 16th CGPM (1979), both "l" and "L" are allowed for the symbols for the litre.
340
+ */
341
+ attribute :>> num: Real;
342
+ attribute :>> mRef: MassConcentrationUnit[1];
343
+ }
344
+
345
+ attribute massConcentration: MassConcentrationValue[*] nonunique :> scalarQuantities;
346
+
347
+ attribute def MassConcentrationUnit :> DerivedUnit {
348
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -3; }
349
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
350
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF); }
351
+ }
352
+
353
+ /* ISO-80000-9 item 9-11 mass fraction */
354
+ attribute def MassFractionValue :> DimensionOneValue {
355
+ doc
356
+ /*
357
+ * source: item 9-11 mass fraction
358
+ * symbol(s): `w_X`
359
+ * application domain: generic
360
+ * name: MassFraction (specializes DimensionOneQuantity)
361
+ * quantity dimension: 1
362
+ * measurement unit(s): 1
363
+ * tensor order: 0
364
+ * definition: for substance `X` in a mixture, quotient of mass `m_X` (ISO 80000-4) of substance `X` and total mass `m` of the mixture: `w_X = m_X/m`
365
+ * remarks: None.
366
+ */
367
+ }
368
+ attribute massFraction: MassFractionValue :> scalarQuantities;
369
+
370
+ /* ISO-80000-9 item 9-12.1 amount-of-substance concentration */
371
+ attribute def AmountOfSubstanceConcentrationValue :> ScalarQuantityValue {
372
+ doc
373
+ /*
374
+ * source: item 9-12.1 amount-of-substance concentration
375
+ * symbol(s): `c_X`
376
+ * application domain: generic
377
+ * name: AmountOfSubstanceConcentration
378
+ * quantity dimension: L^-3*N^1
379
+ * measurement unit(s): mol/l, mol*m^-3
380
+ * tensor order: 0
381
+ * definition: for substance `X` in a mixture, quotient of amount `n_X` of substance (item 9-2) of `X` and volume `V` (ISO 80000-3) of the mixture: `c_X = n_X/V`
382
+ * remarks: In chemistry, the name "amount-of-substance concentration" is generally abbreviated to the single word "concentration", it being assumed that the adjective "amount-of-substance" is intended. For this reason, however, the word "mass" should never be omitted from the name "mass concentration" in item 9-10. Decided by the 16th CGPM (1979), both "l" and "L" are allowed for the symbols for the litre.
383
+ */
384
+ attribute :>> num: Real;
385
+ attribute :>> mRef: AmountOfSubstanceConcentrationUnit[1];
386
+ }
387
+
388
+ attribute amountOfSubstanceConcentration: AmountOfSubstanceConcentrationValue[*] nonunique :> scalarQuantities;
389
+
390
+ attribute def AmountOfSubstanceConcentrationUnit :> DerivedUnit {
391
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -3; }
392
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = 1; }
393
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, amountOfSubstancePF); }
394
+ }
395
+
396
+ /* ISO-80000-9 item 9-12.2 standard amount-of-substance concentration */
397
+ attribute standardAmountOfSubstanceConcentration: AmountOfSubstanceConcentrationValue :> scalarQuantities {
398
+ doc
399
+ /*
400
+ * source: item 9-12.2 standard amount-of-substance concentration
401
+ * symbol(s): `c^!(X)`
402
+ * application domain: generic
403
+ * name: StandardAmountOfSubstanceConcentration (specializes AmountOfSubstanceConcentration)
404
+ * quantity dimension: L^-3*N^1
405
+ * measurement unit(s): mol/l, mol*m^-3
406
+ * tensor order: 0
407
+ * definition: for substance `X`, one mole per litre
408
+ * remarks: Decided by the 16th CGPM (1979), both "l" and "L" are allowed for the symbols for the litre.
409
+ */
410
+ }
411
+
412
+ /* ISO-80000-9 item 9-13 amount-of-substance fraction mole fraction */
413
+ attribute def AmountOfSubstanceFractionMoleFractionValue :> DimensionOneValue {
414
+ doc
415
+ /*
416
+ * source: item 9-13 amount-of-substance fraction mole fraction
417
+ * symbol(s): `x_X`, `y_X`
418
+ * application domain: generic
419
+ * name: AmountOfSubstanceFractionMoleFraction (specializes DimensionOneQuantity)
420
+ * quantity dimension: 1
421
+ * measurement unit(s): 1
422
+ * tensor order: 0
423
+ * definition: for substance `X` in a mixture, quotient of amount of substance `n_X` (item 9-2) of `X` and total amount `n` of substance (item 9-2) in the mixture: `x_X = n_X/n`
424
+ * remarks: For condensed phases, `x_X` is used, and for gaseous mixtures `y_X` may be used. The unsystematic name "mole fraction" is still used. However, the use of this name is deprecated. For this quantity, the entity used to define the amount of substance should always be a single molecule for every species in the mixture.
425
+ */
426
+ }
427
+ attribute amountOfSubstanceFractionMoleFraction: AmountOfSubstanceFractionMoleFractionValue :> scalarQuantities;
428
+
429
+ /* ISO-80000-9 item 9-14 volume fraction */
430
+ attribute def VolumeFractionValue :> ScalarQuantityValue {
431
+ doc
432
+ /*
433
+ * source: item 9-14 volume fraction
434
+ * symbol(s): `φ_X`
435
+ * application domain: generic
436
+ * name: VolumeFraction
437
+ * quantity dimension: 1
438
+ * measurement unit(s): ml/l, 1
439
+ * tensor order: 0
440
+ * definition: for substance `X`, quotient of product of amount of substance fraction `x_X` (item 9-13) of `X` and molar volume `V_(m,X)` (item 9-5) of the pure substance `X` at the same temperature (ISO 80000-5) and pressure (ISO 80000-4), and sum over all substances `i` of products of amount-of-substance fractions `x_i` (item 9-13) of substance `i` and their molar volumes `V_(m,i)` (item 9-5): `φ_X = (x_X V_(m,X))/(sum_i x_i V_(m,i))`
441
+ * remarks: Generally, the volume fraction is temperature dependent. Decided by the 16th CGPM (1979), both "l" and "L" are allowed for the symbols for the litre.
442
+ */
443
+ attribute :>> num: Real;
444
+ attribute :>> mRef: VolumeFractionUnit[1];
445
+ }
446
+
447
+ attribute volumeFraction: VolumeFractionValue[*] nonunique :> scalarQuantities;
448
+
449
+ attribute def VolumeFractionUnit :> DimensionOneUnit {
450
+ }
451
+
452
+ /* ISO-80000-9 item 9-15 molality */
453
+ attribute def MolalityValue :> ScalarQuantityValue {
454
+ doc
455
+ /*
456
+ * source: item 9-15 molality
457
+ * symbol(s): `b_B`, `m_B`
458
+ * application domain: generic
459
+ * name: Molality
460
+ * quantity dimension: M^-1*N^1
461
+ * measurement unit(s): mol/kg
462
+ * tensor order: 0
463
+ * definition: quotient of amount of substance (item 9-2) of solute `B` and mass `m_A` (ISO 80000-4) of the solvent substance `A`: `b_B = n_B/m_A`
464
+ * remarks: The alternative symbol `m_B` should be avoided in situations where it might be mistaken for the mass of substance B. However, the symbol `m_B` is much more commonly used than the symbol `b_B` for molality, despite the possible confusion with mass.
465
+ */
466
+ attribute :>> num: Real;
467
+ attribute :>> mRef: MolalityUnit[1];
468
+ }
469
+
470
+ attribute molality: MolalityValue[*] nonunique :> scalarQuantities;
471
+
472
+ attribute def MolalityUnit :> DerivedUnit {
473
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
474
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = 1; }
475
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (massPF, amountOfSubstancePF); }
476
+ }
477
+
478
+ /* ISO-80000-9 item 9-16 latent heat of phase transition, enthalpy of phase transition */
479
+ attribute latentHeatOfPhaseTransition: EnergyValue :> scalarQuantities {
480
+ doc
481
+ /*
482
+ * source: item 9-16 latent heat of phase transition, enthalpy of phase transition
483
+ * symbol(s): `C_"pt"`
484
+ * application domain: generic
485
+ * name: LatentHeatOfPhaseTransition (specializes Energy)
486
+ * quantity dimension: L^2*M^1*T^-2
487
+ * measurement unit(s): J, kg*m^2*s^-2
488
+ * tensor order: 0
489
+ * definition: energy (ISO 80000-5) necessary to be added or subtracted isothermally and isobarically to a system to completely undergo the phase transition
490
+ * remarks: Mostly, molar or specific quantity is used and phase transition is expressed explicitly, e.g. molar latent heat of evaporation. The subscript "pt" is the qualifier for the phase transition, which may be changed to e.g. "l-g". The term "enthalpy of phase transition" is mainly used in theory.
491
+ */
492
+ }
493
+
494
+ alias enthalpyOfPhaseTransition for latentHeatOfPhaseTransition;
495
+
496
+ /* ISO-80000-9 item 9-17 chemical potential */
497
+ attribute def ChemicalPotentialValue :> ScalarQuantityValue {
498
+ doc
499
+ /*
500
+ * source: item 9-17 chemical potential
501
+ * symbol(s): `μ_X`
502
+ * application domain: chemistry
503
+ * name: ChemicalPotential
504
+ * quantity dimension: L^2*M^1*T^-2*N^-1
505
+ * measurement unit(s): J/mol, kg*m^2*s^-2*mol^-1
506
+ * tensor order: 0
507
+ * definition: partial derivative of the Gibbs energy (ISO 80000-5) with respect to amount `n_X` of substance `X` (item 9-2) at constant temperature `T` (ISO 80000-5) and pressure `p `(ISO 80000-4): `μ_X = ((del G)/(del n_X))_(T,p)`
508
+ * remarks: For a pure substance, where `G_m` is the molar Gibbs energy. In a mixture, `μ_B` is the partial molar Gibbs energy. In condensed matter physics, the chemical potential of electrons is energy.
509
+ */
510
+ attribute :>> num: Real;
511
+ attribute :>> mRef: ChemicalPotentialUnit[1];
512
+ }
513
+
514
+ attribute chemicalPotential: ChemicalPotentialValue[*] nonunique :> scalarQuantities;
515
+
516
+ attribute def ChemicalPotentialUnit :> DerivedUnit {
517
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
518
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
519
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
520
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
521
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, amountOfSubstancePF); }
522
+ }
523
+
524
+ /* ISO-80000-9 item 9-18 absolute activity */
525
+ attribute def AbsoluteActivityValue :> DimensionOneValue {
526
+ doc
527
+ /*
528
+ * source: item 9-18 absolute activity
529
+ * symbol(s): `λ_X`
530
+ * application domain: generic
531
+ * name: AbsoluteActivity (specializes DimensionOneQuantity)
532
+ * quantity dimension: 1
533
+ * measurement unit(s): 1
534
+ * tensor order: 0
535
+ * definition: for substance `X`, exponential of quotient of chemical potential `μ_X` of substance `B` (item 9-17), and product of molar gas constant `R` (item 9-37.1) and thermodynamic temperature `T` (ISO 80000-5): `λ_X = exp(μ_X/(RT))`
536
+ * remarks: None.
537
+ */
538
+ }
539
+ attribute absoluteActivity: AbsoluteActivityValue :> scalarQuantities;
540
+
541
+ /* ISO-80000-9 item 9-19 partial pressure */
542
+ attribute def PartialPressureValue :> ScalarQuantityValue {
543
+ doc
544
+ /*
545
+ * source: item 9-19 partial pressure
546
+ * symbol(s): `p_X`
547
+ * application domain: generic
548
+ * name: PartialPressure
549
+ * quantity dimension: L^-1*M^1*T^-2
550
+ * measurement unit(s): Pa, kg*m^-1*s^-2
551
+ * tensor order: 0
552
+ * definition: for substance `X` in a gaseous mixture, product of amount-of-substance fraction `y_X` of substance X (item 9-13) and total pressure `p` (ISO 80000-4): `p_X = y_X p`
553
+ * remarks: None.
554
+ */
555
+ attribute :>> num: Real;
556
+ attribute :>> mRef: PartialPressureUnit[1];
557
+ }
558
+
559
+ attribute partialPressure: PartialPressureValue[*] nonunique :> scalarQuantities;
560
+
561
+ attribute def PartialPressureUnit :> DerivedUnit {
562
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
563
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
564
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
565
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
566
+ }
567
+
568
+ /* ISO-80000-9 item 9-20 fugacity */
569
+ attribute def FugacityValue :> ScalarQuantityValue {
570
+ doc
571
+ /*
572
+ * source: item 9-20 fugacity
573
+ * symbol(s): `tilde(p)_X`
574
+ * application domain: generic
575
+ * name: Fugacity
576
+ * quantity dimension: L^-1*M^1*T^-2
577
+ * measurement unit(s): Pa, kg*m^-1*s^-2
578
+ * tensor order: 0
579
+ * definition: for substance `X`, quantity proportional to the absolute activity, `λ_X` (item 9-18), the proportionality factor, which is a function of temperature (ISO 80000-5) only, being determined by the condition that, at constant temperature and composition, `p_X/tilde(p)_X` tends to 1 for an indefinitely dilute gas
580
+ * remarks: `tilde(p)_X = λ_X * lim_(p->0) (p_X/λ_X)` where `p` is total pressure (ISO 80000-4). The IUPAC preferred symbol for fugacity is `f`.
581
+ */
582
+ attribute :>> num: Real;
583
+ attribute :>> mRef: FugacityUnit[1];
584
+ }
585
+
586
+ attribute fugacity: FugacityValue[*] nonunique :> scalarQuantities;
587
+
588
+ attribute def FugacityUnit :> DerivedUnit {
589
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
590
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
591
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
592
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
593
+ }
594
+
595
+ /* ISO-80000-9 item 9-21 standard chemical potential */
596
+ attribute def StandardChemicalPotentialValue :> ScalarQuantityValue {
597
+ doc
598
+ /*
599
+ * source: item 9-21 standard chemical potential
600
+ * symbol(s): `μ_B^!`, `μ^!`
601
+ * application domain: generic
602
+ * name: StandardChemicalPotential
603
+ * quantity dimension: L^2*M^1*T^-2*N^-1
604
+ * measurement unit(s): J/mol, kg*m^2*s^-2*mol^-1
605
+ * tensor order: 0
606
+ * definition: for substance `B`, value of the chemical potential (item 9-17) at specified standard conditions
607
+ * remarks: `μ_B^! = RT ln(λ^!)` where `μ_B^!` is a function of temperature `T` at the standard pressure `p = p^!` The standard chemical potential depends on the choice of standard state, which must be specified. In a liquid or solid solution, the standard state is referenced to the ideal dilute behaviour of the solute (substance `B`).
608
+ */
609
+ attribute :>> num: Real;
610
+ attribute :>> mRef: StandardChemicalPotentialUnit[1];
611
+ }
612
+
613
+ attribute standardChemicalPotential: StandardChemicalPotentialValue[*] nonunique :> scalarQuantities;
614
+
615
+ attribute def StandardChemicalPotentialUnit :> DerivedUnit {
616
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
617
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
618
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
619
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
620
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, amountOfSubstancePF); }
621
+ }
622
+
623
+ /* ISO-80000-9 item 9-22 activity factor */
624
+ attribute def ActivityFactorValue :> DimensionOneValue {
625
+ doc
626
+ /*
627
+ * source: item 9-22 activity factor
628
+ * symbol(s): `f_X`
629
+ * application domain: generic
630
+ * name: ActivityFactor (specializes DimensionOneQuantity)
631
+ * quantity dimension: 1
632
+ * measurement unit(s): 1
633
+ * tensor order: 0
634
+ * definition: for substance `X` in a liquid or a solid mixture, quotient of absolute activity `λ_X` (item 9-18) of substance `X` and the product of absolute activity `λ_X^"*"` of the pure substance `X` at the same temperature (ISO 80000-5) and pressure (ISO 80000-4) and amount-of-substance fraction `x_X` of substance `X` (item 9-13): `f_X = λ_X/(λ_X^"*" x_X)`
635
+ * remarks: The systematic name is "activity factor", but the name "activity coefficient" is also commonly used (see item 9-25). Activity factors can also be obtained applying Raoult’s law or Henry’s law.
636
+ */
637
+ }
638
+ attribute activityFactor: ActivityFactorValue :> scalarQuantities;
639
+
640
+ /* ISO-80000-9 item 9-23 standard absolute activity in mixture */
641
+ attribute def StandardAbsoluteActivityInMixtureValue :> DimensionOneValue {
642
+ doc
643
+ /*
644
+ * source: item 9-23 standard absolute activity in mixture
645
+ * symbol(s): `λ_X^!`
646
+ * application domain: in a mixture
647
+ * name: StandardAbsoluteActivityInMixture (specializes DimensionOneQuantity)
648
+ * quantity dimension: 1
649
+ * measurement unit(s): 1
650
+ * tensor order: 0
651
+ * definition: for substance `X` in a liquid or a solid mixture, absolute activity `λ_X^"*"` (item 9-18) of the pure substance `X` at the same temperature (ISO 80000-5) but at standard pressure (ISO 80000-4) `10^5 ["Pa"]`: `λ_X^! = λ_X"*" (p^!)`
652
+ * remarks: This quantity is a function of temperature only.
653
+ */
654
+ }
655
+ attribute standardAbsoluteActivityInMixture: StandardAbsoluteActivityInMixtureValue :> scalarQuantities;
656
+
657
+ /* ISO-80000-9 item 9-24 activity of solute, relative activity of solute */
658
+ attribute def ActivityOfSoluteValue :> DimensionOneValue {
659
+ doc
660
+ /*
661
+ * source: item 9-24 activity of solute, relative activity of solute
662
+ * symbol(s): `a_X`, `a_(m,X)`
663
+ * application domain: generic
664
+ * name: ActivityOfSolute (specializes DimensionOneQuantity)
665
+ * quantity dimension: 1
666
+ * measurement unit(s): 1
667
+ * tensor order: 0
668
+ * definition: for a solute `X` in a solution, quantity proportional to the absolute activity, `λ_X` (item 9-18), the proportionality factor, which is a function of temperature (ISO 80000-5) and pressure (ISO 80000-4) only, being determined by the condition that, at constant temperature and pressure, `a_X` divided by the molality (item 9-15) ratio, `b_X/b^!` tends to 1 at infinite dilution; `b_X` is the molality of solute `X` (item 9-15), and `b^!` is standard molality: `a_X = λ_X * lim_(sum b_X -> 0) (b_X//b^!)/λ_X`
669
+ * remarks: The quantity `a_(c,X)` , similarly defined in terms of the concentration ratio `c_X/c^!` , is also called the activity or relative activity of solute `X`; `c^!` is a standard amount-of-substance concentration (item 9-12.2): `a_(c,X) = λ_X * lim_(sum c_X -> 0) (c_X//c^!)/λ_X`, where `sum` denotes summation over all the solute substances. This especially applies to a dilute liquid solution.
670
+ */
671
+ }
672
+ attribute activityOfSolute: ActivityOfSoluteValue :> scalarQuantities;
673
+
674
+ alias relativeActivityOfSolute for activityOfSolute;
675
+
676
+ /* ISO-80000-9 item 9-25 activity coefficient */
677
+ attribute def ActivityCoefficientValue :> DimensionOneValue {
678
+ doc
679
+ /*
680
+ * source: item 9-25 activity coefficient
681
+ * symbol(s): `γ_B`
682
+ * application domain: generic
683
+ * name: ActivityCoefficient (specializes DimensionOneQuantity)
684
+ * quantity dimension: 1
685
+ * measurement unit(s): 1
686
+ * tensor order: 0
687
+ * definition: for a solute `B` in a solution, quotient of activity `a_B` of solute `B` (item 9-24), and quotient of the molality (item 9-15) `b_B` of substance `B` and standard molality `b^!`: `γ_B = a_B/(b_B//b^!)`
688
+ * remarks: The name "activity coefficient of solute B" is also used for the quantity `γ_B` defined as: `γ_B = a_(c,B)/(c_B//c^!)` See item 9-22.
689
+ */
690
+ }
691
+ attribute activityCoefficient: ActivityCoefficientValue :> scalarQuantities;
692
+
693
+ /* ISO-80000-9 item 9-26 standard absolute activity in solution */
694
+ attribute def StandardAbsoluteActivityInSolutionValue :> DimensionOneValue {
695
+ doc
696
+ /*
697
+ * source: item 9-26 standard absolute activity in solution
698
+ * symbol(s): `λ_B^!`
699
+ * application domain: in a solution
700
+ * name: StandardAbsoluteActivityInSolution (specializes DimensionOneQuantity)
701
+ * quantity dimension: 1
702
+ * measurement unit(s): 1
703
+ * tensor order: 0
704
+ * definition: for a solute `B` in a solution: `λ_B^! = lim_(sum b_B -> 0) [λ_B ((p^!)b^!)/b_B]` where ∑ denotes summation over all solutes, `p^!` is a standard pressure (ISO 80000-4), `b^!` is standard molality, and `b_B` is the molality of substance `B` (item 9-15)
705
+ * remarks: This quantity is a function of temperature only. It especially applies to a dilute liquid solution. The standard pressure is `10^5 ["Pa"]`.
706
+ */
707
+ }
708
+ attribute standardAbsoluteActivityInSolution: StandardAbsoluteActivityInSolutionValue :> scalarQuantities;
709
+
710
+ /* ISO-80000-9 item 9-27.1 activity of solvent, relative activity of solvent */
711
+ attribute def ActivityOfSolventValue :> DimensionOneValue {
712
+ doc
713
+ /*
714
+ * source: item 9-27.1 activity of solvent, relative activity of solvent
715
+ * symbol(s): `a_A`
716
+ * application domain: generic
717
+ * name: ActivityOfSolvent (specializes DimensionOneQuantity)
718
+ * quantity dimension: 1
719
+ * measurement unit(s): 1
720
+ * tensor order: 0
721
+ * definition: for the solvent `A` in a solution, quotient of the absolute activity of substance `A`, `λ_A` (item 9-18), and that, `λ_A^"*"` , of the pure solvent at the same temperature (ISO 80000-5) and pressure (ISO 80000-4): `a_A = λ_A/λ_A^"*"`
722
+ * remarks: None.
723
+ */
724
+ }
725
+ attribute activityOfSolvent: ActivityOfSolventValue :> scalarQuantities;
726
+
727
+ alias relativeActivityOfSolvent for activityOfSolvent;
728
+
729
+ /* ISO-80000-9 item 9-27.2 osmotic factor of solvent, osmotic coefficient of solvent A */
730
+ attribute def OsmoticFactorOfSolventValue :> DimensionOneValue {
731
+ doc
732
+ /*
733
+ * source: item 9-27.2 osmotic factor of solvent, osmotic coefficient of solvent A
734
+ * symbol(s): `φ`
735
+ * application domain: generic
736
+ * name: OsmoticFactorOfSolvent (specializes DimensionOneQuantity)
737
+ * quantity dimension: 1
738
+ * measurement unit(s): 1
739
+ * tensor order: 0
740
+ * definition: quantity given by: `φ = -(M_A sum b_B)^-1 ln(a_A)` where `M_A` is the molar mass (item 9-4) of the solvent A, ∑ denotes summation over all the solutes, `b_B` is the molality of solute B (item 9-15), and `a_A` is the activity of solvent A (item 9-27.1)
741
+ * remarks: The name "osmotic coefficient" is generally used, although the name "osmotic factor" is more systematic. This concept especially applies to a dilute liquid solution.
742
+ */
743
+ }
744
+ attribute osmoticFactorOfSolvent: OsmoticFactorOfSolventValue :> scalarQuantities;
745
+
746
+ alias osmoticCoefficientOfSolventA for osmoticFactorOfSolvent;
747
+
748
+ /* ISO-80000-9 item 9-27.3 standard absolute activity of solvent */
749
+ attribute def StandardAbsoluteActivityOfSolventValue :> DimensionOneValue {
750
+ doc
751
+ /*
752
+ * source: item 9-27.3 standard absolute activity of solvent
753
+ * symbol(s): `λ_A^!`
754
+ * application domain: in a dilute solution
755
+ * name: StandardAbsoluteActivityOfSolvent (specializes DimensionOneQuantity)
756
+ * quantity dimension: 1
757
+ * measurement unit(s): 1
758
+ * tensor order: 0
759
+ * definition: for solvent `A`, standard absolute activity (item 9-23) of the pure substance `A` at the same temperature (ISO 80000-5) and at a standard pressure `p^!` (ISO 80000-4): `λ_A^! = λ_A^"*" p^!`
760
+ * remarks: None.
761
+ */
762
+ }
763
+ attribute standardAbsoluteActivityOfSolvent: StandardAbsoluteActivityOfSolventValue :> scalarQuantities;
764
+
765
+ /* ISO-80000-9 item 9-28 osmotic pressure */
766
+ attribute def OsmoticPressureValue :> ScalarQuantityValue {
767
+ doc
768
+ /*
769
+ * source: item 9-28 osmotic pressure
770
+ * symbol(s): `Π`
771
+ * application domain: generic
772
+ * name: OsmoticPressure
773
+ * quantity dimension: L^-1*M^1*T^-2
774
+ * measurement unit(s): Pa, kg*m^-1*s^-2
775
+ * tensor order: 0
776
+ * definition: excess pressure (ISO 80000-4) required to maintain osmotic equilibrium between a solution and the pure solvent separated by a membrane permeable to the solvent only
777
+ * remarks: None.
778
+ */
779
+ attribute :>> num: Real;
780
+ attribute :>> mRef: OsmoticPressureUnit[1];
781
+ }
782
+
783
+ attribute osmoticPressure: OsmoticPressureValue[*] nonunique :> scalarQuantities;
784
+
785
+ attribute def OsmoticPressureUnit :> DerivedUnit {
786
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
787
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
788
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
789
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
790
+ }
791
+
792
+ /* ISO-80000-9 item 9-29 stoichiometric number of substance */
793
+ attribute def StoichiometricNumberOfSubstanceValue :> DimensionOneValue {
794
+ doc
795
+ /*
796
+ * source: item 9-29 stoichiometric number of substance
797
+ * symbol(s): `ν_B`
798
+ * application domain: generic
799
+ * name: StoichiometricNumberOfSubstance (specializes DimensionOneQuantity)
800
+ * quantity dimension: 1
801
+ * measurement unit(s): 1
802
+ * tensor order: 0
803
+ * definition: for substance `B`, an integer number or a simple fraction, being negative for a reactant and positive for a product, occurring in the expression for a chemical reaction: `0 = sum ν_B` where the symbol `B` denotes the reactants and products involved in the reaction
804
+ * remarks: EXAMPLE `(1/2)"N"_2 + (3/2)"H"_2 = "N""H"_3` ; `ν("N"_2) = -1/2`, `ν("H"_2) = -3/2`, `ν("N""H"_3) = +1`.
805
+ */
806
+ }
807
+ attribute stoichiometricNumberOfSubstance: StoichiometricNumberOfSubstanceValue :> scalarQuantities;
808
+
809
+ /* ISO-80000-9 item 9-30 affinity of a chemical reaction */
810
+ attribute def AffinityOfAChemicalReactionValue :> ScalarQuantityValue {
811
+ doc
812
+ /*
813
+ * source: item 9-30 affinity of a chemical reaction
814
+ * symbol(s): `A`
815
+ * application domain: generic
816
+ * name: AffinityOfAChemicalReaction
817
+ * quantity dimension: L^2*M^1*T^-2*N^-1
818
+ * measurement unit(s): J/mol, kg*m^2*s^-2*mol^-1
819
+ * tensor order: 0
820
+ * definition: negative of the sum over all substances `B` of products of stoichiometric number `ν_B` of substance `B` (item 9-29) and chemical potential `μ_B` of substance `B` (item 9-17): `A = -sum ν_B μ_B`
821
+ * remarks: The affinity of a reaction is a measure of the "driving force" of the reaction. When it is positive, the reaction goes spontaneously from reactants to products, and when it is negative, the reaction goes in the opposite direction. Another way to write the definition is: `A = ((del G)/(del ξ))_(p,T)` where `G` is Gibbs energy (ISO 80000-5) and `ξ` is the extent of the reaction (item 9-31). Note that `ν_B` is negative for reactants and positive for products.
822
+ */
823
+ attribute :>> num: Real;
824
+ attribute :>> mRef: AffinityOfAChemicalReactionUnit[1];
825
+ }
826
+
827
+ attribute affinityOfAChemicalReaction: AffinityOfAChemicalReactionValue[*] nonunique :> scalarQuantities;
828
+
829
+ attribute def AffinityOfAChemicalReactionUnit :> DerivedUnit {
830
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
831
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
832
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
833
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
834
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, amountOfSubstancePF); }
835
+ }
836
+
837
+ /* ISO-80000-9 item 9-31 extent of reaction */
838
+ attribute extentOfReaction: AmountOfSubstanceValue :> scalarQuantities {
839
+ doc
840
+ /*
841
+ * source: item 9-31 extent of reaction
842
+ * symbol(s): `ξ`
843
+ * application domain: generic
844
+ * name: ExtentOfReaction (specializes AmountOfSubstance)
845
+ * quantity dimension: N^1
846
+ * measurement unit(s): mol
847
+ * tensor order: 0
848
+ * definition: difference of initial amount `n_(B "in")` of substance `B` (item 9-2) and equilibrium amount `n_(B "eq")` of substance `B` (item 9-2) divided by stoichiometric number `ν_B` of substance `B` (item 9-29): `ξ = (n_(B "eq") - n_(B "in"))/ν_B`
849
+ * remarks: See remark to item 9-30.
850
+ */
851
+ }
852
+
853
+ /* ISO-80000-9 item 9-32 standard equilibrium constant, thermodynamic equilibrium constant */
854
+ attribute def StandardEquilibriumConstantValue :> DimensionOneValue {
855
+ doc
856
+ /*
857
+ * source: item 9-32 standard equilibrium constant, thermodynamic equilibrium constant
858
+ * symbol(s): `K^!`
859
+ * application domain: generic
860
+ * name: StandardEquilibriumConstant (specializes DimensionOneQuantity)
861
+ * quantity dimension: 1
862
+ * measurement unit(s): 1
863
+ * tensor order: 0
864
+ * definition: for a chemical reaction, product for all substances `B` of standard absolute activity `λ_B^!` of substance `B` (item 9-26) in power of minus stoichiometric number `ν_B` of substance `B` (item 9-29): `K^! = prod_B (tilde(a) λ_B^!)^(-ν_B)`
865
+ * remarks: This quantity is a function of temperature only. Others depend on temperature, pressure, and composition. One can define in an analogous way an equilibrium constant in terms of fugacity, `K_f`, molality, `K_m`, etc.
866
+ */
867
+ }
868
+ attribute standardEquilibriumConstant: StandardEquilibriumConstantValue :> scalarQuantities;
869
+
870
+ alias thermodynamicEquilibriumConstant for standardEquilibriumConstant;
871
+
872
+ /* ISO-80000-9 item 9-33 equilibrium constant on pressure basis */
873
+ attribute def EquilibriumConstantOnPressureBasisValue :> ScalarQuantityValue {
874
+ doc
875
+ /*
876
+ * source: item 9-33 equilibrium constant on pressure basis
877
+ * symbol(s): `K_p`
878
+ * application domain: pressure basis
879
+ * name: EquilibriumConstantOnPressureBasis
880
+ * quantity dimension: L^-1*M^1*T^-2
881
+ * measurement unit(s): Pa, kg*m^-1*s^-2
882
+ * tensor order: 0
883
+ * definition: for gases, product for all substances `B` of partial pressure `p_B` of substance `B` (item 9-19) in power of its stoichiometric number `ν_B` (item 9-29): `K_p = prod_B (p_B)^(ν_B)`
884
+ * remarks: None.
885
+ */
886
+ attribute :>> num: Real;
887
+ attribute :>> mRef: EquilibriumConstantOnPressureBasisUnit[1];
888
+ }
889
+
890
+ attribute equilibriumConstantOnPressureBasis: EquilibriumConstantOnPressureBasisValue[*] nonunique :> scalarQuantities;
891
+
892
+ attribute def EquilibriumConstantOnPressureBasisUnit :> DerivedUnit {
893
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
894
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
895
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
896
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
897
+ }
898
+
899
+ /* ISO-80000-9 item 9-34 equilibrium constant on concentration basis */
900
+ attribute def EquilibriumConstantOnConcentrationBasisValue :> ScalarQuantityValue {
901
+ doc
902
+ /*
903
+ * source: item 9-34 equilibrium constant on concentration basis
904
+ * symbol(s): `K_c`
905
+ * application domain: concentration basis
906
+ * name: EquilibriumConstantOnConcentrationBasis
907
+ * quantity dimension: L^-3*N^1
908
+ * measurement unit(s): mol/m^3
909
+ * tensor order: 0
910
+ * definition: for solutions, product for all substances `B` of concentration `c_B` of substance `B` (item 9-9.1) in power of its stoichiometric number `ν_B` (item 9-29): `K_c = prod_B (c_B)^(ν_B)`
911
+ * remarks: None.
912
+ */
913
+ attribute :>> num: Real;
914
+ attribute :>> mRef: EquilibriumConstantOnConcentrationBasisUnit[1];
915
+ }
916
+
917
+ attribute equilibriumConstantOnConcentrationBasis: EquilibriumConstantOnConcentrationBasisValue[*] nonunique :> scalarQuantities;
918
+
919
+ attribute def EquilibriumConstantOnConcentrationBasisUnit :> DerivedUnit {
920
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -3; }
921
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = 1; }
922
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, amountOfSubstancePF); }
923
+ }
924
+
925
+ /* ISO-80000-9 item 9-35.1 microcanonical partition function */
926
+ attribute microcanonicalPartitionFunction: CountValue :> scalarQuantities {
927
+ doc
928
+ /*
929
+ * source: item 9-35.1 microcanonical partition function
930
+ * symbol(s): `Ω`
931
+ * application domain: generic
932
+ * name: MicrocanonicalPartitionFunction (specializes Count)
933
+ * quantity dimension: 1
934
+ * measurement unit(s): 1
935
+ * tensor order: 0
936
+ * definition: number of all quantum states `r` consistent with given energy `E` (ISO 80000-4), volume (ISO 80000-3), and external fields: `Ω = sum_r 1`
937
+ * remarks: `S = k ln(Ω)` where `S` is entropy (ISO 80000-5) and `k` is the Boltzmann constant (ISO 80000-1).
938
+ */
939
+ }
940
+
941
+ /* ISO-80000-9 item 9-35.2 canonical partition function */
942
+ attribute def CanonicalPartitionFunctionValue :> DimensionOneValue {
943
+ doc
944
+ /*
945
+ * source: item 9-35.2 canonical partition function
946
+ * symbol(s): `Z`
947
+ * application domain: generic
948
+ * name: CanonicalPartitionFunction (specializes DimensionOneQuantity)
949
+ * quantity dimension: 1
950
+ * measurement unit(s): 1
951
+ * tensor order: 0
952
+ * definition: sum over quantum states of energy `E_r` (ISO 80000-4), expressed by: `Z = sum_r exp(-E_r/(kT))` where `k` is the Boltzmann constant (ISO 80000-1), and `T` is thermodynamic temperature (ISO 80000-5)
953
+ * remarks: `A = -kT ln(Z)` where `A` is Helmholtz energy (ISO 80000-5).
954
+ */
955
+ }
956
+ attribute canonicalPartitionFunction: CanonicalPartitionFunctionValue :> scalarQuantities;
957
+
958
+ /* ISO-80000-9 item 9-35.3 grand-canonical partition function, grand partition function */
959
+ attribute def GrandCanonicalPartitionFunctionValue :> DimensionOneValue {
960
+ doc
961
+ /*
962
+ * source: item 9-35.3 grand-canonical partition function, grand partition function
963
+ * symbol(s): `Ξ`
964
+ * application domain: generic
965
+ * name: GrandCanonicalPartitionFunction (specializes DimensionOneQuantity)
966
+ * quantity dimension: 1
967
+ * measurement unit(s): 1
968
+ * tensor order: 0
969
+ * definition: sum of canonical partition function `Z(N_A,N_B,…)` for the given number of particles `A,B` multiplied by absolute activities (item 9-18) `λ_A, λ_B, ...` of particles `A, B`: `Ξ = sum_(N_A, N_B, ...) Z(N_A, N_B, …) * λ_A^(N_A) * λ_B^(N_B) * ...`
970
+ * remarks: `A - sum μ_B n_B = -kT ln(Ξ)` where `A` is Helmholtz energy (ISO 80000-5), `μ_B` is the chemical potential of substance `B`, and `n_B` is the amount of substance `B`.
971
+ */
972
+ }
973
+ attribute grandCanonicalPartitionFunction: GrandCanonicalPartitionFunctionValue :> scalarQuantities;
974
+
975
+ alias grandPartitionFunction for grandCanonicalPartitionFunction;
976
+
977
+ /* ISO-80000-9 item 9-35.4 molecular partition function, partition function of a molecule */
978
+ attribute def MolecularPartitionFunctionValue :> DimensionOneValue {
979
+ doc
980
+ /*
981
+ * source: item 9-35.4 molecular partition function, partition function of a molecule
982
+ * symbol(s): `q`
983
+ * application domain: generic
984
+ * name: MolecularPartitionFunction (specializes DimensionOneQuantity)
985
+ * quantity dimension: 1
986
+ * measurement unit(s): 1
987
+ * tensor order: 0
988
+ * definition: quantity given by: `q = sum_r exp(-ε_r/(kT))` where `ε_r` is the energy (ISO 80000-5) of the `r`-th level of the molecule consistent with given volume (ISO 80000-3) and external fields, `k` is the Boltzmann constant (ISO 80000-1), and `T` is thermodynamic temperature (ISO 80000-5)
989
+ * remarks: None.
990
+ */
991
+ }
992
+ attribute molecularPartitionFunction: MolecularPartitionFunctionValue :> scalarQuantities;
993
+
994
+ alias partitionFunctionOfAMolecule for molecularPartitionFunction;
995
+
996
+ /* ISO-80000-9 item 9-36.1 statistical weight of subsystem */
997
+ attribute statisticalWeightOfSubsystem: CountValue :> scalarQuantities {
998
+ doc
999
+ /*
1000
+ * source: item 9-36.1 statistical weight of subsystem
1001
+ * symbol(s): `g`
1002
+ * application domain: generic
1003
+ * name: StatisticalWeightOfSubsystem (specializes Count)
1004
+ * quantity dimension: 1
1005
+ * measurement unit(s): 1
1006
+ * tensor order: 0
1007
+ * definition: number of different microstates in a subsystem
1008
+ * remarks: None.
1009
+ */
1010
+ }
1011
+
1012
+ /* ISO-80000-9 item 9-36.2 degeneracy, multiplicity */
1013
+ attribute def DegeneracyValue :> DimensionOneValue {
1014
+ doc
1015
+ /*
1016
+ * source: item 9-36.2 degeneracy, multiplicity
1017
+ * symbol(s): `g`
1018
+ * application domain: generic
1019
+ * name: Degeneracy (specializes DimensionOneQuantity)
1020
+ * quantity dimension: 1
1021
+ * measurement unit(s): 1
1022
+ * tensor order: 0
1023
+ * definition: for quantum level, statistical weight of that level
1024
+ * remarks: If `g = 1`, the level is called non-degenerate.
1025
+ */
1026
+ }
1027
+ attribute degeneracy: DegeneracyValue :> scalarQuantities;
1028
+
1029
+ alias multiplicity for degeneracy;
1030
+
1031
+ /* ISO-80000-9 item 9-37.1 molar gas constant */
1032
+ attribute def MolarGasConstantValue :> ScalarQuantityValue {
1033
+ doc
1034
+ /*
1035
+ * source: item 9-37.1 molar gas constant
1036
+ * symbol(s): `R`
1037
+ * application domain: generic
1038
+ * name: MolarGasConstant
1039
+ * quantity dimension: L^2*M^1*T^-2*Θ^-1*N^-1
1040
+ * measurement unit(s): J/(mol*K), kg*m^2*s^-2*K^-1*mol^-1
1041
+ * tensor order: 0
1042
+ * definition: product of the Boltzmann constant (ISO 80000-1) and the Avogadro constant (ISO 80000-1)
1043
+ * remarks: For an ideal gas, `pV_m = RT`
1044
+ */
1045
+ attribute :>> num: Real;
1046
+ attribute :>> mRef: MolarGasConstantUnit[1];
1047
+ }
1048
+
1049
+ attribute molarGasConstant: MolarGasConstantValue[*] nonunique :> scalarQuantities;
1050
+
1051
+ attribute def MolarGasConstantUnit :> DerivedUnit {
1052
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
1053
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
1054
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
1055
+ private attribute thermodynamicTemperaturePF: QuantityPowerFactor[1] { :>> quantity = isq.'Θ'; :>> exponent = -1; }
1056
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
1057
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, thermodynamicTemperaturePF, amountOfSubstancePF); }
1058
+ }
1059
+
1060
+ /* ISO-80000-9 item 9-37.2 specific gas constant */
1061
+ /* Refer to declaration for SpecificGasConstant in ISQThermodynamics item 5-26 specific gas constant */
1062
+
1063
+ /* ISO-80000-9 item 9-38 mean free path */
1064
+ attribute meanFreePath: LengthValue :> scalarQuantities {
1065
+ doc
1066
+ /*
1067
+ * source: item 9-38 mean free path
1068
+ * symbol(s): `l`, `λ`
1069
+ * application domain: chemistry
1070
+ * name: MeanFreePath (specializes Length)
1071
+ * quantity dimension: L^1
1072
+ * measurement unit(s): m
1073
+ * tensor order: 0
1074
+ * definition: for a particle, the average distance `d` (ISO 80000-3) between two successive collisions with other particles
1075
+ * remarks: None.
1076
+ */
1077
+ }
1078
+
1079
+ /* ISO-80000-9 item 9-39 diffusion coefficient */
1080
+ attribute def DiffusionCoefficientValue :> ScalarQuantityValue {
1081
+ doc
1082
+ /*
1083
+ * source: item 9-39 diffusion coefficient
1084
+ * symbol(s): `D`
1085
+ * application domain: chemistry
1086
+ * name: DiffusionCoefficient
1087
+ * quantity dimension: L^2*T^-1
1088
+ * measurement unit(s): m^2*s^-1
1089
+ * tensor order: 0
1090
+ * definition: proportionality coefficient of local molecular concentration `C_B` (item 9-9.2) of substance `B` in the mixture multiplied by the local average velocity (ISO 80000-3) `v_B` of the molecules of `B`, and minus the gradient of the local molecular concentration `C_B` (item 9-9.2) of substance `B` in the mixture, expressed by: `C_B(v_B) = -D grad C_B`
1091
+ * remarks: None.
1092
+ */
1093
+ attribute :>> num: Real;
1094
+ attribute :>> mRef: DiffusionCoefficientUnit[1];
1095
+ }
1096
+
1097
+ attribute diffusionCoefficient: DiffusionCoefficientValue[*] nonunique :> scalarQuantities;
1098
+
1099
+ attribute def DiffusionCoefficientUnit :> DerivedUnit {
1100
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
1101
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
1102
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF); }
1103
+ }
1104
+
1105
+ /* ISO-80000-9 item 9-40.1 thermal diffusion ratio */
1106
+ attribute def ThermalDiffusionRatioValue :> DimensionOneValue {
1107
+ doc
1108
+ /*
1109
+ * source: item 9-40.1 thermal diffusion ratio
1110
+ * symbol(s): `k_T`
1111
+ * application domain: generic
1112
+ * name: ThermalDiffusionRatio (specializes DimensionOneQuantity)
1113
+ * quantity dimension: 1
1114
+ * measurement unit(s): 1
1115
+ * tensor order: 0
1116
+ * definition: in a steady-state of a binary mixture in which thermal diffusion occurs, proportionality factor between gradient of the amount-of-subsstance fraction `x_B` (item 9-13) of the heavier substance `B`, and negative gradient of the local thermodynamic temperature `T` (ISO 80000-5) divided by that temperature (ISO 80000-5): `grad x_B = -(k_T/T) grad T`
1117
+ * remarks: None.
1118
+ */
1119
+ }
1120
+ attribute thermalDiffusionRatio: ThermalDiffusionRatioValue :> scalarQuantities;
1121
+
1122
+ /* ISO-80000-9 item 9-40.2 thermal diffusion factor */
1123
+ attribute def ThermalDiffusionFactorValue :> DimensionOneValue {
1124
+ doc
1125
+ /*
1126
+ * source: item 9-40.2 thermal diffusion factor
1127
+ * symbol(s): `α_T`
1128
+ * application domain: generic
1129
+ * name: ThermalDiffusionFactor (specializes DimensionOneQuantity)
1130
+ * quantity dimension: 1
1131
+ * measurement unit(s): 1
1132
+ * tensor order: 0
1133
+ * definition: quotient of the thermal diffusion ratio `k_T` (item 9-40.1), and the product of the local amount-of-substance fractions `x_A`, `x_B` (item 9-13) of two substances `A` and `B`: `α_T = k_T//(x_A x_B)`
1134
+ * remarks: None.
1135
+ */
1136
+ }
1137
+ attribute thermalDiffusionFactor: ThermalDiffusionFactorValue :> scalarQuantities;
1138
+
1139
+ /* ISO-80000-9 item 9-41 thermal diffusion coefficient */
1140
+ attribute def ThermalDiffusionCoefficientValue :> ScalarQuantityValue {
1141
+ doc
1142
+ /*
1143
+ * source: item 9-41 thermal diffusion coefficient
1144
+ * symbol(s): `D_T`
1145
+ * application domain: generic
1146
+ * name: ThermalDiffusionCoefficient
1147
+ * quantity dimension: L^2*T^-1
1148
+ * measurement unit(s): m^2*s^-1
1149
+ * tensor order: 0
1150
+ * definition: product of the thermal diffusion ratio `k_T` (item 9-40.1) and the diffusion coefficient `D` (item 9-39): `D_T = k_T*D`
1151
+ * remarks: None.
1152
+ */
1153
+ attribute :>> num: Real;
1154
+ attribute :>> mRef: ThermalDiffusionCoefficientUnit[1];
1155
+ }
1156
+
1157
+ attribute thermalDiffusionCoefficient: ThermalDiffusionCoefficientValue[*] nonunique :> scalarQuantities;
1158
+
1159
+ attribute def ThermalDiffusionCoefficientUnit :> DerivedUnit {
1160
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
1161
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
1162
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF); }
1163
+ }
1164
+
1165
+ /* ISO-80000-9 item 9-42 ionic strength */
1166
+ attribute def IonicStrengthValue :> ScalarQuantityValue {
1167
+ doc
1168
+ /*
1169
+ * source: item 9-42 ionic strength
1170
+ * symbol(s): `I`
1171
+ * application domain: generic
1172
+ * name: IonicStrength
1173
+ * quantity dimension: M^-1*N^1
1174
+ * measurement unit(s): mol*kg^-1
1175
+ * tensor order: 0
1176
+ * definition: in a sample, one half of the sum of square of the charge number `z_i` (ISO 80000-10) of `i`-th ion multiplied by its molality `b_i` (item 9-15) over any involved ion: `I = 1/2 sum z_i^2 b_i`
1177
+ * remarks: None.
1178
+ */
1179
+ attribute :>> num: Real;
1180
+ attribute :>> mRef: IonicStrengthUnit[1];
1181
+ }
1182
+
1183
+ attribute ionicStrength: IonicStrengthValue[*] nonunique :> scalarQuantities;
1184
+
1185
+ attribute def IonicStrengthUnit :> DerivedUnit {
1186
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
1187
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = 1; }
1188
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (massPF, amountOfSubstancePF); }
1189
+ }
1190
+
1191
+ /* ISO-80000-9 item 9-43 degree of dissociation, dissociation fraction */
1192
+ attribute def DegreeOfDissociationValue :> DimensionOneValue {
1193
+ doc
1194
+ /*
1195
+ * source: item 9-43 degree of dissociation, dissociation fraction
1196
+ * symbol(s): `α`
1197
+ * application domain: generic
1198
+ * name: DegreeOfDissociation (specializes DimensionOneQuantity)
1199
+ * quantity dimension: 1
1200
+ * measurement unit(s): 1
1201
+ * tensor order: 0
1202
+ * definition: in a sample, quotient of the number `n_d` of dissociated molecules and the total number `n` of molecules: `α = n_D / n`
1203
+ * remarks: None.
1204
+ */
1205
+ }
1206
+ attribute degreeOfDissociation: DegreeOfDissociationValue :> scalarQuantities;
1207
+
1208
+ alias dissociationFraction for degreeOfDissociation;
1209
+
1210
+ /* ISO-80000-9 item 9-44 electrolytic conductivity */
1211
+ attribute def ElectrolyticConductivityValue :> ScalarQuantityValue {
1212
+ doc
1213
+ /*
1214
+ * source: item 9-44 electrolytic conductivity
1215
+ * symbol(s): `κ`
1216
+ * application domain: generic
1217
+ * name: ElectrolyticConductivity
1218
+ * quantity dimension: L^-3*M^-1*T^3*I^2
1219
+ * measurement unit(s): S/m, kg^-1*m^-3*s^3*A^2
1220
+ * tensor order: 0
1221
+ * definition: quotient of the magnitude of electric current density `J` (IEC 80000-6) and the magnitude electric field strength `E` (IEC 80000-6) in an electrolyte: `κ = J/E`
1222
+ * remarks: For anisotropic media, `κ` is a tensor. In IEC 80000-6 the symbols `σ`, `γ` are used.
1223
+ */
1224
+ attribute :>> num: Real;
1225
+ attribute :>> mRef: ElectrolyticConductivityUnit[1];
1226
+ }
1227
+
1228
+ attribute electrolyticConductivity: ElectrolyticConductivityValue[*] nonunique :> scalarQuantities;
1229
+
1230
+ attribute def ElectrolyticConductivityUnit :> DerivedUnit {
1231
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -3; }
1232
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
1233
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = 3; }
1234
+ private attribute electricCurrentPF: QuantityPowerFactor[1] { :>> quantity = isq.I; :>> exponent = 2; }
1235
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF, electricCurrentPF); }
1236
+ }
1237
+
1238
+ /* ISO-80000-9 item 9-45 molar conductivity */
1239
+ attribute def MolarConductivityValue :> ScalarQuantityValue {
1240
+ doc
1241
+ /*
1242
+ * source: item 9-45 molar conductivity
1243
+ * symbol(s): `Λ_m`
1244
+ * application domain: generic
1245
+ * name: MolarConductivity
1246
+ * quantity dimension: M^-1*T^3*I^2*N^-1
1247
+ * measurement unit(s): S*m^2/mol, kg^-1*s^3*A^2*mol^-1
1248
+ * tensor order: 0
1249
+ * definition: in an electrolyte, quotient of electrolytic conductivity `κ` (item 9-44) and amount-of-substance concentration `c_B` (item 9-12.1): `Λ_m = κ/c_B`
1250
+ * remarks: None.
1251
+ */
1252
+ attribute :>> num: Real;
1253
+ attribute :>> mRef: MolarConductivityUnit[1];
1254
+ }
1255
+
1256
+ attribute molarConductivity: MolarConductivityValue[*] nonunique :> scalarQuantities;
1257
+
1258
+ attribute def MolarConductivityUnit :> DerivedUnit {
1259
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
1260
+ private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = 3; }
1261
+ private attribute electricCurrentPF: QuantityPowerFactor[1] { :>> quantity = isq.I; :>> exponent = 2; }
1262
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
1263
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (massPF, durationPF, electricCurrentPF, amountOfSubstancePF); }
1264
+ }
1265
+
1266
+ /* ISO-80000-9 item 9-46 transport number of the ion B, current fraction of the ion B */
1267
+ attribute def TransportNumberOfTheIonBValue :> DimensionOneValue {
1268
+ doc
1269
+ /*
1270
+ * source: item 9-46 transport number of the ion B, current fraction of the ion B
1271
+ * symbol(s): `t_B`
1272
+ * application domain: generic
1273
+ * name: TransportNumberOfTheIonB (specializes DimensionOneQuantity)
1274
+ * quantity dimension: 1
1275
+ * measurement unit(s): 1
1276
+ * tensor order: 0
1277
+ * definition: for the ion `B`, quotient of electric current `i_B` (IEC 80000-6) carried by the ion `B` and total electric current `i` (IEC 80000-6) in an electrolyte: `t_B = i_B/i`
1278
+ * remarks: None.
1279
+ */
1280
+ }
1281
+ attribute transportNumberOfTheIonB: TransportNumberOfTheIonBValue :> scalarQuantities;
1282
+
1283
+ alias currentFractionOfTheIonB for transportNumberOfTheIonB;
1284
+
1285
+ /* ISO-80000-9 item 9-47 angle of optical rotation */
1286
+ attribute angleOfOpticalRotation: AngularMeasureValue :> scalarQuantities {
1287
+ doc
1288
+ /*
1289
+ * source: item 9-47 angle of optical rotation
1290
+ * symbol(s): `α`
1291
+ * application domain: generic
1292
+ * name: AngleOfOpticalRotation (specializes AngularMeasure)
1293
+ * quantity dimension: 1
1294
+ * measurement unit(s): rad
1295
+ * tensor order: 0
1296
+ * definition: angle through which plane-polarized light is rotated clockwise, as seen when facing the light source, in passing through an optically active medium
1297
+ * remarks: None.
1298
+ */
1299
+ }
1300
+
1301
+ /* ISO-80000-9 item 9-48 molar optical rotatory power */
1302
+ attribute def MolarOpticalRotatoryPowerValue :> ScalarQuantityValue {
1303
+ doc
1304
+ /*
1305
+ * source: item 9-48 molar optical rotatory power
1306
+ * symbol(s): `α_n`
1307
+ * application domain: generic
1308
+ * name: MolarOpticalRotatoryPower
1309
+ * quantity dimension: L^2*N^-1
1310
+ * measurement unit(s): rad*m^2/mol, m^2*mol^-1
1311
+ * tensor order: 0
1312
+ * definition: angle `α` of optical rotation (item 9-47), multiplied by the quotient of cross-sectional area `A` (ISO 80000-3) of a linearly polarized light beam and the amount of substance `n` (item 9-2) of the optically active component in the path of the beam: `α_n = (α A)/n`
1313
+ * remarks: None.
1314
+ */
1315
+ attribute :>> num: Real;
1316
+ attribute :>> mRef: MolarOpticalRotatoryPowerUnit[1];
1317
+ }
1318
+
1319
+ attribute molarOpticalRotatoryPower: MolarOpticalRotatoryPowerValue[*] nonunique :> scalarQuantities;
1320
+
1321
+ attribute def MolarOpticalRotatoryPowerUnit :> DerivedUnit {
1322
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
1323
+ private attribute amountOfSubstancePF: QuantityPowerFactor[1] { :>> quantity = isq.N; :>> exponent = -1; }
1324
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, amountOfSubstancePF); }
1325
+ }
1326
+
1327
+ /* ISO-80000-9 item 9-49 specific optical rotatory power */
1328
+ attribute def SpecificOpticalRotatoryPowerValue :> ScalarQuantityValue {
1329
+ doc
1330
+ /*
1331
+ * source: item 9-49 specific optical rotatory power
1332
+ * symbol(s): `α_m`
1333
+ * application domain: generic
1334
+ * name: SpecificOpticalRotatoryPower
1335
+ * quantity dimension: L^2*M^-1
1336
+ * measurement unit(s): rad*m^2/kg, kg^-1*m^2
1337
+ * tensor order: 0
1338
+ * definition: angle `α` of optical rotation (item 9-47), multiplied by the quotient of cross-sectional area `A` (ISO 80000-3) of a linearly polarized light beam and the mass `m` (ISO 80000-4) of the optically active component in the path of the beam: `α_m = (α A)/m`
1339
+ * remarks: None.
1340
+ */
1341
+ attribute :>> num: Real;
1342
+ attribute :>> mRef: SpecificOpticalRotatoryPowerUnit[1];
1343
+ }
1344
+
1345
+ attribute specificOpticalRotatoryPower: SpecificOpticalRotatoryPowerValue[*] nonunique :> scalarQuantities;
1346
+
1347
+ attribute def SpecificOpticalRotatoryPowerUnit :> DerivedUnit {
1348
+ private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
1349
+ private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
1350
+ attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF); }
1351
+ }
1352
+
1353
+ }