_base_components.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import numpy as np
  2. try:
  3. import pymc as pm
  4. except:
  5. pass
  6. from ..model._base._base import BaseModel
  7. class BaseComponents(BaseModel):
  8. CONSTANT = {
  9. 'T_offset' : 273.15,
  10. 'h_ads' : 2200, # kJ/kg 吸附热(文献中硅胶约为2100–2300 kJ/kg,接近水蒸气冷凝潜热)
  11. 'c_p_air' : 1.05, # kJ/kg·K 空气比热容
  12. 'c_p_v' : 1.84, # kJ/kg·K 水蒸气比热容
  13. 'c_p_water': 4.18, # kJ/kg·K 水比热容(约4.18)
  14. 'rho_air' : 1.184, # kg/m3 取了25度下的空气密度
  15. }
  16. def __init__(self,name) -> None:
  17. super().__init__()
  18. self.name = name
  19. def get_func_by_engine(engine:str) -> dict:
  20. if engine == 'pymc':
  21. EXP = pm.math.exp
  22. WHERE = pm.math.switch
  23. GT = pm.math.gt
  24. LT = pm.math.lt
  25. else:
  26. EXP = np.exp
  27. WHERE = np.where
  28. GT = np.greater
  29. LT = np.less
  30. return {
  31. 'EXP' : EXP,
  32. 'WHERE' : WHERE,
  33. 'GT' : GT,
  34. 'LT' : LT,
  35. }