Coverage for backend/core/auxiliary/enums/unitsLibrary.py: 87%
11 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
2from .unitsOfMeasure import UnitOfMeasure
5def get_default_unit(unitType: str) -> str:
6 """
7 Get the default unit for a given unit type
8 @unitType: UnitOfMeasure unit type
9 @return: default unit
10 """
11 if unitType == UnitOfMeasure.none or unitType not in units_library:
12 # no default unit for this unit type
13 return ""
14 return units_library[unitType][0]["value"]
16def get_unit_choices(unit_type):
17 if unit_type in units_library: 17 ↛ 19line 17 didn't jump to line 19 because the condition on line 17 was always true
18 return [(unit["value"], unit["label"]) for unit in units_library[unit_type]]
19 return []
22"""
23Units Library
25Units are stored in a dictionary where the key is the unit type and the value is a list of dictionaries.
26Each dictionary contains the unit value and label.
28value: unit value actual idaes unit value parsed as a string e.g degR
29label: This is displayed on the front end to represent the unit vlaue e.g °R
31"""
32units_library: dict[str, list[dict[str, str]]] = {
33 UnitOfMeasure.deltaTemperature: [
34 #{"value": "delta_degC", "label": "K"}, # delta_degC = delta_K
35 {"value": "delta_degC", "label": "°C"},
36 {"value": "delta_degF", "label": "°F"},
37 #{"value": "delta_degF", "label": "°R"} # delta_degF = delta_degR
38 ],
39 UnitOfMeasure.temperature: [
40 {"value": "degC", "label": "°C"},
41 {"value": "K", "label": "K"},
42 {"value": "degF", "label": "°F"},
43 {"value": "degR", "label": "°R"}
44 ],
46 UnitOfMeasure.pressure: [
47 {"value": "kPa", "label": "kPa"},
48 {"value": "Pa", "label": "Pa"},
49 {"value": "bar", "label": "bar"},
50 {"value": "MPa", "label": "MPa"},
51 {"value": "atm", "label": "atm"},
52 {"value": "mbar", "label": "mbar"},
53 {"value": "psi", "label": "psi"},
54 {"value": "mm_Hg", "label": "mmHg"},
55 {"value": "mm*water*g_0", "label": "mmH2O"},
56 {"value": "m*water*g_0", "label": "mH2O"},
57 {"value": "foot_H2O", "label": "ftH2O"},
58 {"value": "inch*water*g_0", "label": "inH2O"},
59 {"value": "inHg", "label": "inHg"},
60 {"value": "(kgf)/(cm^2)", "label": "kgf/cm²"},
61 {"value": "(lbf)/(ft^2)", "label": "lbf/ft²"},
62 ],
63 UnitOfMeasure.massflow: [
64 {"value": "kg/s", "label": "kg/s"},
65 {"value": "kg/min", "label": "kg/min"},
66 {"value": "kg/h", "label": "kg/h"},
67 {"value": "kg/d", "label": "kg/d"},
68 {"value": "g/s", "label": "g/s"},
69 {"value": "g/min", "label": "g/min"},
70 {"value": "g/h", "label": "g/h"},
71 {"value": "t/s", "label": "t/s"},
72 {"value": "t/min", "label": "t/min"},
73 {"value": "t/h", "label": "t/h"},
74 {"value": "t/d", "label": "t/d"},
75 {"value": "lb/s", "label": "lb/s"},
76 {"value": "lb/min", "label": "lb/min"},
77 {"value": "lb/h", "label": "lb/h"},
78 {"value": "lb/d", "label": "lb/d"},
79 ],
80 UnitOfMeasure.molar: [
81 {"value": "mol", "label": "mol"},
82 {"value": "kmol", "label": "kmol"},
83 ],
84 UnitOfMeasure.molarflow: [
85 {"value": "mol/s", "label": "mol/s"},
86 {"value": "mol/min", "label": "mol/min"},
87 {"value": "mol/h", "label": "mol/h"},
88 {"value": "mol/d", "label": "mol/d"},
89 {"value": "kmol/s", "label": "kmol/s"},
90 {"value": "kmol/min", "label": "kmol/min"},
91 {"value": "kmol/h", "label": "kmol/h"},
92 {"value": "kmol/d", "label": "kmol/d"},
93 ],
94 UnitOfMeasure.volumetricFlow: [
95 {"value": "m^3/s", "label": "m³/s"},
96 {"value": "m^3/min", "label": "m³/min"},
97 {"value": "m^3/h", "label": "m³/h"},
98 {"value": "m^3/d", "label": "m³/d"},
99 {"value": "L/s", "label": "L/s"},
100 {"value": "L/min", "label": "L/min"},
101 {"value": "L/h", "label": "L/h"},
102 {"value": "L/d", "label": "L/d"},
103 {"value": "cm^3/s", "label": "cm³/s"},
104 {"value": "cm^3/min", "label": "cm³/min"},
105 {"value": "cm^3/h", "label": "cm³/h"},
106 {"value": "cm^3/d", "label": "cm³/d"},
107 {"value": "gallon/s", "label": "gal/s"},
108 {"value": "gallon/min", "label": "gal/min"},
109 {"value": "gallon/h", "label": "gal/h"},
110 {"value": "gallon/d", "label": "gal/d"},
111 {"value": "ft^3/s", "label": "ft³/s"},
112 {"value": "ft^3/min", "label": "ft³/min"},
113 {"value": "ft^3/h", "label": "ft³/h"},
114 {"value": "ft^3/d", "label": "ft³/d"},
115 {"value": "bbl/s", "label": "bbl/s"},
116 {"value": "bbl/min", "label": "bbl/min"},
117 {"value": "bbl/h", "label": "bbl/h"},
118 {"value": "bbl/d", "label": "bbl/d"},
119 ],
120 UnitOfMeasure.massEnthalpy: [
121 {"value": "kJ/kg", "label": "kJ/kg"},
122 {"value": "J/kg", "label": "J/kg"},
123 {"value": "kJ/T", "label": "kJ/T"},
124 {"value": "MJ/T", "label": "MJ/T"},
125 {"value": "kcal/kg", "label": "kcal/kg"},
126 ],
127 UnitOfMeasure.molarEnthalpy: [
128 {"value": "kJ/mol", "label": "kJ/mol"},
129 {"value": "J/mol", "label": "J/mol"},
130 {"value": "MJ/mol", "label": "MJ/mol"},
131 {"value": "cal/mol", "label": "cal/mol"},
132 ],
133 UnitOfMeasure.massEntropy: [
134 {"value": "kJ/(kg.K)", "label": "kJ/[kg.K]"},
135 {"value": "J/(g.K)", "label": "J/[g.K]"},
136 {"value": "cal/(g.degC)", "label": "cal/[g.°C]"},
137 ],
138 UnitOfMeasure.molarEntropy: [
139 {"value": "kJ/(kmol.K)", "label": "kJ/[kmol.K]"},
140 {"value": "J/(mol.K)", "label": "J/[mol.K]"},
141 {"value": "cal/(mol.degC)", "label": "cal/[mol.°C]"},
142 ],
143 UnitOfMeasure.molecularWeight: [
144 {"value": "kg/kmol", "label": "kg/kmol"},
145 {"value": "g/mol", "label": "g/mol"},
146 ],
147 UnitOfMeasure.surfaceTension: [
148 {"value": "N/m", "label": "N/m"},
149 {"value": "dyn/cm", "label": "dyn/cm"},
150 {"value": "lbf/in", "label": "lbf/in"},
151 ],
152 UnitOfMeasure.density: [
153 {"value": "kg/m^3", "label": "kg/m³"},
154 {"value": "g/cm^3", "label": "g/cm³"},
155 ],
156 UnitOfMeasure.energy: [
157 {"value": "J", "label": "J"},
158 {"value": "kJ", "label": "kJ"},
159 {"value": "MJ", "label": "MJ"},
160 {"value": "GJ", "label": "GJ"},
161 ],
162 UnitOfMeasure.thermalConductivity: [
163 {"value": "W/(m.K)", "label": "W/[m.K]"},
164 {"value": "cal/(cm.s.degC)", "label": "cal/[cm.s.°C]"},
165 {"value": "BTU/(ft.h.degR)", "label": "BTU/[ft.h.°R]"},
166 ],
167 UnitOfMeasure.cinematic_viscosity: [
168 {"value": "m^2/s", "label": "m²/s"},
169 {"value": "cSt", "label": "cSt"},
170 {"value": "ft^2/s", "label": "ft²/s"},
171 {"value": "mm^2/s", "label": "mm²/s"},
172 {"value": "cm^2/s", "label": "cm²/s"},
173 ],
174 UnitOfMeasure.viscosity: [
175 {"value": "kg/(m.s)", "label": "kg/[m.s]"},
176 {"value": "Pa.s", "label": "Pa.s"},
177 {"value": "cP", "label": "cP"},
178 ],
179 UnitOfMeasure.distance: [
180 {"value": "m", "label": "m"},
181 {"value": "mm", "label": "mm"},
182 {"value": "cm", "label": "cm"},
183 {"value": "km", "label": "km"},
184 {"value": "in", "label": "in"},
185 {"value": "ft", "label": "ft"},
186 {"value": "mile", "label": "mile"},
187 ],
188 UnitOfMeasure.heatflow: [
189 {"value": "kW", "label": "kW"},
190 {"value": "W", "label": "W"},
191 {"value": "MW", "label": "MW"},
192 {"value": "GW", "label": "GW"},
193 {"value": "kJ/h", "label": "kJ/h"},
194 {"value": "kJ/d", "label": "kJ/d"},
195 {"value": "MJ/h", "label": "MJ/h"},
196 {"value": "MJ/d", "label": "MJ/d"},
197 {"value": "horsepower", "label": "HP"},
198 {"value": "cal/s", "label": "cal/s"},
199 {"value": "cal/h", "label": "cal/h"},
200 {"value": "kcal/s", "label": "kcal/s"},
201 {"value": "kcal/h", "label": "kcal/h"},
202 {"value": "kcal/d", "label": "kcal/d"},
203 {"value": "BTU/s", "label": "BTU/s"},
204 {"value": "BTU/h", "label": "BTU/h"},
205 {"value": "BTU/d", "label": "BTU/d"},
206 ],
207 UnitOfMeasure.time: [
208 {"value": "s", "label": "s"},
209 {"value": "min", "label": "min"},
210 {"value": "h", "label": "h"},
211 {"value": "d", "label": "d"},
212 {"value": "year", "label": "year"},
213 ],
214 UnitOfMeasure.volume: [
215 {"value": "m^3", "label": "m³"},
216 {"value": "cm^3", "label": "cm³"},
217 {"value": "L", "label": "L"},
218 {"value": "ft^3", "label": "ft³"},
219 ],
220 UnitOfMeasure.molar_volume: [
221 {"value": "m^3/kmol", "label": "m³/kmol"},
222 {"value": "cm^3/mmol", "label": "cm³/mmol"},
223 {"value": "L/kmol", "label": "L/kmol"},
224 ],
225 UnitOfMeasure.area: [
226 {"value": "m^2", "label": "m²"},
227 {"value": "cm^2", "label": "cm²"},
228 {"value": "hectare", "label": "hectare"},
229 {"value": "acre", "label": "acre"},
230 {"value": "ft^2", "label": "ft²"},
231 ],
232 UnitOfMeasure.head: [
233 {"value": "m", "label": "m"},
234 {"value": "ft", "label": "ft"},
235 {"value": "cm", "label": "cm"},
236 ],
237 UnitOfMeasure.diameter: [
238 {"value": "mm", "label": "mm"},
239 {"value": "in", "label": "in"},
240 ],
241 UnitOfMeasure.force: [
242 {"value": "N", "label": "N"},
243 {"value": "kN", "label": "kN"},
244 {"value": "dyn", "label": "dyn"},
245 {"value": "kgf", "label": "kgf"},
246 {"value": "lbf", "label": "lbf"},
247 ],
248 UnitOfMeasure.heat_transf_coeff: [
249 {"value": "W/(m^2.K)", "label": "W/[m².K]"},
250 {"value": "kW/(m^2.K)", "label": "kW/[m².K]"},
251 {"value": "(kg.m^2)/(K.s^3)", "label": "[kg.m²]/[K.s³]"},
252 {"value": "cal/(cm^2.s.degC)", "label": "cal/[cm².s.°C]"},
253 {"value": "BTU/(ft^2.h.degR)", "label": "BTU/[ft².h.°R]"},
254 ],
255 UnitOfMeasure.accel: [
256 {"value": "m/s^2", "label": "m/s²"},
257 {"value": "cm/s^2", "label": "cm/s²"},
258 {"value": "ft/s^2", "label": "ft/s²"},
259 ],
260 UnitOfMeasure.spec_vol: [
261 {"value": "m^3/kg", "label": "m³/kg"},
262 {"value": "cm^3/g", "label": "cm³/g"},
263 ],
264 UnitOfMeasure.molar_conc: [
265 {"value": "kmol/m^3", "label": "kmol/m³"},
266 {"value": "mol/m^3", "label": "mol/m³"},
267 {"value": "mol/L", "label": "mol/L"},
268 {"value": "mol/cm^3", "label": "mol/cm³"},
269 {"value": "mol/mL", "label": "mol/mL"},
270 ],
271 UnitOfMeasure.mass_conc: [
272 {"value": "kg/m^3", "label": "kg/m³"},
273 {"value": "g/L", "label": "g/L"},
274 {"value": "g/cm^3", "label": "g/cm³"},
275 {"value": "g/mL", "label": "g/mL"},
276 ],
277 UnitOfMeasure.reac_rate: [
278 {"value": "kmol/(m^3.s)", "label": "kmol/[m³.s]"},
279 {"value": "kmol/(m^3.min)", "label": "kmol/[m³.min]"},
280 {"value": "kmol/(m^3.h)", "label": "kmol/[m³.h]"},
281 {"value": "mol/(m^3.s)", "label": "mol/[m³.s]"},
282 {"value": "mol/(m^3.min)", "label": "mol/[m³.min]"},
283 {"value": "mol/(m^3.h)", "label": "mol/[m³.h]"},
284 {"value": "mol/(L.s)", "label": "mol/[L.s]"},
285 {"value": "mol/(L.min)", "label": "mol/[L.min]"},
286 {"value": "mol/(L.h)", "label": "mol/[L.h]"},
287 {"value": "mol/(cm^3.s)", "label": "mol/[cm³.s]"},
288 {"value": "mol/(cm^3.min)", "label": "mol/[cm³.min]"},
289 {"value": "mol/(cm^3.h)", "label": "mol/[cm³.h]"},
290 ],
291 UnitOfMeasure.molarEnthalpy: [
292 {"value": "kJ/kmol", "label": "kJ/kmol"},
293 {"value": "J/mol", "label": "J/mol"},
294 {"value": "cal/mol", "label": "cal/mol"},
295 ],
296 UnitOfMeasure.molarEnthalpyOverTime: [
297 {"value": "J/mol/s", "label": "J/mol/s"},
298 {"value": "cal/mol/s", "label": "cal/mol/s"},
299 ],
300 UnitOfMeasure.velocity: [
301 {"value": "m/s", "label": "m/s"},
302 {"value": "cm/s", "label": "cm/s"},
303 {"value": "mm/s", "label": "mm/s"},
304 {"value": "km/h", "label": "km/h"},
305 {"value": "ft/h", "label": "ft/h"},
306 {"value": "ft/min", "label": "ft/min"},
307 {"value": "ft/s", "label": "ft/s"},
308 {"value": "in/s", "label": "in/s"},
309 ],
310 UnitOfMeasure.foulingfactor: [
311 {"value": "K.m^2/W", "label": "K.m²/W"},
312 {"value": "degC.cm^2.s/cal", "label": "°C.cm².s/cal"},
313 {"value": "ft^2.h.degF/BTU", "label": "ft².h.°F/BTU"},
314 ],
315 UnitOfMeasure.cakeresistance: [
316 {"value": "m/kg", "label": "m/kg"},
317 {"value": "cm/g", "label": "cm/g"},
318 ],
319 UnitOfMeasure.mediumresistance: [
320 {"value": "m^-1", "label": "m-1"},
321 {"value": "cm^-1", "label": "cm-1"},
322 {"value": "ft^-1", "label": "ft-1"},
323 ],
324 UnitOfMeasure.thermalresistance:[
325 {"value": "K/W", "label": "K/W"},
326 {"value": "degC/W", "label": "°C/W"},
327 ],
328 UnitOfMeasure.mass: [
329 {"value": "kg", "label": "kg"},
330 {"value": "g", "label": "g"},
331 {"value": "t", "label": "t"},
332 {"value": "lb", "label": "lb"},
333 ],
334 UnitOfMeasure.jouleThomsonCoefficient: [
335 {"value": "K/Pa", "label": "K/Pa"},
336 {"value": "degF/psi", "label": "°F/psi"},
337 {"value": "degC/atm", "label": "°C/atm"},
338 ],
339 UnitOfMeasure.compressibility: [
340 {"value": "Pa^-1", "label": "Pa⁻¹"},
341 {"value": "atm^-1", "label": "atm⁻¹"},
342 {"value": "kPa^-1", "label": "kPa⁻¹"},
343 {"value": "bar^-1", "label": "bar⁻¹"},
344 {"value": "MPa^-1", "label": "MPa⁻¹"},
345 {"value": "psi^-1", "label": "psi⁻¹"},
346 ],
347 UnitOfMeasure.reac_rate_heterog: [
348 {"value": "kmol/(kg.s)", "label": "kmol/[kg.s]"},
349 {"value": "kmol/(kg.min)", "label": "kmol/[kg.min]"},
350 {"value": "kmol/(kg.h)", "label": "kmol/[kg.h]"},
351 {"value": "mol/(kg.s)", "label": "mol/[kg.s]"},
352 {"value": "mol/(kg.min)", "label": "mol/[kg.min]"},
353 {"value": "mol/(kg.h)", "label": "mol/[kg.h]"},
354 ],
355 UnitOfMeasure.conductance: [
356 {"value": "(kg/s)/(Pa^0.5)", "label": "[kg/s]/[Pa⁰⋅⁵]"},
357 {"value": "(kg/h)/(atm^0.5)", "label": "[kg/h]/[atm⁰⋅⁵]"},
358 {"value": "(kg/h)/(bar^0.5)", "label": "[kg/h]/[bar⁰⋅⁵]"},
359 {"value": "(kg/h)/((kgf/cm^2)^0.5)", "label": "[kg/h]/[[kgf/cm²]⁰⋅⁵]"},
360 ],
361 UnitOfMeasure.ratio: [
362 {"value": "dimensionless", "label": "-"},
363 {"value": "percent", "label": "%"},
364 {"value": "ppm", "label": "ppm"},
365 ],
366 UnitOfMeasure.rpm: [
367 {"value": "Hz", "label": "Hz"},
368 {"value": "1/minute", "label": "rpm"},
369 ],
370 UnitOfMeasure.thickness: [
371 {"value": "mm", "label": "mm"},
372 {"value": "m", "label": "m"},
373 {"value": "in", "label": "in"},
374 ],
375 UnitOfMeasure.irradiance:[
376 {"value":"kW/m^2", "label":"kW/m^2"}
377 ],
378 UnitOfMeasure.valveCoefficient: [
379 {"value": "mol/s/(Pa^0.5)", "label": "mol/s/[Pa⁰⋅⁵]"},
380 ],
381 UnitOfMeasure.electric:[
382 { "value": "kg*m^2*(s^-3)*(A^-1)", "label": "kV"},
383 {"value": "kg^-1 * m^-2 * s^3 * A^2", "label": "S"},
384 {"value": "1 * (C/s)", "label": "A"}
385 ],
386 UnitOfMeasure.battery_capacity:[
387 { "value": "kWh", "label": "kWh"},
388 {"value": "J", "label": "J"}
389 ],
390}