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

1 

2from .unitsOfMeasure import UnitOfMeasure 

3 

4 

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"] 

15 

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 [] 

20 

21 

22""" 

23Units Library 

24 

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. 

27 

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 

30 

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 ], 

45 

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}