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.
- package/README.md +71 -0
- package/dist/bin/cli.d.ts +6 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +61 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +8 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/src/cli/commands.d.ts +22 -0
- package/dist/src/cli/commands.d.ts.map +1 -0
- package/dist/src/cli/commands.js +87 -0
- package/dist/src/cli/commands.js.map +1 -0
- package/dist/src/discovery/find-sysml.d.ts +16 -0
- package/dist/src/discovery/find-sysml.d.ts.map +1 -0
- package/dist/src/discovery/find-sysml.js +30 -0
- package/dist/src/discovery/find-sysml.js.map +1 -0
- package/dist/src/discovery/load-order.d.ts +11 -0
- package/dist/src/discovery/load-order.d.ts.map +1 -0
- package/dist/src/discovery/load-order.js +85 -0
- package/dist/src/discovery/load-order.js.map +1 -0
- package/dist/src/graph/connection.d.ts +6 -0
- package/dist/src/graph/connection.d.ts.map +1 -0
- package/dist/src/graph/connection.js +7 -0
- package/dist/src/graph/connection.js.map +1 -0
- package/dist/src/graph/graph-store.d.ts +37 -0
- package/dist/src/graph/graph-store.d.ts.map +1 -0
- package/dist/src/graph/graph-store.js +108 -0
- package/dist/src/graph/graph-store.js.map +1 -0
- package/dist/src/graph/schema.d.ts +13 -0
- package/dist/src/graph/schema.d.ts.map +1 -0
- package/dist/src/graph/schema.js +21 -0
- package/dist/src/graph/schema.js.map +1 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +14 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/indexer/indexer.d.ts +20 -0
- package/dist/src/indexer/indexer.d.ts.map +1 -0
- package/dist/src/indexer/indexer.js +56 -0
- package/dist/src/indexer/indexer.js.map +1 -0
- package/dist/src/indexer/pipeline-phases.d.ts +8 -0
- package/dist/src/indexer/pipeline-phases.d.ts.map +1 -0
- package/dist/src/indexer/pipeline-phases.js +14 -0
- package/dist/src/indexer/pipeline-phases.js.map +1 -0
- package/dist/src/mcp/resources/context.d.ts +6 -0
- package/dist/src/mcp/resources/context.d.ts.map +1 -0
- package/dist/src/mcp/resources/context.js +45 -0
- package/dist/src/mcp/resources/context.js.map +1 -0
- package/dist/src/mcp/resources/schema.d.ts +6 -0
- package/dist/src/mcp/resources/schema.d.ts.map +1 -0
- package/dist/src/mcp/resources/schema.js +14 -0
- package/dist/src/mcp/resources/schema.js.map +1 -0
- package/dist/src/mcp/server.d.ts +8 -0
- package/dist/src/mcp/server.d.ts.map +1 -0
- package/dist/src/mcp/server.js +175 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/mcp/tools/clean-index.d.ts +12 -0
- package/dist/src/mcp/tools/clean-index.d.ts.map +1 -0
- package/dist/src/mcp/tools/clean-index.js +22 -0
- package/dist/src/mcp/tools/clean-index.js.map +1 -0
- package/dist/src/mcp/tools/context.d.ts +14 -0
- package/dist/src/mcp/tools/context.d.ts.map +1 -0
- package/dist/src/mcp/tools/context.js +51 -0
- package/dist/src/mcp/tools/context.js.map +1 -0
- package/dist/src/mcp/tools/cypher.d.ts +13 -0
- package/dist/src/mcp/tools/cypher.d.ts.map +1 -0
- package/dist/src/mcp/tools/cypher.js +25 -0
- package/dist/src/mcp/tools/cypher.js.map +1 -0
- package/dist/src/mcp/tools/generate-map.d.ts +13 -0
- package/dist/src/mcp/tools/generate-map.d.ts.map +1 -0
- package/dist/src/mcp/tools/generate-map.js +96 -0
- package/dist/src/mcp/tools/generate-map.js.map +1 -0
- package/dist/src/mcp/tools/impact.d.ts +14 -0
- package/dist/src/mcp/tools/impact.d.ts.map +1 -0
- package/dist/src/mcp/tools/impact.js +47 -0
- package/dist/src/mcp/tools/impact.js.map +1 -0
- package/dist/src/mcp/tools/index-db-graph.d.ts +14 -0
- package/dist/src/mcp/tools/index-db-graph.d.ts.map +1 -0
- package/dist/src/mcp/tools/index-db-graph.js +32 -0
- package/dist/src/mcp/tools/index-db-graph.js.map +1 -0
- package/dist/src/mcp/tools/list-indexed.d.ts +9 -0
- package/dist/src/mcp/tools/list-indexed.d.ts.map +1 -0
- package/dist/src/mcp/tools/list-indexed.js +14 -0
- package/dist/src/mcp/tools/list-indexed.js.map +1 -0
- package/dist/src/mcp/tools/query.d.ts +14 -0
- package/dist/src/mcp/tools/query.d.ts.map +1 -0
- package/dist/src/mcp/tools/query.js +47 -0
- package/dist/src/mcp/tools/query.js.map +1 -0
- package/dist/src/mcp/tools/rename.d.ts +19 -0
- package/dist/src/mcp/tools/rename.d.ts.map +1 -0
- package/dist/src/mcp/tools/rename.js +46 -0
- package/dist/src/mcp/tools/rename.js.map +1 -0
- package/dist/src/parser/lsp-client.d.ts +52 -0
- package/dist/src/parser/lsp-client.d.ts.map +1 -0
- package/dist/src/parser/lsp-client.js +230 -0
- package/dist/src/parser/lsp-client.js.map +1 -0
- package/dist/src/parser/lsp-server-path.d.ts +10 -0
- package/dist/src/parser/lsp-server-path.d.ts.map +1 -0
- package/dist/src/parser/lsp-server-path.js +29 -0
- package/dist/src/parser/lsp-server-path.js.map +1 -0
- package/dist/src/parser/symbols.d.ts +13 -0
- package/dist/src/parser/symbols.d.ts.map +1 -0
- package/dist/src/parser/symbols.js +150 -0
- package/dist/src/parser/symbols.js.map +1 -0
- package/dist/src/parser/sysml-mcp-client.d.ts +109 -0
- package/dist/src/parser/sysml-mcp-client.d.ts.map +1 -0
- package/dist/src/parser/sysml-mcp-client.js +185 -0
- package/dist/src/parser/sysml-mcp-client.js.map +1 -0
- package/dist/src/storage/clean.d.ts +15 -0
- package/dist/src/storage/clean.d.ts.map +1 -0
- package/dist/src/storage/clean.js +44 -0
- package/dist/src/storage/clean.js.map +1 -0
- package/dist/src/storage/list.d.ts +9 -0
- package/dist/src/storage/list.d.ts.map +1 -0
- package/dist/src/storage/list.js +12 -0
- package/dist/src/storage/list.js.map +1 -0
- package/dist/src/storage/location.d.ts +22 -0
- package/dist/src/storage/location.d.ts.map +1 -0
- package/dist/src/storage/location.js +36 -0
- package/dist/src/storage/location.js.map +1 -0
- package/dist/src/storage/registry.d.ts +14 -0
- package/dist/src/storage/registry.d.ts.map +1 -0
- package/dist/src/storage/registry.js +59 -0
- package/dist/src/storage/registry.js.map +1 -0
- package/dist/src/symbol-to-graph/mapping.d.ts +17 -0
- package/dist/src/symbol-to-graph/mapping.d.ts.map +1 -0
- package/dist/src/symbol-to-graph/mapping.js +102 -0
- package/dist/src/symbol-to-graph/mapping.js.map +1 -0
- package/dist/src/types.d.ts +40 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +35 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/worker/client.d.ts +21 -0
- package/dist/src/worker/client.d.ts.map +1 -0
- package/dist/src/worker/client.js +126 -0
- package/dist/src/worker/client.js.map +1 -0
- package/dist/src/worker/gateway.d.ts +79 -0
- package/dist/src/worker/gateway.d.ts.map +1 -0
- package/dist/src/worker/gateway.js +93 -0
- package/dist/src/worker/gateway.js.map +1 -0
- package/dist/src/worker/graph-worker.d.ts +7 -0
- package/dist/src/worker/graph-worker.d.ts.map +1 -0
- package/dist/src/worker/graph-worker.js +91 -0
- package/dist/src/worker/graph-worker.js.map +1 -0
- package/dist/src/worker/protocol.d.ts +21 -0
- package/dist/src/worker/protocol.d.ts.map +1 -0
- package/dist/src/worker/protocol.js +9 -0
- package/dist/src/worker/protocol.js.map +1 -0
- package/docs/INSTALL.md +16 -0
- package/docs/MCP_CLIENT_TEMPLATE_ANALYSIS.md +196 -0
- package/docs/MCP_INTERACTION_GUIDE.md +201 -0
- package/docs/MCP_SERVER_FOR_CURSOR.md +124 -0
- package/docs/PLAN.md +58 -0
- package/docs/PLAN_INDEPENDENT_LSP.md +145 -0
- package/docs/SKILL_DESIGN_PATTERNS.md +305 -0
- package/docs/TOOLS.md +317 -0
- package/lsp/README.md +41 -0
- package/lsp/node_modules/.bin/sysml-mcp +12 -0
- package/lsp/node_modules/.bin/sysml-mcp.cmd +9 -0
- package/lsp/node_modules/.bin/sysml-mcp.ps1 +16 -0
- package/lsp/node_modules/.package-lock.json +22 -0
- package/lsp/node_modules/sysml-v2-lsp/CHANGELOG.md +188 -0
- package/lsp/node_modules/sysml-v2-lsp/LICENSE +21 -0
- package/lsp/node_modules/sysml-v2-lsp/README.md +172 -0
- package/lsp/node_modules/sysml-v2-lsp/dist/server/mcpServer.js +167 -0
- package/lsp/node_modules/sysml-v2-lsp/dist/server/server.js +142 -0
- package/lsp/node_modules/sysml-v2-lsp/index.cjs +23 -0
- package/lsp/node_modules/sysml-v2-lsp/package.json +131 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/.project +17 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/.settings/org.eclipse.jdt.core.prefs +11 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/.meta.json +10 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/.project.json +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/AnalysisTooling.sysml +34 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/SampledFunctions.sysml +119 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/StateSpaceRepresentation.sysml +143 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/TradeStudies.sysml +171 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/.meta.json +8 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/.project.json +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/CausationConnections.sysml +83 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/CauseAndEffect.sysml +81 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/.meta.json +8 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/.project.json +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/ShapeItems.sysml +899 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/SpatialItems.sysml +168 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/.meta.json +10 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/.project.json +19 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ImageMetadata.sysml +78 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ModelingMetadata.sysml +143 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ParametersOfInterestMetadata.sysml +39 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/RiskMetadata.sysml +100 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/.meta.json +29 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/.project.json +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQ.sysml +42 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQAcoustics.sysml +439 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQAtomicNuclear.sysml +2726 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQBase.sysml +206 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQCharacteristicNumbers.sysml +1991 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQChemistryMolecular.sysml +1353 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQCondensedMatter.sysml +1223 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQElectromagnetism.sysml +2333 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQInformation.sysml +958 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQLight.sysml +1537 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQMechanics.sysml +1564 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQSpaceTime.sysml +1169 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQThermodynamics.sysml +1256 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/MeasurementRefCalculations.sysml +30 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/MeasurementReferences.sysml +526 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/Quantities.sysml +107 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/QuantityCalculations.sysml +70 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/SI.sysml +378 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/SIPrefixes.sysml +48 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/TensorCalculations.sysml +50 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/Time.sysml +274 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/USCustomaryUnits.sysml +260 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/VectorCalculations.sysml +62 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/.meta.json +8 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/.project.json +19 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/DerivationConnections.sysml +63 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/RequirementDerivation.sysml +39 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/.meta.json +9 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/.project.json +11 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/Collections.kerml +147 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/ScalarValues.kerml +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/VectorValues.kerml +64 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/.meta.json +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/.project.json +15 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/BaseFunctions.kerml +80 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/BooleanFunctions.kerml +22 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/CollectionFunctions.kerml +68 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ComplexFunctions.kerml +47 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ControlFunctions.kerml +117 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/DataFunctions.kerml +43 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/IntegerFunctions.kerml +43 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/NaturalFunctions.kerml +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/NumericalFunctions.kerml +43 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/OccurrenceFunctions.kerml +154 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/RationalFunctions.kerml +49 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/RealFunctions.kerml +56 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ScalarFunctions.kerml +33 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/SequenceFunctions.kerml +111 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/StringFunctions.kerml +25 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/TrigFunctions.kerml +35 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/VectorFunctions.kerml +273 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/.meta.json +22 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/.project.json +15 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Base.kerml +95 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Clocks.kerml +156 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/ControlPerformances.kerml +135 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/FeatureReferencingPerformances.kerml +190 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/KerML.kerml +483 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Links.kerml +67 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Metaobjects.kerml +58 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Objects.kerml +212 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Observation.kerml +161 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Occurrences.kerml +992 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Performances.kerml +293 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/SpatialFrames.kerml +197 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/StatePerformances.kerml +145 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Transfers.kerml +281 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/TransitionPerformances.kerml +66 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Triggers.kerml +188 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/.meta.json +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/.project.json +19 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Actions.sysml +552 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Allocations.sysml +29 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/AnalysisCases.sysml +38 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Attributes.sysml +25 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Calculations.sysml +37 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Cases.sysml +71 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Connections.sysml +60 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Constraints.sysml +44 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Flows.sysml +126 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Interfaces.sysml +89 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Items.sysml +153 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Metadata.sysml +32 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Parts.sysml +81 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Ports.sysml +54 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Requirements.sysml +194 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/StandardViewDefinitions.sysml +123 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/States.sysml +103 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/SysML.sysml +539 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/UseCases.sysml +57 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/VerificationCases.sysml +103 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Views.sysml +164 -0
- package/lsp/package-lock.json +30 -0
- package/lsp/package.json +15 -0
- package/lsp/test-server.mjs +120 -0
- package/package.json +61 -0
- package/scripts/access-sysml-mcp.mjs +45 -0
- package/scripts/check-sysml-v2-lsp-version.mjs +39 -0
- package/scripts/clean.mjs +14 -0
- package/scripts/compare-mcp-vs-lsp-symbols.mjs +76 -0
- package/scripts/debug-index.mjs +23 -0
- package/scripts/debug-lsp-symbols.mjs +62 -0
- package/scripts/deploy-skills.mjs +43 -0
- package/scripts/example-sysml-mcp.mjs +27 -0
- package/scripts/export-graph.mjs +80 -0
- package/scripts/generate-map.mjs +110 -0
- package/scripts/index-and-map.mjs +43 -0
- package/scripts/index-and-query.mjs +39 -0
- package/scripts/query-one.mjs +34 -0
- package/scripts/setup-lsp.mjs +36 -0
- package/scripts/test-lsp.mjs +55 -0
- package/scripts/test-mcp-debug.mjs +32 -0
- package/scripts/test-mcp-sysml.mjs +75 -0
- package/scripts/test-mcp-tools.mjs +185 -0
- package/scripts/test-sysml-mcp-from-node_modules.mjs +56 -0
- package/scripts/validate-sysml-file.mjs +69 -0
|
@@ -0,0 +1,1564 @@
|
|
|
1
|
+
standard library package ISQMechanics {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* International System of Quantities and Units
|
|
5
|
+
* Generated on 2025-03-13T15:00:05Z from standard ISO-80000-4:2019 "Mechanics"
|
|
6
|
+
* see also https://www.iso.org/standard/64975.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 ISQThermodynamics::EnergyValue;
|
|
22
|
+
|
|
23
|
+
/* ISO-80000-4 item 4-1 mass */
|
|
24
|
+
/* See package ISQBase for the declarations of MassValue and MassUnit */
|
|
25
|
+
|
|
26
|
+
/* ISO-80000-4 item 4-2 mass density, density */
|
|
27
|
+
attribute def MassDensityValue :> ScalarQuantityValue {
|
|
28
|
+
doc
|
|
29
|
+
/*
|
|
30
|
+
* source: item 4-2 mass density, density
|
|
31
|
+
* symbol(s): `ρ`, `ρ_m`
|
|
32
|
+
* application domain: generic
|
|
33
|
+
* name: MassDensity
|
|
34
|
+
* quantity dimension: L^-3*M^1
|
|
35
|
+
* measurement unit(s): kg*m^-3
|
|
36
|
+
* tensor order: 0
|
|
37
|
+
* definition: quantity representing the spatial distribution of mass of a continuous material: `ρ(vec(r)) = (dm)/(dV)` where `m` is mass of the material contained in an infinitesimal domain at point `vec(r)` and `V` is volume of this domain
|
|
38
|
+
* remarks: None.
|
|
39
|
+
*/
|
|
40
|
+
attribute :>> num: Real;
|
|
41
|
+
attribute :>> mRef: MassDensityUnit[1];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
attribute massDensity: MassDensityValue[*] nonunique :> scalarQuantities;
|
|
45
|
+
|
|
46
|
+
attribute def MassDensityUnit :> DerivedUnit {
|
|
47
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -3; }
|
|
48
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
49
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF); }
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
alias DensityUnit for MassDensityUnit;
|
|
53
|
+
alias DensityValue for MassDensityValue;
|
|
54
|
+
alias density for massDensity;
|
|
55
|
+
|
|
56
|
+
/* ISO-80000-4 item 4-3 specific volume */
|
|
57
|
+
attribute def SpecificVolumeValue :> ScalarQuantityValue {
|
|
58
|
+
doc
|
|
59
|
+
/*
|
|
60
|
+
* source: item 4-3 specific volume
|
|
61
|
+
* symbol(s): `v`
|
|
62
|
+
* application domain: generic
|
|
63
|
+
* name: SpecificVolume
|
|
64
|
+
* quantity dimension: L^3*M^-1
|
|
65
|
+
* measurement unit(s): kg^-1*m^3
|
|
66
|
+
* tensor order: 0
|
|
67
|
+
* definition: reciprocal of mass density `ρ` (item 4-2): `v = 1/ρ`
|
|
68
|
+
* remarks: None.
|
|
69
|
+
*/
|
|
70
|
+
attribute :>> num: Real;
|
|
71
|
+
attribute :>> mRef: SpecificVolumeUnit[1];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
attribute specificVolume: SpecificVolumeValue[*] nonunique :> scalarQuantities;
|
|
75
|
+
|
|
76
|
+
attribute def SpecificVolumeUnit :> DerivedUnit {
|
|
77
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 3; }
|
|
78
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
|
|
79
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF); }
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* ISO-80000-4 item 4-4 relative mass density, relative density */
|
|
83
|
+
attribute def RelativeMassDensityValue :> DimensionOneValue {
|
|
84
|
+
doc
|
|
85
|
+
/*
|
|
86
|
+
* source: item 4-4 relative mass density, relative density
|
|
87
|
+
* symbol(s): `d`
|
|
88
|
+
* application domain: generic
|
|
89
|
+
* name: RelativeMassDensity (specializes DimensionOneQuantity)
|
|
90
|
+
* quantity dimension: 1
|
|
91
|
+
* measurement unit(s): 1
|
|
92
|
+
* tensor order: 0
|
|
93
|
+
* definition: quotient of mass density of a substance `ρ` and mass density of a reference substance `ρ_0` : `d = ρ/ρ_0`
|
|
94
|
+
* remarks: Conditions and material should be specified for the reference substance.
|
|
95
|
+
*/
|
|
96
|
+
}
|
|
97
|
+
attribute relativeMassDensity: RelativeMassDensityValue :> scalarQuantities;
|
|
98
|
+
|
|
99
|
+
alias relativeDensity for relativeMassDensity;
|
|
100
|
+
|
|
101
|
+
/* ISO-80000-4 item 4-5 surface mass density, surface density */
|
|
102
|
+
attribute def SurfaceMassDensityValue :> ScalarQuantityValue {
|
|
103
|
+
doc
|
|
104
|
+
/*
|
|
105
|
+
* source: item 4-5 surface mass density, surface density
|
|
106
|
+
* symbol(s): `ρ_A`
|
|
107
|
+
* application domain: generic
|
|
108
|
+
* name: SurfaceMassDensity
|
|
109
|
+
* quantity dimension: L^-2*M^1
|
|
110
|
+
* measurement unit(s): kg*m^-2
|
|
111
|
+
* tensor order: 0
|
|
112
|
+
* definition: quantity representing the areal distribution of mass of a continuous material: `ρ_A(vec(r)) = (dm)/(dA)` where `m` is the mass of the material at position `vec(r)` and `A` is area
|
|
113
|
+
* remarks: The name "grammage" should not be used for this quantity.
|
|
114
|
+
*/
|
|
115
|
+
attribute :>> num: Real;
|
|
116
|
+
attribute :>> mRef: SurfaceMassDensityUnit[1];
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
attribute surfaceMassDensity: SurfaceMassDensityValue[*] nonunique :> scalarQuantities;
|
|
120
|
+
|
|
121
|
+
attribute def SurfaceMassDensityUnit :> DerivedUnit {
|
|
122
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -2; }
|
|
123
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
124
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF); }
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
alias SurfaceDensityUnit for SurfaceMassDensityUnit;
|
|
128
|
+
alias SurfaceDensityValue for SurfaceMassDensityValue;
|
|
129
|
+
alias surfaceDensity for surfaceMassDensity;
|
|
130
|
+
|
|
131
|
+
/* ISO-80000-4 item 4-6 linear mass density, linear density */
|
|
132
|
+
attribute def LinearMassDensityValue :> ScalarQuantityValue {
|
|
133
|
+
doc
|
|
134
|
+
/*
|
|
135
|
+
* source: item 4-6 linear mass density, linear density
|
|
136
|
+
* symbol(s): `ρ_I`
|
|
137
|
+
* application domain: generic
|
|
138
|
+
* name: LinearMassDensity
|
|
139
|
+
* quantity dimension: L^-1*M^1
|
|
140
|
+
* measurement unit(s): kg*m^-1
|
|
141
|
+
* tensor order: 0
|
|
142
|
+
* definition: quantity representing the linear distribution of mass of a continuous material: `ρ_I(vec(r)) = (dm)/(dI)` where `m` is the mass of the material at position `vec(r)` and `l` is length
|
|
143
|
+
* remarks: None.
|
|
144
|
+
*/
|
|
145
|
+
attribute :>> num: Real;
|
|
146
|
+
attribute :>> mRef: LinearMassDensityUnit[1];
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
attribute linearMassDensity: LinearMassDensityValue[*] nonunique :> scalarQuantities;
|
|
150
|
+
|
|
151
|
+
attribute def LinearMassDensityUnit :> DerivedUnit {
|
|
152
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
|
|
153
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
154
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF); }
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
alias LinearDensityUnit for LinearMassDensityUnit;
|
|
158
|
+
alias LinearDensityValue for LinearMassDensityValue;
|
|
159
|
+
alias linearDensity for linearMassDensity;
|
|
160
|
+
|
|
161
|
+
/* ISO-80000-4 item 4-7 moment of inertia */
|
|
162
|
+
attribute def MomentOfInertiaValue :> ScalarQuantityValue {
|
|
163
|
+
doc
|
|
164
|
+
/*
|
|
165
|
+
* source: item 4-7 moment of inertia (magnitude)
|
|
166
|
+
* symbol(s): `J`
|
|
167
|
+
* application domain: generic
|
|
168
|
+
* name: MomentOfInertia
|
|
169
|
+
* quantity dimension: L^2*M^1
|
|
170
|
+
* measurement unit(s): kg*m^2
|
|
171
|
+
* tensor order: 0
|
|
172
|
+
* definition: tensor (ISO 80000-2) quantity representing rotational inertia of a rigid body relative to a fixed centre of rotation expressed by the tensor product: `vec(L) = vec(vec(J)) vec(ω)` where `vec(L)` is angular momentum (item 4-11) of the body relative to the reference point and `vec(ω)` is its angular velocity (ISO 80000-3)
|
|
173
|
+
* remarks: The calculation of the value requires an integration.
|
|
174
|
+
*/
|
|
175
|
+
attribute :>> num: Real;
|
|
176
|
+
attribute :>> mRef: MomentOfInertiaUnit[1];
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
attribute momentOfInertia: MomentOfInertiaValue[*] nonunique :> scalarQuantities;
|
|
180
|
+
|
|
181
|
+
attribute def MomentOfInertiaUnit :> DerivedUnit {
|
|
182
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
|
|
183
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
184
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF); }
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
attribute def Cartesian3dMomentOfInertiaTensor :> TensorQuantityValue {
|
|
188
|
+
doc
|
|
189
|
+
/*
|
|
190
|
+
* source: item 4-7 moment of inertia (tensor)
|
|
191
|
+
* symbol(s): `vec(vec(J))`
|
|
192
|
+
* application domain: generic
|
|
193
|
+
* name: MomentOfInertia
|
|
194
|
+
* quantity dimension: L^2*M^1
|
|
195
|
+
* measurement unit(s): kg*m^2
|
|
196
|
+
* tensor order: 2
|
|
197
|
+
* definition: tensor (ISO 80000-2) quantity representing rotational inertia of a rigid body relative to a fixed centre of rotation expressed by the tensor product: `vec(L) = vec(vec(J)) vec(ω)` where `vec(L)` is angular momentum (item 4-11) of the body relative to the reference point and `vec(ω)` is its angular velocity (ISO 80000-3)
|
|
198
|
+
* remarks: The calculation of the value requires an integration.
|
|
199
|
+
*/
|
|
200
|
+
attribute :>> isBound = false;
|
|
201
|
+
attribute :>> num: Real[9];
|
|
202
|
+
attribute :>> mRef: Cartesian3dMomentOfInertiaMeasurementReference[1];
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
attribute momentOfInertiaTensor: Cartesian3dMomentOfInertiaTensor :> tensorQuantities;
|
|
206
|
+
|
|
207
|
+
attribute def Cartesian3dMomentOfInertiaMeasurementReference :> TensorMeasurementReference {
|
|
208
|
+
attribute :>> dimensions = (3, 3);
|
|
209
|
+
attribute :>> isBound = false;
|
|
210
|
+
attribute :>> mRefs: MomentOfInertiaUnit[9];
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/* ISO-80000-4 item 4-8 momentum */
|
|
214
|
+
attribute def MomentumValue :> ScalarQuantityValue {
|
|
215
|
+
doc
|
|
216
|
+
/*
|
|
217
|
+
* source: item 4-8 momentum (magnitude)
|
|
218
|
+
* symbol(s): `p`
|
|
219
|
+
* application domain: generic
|
|
220
|
+
* name: Momentum
|
|
221
|
+
* quantity dimension: L^1*M^1*T^-1
|
|
222
|
+
* measurement unit(s): kg*m*s^-1
|
|
223
|
+
* tensor order: 0
|
|
224
|
+
* definition: product of mass `m` (item 4-1) of a body and velocity `vec(v)` (ISO 80000-3) of its centre of mass: `vec(p) = m vec(v)`
|
|
225
|
+
* remarks: None.
|
|
226
|
+
*/
|
|
227
|
+
attribute :>> num: Real;
|
|
228
|
+
attribute :>> mRef: MomentumUnit[1];
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
attribute momentum: MomentumValue[*] nonunique :> scalarQuantities;
|
|
232
|
+
|
|
233
|
+
attribute def MomentumUnit :> DerivedUnit {
|
|
234
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 1; }
|
|
235
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
236
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
|
|
237
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
attribute def CartesianMomentum3dVector :> '3dVectorQuantityValue' {
|
|
241
|
+
doc
|
|
242
|
+
/*
|
|
243
|
+
* source: item 4-8 momentum (vector)
|
|
244
|
+
* symbol(s): `vec(p)`
|
|
245
|
+
* application domain: generic
|
|
246
|
+
* name: Momentum
|
|
247
|
+
* quantity dimension: L^1*M^1*T^-1
|
|
248
|
+
* measurement unit(s): kg*m*s^-1
|
|
249
|
+
* tensor order: 1
|
|
250
|
+
* definition: product of mass `m` (item 4-1) of a body and velocity `vec(v)` (ISO 80000-3) of its centre of mass: `vec(p) = m vec(v)`
|
|
251
|
+
* remarks: None.
|
|
252
|
+
*/
|
|
253
|
+
attribute :>> isBound = false;
|
|
254
|
+
attribute :>> mRef: CartesianMomentum3dCoordinateFrame[1];
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
attribute cartesianMomentum3dVector: CartesianMomentum3dVector :> vectorQuantities;
|
|
258
|
+
|
|
259
|
+
attribute def CartesianMomentum3dCoordinateFrame :> '3dCoordinateFrame' {
|
|
260
|
+
attribute :>> isBound = false;
|
|
261
|
+
attribute :>> isOrthogonal = true;
|
|
262
|
+
attribute :>> mRefs: MomentumUnit[3];
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/* ISO-80000-4 item 4-9.1 force */
|
|
266
|
+
attribute def ForceValue :> ScalarQuantityValue {
|
|
267
|
+
doc
|
|
268
|
+
/*
|
|
269
|
+
* source: item 4-9.1 force (magnitude)
|
|
270
|
+
* symbol(s): `F`
|
|
271
|
+
* application domain: generic
|
|
272
|
+
* name: Force
|
|
273
|
+
* quantity dimension: L^1*M^1*T^-2
|
|
274
|
+
* measurement unit(s): N, kg*m*s^-2
|
|
275
|
+
* tensor order: 0
|
|
276
|
+
* definition: vector (ISO 80000-2) quantity describing interaction between bodies or particles
|
|
277
|
+
* remarks: None.
|
|
278
|
+
*/
|
|
279
|
+
attribute :>> num: Real;
|
|
280
|
+
attribute :>> mRef: ForceUnit[1];
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
attribute force: ForceValue[*] nonunique :> scalarQuantities;
|
|
284
|
+
|
|
285
|
+
attribute def ForceUnit :> DerivedUnit {
|
|
286
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 1; }
|
|
287
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
288
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
|
|
289
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
attribute def CartesianForce3dVector :> '3dVectorQuantityValue' {
|
|
293
|
+
doc
|
|
294
|
+
/*
|
|
295
|
+
* source: item 4-9.1 force (vector)
|
|
296
|
+
* symbol(s): `vec(F)`
|
|
297
|
+
* application domain: generic
|
|
298
|
+
* name: Force
|
|
299
|
+
* quantity dimension: L^1*M^1*T^-2
|
|
300
|
+
* measurement unit(s): N, kg*m*s^-2
|
|
301
|
+
* tensor order: 1
|
|
302
|
+
* definition: vector (ISO 80000-2) quantity describing interaction between bodies or particles
|
|
303
|
+
* remarks: None.
|
|
304
|
+
*/
|
|
305
|
+
attribute :>> isBound = false;
|
|
306
|
+
attribute :>> mRef: CartesianForce3dCoordinateFrame[1];
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
attribute cartesianForce3dVector: CartesianForce3dVector :> vectorQuantities;
|
|
310
|
+
|
|
311
|
+
attribute def CartesianForce3dCoordinateFrame :> '3dCoordinateFrame' {
|
|
312
|
+
attribute :>> isBound = false;
|
|
313
|
+
attribute :>> isOrthogonal = true;
|
|
314
|
+
attribute :>> mRefs: ForceUnit[3];
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/* ISO-80000-4 item 4-9.2 weight */
|
|
318
|
+
attribute def CartesianWeight3dVector :> '3dVectorQuantityValue' {
|
|
319
|
+
doc
|
|
320
|
+
/*
|
|
321
|
+
* source: item 4-9.2 weight
|
|
322
|
+
* symbol(s): `vec(F_g)`
|
|
323
|
+
* application domain: generic
|
|
324
|
+
* name: Weight (specializes Force)
|
|
325
|
+
* quantity dimension: L^1*M^1*T^-2
|
|
326
|
+
* measurement unit(s): N, kg*m*s^-2
|
|
327
|
+
* tensor order: 1
|
|
328
|
+
* definition: force (item 4-9.1) acting on a body in the gravitational field of Earth: `vec(F_g) = m vec(g)` where `m` (item 4-1) is the mass of the body and `vec(g)` is the local acceleration of free fall (ISO 80000-3)
|
|
329
|
+
* remarks: In colloquial language, the name "weight" continues to be used where "mass" is meant. This practice should be avoided. Weight is an example of a gravitational force. Weight comprises not only the local gravitational force but also the local centrifugal force due to the rotation of the Earth.
|
|
330
|
+
*/
|
|
331
|
+
attribute :>> isBound = false;
|
|
332
|
+
attribute :>> mRef: CartesianForce3dCoordinateFrame[1];
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
attribute cartesianWeight3dVector: CartesianWeight3dVector :> vectorQuantities;
|
|
336
|
+
|
|
337
|
+
/* ISO-80000-4 item 4-9.3 static friction force, static friction */
|
|
338
|
+
attribute def CartesianStaticFrictionForce3dVector :> '3dVectorQuantityValue' {
|
|
339
|
+
doc
|
|
340
|
+
/*
|
|
341
|
+
* source: item 4-9.3 static friction force, static friction
|
|
342
|
+
* symbol(s): `vec(F_s)`
|
|
343
|
+
* application domain: generic
|
|
344
|
+
* name: StaticFrictionForce (specializes Force)
|
|
345
|
+
* quantity dimension: L^1*M^1*T^-2
|
|
346
|
+
* measurement unit(s): N, kg*m*s^-2
|
|
347
|
+
* tensor order: 1
|
|
348
|
+
* definition: force (item 4-9.1) resisting the motion before a body starts to slide on a surface
|
|
349
|
+
* remarks: For the static friction coefficient, see item 4-23.1.
|
|
350
|
+
*/
|
|
351
|
+
attribute :>> isBound = false;
|
|
352
|
+
attribute :>> mRef: CartesianForce3dCoordinateFrame[1];
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
attribute cartesianStaticFrictionForce3dVector: CartesianStaticFrictionForce3dVector :> vectorQuantities;
|
|
356
|
+
|
|
357
|
+
alias cartesianStaticFriction3dVector for cartesianStaticFrictionForce3dVector;
|
|
358
|
+
|
|
359
|
+
/* ISO-80000-4 item 4-9.4 kinetic friction force, dynamic friction force */
|
|
360
|
+
attribute def CartesianKineticFrictionForce3dVector :> '3dVectorQuantityValue' {
|
|
361
|
+
doc
|
|
362
|
+
/*
|
|
363
|
+
* source: item 4-9.4 kinetic friction force, dynamic friction force
|
|
364
|
+
* symbol(s): `vec(F_μ)`
|
|
365
|
+
* application domain: generic
|
|
366
|
+
* name: KineticFrictionForce (specializes Force)
|
|
367
|
+
* quantity dimension: L^1*M^1*T^-2
|
|
368
|
+
* measurement unit(s): N, kg*m*s^-2
|
|
369
|
+
* tensor order: 1
|
|
370
|
+
* definition: force (item 4-9.1) resisting the motion when a body slides on a surface
|
|
371
|
+
* remarks: For the kinetic friction factor, see item 4-23.2.
|
|
372
|
+
*/
|
|
373
|
+
attribute :>> isBound = false;
|
|
374
|
+
attribute :>> mRef: CartesianForce3dCoordinateFrame[1];
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
attribute cartesianKineticFrictionForce3dVector: CartesianKineticFrictionForce3dVector :> vectorQuantities;
|
|
378
|
+
|
|
379
|
+
alias cartesianDynamicFrictionForce3dVector for cartesianKineticFrictionForce3dVector;
|
|
380
|
+
|
|
381
|
+
/* ISO-80000-4 item 4-9.5 rolling resistance, rolling drag, rolling friction force */
|
|
382
|
+
attribute def CartesianRollingResistance3dVector :> '3dVectorQuantityValue' {
|
|
383
|
+
doc
|
|
384
|
+
/*
|
|
385
|
+
* source: item 4-9.5 rolling resistance, rolling drag, rolling friction force
|
|
386
|
+
* symbol(s): `vec(F_"rr")`
|
|
387
|
+
* application domain: generic
|
|
388
|
+
* name: RollingResistance (specializes Force)
|
|
389
|
+
* quantity dimension: L^1*M^1*T^-2
|
|
390
|
+
* measurement unit(s): N, kg*m*s^-2
|
|
391
|
+
* tensor order: 1
|
|
392
|
+
* definition: force (item 4-9.1) resisting the motion when a body rolls on a surface
|
|
393
|
+
* remarks: For the rolling resistance factor, see item 4-23.3.
|
|
394
|
+
*/
|
|
395
|
+
attribute :>> isBound = false;
|
|
396
|
+
attribute :>> mRef: CartesianForce3dCoordinateFrame[1];
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
attribute cartesianRollingResistance3dVector: CartesianRollingResistance3dVector :> vectorQuantities;
|
|
400
|
+
|
|
401
|
+
alias cartesianRollingDrag3dVector for cartesianRollingResistance3dVector;
|
|
402
|
+
|
|
403
|
+
alias cartesianRollingFrictionForce3dVector for cartesianRollingResistance3dVector;
|
|
404
|
+
|
|
405
|
+
/* ISO-80000-4 item 4-9.6 drag force */
|
|
406
|
+
attribute def CartesianDragForce3dVector :> '3dVectorQuantityValue' {
|
|
407
|
+
doc
|
|
408
|
+
/*
|
|
409
|
+
* source: item 4-9.6 drag force
|
|
410
|
+
* symbol(s): `vec(F_D)`
|
|
411
|
+
* application domain: generic
|
|
412
|
+
* name: DragForce (specializes Force)
|
|
413
|
+
* quantity dimension: L^1*M^1*T^-2
|
|
414
|
+
* measurement unit(s): N, kg*m*s^-2
|
|
415
|
+
* tensor order: 1
|
|
416
|
+
* definition: force (item 4-9.1) resisting the motion of a body in a fluid
|
|
417
|
+
* remarks: For the drag coefficient, see item 4-23.4.
|
|
418
|
+
*/
|
|
419
|
+
attribute :>> isBound = false;
|
|
420
|
+
attribute :>> mRef: CartesianForce3dCoordinateFrame[1];
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
attribute cartesianDragForce3dVector: CartesianDragForce3dVector :> vectorQuantities;
|
|
424
|
+
|
|
425
|
+
/* ISO-80000-4 item 4-10 impulse */
|
|
426
|
+
attribute def ImpulseValue :> ScalarQuantityValue {
|
|
427
|
+
doc
|
|
428
|
+
/*
|
|
429
|
+
* source: item 4-10 impulse (magnitude)
|
|
430
|
+
* symbol(s): `I`
|
|
431
|
+
* application domain: generic
|
|
432
|
+
* name: Impulse
|
|
433
|
+
* quantity dimension: L^1*M^1*T^-1
|
|
434
|
+
* measurement unit(s): N*s, kg*m*s^-1
|
|
435
|
+
* tensor order: 0
|
|
436
|
+
* definition: vector (ISO 80000-2) quantity describing the effect of force acting during a time interval: `vec(I) = int_(t_1)^(t_2) vec(F)*dt` where `vec(F)` is force (item 4-9.1), `t` is time (ISO 80000-3) and `[t_1, t_2]` is considered time interval
|
|
437
|
+
* remarks: For a time interval `[t_1, t_2]`, `vec(I)(t_1, t_2) = vec(p)(t_1) - vec(p)(t_2) = vec(Δp)` where `vec(p)` is momentum (item 4-8).
|
|
438
|
+
*/
|
|
439
|
+
attribute :>> num: Real;
|
|
440
|
+
attribute :>> mRef: ImpulseUnit[1];
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
attribute impulse: ImpulseValue[*] nonunique :> scalarQuantities;
|
|
444
|
+
|
|
445
|
+
attribute def ImpulseUnit :> DerivedUnit {
|
|
446
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 1; }
|
|
447
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
448
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
|
|
449
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
attribute def CartesianImpulse3dVector :> '3dVectorQuantityValue' {
|
|
453
|
+
doc
|
|
454
|
+
/*
|
|
455
|
+
* source: item 4-10 impulse (vector)
|
|
456
|
+
* symbol(s): `vec(I)`
|
|
457
|
+
* application domain: generic
|
|
458
|
+
* name: Impulse
|
|
459
|
+
* quantity dimension: L^1*M^1*T^-1
|
|
460
|
+
* measurement unit(s): N*s, kg*m*s^-1
|
|
461
|
+
* tensor order: 1
|
|
462
|
+
* definition: vector (ISO 80000-2) quantity describing the effect of force acting during a time interval: `vec(I) = int_(t_1)^(t_2) vec(F)*dt` where `vec(F)` is force (item 4-9.1), `t` is time (ISO 80000-3) and `[t_1, t_2]` is considered time interval
|
|
463
|
+
* remarks: For a time interval `[t_1, t_2]`, `vec(I)(t_1, t_2) = vec(p)(t_1) - vec(p)(t_2) = vec(Δp)` where `vec(p)` is momentum (item 4-8).
|
|
464
|
+
*/
|
|
465
|
+
attribute :>> isBound = false;
|
|
466
|
+
attribute :>> mRef: CartesianImpulse3dCoordinateFrame[1];
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
attribute cartesianImpulse3dVector: CartesianImpulse3dVector :> vectorQuantities;
|
|
470
|
+
|
|
471
|
+
attribute def CartesianImpulse3dCoordinateFrame :> '3dCoordinateFrame' {
|
|
472
|
+
attribute :>> isBound = false;
|
|
473
|
+
attribute :>> isOrthogonal = true;
|
|
474
|
+
attribute :>> mRefs: ImpulseUnit[3];
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/* ISO-80000-4 item 4-11 angular momentum */
|
|
478
|
+
attribute def AngularMomentumValue :> ScalarQuantityValue {
|
|
479
|
+
doc
|
|
480
|
+
/*
|
|
481
|
+
* source: item 4-11 angular momentum (magnitude)
|
|
482
|
+
* symbol(s): `L`
|
|
483
|
+
* application domain: generic
|
|
484
|
+
* name: AngularMomentum
|
|
485
|
+
* quantity dimension: L^2*M^1*T^-1
|
|
486
|
+
* measurement unit(s): kg*m^2*s^-1
|
|
487
|
+
* tensor order: 0
|
|
488
|
+
* definition: vector (ISO 80000-2) quantity described by the vector product: `vec(L) = vec(r) xx vec(p)` where `vec(r)` is position vector (ISO 80000-3) with respect to the axis of rotation and `vec(p)` is momentum (item 4-8)
|
|
489
|
+
* remarks: None.
|
|
490
|
+
*/
|
|
491
|
+
attribute :>> num: Real;
|
|
492
|
+
attribute :>> mRef: AngularMomentumUnit[1];
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
attribute angularMomentum: AngularMomentumValue[*] nonunique :> scalarQuantities;
|
|
496
|
+
|
|
497
|
+
attribute def AngularMomentumUnit :> DerivedUnit {
|
|
498
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
|
|
499
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
500
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
|
|
501
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
attribute def CartesianAngularMomentum3dVector :> '3dVectorQuantityValue' {
|
|
505
|
+
doc
|
|
506
|
+
/*
|
|
507
|
+
* source: item 4-11 angular momentum (vector)
|
|
508
|
+
* symbol(s): `vec(L)`
|
|
509
|
+
* application domain: generic
|
|
510
|
+
* name: AngularMomentum
|
|
511
|
+
* quantity dimension: L^2*M^1*T^-1
|
|
512
|
+
* measurement unit(s): kg*m^2*s^-1
|
|
513
|
+
* tensor order: 1
|
|
514
|
+
* definition: vector (ISO 80000-2) quantity described by the vector product: `vec(L) = vec(r) xx vec(p)` where `vec(r)` is position vector (ISO 80000-3) with respect to the axis of rotation and `vec(p)` is momentum (item 4-8)
|
|
515
|
+
* remarks: None.
|
|
516
|
+
*/
|
|
517
|
+
attribute :>> isBound = false;
|
|
518
|
+
attribute :>> mRef: CartesianAngularMomentum3dCoordinateFrame[1];
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
attribute cartesianAngularMomentum3dVector: CartesianAngularMomentum3dVector :> vectorQuantities;
|
|
522
|
+
|
|
523
|
+
attribute def CartesianAngularMomentum3dCoordinateFrame :> '3dCoordinateFrame' {
|
|
524
|
+
attribute :>> isBound = false;
|
|
525
|
+
attribute :>> isOrthogonal = true;
|
|
526
|
+
attribute :>> mRefs: AngularMomentumUnit[3];
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
/* ISO-80000-4 item 4-12.1 moment of force */
|
|
530
|
+
attribute def MomentOfForceValue :> ScalarQuantityValue {
|
|
531
|
+
doc
|
|
532
|
+
/*
|
|
533
|
+
* source: item 4-12.1 moment of force (magnitude)
|
|
534
|
+
* symbol(s): `M`
|
|
535
|
+
* application domain: generic
|
|
536
|
+
* name: MomentOfForce
|
|
537
|
+
* quantity dimension: L^2*M^1*T^-2
|
|
538
|
+
* measurement unit(s): N*m, kg*m^2*s^-2
|
|
539
|
+
* tensor order: 0
|
|
540
|
+
* definition: vector (ISO 80000-2) quantity described by the vector product: `vec(M) = vec(r) xx vec(F)` where `vec(r)` is position vector (ISO 80000-3) with respect to the axis of rotation and `vec(F)` is force (item 4-9.1)
|
|
541
|
+
* remarks: The bending moment of force is denoted by `vec(M)_b`.
|
|
542
|
+
*/
|
|
543
|
+
attribute :>> num: Real;
|
|
544
|
+
attribute :>> mRef: MomentOfForceUnit[1];
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
attribute momentOfForce: MomentOfForceValue[*] nonunique :> scalarQuantities;
|
|
548
|
+
|
|
549
|
+
attribute def MomentOfForceUnit :> DerivedUnit {
|
|
550
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
|
|
551
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
552
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
|
|
553
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
attribute def CartesianMomentOfForce3dVector :> '3dVectorQuantityValue' {
|
|
557
|
+
doc
|
|
558
|
+
/*
|
|
559
|
+
* source: item 4-12.1 moment of force (vector)
|
|
560
|
+
* symbol(s): `vec(M)`
|
|
561
|
+
* application domain: generic
|
|
562
|
+
* name: MomentOfForce
|
|
563
|
+
* quantity dimension: L^2*M^1*T^-2
|
|
564
|
+
* measurement unit(s): N*m, kg*m^2*s^-2
|
|
565
|
+
* tensor order: 1
|
|
566
|
+
* definition: vector (ISO 80000-2) quantity described by the vector product: `vec(M) = vec(r) xx vec(F)` where `vec(r)` is position vector (ISO 80000-3) with respect to the axis of rotation and `vec(F)` is force (item 4-9.1)
|
|
567
|
+
* remarks: The bending moment of force is denoted by `vec(M)_b`.
|
|
568
|
+
*/
|
|
569
|
+
attribute :>> isBound = false;
|
|
570
|
+
attribute :>> mRef: CartesianMomentOfForce3dCoordinateFrame[1];
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
attribute cartesianMomentOfForce3dVector: CartesianMomentOfForce3dVector :> vectorQuantities;
|
|
574
|
+
|
|
575
|
+
attribute def CartesianMomentOfForce3dCoordinateFrame :> '3dCoordinateFrame' {
|
|
576
|
+
attribute :>> isBound = false;
|
|
577
|
+
attribute :>> isOrthogonal = true;
|
|
578
|
+
attribute :>> mRefs: MomentOfForceUnit[3];
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
/* ISO-80000-4 item 4-12.2 torque */
|
|
582
|
+
attribute def TorqueValue :> ScalarQuantityValue {
|
|
583
|
+
doc
|
|
584
|
+
/*
|
|
585
|
+
* source: item 4-12.2 torque
|
|
586
|
+
* symbol(s): `T`, `M_Q`
|
|
587
|
+
* application domain: generic
|
|
588
|
+
* name: Torque
|
|
589
|
+
* quantity dimension: L^2*M^1*T^-2
|
|
590
|
+
* measurement unit(s): N*m, kg*m^2*s^-2
|
|
591
|
+
* tensor order: 0
|
|
592
|
+
* definition: quantity described by the scalar product: `T = vec(M)*vec(e_Q)` where `vec(M)` is moment of force (item 4-12.1) and `vec(e_Q)` is unit vector of direction with respect to which the torque is considered
|
|
593
|
+
* remarks: For example, torque is the twisting moment of force with respect to the longitudinal axis of a beam or shaft.
|
|
594
|
+
*/
|
|
595
|
+
attribute :>> num: Real;
|
|
596
|
+
attribute :>> mRef: TorqueUnit[1];
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
attribute torque: TorqueValue[*] nonunique :> scalarQuantities;
|
|
600
|
+
|
|
601
|
+
attribute def TorqueUnit :> DerivedUnit {
|
|
602
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
|
|
603
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
604
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
|
|
605
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
/* ISO-80000-4 item 4-13 angular impulse */
|
|
609
|
+
attribute def AngularImpulseValue :> ScalarQuantityValue {
|
|
610
|
+
doc
|
|
611
|
+
/*
|
|
612
|
+
* source: item 4-13 angular impulse (magnitude)
|
|
613
|
+
* symbol(s): `H`
|
|
614
|
+
* application domain: generic
|
|
615
|
+
* name: AngularImpulse
|
|
616
|
+
* quantity dimension: L^2*M^1*T^-1
|
|
617
|
+
* measurement unit(s): N*m*s, kg*m^2*s^-1
|
|
618
|
+
* tensor order: 0
|
|
619
|
+
* definition: vector (ISO 80000-2) quantity describing the effect of moment of force during a time interval: `vec(H)(t_1; t_2) = int_(t_1)^(t_2) vec(M) dt` where `vec(M)` is moment of force (item 4-12.1), `t` is time (ISO 80000-3) and `[t_1, t_2]` is considered time interval
|
|
620
|
+
* remarks: For a time interval `[t_1, t_2]`, `vec(H)(t_1, t_2) = vec(L)(t_1) - vec(L)(t_2) = vec(ΔL)` where `vec(L)` is angular momentum.
|
|
621
|
+
*/
|
|
622
|
+
attribute :>> num: Real;
|
|
623
|
+
attribute :>> mRef: AngularImpulseUnit[1];
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
attribute angularImpulse: AngularImpulseValue[*] nonunique :> scalarQuantities;
|
|
627
|
+
|
|
628
|
+
attribute def AngularImpulseUnit :> DerivedUnit {
|
|
629
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
|
|
630
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
631
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
|
|
632
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
attribute def CartesianAngularImpulse3dVector :> '3dVectorQuantityValue' {
|
|
636
|
+
doc
|
|
637
|
+
/*
|
|
638
|
+
* source: item 4-13 angular impulse (vector)
|
|
639
|
+
* symbol(s): `vec(H)`
|
|
640
|
+
* application domain: generic
|
|
641
|
+
* name: AngularImpulse
|
|
642
|
+
* quantity dimension: L^2*M^1*T^-1
|
|
643
|
+
* measurement unit(s): N*m*s, kg*m^2*s^-1
|
|
644
|
+
* tensor order: 1
|
|
645
|
+
* definition: vector (ISO 80000-2) quantity describing the effect of moment of force during a time interval: `vec(H)(t_1; t_2) = int_(t_1)^(t_2) vec(M) dt` where `vec(M)` is moment of force (item 4-12.1), `t` is time (ISO 80000-3) and `[t_1, t_2]` is considered time interval
|
|
646
|
+
* remarks: For a time interval `[t_1, t_2]`, `vec(H)(t_1, t_2) = vec(L)(t_1) - vec(L)(t_2) = vec(ΔL)` where `vec(L)` is angular momentum.
|
|
647
|
+
*/
|
|
648
|
+
attribute :>> isBound = false;
|
|
649
|
+
attribute :>> mRef: CartesianAngularImpulse3dCoordinateFrame[1];
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
attribute cartesianAngularImpulse3dVector: CartesianAngularImpulse3dVector :> vectorQuantities;
|
|
653
|
+
|
|
654
|
+
attribute def CartesianAngularImpulse3dCoordinateFrame :> '3dCoordinateFrame' {
|
|
655
|
+
attribute :>> isBound = false;
|
|
656
|
+
attribute :>> isOrthogonal = true;
|
|
657
|
+
attribute :>> mRefs: AngularImpulseUnit[3];
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
/* ISO-80000-4 item 4-14.1 pressure */
|
|
661
|
+
attribute def PressureValue :> ScalarQuantityValue {
|
|
662
|
+
doc
|
|
663
|
+
/*
|
|
664
|
+
* source: item 4-14.1 pressure
|
|
665
|
+
* symbol(s): `p`
|
|
666
|
+
* application domain: generic
|
|
667
|
+
* name: Pressure
|
|
668
|
+
* quantity dimension: L^-1*M^1*T^-2
|
|
669
|
+
* measurement unit(s): Pa, N*m^-2, kg*m^-1*s^-2
|
|
670
|
+
* tensor order: 0
|
|
671
|
+
* definition: quotient of the component of a force normal to a surface and its area: `p = (vec(e_n) * vec(F)) / A` where `vec(e_n)` is unit vector of the surface normal, `vec(F)` is force (item 4-9.1) and `A` is area (ISO 80000-3)
|
|
672
|
+
* remarks: None.
|
|
673
|
+
*/
|
|
674
|
+
attribute :>> num: Real;
|
|
675
|
+
attribute :>> mRef: PressureUnit[1];
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
attribute pressure: PressureValue[*] nonunique :> scalarQuantities;
|
|
679
|
+
|
|
680
|
+
attribute def PressureUnit :> DerivedUnit {
|
|
681
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
|
|
682
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
683
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
|
|
684
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
/* ISO-80000-4 item 4-14.2 gauge pressure */
|
|
688
|
+
attribute gaugePressure: PressureValue :> scalarQuantities {
|
|
689
|
+
doc
|
|
690
|
+
/*
|
|
691
|
+
* source: item 4-14.2 gauge pressure
|
|
692
|
+
* symbol(s): `p_e`
|
|
693
|
+
* application domain: generic
|
|
694
|
+
* name: GaugePressure (specializes Pressure)
|
|
695
|
+
* quantity dimension: L^-1*M^1*T^-2
|
|
696
|
+
* measurement unit(s): Pa, N*m^-2, kg*m^-1*s^-2
|
|
697
|
+
* tensor order: 0
|
|
698
|
+
* definition: pressure `p` (item 4-14.1) decremented by ambient pressure `p_amb` : `p_e = p - p_amb`
|
|
699
|
+
* remarks: Often, `p_amb` is chosen as a standard pressure. Gauge pressure is positive or negative.
|
|
700
|
+
*/
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
/* ISO-80000-4 item 4-15 stress */
|
|
704
|
+
attribute def StressValue :> ScalarQuantityValue {
|
|
705
|
+
doc
|
|
706
|
+
/*
|
|
707
|
+
* source: item 4-15 stress (magnitude)
|
|
708
|
+
* symbol(s): `σ`
|
|
709
|
+
* application domain: generic
|
|
710
|
+
* name: Stress
|
|
711
|
+
* quantity dimension: L^-1*M^1*T^-2
|
|
712
|
+
* measurement unit(s): Pa, N*m^-2, kg*m^-1*s^-2
|
|
713
|
+
* tensor order: 0
|
|
714
|
+
* definition: tensor (ISO 80000-2) quantity representing state of tension of matter
|
|
715
|
+
* remarks: Stress tensor is symmetric and has three normal-stress and three shear-stress (Cartesian) components.
|
|
716
|
+
*/
|
|
717
|
+
attribute :>> num: Real;
|
|
718
|
+
attribute :>> mRef: StressUnit[1];
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
attribute stress: StressValue[*] nonunique :> scalarQuantities;
|
|
722
|
+
|
|
723
|
+
attribute def StressUnit :> DerivedUnit {
|
|
724
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
|
|
725
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
726
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
|
|
727
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
attribute def Cartesian3dStressTensor :> TensorQuantityValue {
|
|
731
|
+
doc
|
|
732
|
+
/*
|
|
733
|
+
* source: item 4-15 stress (tensor)
|
|
734
|
+
* symbol(s): `vec(vec(σ))`
|
|
735
|
+
* application domain: generic
|
|
736
|
+
* name: Stress
|
|
737
|
+
* quantity dimension: L^-1*M^1*T^-2
|
|
738
|
+
* measurement unit(s): Pa, N*m^-2, kg*m^-1*s^-2
|
|
739
|
+
* tensor order: 2
|
|
740
|
+
* definition: tensor (ISO 80000-2) quantity representing state of tension of matter
|
|
741
|
+
* remarks: Stress tensor is symmetric and has three normal-stress and three shear-stress (Cartesian) components.
|
|
742
|
+
*/
|
|
743
|
+
attribute :>> isBound = false;
|
|
744
|
+
attribute :>> num: Real[9];
|
|
745
|
+
attribute :>> mRef: Cartesian3dStressMeasurementReference[1];
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
attribute stressTensor: Cartesian3dStressTensor :> tensorQuantities;
|
|
749
|
+
|
|
750
|
+
attribute def Cartesian3dStressMeasurementReference :> TensorMeasurementReference {
|
|
751
|
+
attribute :>> dimensions = (3, 3);
|
|
752
|
+
attribute :>> isBound = false;
|
|
753
|
+
attribute :>> mRefs: StressUnit[9];
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
/* ISO-80000-4 item 4-16.1 normal stress */
|
|
757
|
+
attribute def NormalStressValue :> ScalarQuantityValue {
|
|
758
|
+
doc
|
|
759
|
+
/*
|
|
760
|
+
* source: item 4-16.1 normal stress
|
|
761
|
+
* symbol(s): `σ_n`, `σ`
|
|
762
|
+
* application domain: generic
|
|
763
|
+
* name: NormalStress
|
|
764
|
+
* quantity dimension: L^-1*M^1*T^-2
|
|
765
|
+
* measurement unit(s): Pa, N*m^-2, kg*m^-1*s^-2
|
|
766
|
+
* tensor order: 0
|
|
767
|
+
* definition: scalar (ISO 80000-2) quantity describing surface action of a force into a body equal to: `σ_n = (d F_n)/(dA)` where `F_n` is the normal component of force (item 4-9.1) and `A` is the area (ISO 80000-3) of the surface element
|
|
768
|
+
* remarks: A couple of mutually opposite forces of magnitude `F` acting on the opposite surfaces of a slice (layer) of homogenous solid matter normal to it, and evenly distributed, cause a constant normal stress `σ_n = F A` in the slice (layer).
|
|
769
|
+
*/
|
|
770
|
+
attribute :>> num: Real;
|
|
771
|
+
attribute :>> mRef: NormalStressUnit[1];
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
attribute normalStress: NormalStressValue[*] nonunique :> scalarQuantities;
|
|
775
|
+
|
|
776
|
+
attribute def NormalStressUnit :> DerivedUnit {
|
|
777
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
|
|
778
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
779
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
|
|
780
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
/* ISO-80000-4 item 4-16.2 shear stress */
|
|
784
|
+
attribute def ShearStressValue :> ScalarQuantityValue {
|
|
785
|
+
doc
|
|
786
|
+
/*
|
|
787
|
+
* source: item 4-16.2 shear stress
|
|
788
|
+
* symbol(s): `τ_s`, `τ`
|
|
789
|
+
* application domain: generic
|
|
790
|
+
* name: ShearStress
|
|
791
|
+
* quantity dimension: L^-1*M^1*T^-2
|
|
792
|
+
* measurement unit(s): Pa, N*m^-2, kg*m^-1*s^-2
|
|
793
|
+
* tensor order: 0
|
|
794
|
+
* definition: scalar (ISO 80000-2) quantity describing surface action of a force into a body equal to: `τ_s = (d F_t)/(dA)` where `F_t` is the tangential component of force (item 4-9.1) and `A` is the area (ISO 80000-3) of the surface element
|
|
795
|
+
* remarks: A couple of mutually opposite forces of magnitude `F` acting on the opposite surfaces of a slice (layer) of homogenous solid matter parallel to it, and evenly distributed, cause a constant shear stress `τ = F/A` in the slice (layer).
|
|
796
|
+
*/
|
|
797
|
+
attribute :>> num: Real;
|
|
798
|
+
attribute :>> mRef: ShearStressUnit[1];
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
attribute shearStress: ShearStressValue[*] nonunique :> scalarQuantities;
|
|
802
|
+
|
|
803
|
+
attribute def ShearStressUnit :> DerivedUnit {
|
|
804
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
|
|
805
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
806
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
|
|
807
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
/* ISO-80000-4 item 4-17.1 strain */
|
|
811
|
+
attribute def StrainValue :> ScalarQuantityValue {
|
|
812
|
+
doc
|
|
813
|
+
/*
|
|
814
|
+
* source: item 4-17.1 strain (magnitude)
|
|
815
|
+
* symbol(s): `ε`
|
|
816
|
+
* application domain: generic
|
|
817
|
+
* name: Strain
|
|
818
|
+
* quantity dimension: 1
|
|
819
|
+
* measurement unit(s): 1
|
|
820
|
+
* tensor order: 0
|
|
821
|
+
* definition: tensor (ISO 80000-2) quantity representing the deformation of matter caused by stress
|
|
822
|
+
* remarks: Strain tensor is symmetric and has three linear-strain and three shear strain (Cartesian) components.
|
|
823
|
+
*/
|
|
824
|
+
attribute :>> num: Real;
|
|
825
|
+
attribute :>> mRef: StrainUnit[1];
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
attribute strain: StrainValue[*] nonunique :> scalarQuantities;
|
|
829
|
+
|
|
830
|
+
attribute def StrainUnit :> DimensionOneUnit {
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
attribute def Cartesian3dStrainTensor :> TensorQuantityValue {
|
|
834
|
+
doc
|
|
835
|
+
/*
|
|
836
|
+
* source: item 4-17.1 strain (tensor)
|
|
837
|
+
* symbol(s): `vec(vec(ε))`
|
|
838
|
+
* application domain: generic
|
|
839
|
+
* name: Strain
|
|
840
|
+
* quantity dimension: 1
|
|
841
|
+
* measurement unit(s): 1
|
|
842
|
+
* tensor order: 2
|
|
843
|
+
* definition: tensor (ISO 80000-2) quantity representing the deformation of matter caused by stress
|
|
844
|
+
* remarks: Strain tensor is symmetric and has three linear-strain and three shear strain (Cartesian) components.
|
|
845
|
+
*/
|
|
846
|
+
attribute :>> isBound = false;
|
|
847
|
+
attribute :>> num: Real[9];
|
|
848
|
+
attribute :>> mRef: Cartesian3dStrainMeasurementReference[1];
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
attribute strainTensor: Cartesian3dStrainTensor :> tensorQuantities;
|
|
852
|
+
|
|
853
|
+
attribute def Cartesian3dStrainMeasurementReference :> TensorMeasurementReference {
|
|
854
|
+
attribute :>> dimensions = (3, 3);
|
|
855
|
+
attribute :>> isBound = false;
|
|
856
|
+
attribute :>> mRefs: StrainUnit[9];
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
/* ISO-80000-4 item 4-17.2 relative linear strain */
|
|
860
|
+
attribute def RelativeLinearStrainValue :> DimensionOneValue {
|
|
861
|
+
doc
|
|
862
|
+
/*
|
|
863
|
+
* source: item 4-17.2 relative linear strain
|
|
864
|
+
* symbol(s): `ε`, `(e)`
|
|
865
|
+
* application domain: generic
|
|
866
|
+
* name: RelativeLinearStrain (specializes DimensionOneQuantity)
|
|
867
|
+
* quantity dimension: 1
|
|
868
|
+
* measurement unit(s): 1
|
|
869
|
+
* tensor order: 0
|
|
870
|
+
* definition: quotient of change in length `Δl` (ISO 80000-3) of an object and its length `l` (ISO 80000-3): `ε = (Δl)/l`
|
|
871
|
+
* remarks: None.
|
|
872
|
+
*/
|
|
873
|
+
}
|
|
874
|
+
attribute relativeLinearStrain: RelativeLinearStrainValue :> scalarQuantities;
|
|
875
|
+
|
|
876
|
+
/* ISO-80000-4 item 4-17.3 shear strain */
|
|
877
|
+
attribute def ShearStrainValue :> DimensionOneValue {
|
|
878
|
+
doc
|
|
879
|
+
/*
|
|
880
|
+
* source: item 4-17.3 shear strain
|
|
881
|
+
* symbol(s): `γ`
|
|
882
|
+
* application domain: generic
|
|
883
|
+
* name: ShearStrain (specializes DimensionOneQuantity)
|
|
884
|
+
* quantity dimension: 1
|
|
885
|
+
* measurement unit(s): 1
|
|
886
|
+
* tensor order: 0
|
|
887
|
+
* definition: quotient of parallel displacement `Δx` (ISO 80000-3) of two surfaces of a layer and the thickness `d` (ISO 80000-3) of the layer: `γ = (Δx)/d`
|
|
888
|
+
* remarks: None.
|
|
889
|
+
*/
|
|
890
|
+
}
|
|
891
|
+
attribute shearStrain: ShearStrainValue :> scalarQuantities;
|
|
892
|
+
|
|
893
|
+
/* ISO-80000-4 item 4-17.4 relative volume strain */
|
|
894
|
+
attribute def RelativeVolumeStrainValue :> DimensionOneValue {
|
|
895
|
+
doc
|
|
896
|
+
/*
|
|
897
|
+
* source: item 4-17.4 relative volume strain
|
|
898
|
+
* symbol(s): `θ`
|
|
899
|
+
* application domain: generic
|
|
900
|
+
* name: RelativeVolumeStrain (specializes DimensionOneQuantity)
|
|
901
|
+
* quantity dimension: 1
|
|
902
|
+
* measurement unit(s): 1
|
|
903
|
+
* tensor order: 0
|
|
904
|
+
* definition: quotient of change in volume `ΔV` (ISO 80000-3) of an object and its volume `V_0` (ISO 80000-3): `θ = (ΔV)/V_0`
|
|
905
|
+
* remarks: None.
|
|
906
|
+
*/
|
|
907
|
+
}
|
|
908
|
+
attribute relativeVolumeStrain: RelativeVolumeStrainValue :> scalarQuantities;
|
|
909
|
+
|
|
910
|
+
/* ISO-80000-4 item 4-18 Poisson number */
|
|
911
|
+
attribute def PoissonNumberValue :> DimensionOneValue {
|
|
912
|
+
doc
|
|
913
|
+
/*
|
|
914
|
+
* source: item 4-18 Poisson number
|
|
915
|
+
* symbol(s): `μ`, `(v)`
|
|
916
|
+
* application domain: generic
|
|
917
|
+
* name: PoissonNumber (specializes DimensionOneQuantity)
|
|
918
|
+
* quantity dimension: 1
|
|
919
|
+
* measurement unit(s): 1
|
|
920
|
+
* tensor order: 0
|
|
921
|
+
* definition: quotient of change in width `Δb` (width is defined in ISO 80000-3) and change in length `Δl` (length is defined in ISO 80000-3) of an object: `μ = (Δb)/(Δl)`
|
|
922
|
+
* remarks: None.
|
|
923
|
+
*/
|
|
924
|
+
}
|
|
925
|
+
attribute poissonNumber: PoissonNumberValue :> scalarQuantities;
|
|
926
|
+
|
|
927
|
+
/* ISO-80000-4 item 4-19.1 modulus of elasticity, Young modulus */
|
|
928
|
+
attribute def ModulusOfElasticityValue :> ScalarQuantityValue {
|
|
929
|
+
doc
|
|
930
|
+
/*
|
|
931
|
+
* source: item 4-19.1 modulus of elasticity, Young modulus
|
|
932
|
+
* symbol(s): `E`, `E_m`, `Y`
|
|
933
|
+
* application domain: generic
|
|
934
|
+
* name: ModulusOfElasticity
|
|
935
|
+
* quantity dimension: L^-1*M^1*T^-2
|
|
936
|
+
* measurement unit(s): Pa, N*m^-2, kg*m^-1*s^-2
|
|
937
|
+
* tensor order: 0
|
|
938
|
+
* definition: quotient of normal stress `σ` (item 4-16.1) and relative linear strain `ε` (item 4-17.2): `E = σ/ε`
|
|
939
|
+
* remarks: Conditions should be specified (e.g. adiabatic or isothermal process).
|
|
940
|
+
*/
|
|
941
|
+
attribute :>> num: Real;
|
|
942
|
+
attribute :>> mRef: ModulusOfElasticityUnit[1];
|
|
943
|
+
}
|
|
944
|
+
|
|
945
|
+
attribute modulusOfElasticity: ModulusOfElasticityValue[*] nonunique :> scalarQuantities;
|
|
946
|
+
|
|
947
|
+
attribute def ModulusOfElasticityUnit :> DerivedUnit {
|
|
948
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
|
|
949
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
950
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
|
|
951
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
alias YoungModulusUnit for ModulusOfElasticityUnit;
|
|
955
|
+
alias YoungModulusValue for ModulusOfElasticityValue;
|
|
956
|
+
alias youngModulus for modulusOfElasticity;
|
|
957
|
+
|
|
958
|
+
/* ISO-80000-4 item 4-19.2 modulus of rigidity, shear modulus */
|
|
959
|
+
attribute def ModulusOfRigidityValue :> ScalarQuantityValue {
|
|
960
|
+
doc
|
|
961
|
+
/*
|
|
962
|
+
* source: item 4-19.2 modulus of rigidity, shear modulus
|
|
963
|
+
* symbol(s): `G`
|
|
964
|
+
* application domain: generic
|
|
965
|
+
* name: ModulusOfRigidity
|
|
966
|
+
* quantity dimension: L^-1*M^1*T^-2
|
|
967
|
+
* measurement unit(s): Pa, N*m^-2, kg*m^-1*s^-2
|
|
968
|
+
* tensor order: 0
|
|
969
|
+
* definition: quotient of shear stress `τ` (item 4-16.2) and shear strain `γ` (item 4-17.3): `G = τ/γ`
|
|
970
|
+
* remarks: Conditions should be specified (e.g. isentropic or isothermal process).
|
|
971
|
+
*/
|
|
972
|
+
attribute :>> num: Real;
|
|
973
|
+
attribute :>> mRef: ModulusOfRigidityUnit[1];
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
attribute modulusOfRigidity: ModulusOfRigidityValue[*] nonunique :> scalarQuantities;
|
|
977
|
+
|
|
978
|
+
attribute def ModulusOfRigidityUnit :> DerivedUnit {
|
|
979
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
|
|
980
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
981
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
|
|
982
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
alias ShearModulusUnit for ModulusOfRigidityUnit;
|
|
986
|
+
alias ShearModulusValue for ModulusOfRigidityValue;
|
|
987
|
+
alias shearModulus for modulusOfRigidity;
|
|
988
|
+
|
|
989
|
+
/* ISO-80000-4 item 4-19.3 modulus of compression, bulk modulus */
|
|
990
|
+
attribute def ModulusOfCompressionValue :> ScalarQuantityValue {
|
|
991
|
+
doc
|
|
992
|
+
/*
|
|
993
|
+
* source: item 4-19.3 modulus of compression, bulk modulus
|
|
994
|
+
* symbol(s): `K`, `K_m`, `B`
|
|
995
|
+
* application domain: generic
|
|
996
|
+
* name: ModulusOfCompression
|
|
997
|
+
* quantity dimension: L^-1*M^1*T^-2
|
|
998
|
+
* measurement unit(s): Pa, N*m^-2, kg*m^-1*s^-2
|
|
999
|
+
* tensor order: 0
|
|
1000
|
+
* definition: negative of the quotient of pressure `p` (item 4-14.1) and relative volume strain `θ` (item 4-17.4): `K = -(p/θ)`
|
|
1001
|
+
* remarks: Conditions should be specified (e.g. isentropic or isothermal process).
|
|
1002
|
+
*/
|
|
1003
|
+
attribute :>> num: Real;
|
|
1004
|
+
attribute :>> mRef: ModulusOfCompressionUnit[1];
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
attribute modulusOfCompression: ModulusOfCompressionValue[*] nonunique :> scalarQuantities;
|
|
1008
|
+
|
|
1009
|
+
attribute def ModulusOfCompressionUnit :> DerivedUnit {
|
|
1010
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
|
|
1011
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
1012
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
|
|
1013
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
alias BulkModulusUnit for ModulusOfCompressionUnit;
|
|
1017
|
+
alias BulkModulusValue for ModulusOfCompressionValue;
|
|
1018
|
+
alias bulkModulus for modulusOfCompression;
|
|
1019
|
+
|
|
1020
|
+
/* ISO-80000-4 item 4-20 compressibility */
|
|
1021
|
+
attribute def CompressibilityValue :> ScalarQuantityValue {
|
|
1022
|
+
doc
|
|
1023
|
+
/*
|
|
1024
|
+
* source: item 4-20 compressibility
|
|
1025
|
+
* symbol(s): `ϰ`
|
|
1026
|
+
* application domain: generic
|
|
1027
|
+
* name: Compressibility
|
|
1028
|
+
* quantity dimension: L^1*M^-1*T^2
|
|
1029
|
+
* measurement unit(s): Pa^-1, kg^-1*m*s^2
|
|
1030
|
+
* tensor order: 0
|
|
1031
|
+
* definition: negative relative change of volume `V` (ISO 80000-3) of an object under pressure `p` (item 4-14.1) expressed by: `ϰ = -(1/V)(dV)/(dp)`
|
|
1032
|
+
* remarks: Conditions should be specified (e.g. isentropic or isothermal process). See also ISO 80000-5.
|
|
1033
|
+
*/
|
|
1034
|
+
attribute :>> num: Real;
|
|
1035
|
+
attribute :>> mRef: CompressibilityUnit[1];
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
attribute compressibility: CompressibilityValue[*] nonunique :> scalarQuantities;
|
|
1039
|
+
|
|
1040
|
+
attribute def CompressibilityUnit :> DerivedUnit {
|
|
1041
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 1; }
|
|
1042
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = -1; }
|
|
1043
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = 2; }
|
|
1044
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
/* ISO-80000-4 item 4-21.1 second axial moment of area */
|
|
1048
|
+
attribute def SecondAxialMomentOfAreaValue :> ScalarQuantityValue {
|
|
1049
|
+
doc
|
|
1050
|
+
/*
|
|
1051
|
+
* source: item 4-21.1 second axial moment of area
|
|
1052
|
+
* symbol(s): `I_a`
|
|
1053
|
+
* application domain: generic
|
|
1054
|
+
* name: SecondAxialMomentOfArea
|
|
1055
|
+
* quantity dimension: L^4
|
|
1056
|
+
* measurement unit(s): m^4
|
|
1057
|
+
* tensor order: 0
|
|
1058
|
+
* definition: geometrical characteristic of a shape of a body equal to: `I_a = int int_M r_Q^2 dA` where `M` is the two-dimensional domain of the cross-section of a plane and considered body, `r_Q` is radial distance (ISO 80000-3) from a Q-axis in the plane of the surface considered and `A` is area (ISO 80000-3)
|
|
1059
|
+
* remarks: This quantity is often referred to wrongly as "moment of inertia" (item 4-7). The subscript, `a`, may be omitted when there is no risk of confusion.
|
|
1060
|
+
*/
|
|
1061
|
+
attribute :>> num: Real;
|
|
1062
|
+
attribute :>> mRef: SecondAxialMomentOfAreaUnit[1];
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
attribute secondAxialMomentOfArea: SecondAxialMomentOfAreaValue[*] nonunique :> scalarQuantities;
|
|
1066
|
+
|
|
1067
|
+
attribute def SecondAxialMomentOfAreaUnit :> DerivedUnit {
|
|
1068
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 4; }
|
|
1069
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
|
|
1070
|
+
}
|
|
1071
|
+
|
|
1072
|
+
/* ISO-80000-4 item 4-21.2 second polar moment of area */
|
|
1073
|
+
attribute def SecondPolarMomentOfAreaValue :> ScalarQuantityValue {
|
|
1074
|
+
doc
|
|
1075
|
+
/*
|
|
1076
|
+
* source: item 4-21.2 second polar moment of area
|
|
1077
|
+
* symbol(s): `I_p`
|
|
1078
|
+
* application domain: generic
|
|
1079
|
+
* name: SecondPolarMomentOfArea
|
|
1080
|
+
* quantity dimension: L^4
|
|
1081
|
+
* measurement unit(s): m^4
|
|
1082
|
+
* tensor order: 0
|
|
1083
|
+
* definition: geometrical characteristic of a shape of a body equal to: `I_p = int int_M r_Q^2 * dA` where `M` is the two-dimensional domain of the cross-section of a plane and considered body, `r_Q` is radial distance (ISO 80000-3) from a Q-axis perpendicular to the plane of the surface considered and `A` is area (ISO 80000-3)
|
|
1084
|
+
* remarks: This quantity is often referred to wrongly as "moment of inertia" (item 4-7). The subscript, `p`, may be omitted when there is no risk of confusion.
|
|
1085
|
+
*/
|
|
1086
|
+
attribute :>> num: Real;
|
|
1087
|
+
attribute :>> mRef: SecondPolarMomentOfAreaUnit[1];
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
attribute secondPolarMomentOfArea: SecondPolarMomentOfAreaValue[*] nonunique :> scalarQuantities;
|
|
1091
|
+
|
|
1092
|
+
attribute def SecondPolarMomentOfAreaUnit :> DerivedUnit {
|
|
1093
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 4; }
|
|
1094
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
/* ISO-80000-4 item 4-22 section modulus */
|
|
1098
|
+
attribute def SectionModulusValue :> ScalarQuantityValue {
|
|
1099
|
+
doc
|
|
1100
|
+
/*
|
|
1101
|
+
* source: item 4-22 section modulus
|
|
1102
|
+
* symbol(s): `Z`, `(W)`
|
|
1103
|
+
* application domain: generic
|
|
1104
|
+
* name: SectionModulus
|
|
1105
|
+
* quantity dimension: L^3
|
|
1106
|
+
* measurement unit(s): m^3
|
|
1107
|
+
* tensor order: 0
|
|
1108
|
+
* definition: geometrical characteristic of a shape of a body equal to: `Z = I_a/r_(Q_max)` where `I_a` is the second axial moment of area (item 4-21.1) and `r_(Q,max)` is the maximum radial distance (ISO 80000-3) of any point in the surface considered from the Q-axis with respect to which `I_a` is defined
|
|
1109
|
+
* remarks: None.
|
|
1110
|
+
*/
|
|
1111
|
+
attribute :>> num: Real;
|
|
1112
|
+
attribute :>> mRef: SectionModulusUnit[1];
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
attribute sectionModulus: SectionModulusValue[*] nonunique :> scalarQuantities;
|
|
1116
|
+
|
|
1117
|
+
attribute def SectionModulusUnit :> DerivedUnit {
|
|
1118
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 3; }
|
|
1119
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = lengthPF; }
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
/* ISO-80000-4 item 4-23.1 static friction coefficient, static friction factor, coefficient of static friction */
|
|
1123
|
+
attribute def StaticFrictionCoefficientValue :> DimensionOneValue {
|
|
1124
|
+
doc
|
|
1125
|
+
/*
|
|
1126
|
+
* source: item 4-23.1 static friction coefficient, static friction factor, coefficient of static friction
|
|
1127
|
+
* symbol(s): `μ_s`, `(f_s)`
|
|
1128
|
+
* application domain: generic
|
|
1129
|
+
* name: StaticFrictionCoefficient (specializes DimensionOneQuantity)
|
|
1130
|
+
* quantity dimension: 1
|
|
1131
|
+
* measurement unit(s): 1
|
|
1132
|
+
* tensor order: 0
|
|
1133
|
+
* definition: proportionality factor between the maximum magnitude of the tangential component `F_max` of the static friction force (item 4-9.3) and the magnitude of the normal component `N` of the contact force (item 4-9.1) between two bodies at relative rest with respect to each other: `F_max = μ_s * N`
|
|
1134
|
+
* remarks: When it is not necessary to distinguish between dynamic friction factor and static friction factor, the name friction factor may be used for both.
|
|
1135
|
+
*/
|
|
1136
|
+
}
|
|
1137
|
+
attribute staticFrictionCoefficient: StaticFrictionCoefficientValue :> scalarQuantities;
|
|
1138
|
+
|
|
1139
|
+
alias staticFrictionFactor for staticFrictionCoefficient;
|
|
1140
|
+
|
|
1141
|
+
alias coefficientOfStaticFriction for staticFrictionCoefficient;
|
|
1142
|
+
|
|
1143
|
+
/* ISO-80000-4 item 4-23.2 kinetic friction factor, dynamic friction factor */
|
|
1144
|
+
attribute def KineticFrictionFactorValue :> DimensionOneValue {
|
|
1145
|
+
doc
|
|
1146
|
+
/*
|
|
1147
|
+
* source: item 4-23.2 kinetic friction factor, dynamic friction factor
|
|
1148
|
+
* symbol(s): `μ`, `(f)`
|
|
1149
|
+
* application domain: generic
|
|
1150
|
+
* name: KineticFrictionFactor (specializes DimensionOneQuantity)
|
|
1151
|
+
* quantity dimension: 1
|
|
1152
|
+
* measurement unit(s): 1
|
|
1153
|
+
* tensor order: 0
|
|
1154
|
+
* definition: proportionality factor between the magnitudes of the kinetic friction force, `F_μ` (item 4-9.4) and the normal component `N` of the contact force (item 4-9.1): `F_μ = μ * N`
|
|
1155
|
+
* remarks: When it is not necessary to distinguish between dynamic friction factor and static friction factor, the name friction factor may be used for both. The dynamic friction factor `µ` is independent in first approximation of the contact surface.
|
|
1156
|
+
*/
|
|
1157
|
+
}
|
|
1158
|
+
attribute kineticFrictionFactor: KineticFrictionFactorValue :> scalarQuantities;
|
|
1159
|
+
|
|
1160
|
+
alias dynamicFrictionFactor for kineticFrictionFactor;
|
|
1161
|
+
|
|
1162
|
+
/* ISO-80000-4 item 4-23.3 rolling resistance factor */
|
|
1163
|
+
attribute def RollingResistanceFactorValue :> DimensionOneValue {
|
|
1164
|
+
doc
|
|
1165
|
+
/*
|
|
1166
|
+
* source: item 4-23.3 rolling resistance factor
|
|
1167
|
+
* symbol(s): `C_"rr"`
|
|
1168
|
+
* application domain: generic
|
|
1169
|
+
* name: RollingResistanceFactor (specializes DimensionOneQuantity)
|
|
1170
|
+
* quantity dimension: 1
|
|
1171
|
+
* measurement unit(s): 1
|
|
1172
|
+
* tensor order: 0
|
|
1173
|
+
* definition: proportionality factor between the magnitude of the tangential component `F` and the magnitude of the normal component `N` of the force applied to a body rolling on a surface at constant speed: `F = C_(rr)*N`
|
|
1174
|
+
* remarks: Also known as rolling resistance coefficient, RRC.
|
|
1175
|
+
*/
|
|
1176
|
+
}
|
|
1177
|
+
attribute rollingResistanceFactor: RollingResistanceFactorValue :> scalarQuantities;
|
|
1178
|
+
|
|
1179
|
+
/* ISO-80000-4 item 4-23.4 drag coefficient, drag factor */
|
|
1180
|
+
attribute def DragCoefficientValue :> DimensionOneValue {
|
|
1181
|
+
doc
|
|
1182
|
+
/*
|
|
1183
|
+
* source: item 4-23.4 drag coefficient, drag factor
|
|
1184
|
+
* symbol(s): `C_D`
|
|
1185
|
+
* application domain: generic
|
|
1186
|
+
* name: DragCoefficient (specializes DimensionOneQuantity)
|
|
1187
|
+
* quantity dimension: 1
|
|
1188
|
+
* measurement unit(s): 1
|
|
1189
|
+
* tensor order: 0
|
|
1190
|
+
* definition: factor proportional to magnitude `F_D` of the drag force (item 4-9.6) of a body moving in a fluid, dependent on the shape and speed `v` (ISO 80000-3) of a body: `F_D = 1/2 * C_D * ρ * v^2 * A` where `ρ` is mass density (item 4-2) of the fluid and `A` is cross-section area (ISO 80000-3) of the body
|
|
1191
|
+
* remarks: None.
|
|
1192
|
+
*/
|
|
1193
|
+
}
|
|
1194
|
+
attribute dragCoefficient: DragCoefficientValue :> scalarQuantities;
|
|
1195
|
+
|
|
1196
|
+
alias dragFactor for dragCoefficient;
|
|
1197
|
+
|
|
1198
|
+
/* ISO-80000-4 item 4-24 dynamic viscosity, viscosity */
|
|
1199
|
+
attribute def DynamicViscosityValue :> ScalarQuantityValue {
|
|
1200
|
+
doc
|
|
1201
|
+
/*
|
|
1202
|
+
* source: item 4-24 dynamic viscosity, viscosity
|
|
1203
|
+
* symbol(s): `η`
|
|
1204
|
+
* application domain: generic
|
|
1205
|
+
* name: DynamicViscosity
|
|
1206
|
+
* quantity dimension: L^-1*M^1*T^-1
|
|
1207
|
+
* measurement unit(s): Pa*s, kg*m^-1*s^-1
|
|
1208
|
+
* tensor order: 0
|
|
1209
|
+
* definition: for laminar flows, proportionality constant between shear stress `τ_(xz)` (item 4-16.2) in a fluid moving with a velocity `v_x` (ISO 80000-3) and gradient `(d v_x)/dz` perpendicular to the plane of shear: `τ_(xz) = η (d v_x)/(dz)`
|
|
1210
|
+
* remarks: None.
|
|
1211
|
+
*/
|
|
1212
|
+
attribute :>> num: Real;
|
|
1213
|
+
attribute :>> mRef: DynamicViscosityUnit[1];
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1216
|
+
attribute dynamicViscosity: DynamicViscosityValue[*] nonunique :> scalarQuantities;
|
|
1217
|
+
|
|
1218
|
+
attribute def DynamicViscosityUnit :> DerivedUnit {
|
|
1219
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -1; }
|
|
1220
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
1221
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
|
|
1222
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
alias ViscosityUnit for DynamicViscosityUnit;
|
|
1226
|
+
alias ViscosityValue for DynamicViscosityValue;
|
|
1227
|
+
alias viscosity for dynamicViscosity;
|
|
1228
|
+
|
|
1229
|
+
/* ISO-80000-4 item 4-25 kinematic viscosity */
|
|
1230
|
+
attribute def KinematicViscosityValue :> ScalarQuantityValue {
|
|
1231
|
+
doc
|
|
1232
|
+
/*
|
|
1233
|
+
* source: item 4-25 kinematic viscosity
|
|
1234
|
+
* symbol(s): `v`
|
|
1235
|
+
* application domain: generic
|
|
1236
|
+
* name: KinematicViscosity
|
|
1237
|
+
* quantity dimension: L^2*T^-1
|
|
1238
|
+
* measurement unit(s): m^2*s^-1
|
|
1239
|
+
* tensor order: 0
|
|
1240
|
+
* definition: quotient of dynamic viscosity `η` (item 4-24) and mass density `ρ` (item 4-2) of a fluid: `v = η/ρ`
|
|
1241
|
+
* remarks: None.
|
|
1242
|
+
*/
|
|
1243
|
+
attribute :>> num: Real;
|
|
1244
|
+
attribute :>> mRef: KinematicViscosityUnit[1];
|
|
1245
|
+
}
|
|
1246
|
+
|
|
1247
|
+
attribute kinematicViscosity: KinematicViscosityValue[*] nonunique :> scalarQuantities;
|
|
1248
|
+
|
|
1249
|
+
attribute def KinematicViscosityUnit :> DerivedUnit {
|
|
1250
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
|
|
1251
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
|
|
1252
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF); }
|
|
1253
|
+
}
|
|
1254
|
+
|
|
1255
|
+
/* ISO-80000-4 item 4-26 surface tension */
|
|
1256
|
+
attribute def SurfaceTensionValue :> ScalarQuantityValue {
|
|
1257
|
+
doc
|
|
1258
|
+
/*
|
|
1259
|
+
* source: item 4-26 surface tension
|
|
1260
|
+
* symbol(s): `γ`, `σ`
|
|
1261
|
+
* application domain: generic
|
|
1262
|
+
* name: SurfaceTension
|
|
1263
|
+
* quantity dimension: M^1*T^-2
|
|
1264
|
+
* measurement unit(s): N*m^-1, kg*s^-2
|
|
1265
|
+
* tensor order: 0
|
|
1266
|
+
* definition: magnitude of a force acting against the enlargement of area portion of a surface separating a liquid from its surrounding
|
|
1267
|
+
* remarks: The concept of surface energy is closely related to surface tension and has the same dimension.
|
|
1268
|
+
*/
|
|
1269
|
+
attribute :>> num: Real;
|
|
1270
|
+
attribute :>> mRef: SurfaceTensionUnit[1];
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1273
|
+
attribute surfaceTension: SurfaceTensionValue[*] nonunique :> scalarQuantities;
|
|
1274
|
+
|
|
1275
|
+
attribute def SurfaceTensionUnit :> DerivedUnit {
|
|
1276
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
1277
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -2; }
|
|
1278
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (massPF, durationPF); }
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
/* ISO-80000-4 item 4-27.1 power */
|
|
1282
|
+
attribute def PowerValue :> ScalarQuantityValue {
|
|
1283
|
+
doc
|
|
1284
|
+
/*
|
|
1285
|
+
* source: item 4-27.1 power
|
|
1286
|
+
* symbol(s): `P`
|
|
1287
|
+
* application domain: generic
|
|
1288
|
+
* name: Power
|
|
1289
|
+
* quantity dimension: L^2*M^1*T^-3
|
|
1290
|
+
* measurement unit(s): W, J*s^-1, kg*m^2*s^-3
|
|
1291
|
+
* tensor order: 0
|
|
1292
|
+
* definition: quotient of energy (ISO 80000-5) and duration (ISO 80000-3)
|
|
1293
|
+
* remarks: None.
|
|
1294
|
+
*/
|
|
1295
|
+
attribute :>> num: Real;
|
|
1296
|
+
attribute :>> mRef: PowerUnit[1];
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
attribute power: PowerValue[*] nonunique :> scalarQuantities;
|
|
1300
|
+
|
|
1301
|
+
attribute def PowerUnit :> DerivedUnit {
|
|
1302
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
|
|
1303
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
1304
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -3; }
|
|
1305
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
1306
|
+
}
|
|
1307
|
+
|
|
1308
|
+
/* ISO-80000-4 item 4-27 mechanical power */
|
|
1309
|
+
attribute mechanicalPower: PowerValue :> scalarQuantities {
|
|
1310
|
+
doc
|
|
1311
|
+
/*
|
|
1312
|
+
* source: item 4-27 mechanical power
|
|
1313
|
+
* symbol(s): `P`
|
|
1314
|
+
* application domain: mechanics
|
|
1315
|
+
* name: MechanicalPower (specializes Power)
|
|
1316
|
+
* quantity dimension: L^2*M^1*T^-3
|
|
1317
|
+
* measurement unit(s): W, N*m*s^-1, kg*m^2*s^-3
|
|
1318
|
+
* tensor order: 0
|
|
1319
|
+
* definition: scalar product of force `vec(F)` (item 4-9.1) acting to a body and its velocity `vec(v)` (ISO 80000-3): `P = vec(F) * vec(v)`
|
|
1320
|
+
* remarks: None.
|
|
1321
|
+
*/
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
/* ISO-80000-4 item 4-28.1 potential energy */
|
|
1325
|
+
attribute potentialEnergy: EnergyValue :> scalarQuantities {
|
|
1326
|
+
doc
|
|
1327
|
+
/*
|
|
1328
|
+
* source: item 4-28.1 potential energy
|
|
1329
|
+
* symbol(s): `V`, `E_p`
|
|
1330
|
+
* application domain: generic
|
|
1331
|
+
* name: PotentialEnergy (specializes Energy)
|
|
1332
|
+
* quantity dimension: L^2*M^1*T^-2
|
|
1333
|
+
* measurement unit(s): J, kg*m^2*s^-2
|
|
1334
|
+
* tensor order: 0
|
|
1335
|
+
* definition: for conservative force `vec(F)`, scalar additive quantity obeying condition `vec(F) = -nabla F`, if it exists
|
|
1336
|
+
* remarks: For the definition of energy, see ISO 80000-5. A force is conservative when the force field is irrotational, i.e. `rot(F) = 0` , or `vec(F)` is perpendicular to the speed of the body to ensure `vec(F) * d vec(r) = 0` .
|
|
1337
|
+
*/
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
/* ISO-80000-4 item 4-28.2 kinetic energy */
|
|
1341
|
+
attribute kineticEnergy: EnergyValue :> scalarQuantities {
|
|
1342
|
+
doc
|
|
1343
|
+
/*
|
|
1344
|
+
* source: item 4-28.2 kinetic energy
|
|
1345
|
+
* symbol(s): `T`, `E_k`
|
|
1346
|
+
* application domain: generic
|
|
1347
|
+
* name: KineticEnergy (specializes Energy)
|
|
1348
|
+
* quantity dimension: L^2*M^1*T^-2
|
|
1349
|
+
* measurement unit(s): J, kg*m^2*s^-2
|
|
1350
|
+
* tensor order: 0
|
|
1351
|
+
* definition: scalar (ISO 80000-2) quantity characterizing a moving body expressed by: `T = 1/2 m v^2` where `m` is mass (item 4-1) of the body and `v` is its speed (ISO 80000-3)
|
|
1352
|
+
* remarks: For the definition of energy, see ISO 80000-5.
|
|
1353
|
+
*/
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
/* ISO-80000-4 item 4-28.3 mechanical energy */
|
|
1357
|
+
attribute mechanicalEnergy: EnergyValue :> scalarQuantities {
|
|
1358
|
+
doc
|
|
1359
|
+
/*
|
|
1360
|
+
* source: item 4-28.3 mechanical energy
|
|
1361
|
+
* symbol(s): `E`, `W`
|
|
1362
|
+
* application domain: generic
|
|
1363
|
+
* name: MechanicalEnergy (specializes Energy)
|
|
1364
|
+
* quantity dimension: L^2*M^1*T^-2
|
|
1365
|
+
* measurement unit(s): J, kg*m^2*s^-2
|
|
1366
|
+
* tensor order: 0
|
|
1367
|
+
* definition: sum of kinetic energy `T` (item 4-28.2) and potential energy `V` (item 4-28.1): `E = T+V`
|
|
1368
|
+
* remarks: The symbols `E` and `W` are also used for other kinds of energy. This definition is understood in a classical way and it does not include thermal motion.
|
|
1369
|
+
*/
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1372
|
+
/* ISO-80000-4 item 4-28.4 mechanical work, work */
|
|
1373
|
+
attribute mechanicalWork: EnergyValue :> scalarQuantities {
|
|
1374
|
+
doc
|
|
1375
|
+
/*
|
|
1376
|
+
* source: item 4-28.4 mechanical work, work
|
|
1377
|
+
* symbol(s): `A`, `W`
|
|
1378
|
+
* application domain: generic
|
|
1379
|
+
* name: MechanicalWork (specializes Energy)
|
|
1380
|
+
* quantity dimension: L^2*M^1*T^-2
|
|
1381
|
+
* measurement unit(s): J, kg*m^2*s^-2
|
|
1382
|
+
* tensor order: 0
|
|
1383
|
+
* definition: process quantity describing the total action of a force `vec(F)` (item 4-9.1) along a continuous curve `Γ` in three-dimensional space with infinitesimal displacement (ISO 80000-3) `dvec(r)`, as a line integral of their scalar product: `A = int_Γ vec(F) * d vec(r)`
|
|
1384
|
+
* remarks: The definition covers the case `A = -int_Γ p*dV` where `Γ` is a curve in the phase space and implies that work generally depends upon `Γ`, and that type of process must be defined (e.g. isentropic or isothermic).
|
|
1385
|
+
*/
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
alias work for mechanicalWork;
|
|
1389
|
+
|
|
1390
|
+
/* ISO-80000-4 item 4-29 mechanical efficiency */
|
|
1391
|
+
attribute def MechanicalEfficiencyValue :> DimensionOneValue {
|
|
1392
|
+
doc
|
|
1393
|
+
/*
|
|
1394
|
+
* source: item 4-29 mechanical efficiency
|
|
1395
|
+
* symbol(s): `η`
|
|
1396
|
+
* application domain: mechanics
|
|
1397
|
+
* name: MechanicalEfficiency (specializes DimensionOneQuantity)
|
|
1398
|
+
* quantity dimension: 1
|
|
1399
|
+
* measurement unit(s): 1
|
|
1400
|
+
* tensor order: 0
|
|
1401
|
+
* definition: quotient of output power `P_"out"` (item 4-27) from a system and input power `P_"in"` (item 4-27) to this system: `η = P_"out"/P_"in"`
|
|
1402
|
+
* remarks: The system must be specified. This quantity is often expressed by the unit percent, symbol %.
|
|
1403
|
+
*/
|
|
1404
|
+
}
|
|
1405
|
+
attribute mechanicalEfficiency: MechanicalEfficiencyValue :> scalarQuantities;
|
|
1406
|
+
|
|
1407
|
+
/* ISO-80000-4 item 4-30.1 mass flow */
|
|
1408
|
+
attribute def MassFlowValue :> ScalarQuantityValue {
|
|
1409
|
+
doc
|
|
1410
|
+
/*
|
|
1411
|
+
* source: item 4-30.1 mass flow (magnitude)
|
|
1412
|
+
* symbol(s): `j_m`
|
|
1413
|
+
* application domain: generic
|
|
1414
|
+
* name: MassFlow
|
|
1415
|
+
* quantity dimension: L^-2*M^1*T^-1
|
|
1416
|
+
* measurement unit(s): kg*m^-2*s^-1
|
|
1417
|
+
* tensor order: 0
|
|
1418
|
+
* definition: vector (ISO 80000-2) quantity characterizing a flowing fluid by the product of its local mass density `ρ` (item 4-2) and local velocity `vec(v)` (ISO 80000-3): `vec(j_m) = ρ vec(v)`
|
|
1419
|
+
* remarks: None.
|
|
1420
|
+
*/
|
|
1421
|
+
attribute :>> num: Real;
|
|
1422
|
+
attribute :>> mRef: MassFlowUnit[1];
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1425
|
+
attribute massFlow: MassFlowValue[*] nonunique :> scalarQuantities;
|
|
1426
|
+
|
|
1427
|
+
attribute def MassFlowUnit :> DerivedUnit {
|
|
1428
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = -2; }
|
|
1429
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
1430
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
|
|
1431
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
1432
|
+
}
|
|
1433
|
+
|
|
1434
|
+
attribute def CartesianMassFlow3dVector :> '3dVectorQuantityValue' {
|
|
1435
|
+
doc
|
|
1436
|
+
/*
|
|
1437
|
+
* source: item 4-30.1 mass flow (vector)
|
|
1438
|
+
* symbol(s): `vec(j_m)`
|
|
1439
|
+
* application domain: generic
|
|
1440
|
+
* name: MassFlow
|
|
1441
|
+
* quantity dimension: L^-2*M^1*T^-1
|
|
1442
|
+
* measurement unit(s): kg*m^-2*s^-1
|
|
1443
|
+
* tensor order: 1
|
|
1444
|
+
* definition: vector (ISO 80000-2) quantity characterizing a flowing fluid by the product of its local mass density `ρ` (item 4-2) and local velocity `vec(v)` (ISO 80000-3): `vec(j_m) = ρ vec(v)`
|
|
1445
|
+
* remarks: None.
|
|
1446
|
+
*/
|
|
1447
|
+
attribute :>> isBound = false;
|
|
1448
|
+
attribute :>> mRef: CartesianMassFlow3dCoordinateFrame[1];
|
|
1449
|
+
}
|
|
1450
|
+
|
|
1451
|
+
attribute cartesianMassFlow3dVector: CartesianMassFlow3dVector :> vectorQuantities;
|
|
1452
|
+
|
|
1453
|
+
attribute def CartesianMassFlow3dCoordinateFrame :> '3dCoordinateFrame' {
|
|
1454
|
+
attribute :>> isBound = false;
|
|
1455
|
+
attribute :>> isOrthogonal = true;
|
|
1456
|
+
attribute :>> mRefs: MassFlowUnit[3];
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1459
|
+
/* ISO-80000-4 item 4-30.2 mass flow rate */
|
|
1460
|
+
attribute def MassFlowRateValue :> ScalarQuantityValue {
|
|
1461
|
+
doc
|
|
1462
|
+
/*
|
|
1463
|
+
* source: item 4-30.2 mass flow rate
|
|
1464
|
+
* symbol(s): `q_m`
|
|
1465
|
+
* application domain: generic
|
|
1466
|
+
* name: MassFlowRate
|
|
1467
|
+
* quantity dimension: M^1*T^-1
|
|
1468
|
+
* measurement unit(s): kg*s^-1
|
|
1469
|
+
* tensor order: 0
|
|
1470
|
+
* definition: scalar (ISO 80000-2) quantity characterizing the total flow through the two-dimensional domain `A` with normal vector `vec(e)_n` of a flowing fluid with mass flow `vec(j)_m` (item 4-30.1) as an integral: `q_m = int int_A vec(j)_m * vec(e)_n dA` where `dA` is the area (ISO 80000-3) of an element of the two-dimensional domain `A`
|
|
1471
|
+
* remarks: None.
|
|
1472
|
+
*/
|
|
1473
|
+
attribute :>> num: Real;
|
|
1474
|
+
attribute :>> mRef: MassFlowRateUnit[1];
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1477
|
+
attribute massFlowRate: MassFlowRateValue[*] nonunique :> scalarQuantities;
|
|
1478
|
+
|
|
1479
|
+
attribute def MassFlowRateUnit :> DerivedUnit {
|
|
1480
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
1481
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
|
|
1482
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (massPF, durationPF); }
|
|
1483
|
+
}
|
|
1484
|
+
|
|
1485
|
+
/* ISO-80000-4 item 4-30.3 mass change rate */
|
|
1486
|
+
attribute def MassChangeRateValue :> ScalarQuantityValue {
|
|
1487
|
+
doc
|
|
1488
|
+
/*
|
|
1489
|
+
* source: item 4-30.3 mass change rate
|
|
1490
|
+
* symbol(s): `q_m`
|
|
1491
|
+
* application domain: generic
|
|
1492
|
+
* name: MassChangeRate
|
|
1493
|
+
* quantity dimension: M^1*T^-1
|
|
1494
|
+
* measurement unit(s): kg*s^-1
|
|
1495
|
+
* tensor order: 0
|
|
1496
|
+
* definition: rate of increment of mass `m` (item 4-1): `q_m = (dm)/(dt)` where `dm` is the infinitesimal mass (item 4-1) increment and `dt` is the infinitesimal duration (ISO 80000-3)
|
|
1497
|
+
* remarks: None.
|
|
1498
|
+
*/
|
|
1499
|
+
attribute :>> num: Real;
|
|
1500
|
+
attribute :>> mRef: MassChangeRateUnit[1];
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
attribute massChangeRate: MassChangeRateValue[*] nonunique :> scalarQuantities;
|
|
1504
|
+
|
|
1505
|
+
attribute def MassChangeRateUnit :> DerivedUnit {
|
|
1506
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
1507
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
|
|
1508
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (massPF, durationPF); }
|
|
1509
|
+
}
|
|
1510
|
+
|
|
1511
|
+
/* ISO-80000-4 item 4-31 volume flow rate */
|
|
1512
|
+
attribute def VolumeFlowRateValue :> ScalarQuantityValue {
|
|
1513
|
+
doc
|
|
1514
|
+
/*
|
|
1515
|
+
* source: item 4-31 volume flow rate
|
|
1516
|
+
* symbol(s): `q_v`
|
|
1517
|
+
* application domain: generic
|
|
1518
|
+
* name: VolumeFlowRate
|
|
1519
|
+
* quantity dimension: L^3*T^-1
|
|
1520
|
+
* measurement unit(s): m^3*s^-1
|
|
1521
|
+
* tensor order: 0
|
|
1522
|
+
* definition: scalar (ISO 80000-2) quantity characterizing the total flow through the two-dimensional domain `A` with the normal vector `vec(e)_n` of a flowing fluid with velocity `vec(v)` (ISO 80000-3) as an integral: `q_v = int int_A vec(v) * vec(e)_n dA` where `dA` is the area (ISO 80000-3) of an element of the two-dimensional domain `A`
|
|
1523
|
+
* remarks: None.
|
|
1524
|
+
*/
|
|
1525
|
+
attribute :>> num: Real;
|
|
1526
|
+
attribute :>> mRef: VolumeFlowRateUnit[1];
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
attribute volumeFlowRate: VolumeFlowRateValue[*] nonunique :> scalarQuantities;
|
|
1530
|
+
|
|
1531
|
+
attribute def VolumeFlowRateUnit :> DerivedUnit {
|
|
1532
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 3; }
|
|
1533
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
|
|
1534
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, durationPF); }
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1537
|
+
/* ISO-80000-4 item 4-32 action quantity */
|
|
1538
|
+
attribute def ActionQuantityValue :> ScalarQuantityValue {
|
|
1539
|
+
doc
|
|
1540
|
+
/*
|
|
1541
|
+
* source: item 4-32 action quantity
|
|
1542
|
+
* symbol(s): `S`
|
|
1543
|
+
* application domain: generic
|
|
1544
|
+
* name: ActionQuantity
|
|
1545
|
+
* quantity dimension: L^2*M^1*T^-1
|
|
1546
|
+
* measurement unit(s): J*s, kg*m^2*s^-1
|
|
1547
|
+
* tensor order: 0
|
|
1548
|
+
* definition: time integral of energy `E` over a time interval `(t_1, t_2)`: `S = int_(t_1)^(t_2) E dt`
|
|
1549
|
+
* remarks: The energy may be expressed by a Lagrangian or Hamiltonian function. Note for SysML: the ISQ quantity "action" has been renamed to "action quantity" to avoid the name clash with the SysML action keyword.
|
|
1550
|
+
*/
|
|
1551
|
+
attribute :>> num: Real;
|
|
1552
|
+
attribute :>> mRef: ActionQuantityUnit[1];
|
|
1553
|
+
}
|
|
1554
|
+
|
|
1555
|
+
attribute actionQuantity: ActionQuantityValue[*] nonunique :> scalarQuantities;
|
|
1556
|
+
|
|
1557
|
+
attribute def ActionQuantityUnit :> DerivedUnit {
|
|
1558
|
+
private attribute lengthPF: QuantityPowerFactor[1] { :>> quantity = isq.L; :>> exponent = 2; }
|
|
1559
|
+
private attribute massPF: QuantityPowerFactor[1] { :>> quantity = isq.M; :>> exponent = 1; }
|
|
1560
|
+
private attribute durationPF: QuantityPowerFactor[1] { :>> quantity = isq.T; :>> exponent = -1; }
|
|
1561
|
+
attribute :>> quantityDimension { :>> quantityPowerFactors = (lengthPF, massPF, durationPF); }
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1564
|
+
}
|