qnty 0.0.8__py3-none-any.whl → 0.1.0__py3-none-any.whl
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.
- qnty/__init__.py +140 -59
- qnty/constants/__init__.py +10 -0
- qnty/constants/numerical.py +18 -0
- qnty/constants/solvers.py +6 -0
- qnty/constants/tests.py +6 -0
- qnty/dimensions/__init__.py +23 -0
- qnty/dimensions/base.py +97 -0
- qnty/dimensions/field_dims.py +126 -0
- qnty/dimensions/field_dims.pyi +128 -0
- qnty/dimensions/signature.py +111 -0
- qnty/equations/__init__.py +4 -0
- qnty/equations/equation.py +220 -0
- qnty/equations/system.py +130 -0
- qnty/expressions/__init__.py +40 -0
- qnty/expressions/formatter.py +188 -0
- qnty/expressions/functions.py +74 -0
- qnty/expressions/nodes.py +701 -0
- qnty/expressions/types.py +70 -0
- qnty/extensions/plotting/__init__.py +0 -0
- qnty/extensions/reporting/__init__.py +0 -0
- qnty/problems/__init__.py +145 -0
- qnty/problems/composition.py +1031 -0
- qnty/problems/problem.py +695 -0
- qnty/problems/rules.py +145 -0
- qnty/problems/solving.py +1216 -0
- qnty/problems/validation.py +127 -0
- qnty/quantities/__init__.py +29 -0
- qnty/quantities/base_qnty.py +677 -0
- qnty/quantities/field_converters.py +24004 -0
- qnty/quantities/field_qnty.py +1012 -0
- qnty/quantities/field_setter.py +12320 -0
- qnty/quantities/field_vars.py +6325 -0
- qnty/quantities/field_vars.pyi +4191 -0
- qnty/solving/__init__.py +0 -0
- qnty/solving/manager.py +96 -0
- qnty/solving/order.py +403 -0
- qnty/solving/solvers/__init__.py +13 -0
- qnty/solving/solvers/base.py +82 -0
- qnty/solving/solvers/iterative.py +165 -0
- qnty/solving/solvers/simultaneous.py +475 -0
- qnty/units/__init__.py +1 -0
- qnty/units/field_units.py +10507 -0
- qnty/units/field_units.pyi +2461 -0
- qnty/units/prefixes.py +203 -0
- qnty/{unit.py → units/registry.py} +89 -61
- qnty/utils/__init__.py +16 -0
- qnty/utils/caching/__init__.py +23 -0
- qnty/utils/caching/manager.py +401 -0
- qnty/utils/error_handling/__init__.py +66 -0
- qnty/utils/error_handling/context.py +39 -0
- qnty/utils/error_handling/exceptions.py +96 -0
- qnty/utils/error_handling/handlers.py +171 -0
- qnty/utils/logging.py +40 -0
- qnty/utils/protocols.py +164 -0
- qnty/utils/scope_discovery.py +420 -0
- qnty-0.1.0.dist-info/METADATA +199 -0
- qnty-0.1.0.dist-info/RECORD +60 -0
- qnty/dimension.py +0 -186
- qnty/equation.py +0 -297
- qnty/expression.py +0 -553
- qnty/prefixes.py +0 -229
- qnty/unit_types/base.py +0 -47
- qnty/units.py +0 -8113
- qnty/variable.py +0 -300
- qnty/variable_types/base.py +0 -58
- qnty/variable_types/expression_variable.py +0 -106
- qnty/variable_types/typed_variable.py +0 -87
- qnty/variables.py +0 -2298
- qnty/variables.pyi +0 -6148
- qnty-0.0.8.dist-info/METADATA +0 -355
- qnty-0.0.8.dist-info/RECORD +0 -19
- /qnty/{unit_types → extensions}/__init__.py +0 -0
- /qnty/{variable_types → extensions/integration}/__init__.py +0 -0
- {qnty-0.0.8.dist-info → qnty-0.1.0.dist-info}/WHEEL +0 -0
qnty/__init__.py
CHANGED
@@ -2,17 +2,26 @@
|
|
2
2
|
Qnty - High-Performance Unit System for Engineering
|
3
3
|
====================================================
|
4
4
|
|
5
|
-
A fast, type-safe unit system library for Python with dimensional safety
|
6
|
-
and optimized unit conversions for engineering calculations.
|
5
|
+
A fast, type-safe unit system library for Python with dimensional safety and optimized unit conversions for engineering calculations.
|
7
6
|
"""
|
8
7
|
|
9
|
-
from .
|
10
|
-
|
11
|
-
from .
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
8
|
+
# from . import (quantity, expressions)
|
9
|
+
|
10
|
+
from .expressions import (
|
11
|
+
abs_expr,
|
12
|
+
cond_expr,
|
13
|
+
cos,
|
14
|
+
exp,
|
15
|
+
ln,
|
16
|
+
log10,
|
17
|
+
max_expr,
|
18
|
+
min_expr,
|
19
|
+
sin,
|
20
|
+
sqrt,
|
21
|
+
tan,
|
22
|
+
)
|
23
|
+
from .problems import Problem
|
24
|
+
from .quantities.field_vars import (
|
16
25
|
AbsorbedDose,
|
17
26
|
Acceleration,
|
18
27
|
ActivationEnergy,
|
@@ -27,6 +36,9 @@ from .variables import (
|
|
27
36
|
Concentration,
|
28
37
|
Dimensionless,
|
29
38
|
DynamicFluidity,
|
39
|
+
ElectricalConductance,
|
40
|
+
ElectricalPermittivity,
|
41
|
+
ElectricalResistivity,
|
30
42
|
ElectricCapacitance,
|
31
43
|
ElectricCharge,
|
32
44
|
ElectricCurrentIntensity,
|
@@ -35,9 +47,6 @@ from .variables import (
|
|
35
47
|
ElectricInductance,
|
36
48
|
ElectricPotential,
|
37
49
|
ElectricResistance,
|
38
|
-
ElectricalConductance,
|
39
|
-
ElectricalPermittivity,
|
40
|
-
ElectricalResistivity,
|
41
50
|
EnergyFlux,
|
42
51
|
EnergyHeatWork,
|
43
52
|
EnergyPerUnitArea,
|
@@ -119,56 +128,128 @@ from .variables import (
|
|
119
128
|
VolumetricFlowRate,
|
120
129
|
VolumetricFlux,
|
121
130
|
VolumetricMassFlowRate,
|
122
|
-
Wavenumber
|
131
|
+
Wavenumber,
|
123
132
|
)
|
124
133
|
|
125
|
-
# Register all units to the global registry
|
126
|
-
register_all_units(registry)
|
127
|
-
|
128
|
-
# Finalize registry after all registrations
|
129
|
-
registry.finalize_registration()
|
130
|
-
|
131
134
|
# Define public API
|
132
135
|
__all__ = [
|
133
|
-
|
134
|
-
"
|
135
|
-
"
|
136
|
-
|
137
|
-
|
138
|
-
"
|
139
|
-
"
|
140
|
-
"
|
141
|
-
|
142
|
-
|
143
|
-
"
|
144
|
-
"
|
145
|
-
"
|
146
|
-
"
|
147
|
-
"
|
148
|
-
"
|
149
|
-
"
|
150
|
-
"
|
151
|
-
"
|
152
|
-
"
|
153
|
-
"
|
154
|
-
"
|
155
|
-
"
|
156
|
-
"
|
157
|
-
"
|
158
|
-
"
|
159
|
-
"
|
160
|
-
"
|
161
|
-
"
|
162
|
-
"
|
163
|
-
"
|
164
|
-
"
|
165
|
-
"
|
166
|
-
"
|
167
|
-
"
|
168
|
-
"
|
169
|
-
"
|
170
|
-
"
|
171
|
-
"
|
136
|
+
"abs_expr",
|
137
|
+
"min_expr",
|
138
|
+
"max_expr",
|
139
|
+
"cond_expr",
|
140
|
+
"sin",
|
141
|
+
"cos",
|
142
|
+
"tan",
|
143
|
+
"sqrt",
|
144
|
+
"ln",
|
145
|
+
"log10",
|
146
|
+
"exp",
|
147
|
+
"Problem",
|
148
|
+
"AbsorbedDose",
|
149
|
+
"Acceleration",
|
150
|
+
"ActivationEnergy",
|
151
|
+
"AmountOfSubstance",
|
152
|
+
"AnglePlane",
|
153
|
+
"AngleSolid",
|
154
|
+
"AngularAcceleration",
|
155
|
+
"AngularMomentum",
|
156
|
+
"Area",
|
157
|
+
"AreaPerUnitVolume",
|
158
|
+
"AtomicWeight",
|
159
|
+
"Concentration",
|
160
|
+
"Dimensionless",
|
161
|
+
"DynamicFluidity",
|
162
|
+
"ElectricalConductance",
|
163
|
+
"ElectricalPermittivity",
|
164
|
+
"ElectricalResistivity",
|
165
|
+
"ElectricCapacitance",
|
166
|
+
"ElectricCharge",
|
167
|
+
"ElectricCurrentIntensity",
|
168
|
+
"ElectricDipoleMoment",
|
169
|
+
"ElectricFieldStrength",
|
170
|
+
"ElectricInductance",
|
171
|
+
"ElectricPotential",
|
172
|
+
"ElectricResistance",
|
173
|
+
"EnergyFlux",
|
174
|
+
"EnergyHeatWork",
|
175
|
+
"EnergyPerUnitArea",
|
176
|
+
"Force",
|
177
|
+
"ForceBody",
|
178
|
+
"ForcePerUnitMass",
|
179
|
+
"FrequencyVoltageRatio",
|
180
|
+
"FuelConsumption",
|
181
|
+
"HeatOfCombustion",
|
182
|
+
"HeatOfFusion",
|
183
|
+
"HeatOfVaporization",
|
184
|
+
"HeatTransferCoefficient",
|
185
|
+
"Illuminance",
|
186
|
+
"KineticEnergyOfTurbulence",
|
187
|
+
"Length",
|
188
|
+
"LinearMassDensity",
|
189
|
+
"LinearMomentum",
|
190
|
+
"LuminanceSelf",
|
191
|
+
"LuminousFlux",
|
192
|
+
"LuminousIntensity",
|
193
|
+
"MagneticField",
|
194
|
+
"MagneticFlux",
|
195
|
+
"MagneticInductionFieldStrength",
|
196
|
+
"MagneticMoment",
|
197
|
+
"MagneticPermeability",
|
198
|
+
"MagnetomotiveForce",
|
199
|
+
"Mass",
|
200
|
+
"MassDensity",
|
201
|
+
"MassFlowRate",
|
202
|
+
"MassFlux",
|
203
|
+
"MassFractionOfI",
|
204
|
+
"MassTransferCoefficient",
|
205
|
+
"MolalityOfSoluteI",
|
206
|
+
"MolarConcentrationByMass",
|
207
|
+
"MolarFlowRate",
|
208
|
+
"MolarFlux",
|
209
|
+
"MolarHeatCapacity",
|
210
|
+
"MolarityOfI",
|
211
|
+
"MoleFractionOfI",
|
212
|
+
"MomentOfInertia",
|
213
|
+
"MomentumFlowRate",
|
214
|
+
"MomentumFlux",
|
215
|
+
"NormalityOfSolution",
|
216
|
+
"ParticleDensity",
|
217
|
+
"Percent",
|
218
|
+
"Permeability",
|
219
|
+
"PhotonEmissionRate",
|
220
|
+
"PowerPerUnitMass",
|
221
|
+
"PowerPerUnitVolume",
|
222
|
+
"PowerThermalDuty",
|
223
|
+
"Pressure",
|
224
|
+
"RadiationDoseEquivalent",
|
225
|
+
"RadiationExposure",
|
226
|
+
"Radioactivity",
|
227
|
+
"SecondMomentOfArea",
|
228
|
+
"SecondRadiationConstantPlanck",
|
229
|
+
"SpecificEnthalpy",
|
230
|
+
"SpecificGravity",
|
231
|
+
"SpecificHeatCapacityConstantPressure",
|
232
|
+
"SpecificLength",
|
233
|
+
"SpecificSurface",
|
234
|
+
"SpecificVolume",
|
235
|
+
"Stress",
|
236
|
+
"SurfaceMassDensity",
|
237
|
+
"SurfaceTension",
|
238
|
+
"Temperature",
|
239
|
+
"ThermalConductivity",
|
240
|
+
"Time",
|
241
|
+
"Torque",
|
242
|
+
"TurbulenceEnergyDissipationRate",
|
243
|
+
"VelocityAngular",
|
244
|
+
"VelocityLinear",
|
245
|
+
"ViscosityDynamic",
|
246
|
+
"ViscosityKinematic",
|
247
|
+
"Volume",
|
248
|
+
"VolumeFractionOfI",
|
249
|
+
"VolumetricCalorificHeatingValue",
|
250
|
+
"VolumetricCoefficientOfExpansion",
|
251
|
+
"VolumetricFlowRate",
|
252
|
+
"VolumetricFlux",
|
253
|
+
"VolumetricMassFlowRate",
|
172
254
|
"Wavenumber",
|
173
255
|
]
|
174
|
-
|
@@ -0,0 +1,10 @@
|
|
1
|
+
"""
|
2
|
+
Mathematical and numerical constants used throughout the qnty library.
|
3
|
+
|
4
|
+
This module centralizes magic numbers and tolerances to improve maintainability
|
5
|
+
and consistency across the codebase.
|
6
|
+
"""
|
7
|
+
|
8
|
+
from .numerical import *
|
9
|
+
from .solvers import *
|
10
|
+
from .tests import *
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Numerical tolerances for floating point comparisons
|
2
|
+
FLOAT_EQUALITY_TOLERANCE = 1e-10
|
3
|
+
"""Default tolerance for floating point equality comparisons."""
|
4
|
+
|
5
|
+
DIVISION_BY_ZERO_THRESHOLD = 1e-15
|
6
|
+
"""Threshold below which a value is considered effectively zero for division."""
|
7
|
+
|
8
|
+
CONDITION_EVALUATION_THRESHOLD = 1e-10
|
9
|
+
"""Threshold for evaluating conditional expressions as true/false."""
|
10
|
+
|
11
|
+
DIMENSIONAL_PRECISION_TOLERANCE = 1e-10
|
12
|
+
"""Tolerance for dimensional signature comparisons."""
|
13
|
+
|
14
|
+
PREFIX_LOOKUP_TOLERANCE = 1e-10
|
15
|
+
"""Default tolerance for SI prefix factor lookup."""
|
16
|
+
|
17
|
+
PREFIX_LOOKUP_MIN_TOLERANCE = 1e-15
|
18
|
+
"""Minimum tolerance for SI prefix factor lookup to avoid expensive searches."""
|
qnty/constants/tests.py
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
"""
|
2
|
+
Core Dimensions Module
|
3
|
+
======================
|
4
|
+
|
5
|
+
Core dimensional analysis components providing compile-time type safety.
|
6
|
+
|
7
|
+
This module provides the fundamental building blocks for qnty's dimensional analysis system:
|
8
|
+
- BaseDimension: Prime-number-encoded base dimensions
|
9
|
+
- DimensionSignature: Ultra-fast dimensional compatibility checking
|
10
|
+
"""
|
11
|
+
|
12
|
+
from .base import BASE_DIMENSIONS, DIMENSION_SYMBOLS, PRIME_MAP, BaseDimension, DimensionConfig
|
13
|
+
from .field_dims import * # noqa: F403
|
14
|
+
from .signature import DimensionSignature
|
15
|
+
|
16
|
+
__all__ = (
|
17
|
+
"BaseDimension",
|
18
|
+
"DimensionSignature",
|
19
|
+
"DimensionConfig",
|
20
|
+
"BASE_DIMENSIONS",
|
21
|
+
"DIMENSION_SYMBOLS",
|
22
|
+
"PRIME_MAP"
|
23
|
+
)
|
qnty/dimensions/base.py
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
"""
|
2
|
+
Base Dimensions
|
3
|
+
===============
|
4
|
+
|
5
|
+
Core base dimensions using prime number encoding for efficient dimensional analysis.
|
6
|
+
|
7
|
+
This file contains the fundamental dimensional primitives for the qnty system.
|
8
|
+
"""
|
9
|
+
|
10
|
+
from dataclasses import dataclass
|
11
|
+
from enum import IntEnum
|
12
|
+
from types import MappingProxyType
|
13
|
+
|
14
|
+
|
15
|
+
class BaseDimension(IntEnum):
|
16
|
+
"""Base dimensions as prime numbers for efficient bit operations."""
|
17
|
+
|
18
|
+
DIMENSIONLESS = 1 # Must be 1 to act as identity
|
19
|
+
LENGTH = 2
|
20
|
+
MASS = 3
|
21
|
+
TIME = 5
|
22
|
+
CURRENT = 7
|
23
|
+
TEMPERATURE = 11
|
24
|
+
AMOUNT = 13
|
25
|
+
LUMINOSITY = 17
|
26
|
+
|
27
|
+
|
28
|
+
@dataclass(frozen=True)
|
29
|
+
class DimensionConfig:
|
30
|
+
"""Immutable configuration for a base dimension."""
|
31
|
+
prime: BaseDimension
|
32
|
+
params: MappingProxyType[str, int]
|
33
|
+
|
34
|
+
|
35
|
+
# Immutable dimension symbols for display
|
36
|
+
DIMENSION_SYMBOLS: MappingProxyType[str, str] = MappingProxyType(
|
37
|
+
{
|
38
|
+
"length": "L",
|
39
|
+
"mass": "M",
|
40
|
+
"time": "T",
|
41
|
+
"current": "A",
|
42
|
+
"temp": "Θ",
|
43
|
+
"amount": "N",
|
44
|
+
"luminosity": "J",
|
45
|
+
}
|
46
|
+
)
|
47
|
+
|
48
|
+
# Immutable base dimensions configuration for generators
|
49
|
+
BASE_DIMENSIONS: MappingProxyType[str, DimensionConfig] = MappingProxyType(
|
50
|
+
{
|
51
|
+
"LENGTH": DimensionConfig(
|
52
|
+
BaseDimension.LENGTH,
|
53
|
+
MappingProxyType({"length": 1})
|
54
|
+
),
|
55
|
+
"MASS": DimensionConfig(
|
56
|
+
BaseDimension.MASS,
|
57
|
+
MappingProxyType({"mass": 1})
|
58
|
+
),
|
59
|
+
"TIME": DimensionConfig(
|
60
|
+
BaseDimension.TIME,
|
61
|
+
MappingProxyType({"time": 1})
|
62
|
+
),
|
63
|
+
"CURRENT": DimensionConfig(
|
64
|
+
BaseDimension.CURRENT,
|
65
|
+
MappingProxyType({"current": 1})
|
66
|
+
),
|
67
|
+
"TEMPERATURE": DimensionConfig(
|
68
|
+
BaseDimension.TEMPERATURE,
|
69
|
+
MappingProxyType({"temp": 1})
|
70
|
+
),
|
71
|
+
"AMOUNT": DimensionConfig(
|
72
|
+
BaseDimension.AMOUNT,
|
73
|
+
MappingProxyType({"amount": 1})
|
74
|
+
),
|
75
|
+
"LUMINOSITY": DimensionConfig(
|
76
|
+
BaseDimension.LUMINOSITY,
|
77
|
+
MappingProxyType({"luminosity": 1})
|
78
|
+
),
|
79
|
+
"DIMENSIONLESS": DimensionConfig(
|
80
|
+
BaseDimension.DIMENSIONLESS,
|
81
|
+
MappingProxyType({})
|
82
|
+
),
|
83
|
+
}
|
84
|
+
)
|
85
|
+
|
86
|
+
# Immutable prime mapping for signature calculations
|
87
|
+
PRIME_MAP: MappingProxyType[str, BaseDimension] = MappingProxyType(
|
88
|
+
{
|
89
|
+
"length": BaseDimension.LENGTH,
|
90
|
+
"mass": BaseDimension.MASS,
|
91
|
+
"time": BaseDimension.TIME,
|
92
|
+
"current": BaseDimension.CURRENT,
|
93
|
+
"temp": BaseDimension.TEMPERATURE,
|
94
|
+
"amount": BaseDimension.AMOUNT,
|
95
|
+
"luminosity": BaseDimension.LUMINOSITY,
|
96
|
+
}
|
97
|
+
)
|
@@ -0,0 +1,126 @@
|
|
1
|
+
"""
|
2
|
+
Dimension System
|
3
|
+
================
|
4
|
+
|
5
|
+
Compile-time dimensional analysis using type system for ultra-fast operations.
|
6
|
+
|
7
|
+
This file contains dimension constants for all engineering fields.
|
8
|
+
"""
|
9
|
+
|
10
|
+
from .signature import DimensionSignature
|
11
|
+
|
12
|
+
# Dimension signature constants - computed from prime factorization
|
13
|
+
_SIGNATURES: dict[str, int | float] = {
|
14
|
+
"ABSORBED_DOSE": 0.16, # L^2 T^-2
|
15
|
+
"ACCELERATION": 0.08, # L T^-2
|
16
|
+
"ACTIVATION_ENERGY": 0.01230769231, # N^-1 L^2 T^-2
|
17
|
+
"AMOUNT_OF_SUBSTANCE": 13, # N
|
18
|
+
"ANGLE_PLANE": 1, # Dimensionless
|
19
|
+
"ANGLE_SOLID": 1, # Dimensionless
|
20
|
+
"ANGULAR_ACCELERATION": 0.04, # T^-2
|
21
|
+
"ANGULAR_MOMENTUM": 2.4, # L^2 M T^-1
|
22
|
+
"AREA": 4, # L^2
|
23
|
+
"AREA_PER_UNIT_VOLUME": 0.5, # L^-1
|
24
|
+
"ATOMIC_WEIGHT": 0.2307692308, # N^-1 M
|
25
|
+
"CONCENTRATION": 0.375, # L^-3 M
|
26
|
+
"DIMENSIONLESS": 1, # Dimensionless
|
27
|
+
"DYNAMIC_FLUIDITY": 3.333333333, # L M^-1 T
|
28
|
+
"ELECTRIC_CAPACITANCE": 2552.083333, # A^2 L^-2 M^-1 T^4
|
29
|
+
"ELECTRIC_CHARGE": 2.692307692, # N^-1 A T
|
30
|
+
"ELECTRIC_CURRENT_INTENSITY": 7, # A
|
31
|
+
"ELECTRIC_DIPOLE_MOMENT": 70, # A L T
|
32
|
+
"ELECTRIC_FIELD_STRENGTH": 0.006857142857, # A^-1 L M T^-3
|
33
|
+
"ELECTRIC_INDUCTANCE": 0.009795918367, # A^-2 L^2 M T^-2
|
34
|
+
"ELECTRIC_POTENTIAL": 0.01371428571, # A^-1 L^2 M T^-3
|
35
|
+
"ELECTRIC_RESISTANCE": 0.001959183673, # A^-2 L^2 M T^-3
|
36
|
+
"ELECTRICAL_CONDUCTANCE": 510.4166667, # A^2 L^-2 M^-1 T^3
|
37
|
+
"ELECTRICAL_PERMITTIVITY": 1276.041667, # A^2 L^-3 M^-1 T^4
|
38
|
+
"ELECTRICAL_RESISTIVITY": 0.003918367347, # A^-2 L^3 M T^-3
|
39
|
+
"ENERGY_FLUX": 0.024, # M T^-3
|
40
|
+
"ENERGY_HEAT_WORK": 0.48, # L^2 M T^-2
|
41
|
+
"ENERGY_PER_UNIT_AREA": 0.12, # M T^-2
|
42
|
+
"FORCE": 0.24, # L M T^-2
|
43
|
+
"FORCE_BODY": 0.03, # L^-2 M T^-2
|
44
|
+
"FORCE_PER_UNIT_MASS": 0.08, # L T^-2
|
45
|
+
"FREQUENCY_VOLTAGE_RATIO": 72.91666667, # A L^-2 M^-1 T^3
|
46
|
+
"FUEL_CONSUMPTION": 0.25, # L^-2
|
47
|
+
"HEAT_OF_COMBUSTION": 0.16, # L^2 T^-2
|
48
|
+
"HEAT_OF_FUSION": 0.16, # L^2 T^-2
|
49
|
+
"HEAT_OF_VAPORIZATION": 0.16, # L^2 T^-2
|
50
|
+
"HEAT_TRANSFER_COEFFICIENT": 0.002181818182, # M Θ^-1 T^-3
|
51
|
+
"ILLUMINANCE": 0.25, # L^-2 L
|
52
|
+
"KINETIC_ENERGY_OF_TURBULENCE": 0.16, # L^2 T^-2
|
53
|
+
"LENGTH": 2, # L
|
54
|
+
"LINEAR_MASS_DENSITY": 1.5, # L^-1 M
|
55
|
+
"LINEAR_MOMENTUM": 1.2, # L M T^-1
|
56
|
+
"LUMINANCE_SELF": 0.25, # L^-2 L
|
57
|
+
"LUMINOUS_FLUX": 1, # L
|
58
|
+
"LUMINOUS_INTENSITY": 1, # L
|
59
|
+
"MAGNETIC_FIELD": 3.5, # A L^-1
|
60
|
+
"MAGNETIC_FLUX": 0.06857142857, # A^-1 L^2 M T^-2
|
61
|
+
"MAGNETIC_INDUCTION_FIELD_STRENGTH": 0.01714285714, # A^-1 M T^-2
|
62
|
+
"MAGNETIC_MOMENT": 28, # A L^2
|
63
|
+
"MAGNETIC_PERMEABILITY": 0.009795918367, # A^-2 L^2 M T^-2
|
64
|
+
"MAGNETOMOTIVE_FORCE": 7, # A
|
65
|
+
"MASS": 3, # M
|
66
|
+
"MASS_DENSITY": 0.375, # L^-3 M
|
67
|
+
"MASS_FLOW_RATE": 0.6, # M T^-1
|
68
|
+
"MASS_FLUX": 0.15, # L^-2 M T^-1
|
69
|
+
"MASS_FRACTION_OF_I": 1, # Dimensionless
|
70
|
+
"MASS_TRANSFER_COEFFICIENT": 0.15, # L^-2 M T^-1
|
71
|
+
"MOLALITY_OF_SOLUTE_I": 4.333333333, # N M^-1
|
72
|
+
"MOLAR_CONCENTRATION_BY_MASS": 13, # N
|
73
|
+
"MOLAR_FLOW_RATE": 2.6, # N T^-1
|
74
|
+
"MOLAR_FLUX": 0.65, # N L^-2 T^-1
|
75
|
+
"MOLAR_HEAT_CAPACITY": 0.001118881119, # N^-1 L^2 Θ^-1 T^-2
|
76
|
+
"MOLARITY_OF_I": 1.625, # N L^-3
|
77
|
+
"MOLE_FRACTION_OF_I": 1, # Dimensionless
|
78
|
+
"MOMENT_OF_INERTIA": 12, # L^2 M
|
79
|
+
"MOMENTUM_FLOW_RATE": 0.24, # L M T^-2
|
80
|
+
"MOMENTUM_FLUX": 0.06, # L^-1 M T^-2
|
81
|
+
"NORMALITY_OF_SOLUTION": 1.625, # N L^-3
|
82
|
+
"PARTICLE_DENSITY": 0.125, # L^-3
|
83
|
+
"PERCENT": 1, # Dimensionless
|
84
|
+
"PERMEABILITY": 4, # L^2
|
85
|
+
"PHOTON_EMISSION_RATE": 0.05, # L^-2 T^-1
|
86
|
+
"POWER_PER_UNIT_MASS": 0.032, # L^2 T^-3
|
87
|
+
"POWER_PER_UNIT_VOLUME": 0.012, # L^-1 M T^-3
|
88
|
+
"POWER_THERMAL_DUTY": 0.096, # L^2 M T^-3
|
89
|
+
"PRESSURE": 0.06, # L^-1 M T^-2
|
90
|
+
"RADIATION_DOSE_EQUIVALENT": 0.16, # L^2 T^-2
|
91
|
+
"RADIATION_EXPOSURE": 11.66666667, # A M^-1 T
|
92
|
+
"RADIOACTIVITY": 0.2, # T^-1
|
93
|
+
"SECOND_MOMENT_OF_AREA": 16, # L^4
|
94
|
+
"SECOND_RADIATION_CONSTANT_PLANCK": 22, # L Θ
|
95
|
+
"SPECIFIC_ENTHALPY": 0.16, # L^2 T^-2
|
96
|
+
"SPECIFIC_GRAVITY": 1, # Dimensionless
|
97
|
+
"SPECIFIC_HEAT_CAPACITY_CONSTANT_PRESSURE": 0.04363636364, # L^2 M Θ^-1 T^-2
|
98
|
+
"SPECIFIC_LENGTH": 0.6666666667, # L M^-1
|
99
|
+
"SPECIFIC_SURFACE": 1.333333333, # L^2 M^-1
|
100
|
+
"SPECIFIC_VOLUME": 2.666666667, # L^3 M^-1
|
101
|
+
"STRESS": 0.06, # L^-1 M T^-2
|
102
|
+
"SURFACE_MASS_DENSITY": 0.75, # L^-2 M
|
103
|
+
"SURFACE_TENSION": 0.12, # M T^-2
|
104
|
+
"TEMPERATURE": 11, # Θ
|
105
|
+
"THERMAL_CONDUCTIVITY": 0.528, # L M Θ T^-3
|
106
|
+
"TIME": 5, # T
|
107
|
+
"TORQUE": 0.48, # L^2 M T^-2
|
108
|
+
"TURBULENCE_ENERGY_DISSIPATION_RATE": 0.032, # L^2 T^-3
|
109
|
+
"VELOCITY_ANGULAR": 0.2, # T^-1
|
110
|
+
"VELOCITY_LINEAR": 0.4, # L T^-1
|
111
|
+
"VISCOSITY_DYNAMIC": 0.3, # L^-1 M T^-1
|
112
|
+
"VISCOSITY_KINEMATIC": 0.8, # L^2 T^-1
|
113
|
+
"VOLUME": 8, # L^3
|
114
|
+
"VOLUME_FRACTION_OF_I": 1, # Dimensionless
|
115
|
+
"VOLUMETRIC_CALORIFIC_HEATING_VALUE": 0.06, # L^-1 M T^-2
|
116
|
+
"VOLUMETRIC_COEFFICIENT_OF_EXPANSION": 0.03409090909, # L^-3 M Θ^-1
|
117
|
+
"VOLUMETRIC_FLOW_RATE": 1.6, # L^3 T^-1
|
118
|
+
"VOLUMETRIC_FLUX": 0.4, # L T^-1
|
119
|
+
"VOLUMETRIC_MASS_FLOW_RATE": 0.075, # L^-3 M T^-1
|
120
|
+
"WAVENUMBER": 0.5, # L^-1
|
121
|
+
}
|
122
|
+
|
123
|
+
# Generate all dimension constants programmatically to avoid duplication
|
124
|
+
for _name, _signature in _SIGNATURES.items():
|
125
|
+
globals()[_name] = DimensionSignature(_signature)
|
126
|
+
|
@@ -0,0 +1,128 @@
|
|
1
|
+
"""
|
2
|
+
Type stubs for field_dims module.
|
3
|
+
|
4
|
+
This file provides type information for the dynamically generated dimension constants.
|
5
|
+
"""
|
6
|
+
|
7
|
+
from .signature import DimensionSignature
|
8
|
+
|
9
|
+
# Dimension signature constants lookup
|
10
|
+
_SIGNATURES: dict[str, int | float]
|
11
|
+
|
12
|
+
# Lazy loading cache
|
13
|
+
_dimension_cache: dict[str, DimensionSignature]
|
14
|
+
|
15
|
+
# Module attribute access function
|
16
|
+
def __getattr__(name: str) -> DimensionSignature: ...
|
17
|
+
|
18
|
+
# All dynamically generated dimension constants
|
19
|
+
ABSORBED_DOSE: DimensionSignature
|
20
|
+
ACCELERATION: DimensionSignature
|
21
|
+
ACTIVATION_ENERGY: DimensionSignature
|
22
|
+
AMOUNT_OF_SUBSTANCE: DimensionSignature
|
23
|
+
ANGLE_PLANE: DimensionSignature
|
24
|
+
ANGLE_SOLID: DimensionSignature
|
25
|
+
ANGULAR_ACCELERATION: DimensionSignature
|
26
|
+
ANGULAR_MOMENTUM: DimensionSignature
|
27
|
+
AREA: DimensionSignature
|
28
|
+
AREA_PER_UNIT_VOLUME: DimensionSignature
|
29
|
+
ATOMIC_WEIGHT: DimensionSignature
|
30
|
+
CONCENTRATION: DimensionSignature
|
31
|
+
DIMENSIONLESS: DimensionSignature
|
32
|
+
DYNAMIC_FLUIDITY: DimensionSignature
|
33
|
+
ELECTRIC_CAPACITANCE: DimensionSignature
|
34
|
+
ELECTRIC_CHARGE: DimensionSignature
|
35
|
+
ELECTRIC_CURRENT_INTENSITY: DimensionSignature
|
36
|
+
ELECTRIC_DIPOLE_MOMENT: DimensionSignature
|
37
|
+
ELECTRIC_FIELD_STRENGTH: DimensionSignature
|
38
|
+
ELECTRIC_INDUCTANCE: DimensionSignature
|
39
|
+
ELECTRIC_POTENTIAL: DimensionSignature
|
40
|
+
ELECTRIC_RESISTANCE: DimensionSignature
|
41
|
+
ELECTRICAL_CONDUCTANCE: DimensionSignature
|
42
|
+
ELECTRICAL_PERMITTIVITY: DimensionSignature
|
43
|
+
ELECTRICAL_RESISTIVITY: DimensionSignature
|
44
|
+
ENERGY_FLUX: DimensionSignature
|
45
|
+
ENERGY_HEAT_WORK: DimensionSignature
|
46
|
+
ENERGY_PER_UNIT_AREA: DimensionSignature
|
47
|
+
FORCE: DimensionSignature
|
48
|
+
FORCE_BODY: DimensionSignature
|
49
|
+
FORCE_PER_UNIT_MASS: DimensionSignature
|
50
|
+
FREQUENCY_VOLTAGE_RATIO: DimensionSignature
|
51
|
+
FUEL_CONSUMPTION: DimensionSignature
|
52
|
+
HEAT_OF_COMBUSTION: DimensionSignature
|
53
|
+
HEAT_OF_FUSION: DimensionSignature
|
54
|
+
HEAT_OF_VAPORIZATION: DimensionSignature
|
55
|
+
HEAT_TRANSFER_COEFFICIENT: DimensionSignature
|
56
|
+
ILLUMINANCE: DimensionSignature
|
57
|
+
KINETIC_ENERGY_OF_TURBULENCE: DimensionSignature
|
58
|
+
LENGTH: DimensionSignature
|
59
|
+
LINEAR_MASS_DENSITY: DimensionSignature
|
60
|
+
LINEAR_MOMENTUM: DimensionSignature
|
61
|
+
LUMINANCE_SELF: DimensionSignature
|
62
|
+
LUMINOUS_FLUX: DimensionSignature
|
63
|
+
LUMINOUS_INTENSITY: DimensionSignature
|
64
|
+
MAGNETIC_FIELD: DimensionSignature
|
65
|
+
MAGNETIC_FLUX: DimensionSignature
|
66
|
+
MAGNETIC_INDUCTION_FIELD_STRENGTH: DimensionSignature
|
67
|
+
MAGNETIC_MOMENT: DimensionSignature
|
68
|
+
MAGNETIC_PERMEABILITY: DimensionSignature
|
69
|
+
MAGNETOMOTIVE_FORCE: DimensionSignature
|
70
|
+
MASS: DimensionSignature
|
71
|
+
MASS_DENSITY: DimensionSignature
|
72
|
+
MASS_FLOW_RATE: DimensionSignature
|
73
|
+
MASS_FLUX: DimensionSignature
|
74
|
+
MASS_FRACTION_OF_I: DimensionSignature
|
75
|
+
MASS_TRANSFER_COEFFICIENT: DimensionSignature
|
76
|
+
MOLALITY_OF_SOLUTE_I: DimensionSignature
|
77
|
+
MOLAR_CONCENTRATION_BY_MASS: DimensionSignature
|
78
|
+
MOLAR_FLOW_RATE: DimensionSignature
|
79
|
+
MOLAR_FLUX: DimensionSignature
|
80
|
+
MOLAR_HEAT_CAPACITY: DimensionSignature
|
81
|
+
MOLARITY_OF_I: DimensionSignature
|
82
|
+
MOLE_FRACTION_OF_I: DimensionSignature
|
83
|
+
MOMENT_OF_INERTIA: DimensionSignature
|
84
|
+
MOMENTUM_FLOW_RATE: DimensionSignature
|
85
|
+
MOMENTUM_FLUX: DimensionSignature
|
86
|
+
NORMALITY_OF_SOLUTION: DimensionSignature
|
87
|
+
PARTICLE_DENSITY: DimensionSignature
|
88
|
+
PERCENT: DimensionSignature
|
89
|
+
PERMEABILITY: DimensionSignature
|
90
|
+
PHOTON_EMISSION_RATE: DimensionSignature
|
91
|
+
POWER_PER_UNIT_MASS: DimensionSignature
|
92
|
+
POWER_PER_UNIT_VOLUME: DimensionSignature
|
93
|
+
POWER_THERMAL_DUTY: DimensionSignature
|
94
|
+
PRESSURE: DimensionSignature
|
95
|
+
RADIATION_DOSE_EQUIVALENT: DimensionSignature
|
96
|
+
RADIATION_EXPOSURE: DimensionSignature
|
97
|
+
RADIOACTIVITY: DimensionSignature
|
98
|
+
SECOND_MOMENT_OF_AREA: DimensionSignature
|
99
|
+
SECOND_RADIATION_CONSTANT_PLANCK: DimensionSignature
|
100
|
+
SPECIFIC_ENTHALPY: DimensionSignature
|
101
|
+
SPECIFIC_GRAVITY: DimensionSignature
|
102
|
+
SPECIFIC_HEAT_CAPACITY_CONSTANT_PRESSURE: DimensionSignature
|
103
|
+
SPECIFIC_LENGTH: DimensionSignature
|
104
|
+
SPECIFIC_SURFACE: DimensionSignature
|
105
|
+
SPECIFIC_VOLUME: DimensionSignature
|
106
|
+
STRESS: DimensionSignature
|
107
|
+
SURFACE_MASS_DENSITY: DimensionSignature
|
108
|
+
SURFACE_TENSION: DimensionSignature
|
109
|
+
TEMPERATURE: DimensionSignature
|
110
|
+
THERMAL_CONDUCTIVITY: DimensionSignature
|
111
|
+
TIME: DimensionSignature
|
112
|
+
TORQUE: DimensionSignature
|
113
|
+
TURBULENCE_ENERGY_DISSIPATION_RATE: DimensionSignature
|
114
|
+
VELOCITY_ANGULAR: DimensionSignature
|
115
|
+
VELOCITY_LINEAR: DimensionSignature
|
116
|
+
VISCOSITY_DYNAMIC: DimensionSignature
|
117
|
+
VISCOSITY_KINEMATIC: DimensionSignature
|
118
|
+
VOLUME: DimensionSignature
|
119
|
+
VOLUME_FRACTION_OF_I: DimensionSignature
|
120
|
+
VOLUMETRIC_CALORIFIC_HEATING_VALUE: DimensionSignature
|
121
|
+
VOLUMETRIC_COEFFICIENT_OF_EXPANSION: DimensionSignature
|
122
|
+
VOLUMETRIC_FLOW_RATE: DimensionSignature
|
123
|
+
VOLUMETRIC_FLUX: DimensionSignature
|
124
|
+
VOLUMETRIC_MASS_FLOW_RATE: DimensionSignature
|
125
|
+
WAVENUMBER: DimensionSignature
|
126
|
+
|
127
|
+
# Module exports
|
128
|
+
__all__: list[str]
|