Asm
Asm
class ASM1():
self._temperature = Temp
self._bulk_DO = DO
self._params = {}
self._stoichs = {}
self._delta_t = 20 - self._temperature
self._set_params()
self._set_stoichs()
return
def _set_params(self):
self._params['K_S'] = 20
self._params['K_OH'] = 0.1
self._params['K_OA'] = 0.75
self._params['K_NO'] = 0.2
self._params['Y_H'] = 0.6
self._params['Y_A'] = 0.24
self._params['f_D_'] = 0.08
self._params['cf_h'] = 0.4
self._params['cf_g'] = 0.8
self._params['i_N_XB'] = 0.086
self._params['i_N_XD'] = 0.06
self._stoichs['0_2'] = 1
self._stoichs['0_6'] = -1 / self._params['Y_H']
self._stoichs['0_9'] = -self._params['i_N_XB']
self._stoichs['0_12'] = -self._params['i_N_XB'] / 14
self._stoichs['1_2'] = 1
self._stoichs['1_6'] = -1 / self._params['Y_H']
self._stoichs['1_9'] = -self._params['i_N_XB']
self._stoichs['1_12'] = (1 - self._params['Y_H']) \
/ (14 * 2.86 * self._params['Y_H']) \
- self._params['i_N_XB'] / 14
self._stoichs['2_3'] = 1
self._stoichs['2_8'] = 1 / self._params['Y_A']
self._stoichs['2_9'] = -self._params['i_N_XB'] \
- 1 / self._params['Y_A']
self._stoichs['2_12'] = -self._params['i_N_XB'] / 14 \
- 1 / (7 * self._params['Y_A'])
self._stoichs['3_1'] = 1 - self._params['f_D_']
self._stoichs['3_2'] = -1
self._stoichs['3_4'] = self._params['f_D_']
self._stoichs['4_1'] = 1 - self._params['f_D_']
self._stoichs['4_3'] = -1
self._stoichs['4_4'] = self._params['f_D_']
self._stoichs['5_9'] = 1
self._stoichs['5_10'] = -1
self._stoichs['5_12'] = 1 / 14
self._stoichs['6_1'] = -1
self._stoichs['6_6'] = 1
self._stoichs['7_10'] = 1
self._stoichs['7_11'] = -1
def _rate0_X_I(self):
return 0
def _rate1_X_S(self):
return self._stoichs['3_1'] * self._r3_DLH() \
+ self._stoichs['4_1'] * self._r4_DLA() \
+ self._stoichs['6_1'] * self._r6_HydX()
def _rate2_X_BH(self):
return self._stoichs['0_2'] * self._r0_AerGH() \
+ self._stoichs['1_2'] * self._r1_AxGH() \
+ self._stoichs['3_2'] * self._r3_DLH()
def _rate3_X_BA(self):
return self._stoichs['2_3'] * self._r2_AerGA() \
+ self._stoichs['4_3'] * self._r4_DLA()
def _rate4_X_D(self):
return self._stoichs['3_4'] * self._r3_DLH() \
+ self._stoichs['4_4'] * self._r4_DLA()
def _rate5_S_I(self):
return 0
def _rate6_S_S(self):
return self._stoichs['0_6'] * self._r0_AerGH() \
+ self._stoichs['1_6'] * self._r1_AxGH() \
+ self._stoichs['6_6'] * self._r6_HydX()
def _rate7_S_DO(self):
return self._stoichs['0_7'] * self._r0_AerGH() \
+ self._stoichs['2_7'] * self._r2_AerGA()
def _rate8_S_NO(self):
return self._stoichs['1_8'] * self._r1_AxGH() \
+ self._stoichs['2_8'] * self._r2_AerGA()
def _rate9_S_NH(self):
return self._stoichs['0_9'] * self._r0_AerGH() \
+ self._stoichs['1_9'] * self._r1_AxGH() \
+ self._stoichs['2_9'] * self._r2_AerGA() \
+ self._stoichs['5_9'] * self._r5_AmmSN()
def _rate10_S_NS(self):
return self._stoichs['5_10'] * self._r5_AmmSN() \
+ self._stoichs['7_10'] * self._r7_HydXN()
def _rate11_X_NS(self):
return self._stoichs['3_11'] * self._r3_DLH() \
+ self._stoichs['4_11'] * self._r4_DLA() \
+ self._stoichs['7_11'] * self._r7_HydXN()
def _rate12_S_Alk(self):
return self._stoichs['0_12'] * self._r0_AerGH() \
+ self._stoichs['1_12'] * self._r1_AxGH() \
+ self._stoichs['2_12'] * self._r2_AerGA() \
+ self._stoichs['5_123'] * self._r5_AmmSN()
self._temperature = Temp
self._bulk_DO = DO
self._delta_t = 20 - self._temperature
self._param = self._set_params()
self._stoich = self._set_stoichs()
return None
def get_params(self):
return self._params
def get_stoichs(self):
return self._stoichs
def get_all_comps(self):
#TODO: Need to determine where to provide GetAllComponents(), in
# ASMReactor or here?
return self._comps.copy()
def get_bulk_DO(self):
return self._bulk_DO