Coverage for backend/django/core/auxiliary/enums/unitsLibrary.py: 100%
11 statements
« prev ^ index » next coverage.py v7.10.7, created at 2026-07-22 05:22 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2026-07-22 05:22 +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:
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/minute", "label": "kg/minute"},
66 {"value": "kg/h", "label": "kg/h"},
67 {"value": "kg/d", "label": "kg/d"},
68 {"value": "g/s", "label": "g/s"},
69 {"value": "g/minute", "label": "g/minute"},
70 {"value": "g/h", "label": "g/h"},
71 {"value": "t/s", "label": "t/s"},
72 {"value": "t/minute", "label": "t/minute"},
73 {"value": "t/h", "label": "t/h"},
74 {"value": "t/d", "label": "t/d"},
75 {"value": "lb/s", "label": "lb/s"},
76 {"value": "lb/minute", "label": "lb/minute"},
77 {"value": "lb/h", "label": "lb/h"},
78 {"value": "lb/d", "label": "lb/d"},
79 ],
80 UnitOfMeasure.massFlux: [
81 {"value": "kg/(m^2*s)", "label": "kg/[m².s]"},
82 {"value": "kg/(m^2*h)", "label": "kg/[m².h]"},
83 {"value": "g/(m^2*s)", "label": "g/[m².s]"},
84 {"value": "g/(m^2*h)", "label": "g/[m².h]"},
85 {"value": "lb/(ft^2*h)", "label": "lb/[ft².h]"},
86 ],
87 UnitOfMeasure.molar: [
88 {"value": "mol", "label": "mol"},
89 {"value": "kmol", "label": "kmol"},
90 ],
91 UnitOfMeasure.molarflow: [
92 {"value": "mol/s", "label": "mol/s"},
93 {"value": "mol/minute", "label": "mol/minute"},
94 {"value": "mol/h", "label": "mol/h"},
95 {"value": "mol/d", "label": "mol/d"},
96 {"value": "kmol/s", "label": "kmol/s"},
97 {"value": "kmol/minute", "label": "kmol/minute"},
98 {"value": "kmol/h", "label": "kmol/h"},
99 {"value": "kmol/d", "label": "kmol/d"},
100 ],
101 UnitOfMeasure.volumetricFlow: [
102 {"value": "m^3/s", "label": "m³/s"},
103 {"value": "m^3/minute", "label": "m³/min"},
104 {"value": "m^3/h", "label": "m³/h"},
105 {"value": "m^3/d", "label": "m³/d"},
106 {"value": "L/s", "label": "L/s"},
107 {"value": "L/minute", "label": "L/minute"},
108 {"value": "L/h", "label": "L/h"},
109 {"value": "L/d", "label": "L/d"},
110 {"value": "cm^3/s", "label": "cm³/s"},
111 {"value": "cm^3/minute", "label": "cm³/min"},
112 {"value": "cm^3/h", "label": "cm³/h"},
113 {"value": "cm^3/d", "label": "cm³/d"},
114 {"value": "gallon/s", "label": "gal/s"},
115 {"value": "gallon/minute", "label": "gal/min"},
116 {"value": "gallon/h", "label": "gal/h"},
117 {"value": "gallon/d", "label": "gal/d"},
118 {"value": "ft^3/s", "label": "ft³/s"},
119 {"value": "ft^3/minute", "label": "ft³/min"},
120 {"value": "ft^3/h", "label": "ft³/h"},
121 {"value": "ft^3/d", "label": "ft³/d"},
122 {"value": "bbl/s", "label": "bbl/s"},
123 {"value": "bbl/minute", "label": "bbl/minute"},
124 {"value": "bbl/h", "label": "bbl/h"},
125 {"value": "bbl/d", "label": "bbl/d"},
126 ],
127 UnitOfMeasure.massEnthalpy: [
128 {"value": "kJ/kg", "label": "kJ/kg"},
129 {"value": "J/kg", "label": "J/kg"},
130 {"value": "kJ/T", "label": "kJ/T"},
131 {"value": "MJ/T", "label": "MJ/T"},
132 {"value": "kcal/kg", "label": "kcal/kg"},
133 ],
134 UnitOfMeasure.molarEnthalpy: [
135 {"value": "kJ/mol", "label": "kJ/mol"},
136 {"value": "J/mol", "label": "J/mol"},
137 {"value": "MJ/mol", "label": "MJ/mol"},
138 {"value": "cal/mol", "label": "cal/mol"},
139 ],
140 UnitOfMeasure.massEntropy: [
141 {"value": "kJ/(kg.K)", "label": "kJ/[kg.K]"},
142 {"value": "J/(g.K)", "label": "J/[g.K]"},
143 {"value": "cal/(g.degC)", "label": "cal/[g.°C]"},
144 ],
145 UnitOfMeasure.molarEntropy: [
146 {"value": "kJ/(kmol.K)", "label": "kJ/[kmol.K]"},
147 {"value": "J/(mol.K)", "label": "J/[mol.K]"},
148 {"value": "cal/(mol.degC)", "label": "cal/[mol.°C]"},
149 ],
150 UnitOfMeasure.molecularWeight: [
151 {"value": "kg/kmol", "label": "kg/kmol"},
152 {"value": "g/mol", "label": "g/mol"},
153 ],
154 UnitOfMeasure.surfaceTension: [
155 {"value": "N/m", "label": "N/m"},
156 {"value": "dyn/cm", "label": "dyn/cm"},
157 {"value": "lbf/in", "label": "lbf/in"},
158 ],
159 UnitOfMeasure.density: [
160 {"value": "kg/m^3", "label": "kg/m³"},
161 {"value": "g/cm^3", "label": "g/cm³"},
162 ],
163 UnitOfMeasure.energy: [
164 {"value": "J", "label": "J"},
165 {"value": "kJ", "label": "kJ"},
166 {"value": "MJ", "label": "MJ"},
167 {"value": "GJ", "label": "GJ"},
168 ],
169 UnitOfMeasure.thermalConductivity: [
170 {"value": "W/(m.K)", "label": "W/[m.K]"},
171 {"value": "cal/(cm.s.degC)", "label": "cal/[cm.s.°C]"},
172 {"value": "BTU/(ft.h.degR)", "label": "BTU/[ft.h.°R]"},
173 ],
174 UnitOfMeasure.cinematic_viscosity: [
175 {"value": "m^2/s", "label": "m²/s"},
176 {"value": "cSt", "label": "cSt"},
177 {"value": "ft^2/s", "label": "ft²/s"},
178 {"value": "mm^2/s", "label": "mm²/s"},
179 {"value": "cm^2/s", "label": "cm²/s"},
180 ],
181 UnitOfMeasure.viscosity: [
182 {"value": "kg/(m.s)", "label": "kg/[m.s]"},
183 {"value": "Pa.s", "label": "Pa.s"},
184 {"value": "cP", "label": "cP"},
185 ],
186 UnitOfMeasure.distance: [
187 {"value": "m", "label": "m"},
188 {"value": "mm", "label": "mm"},
189 {"value": "cm", "label": "cm"},
190 {"value": "km", "label": "km"},
191 {"value": "in", "label": "in"},
192 {"value": "ft", "label": "ft"},
193 {"value": "mile", "label": "mile"},
194 ],
195 UnitOfMeasure.heatflow: [
196 {"value": "kW", "label": "kW"},
197 {"value": "W", "label": "W"},
198 {"value": "MW", "label": "MW"},
199 {"value": "GW", "label": "GW"},
200 {"value": "kJ/h", "label": "kJ/h"},
201 {"value": "kJ/d", "label": "kJ/d"},
202 {"value": "MJ/h", "label": "MJ/h"},
203 {"value": "MJ/d", "label": "MJ/d"},
204 {"value": "horsepower", "label": "HP"},
205 {"value": "cal/s", "label": "cal/s"},
206 {"value": "cal/h", "label": "cal/h"},
207 {"value": "kcal/s", "label": "kcal/s"},
208 {"value": "kcal/h", "label": "kcal/h"},
209 {"value": "kcal/d", "label": "kcal/d"},
210 {"value": "BTU/s", "label": "BTU/s"},
211 {"value": "BTU/h", "label": "BTU/h"},
212 {"value": "BTU/d", "label": "BTU/d"},
213 ],
214 UnitOfMeasure.time: [
215 {"value": "s", "label": "s"},
216 {"value": "minute", "label": "minute"},
217 {"value": "h", "label": "h"},
218 {"value": "d", "label": "d"},
219 {"value": "year", "label": "year"},
220 ],
221 UnitOfMeasure.volume: [
222 {"value": "m^3", "label": "m³"},
223 {"value": "cm^3", "label": "cm³"},
224 {"value": "L", "label": "L"},
225 {"value": "ft^3", "label": "ft³"},
226 ],
227 UnitOfMeasure.molar_volume: [
228 {"value": "m^3/kmol", "label": "m³/kmol"},
229 {"value": "cm^3/mmol", "label": "cm³/mmol"},
230 {"value": "L/kmol", "label": "L/kmol"},
231 ],
232 UnitOfMeasure.area: [
233 {"value": "m^2", "label": "m²"},
234 {"value": "cm^2", "label": "cm²"},
235 {"value": "hectare", "label": "hectare"},
236 {"value": "acre", "label": "acre"},
237 {"value": "ft^2", "label": "ft²"},
238 ],
239 UnitOfMeasure.head: [
240 {"value": "m", "label": "m"},
241 {"value": "ft", "label": "ft"},
242 {"value": "cm", "label": "cm"},
243 ],
244 UnitOfMeasure.diameter: [
245 {"value": "mm", "label": "mm"},
246 {"value": "in", "label": "in"},
247 ],
248 UnitOfMeasure.force: [
249 {"value": "N", "label": "N"},
250 {"value": "kN", "label": "kN"},
251 {"value": "dyn", "label": "dyn"},
252 {"value": "kgf", "label": "kgf"},
253 {"value": "lbf", "label": "lbf"},
254 ],
255 UnitOfMeasure.heat_transf_coeff: [
256 {"value": "W/(m^2.K)", "label": "W/[m².K]"},
257 {"value": "kW/(m^2.K)", "label": "kW/[m².K]"},
258 {"value": "(kg.m^2)/(K.s^3)", "label": "[kg.m²]/[K.s³]"},
259 {"value": "cal/(cm^2.s.degC)", "label": "cal/[cm².s.°C]"},
260 {"value": "BTU/(ft^2.h.degR)", "label": "BTU/[ft².h.°R]"},
261 ],
262 UnitOfMeasure.accel: [
263 {"value": "m/s^2", "label": "m/s²"},
264 {"value": "cm/s^2", "label": "cm/s²"},
265 {"value": "ft/s^2", "label": "ft/s²"},
266 ],
267 UnitOfMeasure.spec_vol: [
268 {"value": "m^3/kg", "label": "m³/kg"},
269 {"value": "cm^3/g", "label": "cm³/g"},
270 ],
271 UnitOfMeasure.molar_conc: [
272 {"value": "kmol/m^3", "label": "kmol/m³"},
273 {"value": "mol/m^3", "label": "mol/m³"},
274 {"value": "mol/L", "label": "mol/L"},
275 {"value": "mol/cm^3", "label": "mol/cm³"},
276 {"value": "mol/mL", "label": "mol/mL"},
277 ],
278 UnitOfMeasure.mass_conc: [
279 {"value": "kg/m^3", "label": "kg/m³"},
280 {"value": "g/L", "label": "g/L"},
281 {"value": "g/cm^3", "label": "g/cm³"},
282 {"value": "g/mL", "label": "g/mL"},
283 ],
284 UnitOfMeasure.reac_rate: [
285 {"value": "kmol/(m^3.s)", "label": "kmol/[m³.s]"},
286 {"value": "kmol/(m^3.minute)", "label": "kmol/[m³.min]"},
287 {"value": "kmol/(m^3.h)", "label": "kmol/[m³.h]"},
288 {"value": "mol/(m^3.s)", "label": "mol/[m³.s]"},
289 {"value": "mol/(m^3.minute)", "label": "mol/[m³.min]"},
290 {"value": "mol/(m^3.h)", "label": "mol/[m³.h]"},
291 {"value": "mol/(L.s)", "label": "mol/[L.s]"},
292 {"value": "mol/(L.minute)", "label": "mol/[L.minute]"},
293 {"value": "mol/(L.h)", "label": "mol/[L.h]"},
294 {"value": "mol/(cm^3.s)", "label": "mol/[cm³.s]"},
295 {"value": "mol/(cm^3.minute)", "label": "mol/[cm³.min]"},
296 {"value": "mol/(cm^3.h)", "label": "mol/[cm³.h]"},
297 ],
298 UnitOfMeasure.molarEnthalpy: [
299 {"value": "kJ/kmol", "label": "kJ/kmol"},
300 {"value": "J/mol", "label": "J/mol"},
301 {"value": "cal/mol", "label": "cal/mol"},
302 ],
303 UnitOfMeasure.molarEnthalpyOverTime: [
304 {"value": "J/mol/s", "label": "J/mol/s"},
305 {"value": "cal/mol/s", "label": "cal/mol/s"},
306 ],
307 UnitOfMeasure.velocity: [
308 {"value": "m/s", "label": "m/s"},
309 {"value": "cm/s", "label": "cm/s"},
310 {"value": "mm/s", "label": "mm/s"},
311 {"value": "km/h", "label": "km/h"},
312 {"value": "ft/h", "label": "ft/h"},
313 {"value": "ft/minute", "label": "ft/minute"},
314 {"value": "ft/s", "label": "ft/s"},
315 {"value": "in/s", "label": "in/s"},
316 ],
317 UnitOfMeasure.foulingfactor: [
318 {"value": "K.m^2/W", "label": "K.m²/W"},
319 {"value": "degC.cm^2.s/cal", "label": "°C.cm².s/cal"},
320 {"value": "ft^2.h.degF/BTU", "label": "ft².h.°F/BTU"},
321 ],
322 UnitOfMeasure.cakeresistance: [
323 {"value": "m/kg", "label": "m/kg"},
324 {"value": "cm/g", "label": "cm/g"},
325 ],
326 UnitOfMeasure.mediumresistance: [
327 {"value": "m^-1", "label": "m-1"},
328 {"value": "cm^-1", "label": "cm-1"},
329 {"value": "ft^-1", "label": "ft-1"},
330 ],
331 UnitOfMeasure.thermalresistance:[
332 {"value": "K/W", "label": "K/W"},
333 {"value": "degC/W", "label": "°C/W"},
334 ],
335 UnitOfMeasure.mass: [
336 {"value": "kg", "label": "kg"},
337 {"value": "g", "label": "g"},
338 {"value": "t", "label": "t"},
339 {"value": "lb", "label": "lb"},
340 ],
341 UnitOfMeasure.jouleThomsonCoefficient: [
342 {"value": "K/Pa", "label": "K/Pa"},
343 {"value": "degF/psi", "label": "°F/psi"},
344 {"value": "degC/atm", "label": "°C/atm"},
345 ],
346 UnitOfMeasure.compressibility: [
347 {"value": "Pa^-1", "label": "Pa⁻¹"},
348 {"value": "atm^-1", "label": "atm⁻¹"},
349 {"value": "kPa^-1", "label": "kPa⁻¹"},
350 {"value": "bar^-1", "label": "bar⁻¹"},
351 {"value": "MPa^-1", "label": "MPa⁻¹"},
352 {"value": "psi^-1", "label": "psi⁻¹"},
353 ],
354 UnitOfMeasure.reac_rate_heterog: [
355 {"value": "kmol/(kg.s)", "label": "kmol/[kg.s]"},
356 {"value": "kmol/(kg.minute)", "label": "kmol/[kg.minute]"},
357 {"value": "kmol/(kg.h)", "label": "kmol/[kg.h]"},
358 {"value": "mol/(kg.s)", "label": "mol/[kg.s]"},
359 {"value": "mol/(kg.minute)", "label": "mol/[kg.minute]"},
360 {"value": "mol/(kg.h)", "label": "mol/[kg.h]"},
361 ],
362 UnitOfMeasure.conductance: [
363 {"value": "(kg/s)/(Pa^0.5)", "label": "[kg/s]/[Pa⁰⋅⁵]"},
364 {"value": "(kg/h)/(atm^0.5)", "label": "[kg/h]/[atm⁰⋅⁵]"},
365 {"value": "(kg/h)/(bar^0.5)", "label": "[kg/h]/[bar⁰⋅⁵]"},
366 {"value": "(kg/h)/((kgf/cm^2)^0.5)", "label": "[kg/h]/[[kgf/cm²]⁰⋅⁵]"},
367 ],
368 UnitOfMeasure.ratio: [
369 {"value": "dimensionless", "label": "-"},
370 {"value": "percent", "label": "%"},
371 {"value": "ppm", "label": "ppm"},
372 ],
373 UnitOfMeasure.rpm: [
374 {"value": "Hz", "label": "Hz"},
375 {"value": "1/minute", "label": "rpm"},
376 ],
377 UnitOfMeasure.thickness: [
378 {"value": "mm", "label": "mm"},
379 {"value": "m", "label": "m"},
380 {"value": "in", "label": "in"},
381 ],
382 UnitOfMeasure.irradiance:[
383 {"value":"kW/m^2", "label":"kW/m^2"}
384 ],
385 UnitOfMeasure.valveCoefficient: [
386 {"value": "mol/s/(Pa^0.5)", "label": "mol/s/[Pa⁰⋅⁵]"},
387 ],
388 UnitOfMeasure.electric:[
389 { "value": "kg*m^2*(s^-3)*(A^-1)", "label": "kV"},
390 {"value": "kg^-1 * m^-2 * s^3 * A^2", "label": "S"},
391 {"value": "1 * (C/s)", "label": "A"}
392 ],
393 UnitOfMeasure.battery_capacity:[
394 { "value": "kWh", "label": "kWh"},
395 {"value": "J", "label": "J"}
396 ],
397 UnitOfMeasure.solventPermeability: [
398 {"value": "m/(Pa*s)", "label": "m/(Pa·s)"},
399 {"value": "L/(m^2*h*bar)", "label": "LMH/bar"}
400 ],
401 UnitOfMeasure.currency: [
402 {"value": "dollar", "label": "$"},
403 {"value": "megadollar", "label": "M$"},
404 ],
405 UnitOfMeasure.powerPrice: [
406 {"value": "dollar/GJ", "label": "$/GJ"},
407 {"value": "dollar/MJ", "label": "$/MJ"},
408 {"value": "dollar/kWh", "label": "$/kWh"},
409 {"value": "dollar/MWh", "label": "$/MWh"},
410 {"value": "dollar/GWh", "label": "$/GWh"},
411 ],
412 UnitOfMeasure.costRate: [
413 {"value": "dollar/s", "label": "$/s"},
414 {"value": "dollar/h", "label": "$/h"},
415 {"value": "dollar/d", "label": "$/day"},
416 {"value": "dollar/year", "label": "$/year"},
417 {"value": "megadollar/year", "label": "M$/year"},
418 ],
419}