1.在反应速率里用rate_limit函数;2.初始床料中可以添加一部分碳和灰。下面给出详细解释:
1.c3m生成的化学反应速率中有一个这样的函数:
1 double precision function rate_limit( x ) 2 double precision x 3 rate_limit = x/(x + 1e-05) 4 return 5 end
manual中给出的解释是,这个函数可以缓解某些值突然减小导致的难收敛问题。举个例子:
1 RATES(moisture_release_1) = & 2 6105.92107819465d0*ROP_s(IJK,1)*X_s(IJK,1, & 3 COALMOISTURE_1)*rate_limit(X_s(IJK,1, & 4 COALMOISTURE_1))*exp(-10668.847726726d0/min(T_s(IJK, & 5 1),2500d0))
这是水气化的反应速率,rate_limit()中传入的是水的质量分数,也就是说,由水的质量分数变化带来的不稳定会被函数限制住。
我看了一下这个函数的图像,发现,x特别大的时候函数几乎水平为1,特别小时为0,在1e-5附近时在0~1之间,不是很理解这个函数具体怎么起到稳定作用的。不过此函数确实起作用,我在自己编写的nox生成反应速率的时候,不加这个函数的时候,步长到0.1*e-5都不收敛,把反应物当作参数传进去的函数乘上去之后,到0.1*e-3就能很好收敛。
2.床料体积分数为0.5,其中0.3为沙,0.2为碳和灰。这是我之前突发奇想这么设置的,没想到对收敛是很有帮助的,当我把床料全部换为沙以后到0.1e-5才能勉强收敛。思考了一下,估计是因为床料中掺混了碳以后,由于反应的发生,床料的空隙率瞬间减小,是有利于进料口进料的;不过仅仅是猜测。