| 查看: 501 | 回复: 0 | ||
[求助]
udf中SOx代码
|
|
if (POLLUT_EQN(Pollut_Par) == EQ_SO2) 这是fluent的udf中做SOx,这个表示什么意思?没看懂。下面是完整的 static void so2_so3_rate(cell_t c, Thread* t, Pollut_Cell *Pollut, Pollut_Parameter *Pollut_Par, SOx_Parameter *SOx) {real kf,kr,rf=0,rr=0; real o_eq; real r_volatile,Ys_volatile,fuels_so2_frac; Rate_Const K_F = {1.2e6, 0.0, 39765.575}; Rate_Const K_R = {1.0e4, -1.0, 10464.625}; Rate_Const K_O = {36.64, 0.5, 27123.0}; /* SO3 + O <-> SO2 + O2 */ kf = ARRH(Pollut, K_F); kr = ARRH(Pollut, K_R); o_eq = ARRH(Pollut, K_O)*sqrt(MOLECON(Pollut, O2)); if (POLLUT_EQN(Pollut_Par) == EQ_SO2) { int ifstream; Ys_volatile = 1.e-04; fuels_so2_frac = 1.; for(ifstream=0; ifstream<Pollut_Par->nfstreams; ifstream++) { rf += Pollut->r_fuel_gls[ifstream]*SOx->Ys_fuelvolat[ifstream] *SOx->fuels_so2_frac[ifstream]*1000./Pollut_Par->sp[S].mw; } rf += kf*o_eq*MOLECON(Pollut, IDX(SO3)); rr = -kr*MOLECON(Pollut, O2)*MOLECON(Pollut, IDX(SO2)); } else if (POLLUT_EQN(Pollut_Par) == EQ_SO3) { rf = kr*MOLECON(Pollut, O2)*MOLECON(Pollut, IDX(SO2)); rr = -kf*o_eq*MOLECON(Pollut, IDX(SO3)); } POLLUT_FRATE(Pollut) += rf; POLLUT_RRATE(Pollut) += rr; } |













回复此楼