import numpy as np try: import pymc as pm except: pass from ..model._base._base import BaseModel class BaseComponents(BaseModel): CONSTANT = { 'T_offset' : 273.15, 'h_ads' : 2200, # kJ/kg 吸附热(文献中硅胶约为2100–2300 kJ/kg,接近水蒸气冷凝潜热) 'c_p_air' : 1.05, # kJ/kg·K 空气比热容 'c_p_v' : 1.84, # kJ/kg·K 水蒸气比热容 'c_p_water': 4.18, # kJ/kg·K 水比热容(约4.18) 'rho_air' : 1.184, # kg/m3 取了25度下的空气密度 } def __init__(self,name) -> None: super().__init__() self.name = name @classmethod def get_func_by_engine(cls,engine:str) -> dict: if engine == 'pymc': EXP = pm.math.exp WHERE = pm.math.switch GT = pm.math.gt LT = pm.math.lt else: EXP = np.exp WHERE = np.where GT = np.greater LT = np.less return { 'EXP' : EXP, 'WHERE' : WHERE, 'GT' : GT, 'LT' : LT, }