|
楼主 |
发表于 2005-9-24 15:39:14
|
显示全部楼层
chemkin的solver的问题
15.1.2 0-D 反应器的修改过的牛顿下山法
牛顿方法确定迭代或近似解的序列来接近真实解。 为方便记忆, 我们叫这些近似解为矢量φ。当任意φ被代入控制方程方程一般不等于零,除非φ代表真实解; 一般来说方程等于一个残余的矢量F。下一步是目标发现能满足下式的φ:
F(φ)=0 (15-1)
0-D同质反应器的矢量φ可能是:
φ={ξj,…, ξNPSR}T (15-2)
其中:
ξj={T,Te,Y1,…,Ykg,Zks(1),…..}T
T和Te是气体和电子的温度,Y’s是气体物质质量分数,Z’s是各表面相的表面分数,X’s是固相物质的摩尔分数,ρ是表面相的密度可变段的表面密度。解矢量的确切的组成也许随问题类型和反应器模型变化。未知数的总数J由方程8-66定义 。对应的矢量F由对应的气体能量方程, 电子能量方程, 物质方程和表面密度的连续性方程的残差组成。
假设解答的初值φ(0)是相当好的,牛顿方法会导致一系列迭代值{φ(n)}收敛于非线性方程Fφ(n)=0。牛顿算法的最标准的格式通常难以真正实施。
φ(n+1)=φ(n)-F(φ(n))/(ΔF/Δφ)φ(n) (15-4)
评估Jacobian 矩阵ΔF/Δφ很费时, 并且收敛一般要求有一个非常好的初值φ(n). TWOPNT 有对这些问题的通常补救方法。 首先, TWOPNT 保留几步迭代的Jacobian 矩阵, 而不是依照方程15-10每步迭代都更新。因而, 当前使用的Jacobian矩阵J(n)可能是基于几步之前的解。 用户可以在输入文件中指定TWOPNT在计算新Jacobian矩阵以前迭代的最大步数。 其次, 由φ(n)向φ(n+1)的推进由因子λ(n)缩短。 修改过的牛顿算法成为
φ(n+1)=φ(n)-λ(n)(J(n))-1F((n)) (15-5)
0<λ(n)<=1,且
J(n)=(ΔF/Δφ)φ(n) 1<m≤n (15-6)
在内部, 每当老Jacobian收敛失败TWOPNT 将引起新Jacobian。 当式15-11 正确地表明两步迭代间的联系时, TWOPNT 不计算Jacobian 矩阵的逆矩阵,而是对未阻尼的矢量Δφ(n)求解线性方程系统J(n)Δφ(n)= F((n))。
TWOPNT 算法确定衰减系数λ(n)和基于严格标准设计的保持迭代稳定和在解的范围之内的新Jacobian的需要。 接受一步新的迭代解φ(n+1), TWOPNT 要求未衰减的步幅的要在数量级上减少。
如果解φ(n+1)未通过标准, TWOPNT 拒绝和它以一半衰减参数值或一个新Jacobian 矩阵再进行尝试。TWOPNT 调整衰减参数保证解总在解域内。物理 量对解域限制如:温度必须为正,物质的质量分数必须在0和1之间。对于稳态求解器,其实可能修改物质的质量分数的最小值轻微地为负值。允许某些物质摩尔分数略为负值有时可提高迭代收敛速度, 特别在物质质量分数存在几个数量级的差别时。
牛顿迭代法就这样进行着直到符合用户定义的收敛标准。 收敛要求最大修正矢量Δφ(n)减少到了在用户定义的绝对残差和相对残差之内。
Abs(Δφ)≤max(A,R×abs(φ)) (15-8)
A是绝对残差,B是相对残差。 相对残差大致表明在收敛解中有效数字的位数,绝对残差从相对收敛标准中去掉解中的小于A的组分。 一般地, 绝对残差应该小于任何关心的物质的最大质量分数。 用户在为离子解指定A时应该特别小心, 比起其他重要物质来说,电子质量很小,导致电子的质量分数更小。 相对残差一般取在1.0E-3 到1.0E-4的范围。
如果衰减无法得到适当的修正矢量, TWOPNT 计算一个新的Jacobian矩阵 。之后若牛顿下山仍然无法得到适当的修正矢量, TWOPNT 开始采取时间步进值。 时间步进的详细做法在下面对Jacobian 矩阵的描述之后。
|
|