【转载】FLUENT中文帮助——多重网格(赵玉新)
2017-02-19 by:CAE仿真在线 来源:互联网
非结构多重网格
在非结构网格中使用多重网格的主要困难在于粗化网格的创建和使用。在结构网格中,可以通过简单的从精细网格中移去每隔一个的网格线来得到粗化网格而且限制和延拓算子很容易用公式表示出来(如:注入和双线性插值)。
FLUENT中使用两种多重网格方法分开的方式克服了在非结构网格上应用多重网格的困难。迄今为止所讨论的基本原则和多重网格循环一节中讨论的循环策略是相同的,限制、延拓和粗化网格算子的建构技巧是不同的,具体在代数多重网格(AMG)和全近似存储(FAS)多重网格两节中分别讨论了AMG和FAS方法。
译者注:
多重网格法基本原理
微分方程的误差分量可以分为两大类,一类是频率变化较缓慢的低频分量;另一类是频率高,摆动快的高频分量。一般的迭代方法可以迅速地将摆动误差衰减,但对那些低频分量,迭代法的效果不是很显著。高频分量和低频分量是相对的,与网格尺度有关,在细网格上被视为低频的分量,在粗网格上可能为高频分量。
多重网格方法作为一种快速计算方法,迭代求解由偏微分方程组离散以后组成的代数方程组,其基本原理在于一定的网格最容易消除波长与网格步长相对应的误差分量。该方法采用不同尺度的网格,不同疏密的网格消除不同波长的误差分量,首先在细网格上采用迭代法,当收敛速度变缓慢时暗示误差已经光滑,则转移到较粗的网格上消除与该层网格上相对应的较易消除的那些误差分量,这样逐层进行下去直到消除各种误差分量,再逐层返回到细网格上。
目前两层网格方法从理论上已证明是收敛的,并且其收敛速度与网格尺度无关[哈克布思,1988]。 多重网格法是迭代法与粗网格修正的组合,经过证明,迭代法可迅速地将那些高频分量去掉,粗网格修正则可以帮助消除那些光滑了的低频分量,而对那些高频分量基本不起作用。
在多重网格计算中,需要一些媒介把细网格上的信息传递到粗网格上去,同时还需要一些媒介把粗网格上的信息传递到细网格上去。限制算子Iih(i-1)h是把细网格i-1层上的残余限制到粗网格i层上的算子,最简单的算子是平凡单射,另外还有特殊加权限制;插值算子Iih(i-1)h是把粗网格i层上的结果插值到细网格i-1层上的算子,一般采用线性插值或完全加权限制算子。
需要说明的是在多重网格迭代方法中,粗网格修正之前,细网格必须进行光滑迭代,以消除高频误差,使粗网格修正最有效地发挥其作用;在粗网格修正之后,不可避免的引入高频误差,所以也必须进行光滑迭代,不过高频误差能很快的通过光滑迭代消除。
Multigrid Cycles
多重网格循环可以定义为在每一个网格层面通过网格层次时在网格层面内应用的递归程序。FLUENT中有四种多重网格循环:V,W,F以及灵活("flex")循环。V和W循环可以用在AMG和FAS中,F和灵活循环只限用于AMG方法。(W和灵活AMG循环由于要花费大量的计算而不可用于解耦合方程组。)
The V and W Cycles
下面两个图分别是V和W多重网格循环(定义如下)。在每一个图中,多重网格循环被描述为正方形,然后被扩展来表示循环内执行的个别步骤。当你读下面的步骤时,你可能想要遵循图中所描述的步骤。
Figure 1: V循环多重网格
Figure 2: W循环多重网格
对于V和W循环,各个层面的转换由三个参数控制:b_1,b_2和b_3:
1. b_1“滤波”(有时称为预松弛扫描),在当前网格层面进行滤波减少误差(当地误差)的高频部分。
在图1和2中,这一步被描述为一个循环,并标记了多重网格循环的起点。误差的高频分量必须减小直至所剩下的误差在下一个较粗糙的网格中没有明显的混淆现象。
如果这是最粗糙的网格层面,在这个层面的多重网格循环就结束了(在图1和2中有3个粗糙网格层,所以描述层面3多重网格循环的四边形等价于每一个图中最后一个图表的循环)
注意:在AMG方法中b_1的默认值是0(即:没有预松弛)。
2. 接着就是用适当的限制算子将问题限制映射到下一个粗糙网格层面。
在图1和2中,从精细网格限制映射到较粗糙网格层面用向下的斜线来表示。
3. 通过执行b_2多重网格循环可以减少粗化网格的误差(在图1和2中用四边形表示)。通常说来,对于固定的多重网格策略,b_2是1或者2,分别对应V循环和W循环多重网格。
4. 然后,使用适当的延拓算子,在粗化网格上积累的校正用内插替换返回到精细网格并加到精细网格解中。
在图1和2中,延拓算子用斜向上的线来表示。
现在在精细网格层面上出现了高频误差,这个误差是由于延拓程序使用传递矫正而造成的。
5. 在最后一步,执行b_3光滑(后松弛)来去掉b_2网格循环在粗糙网格中引进的高频误差。
在图1和2中,松弛程序用一个三角形表示。
注意:在FAS方法中,在这一步中使用显式格式中的拉普拉斯光滑算子,校正又会被进行光滑处理,b_3的默认值是零(也就是说,不进行这种光滑处理);在最精细的网格层面的循环结束处从来不进行b_3光滑。
代数多重网格(AMG)
我们将会看到,这一算法之所以被称为代数多重网格格式,主要是因为粗糙层面方程的生成不需要在粗糙层使用任何几何图形或者重新离散;这一功能使得在使用非结构网格时AMG尤其有用。优点在于:不必创建或者存储粗糙网格,而且不需要在粗糙层面估计任何流量或者源项。这一方法和FAS (有时被称为几何学的)多重网格方法形成鲜明对比,在FAS方法中需要网格的层级,和每一个层面的离散方程。。从理论上说,FAS优于AMG方法的地方在于,对于非线性问题前者可以做得更好,这是因为系统的非线性可以通过重新离散传到粗糙层面;当使用AMG时,一旦系统被线化,直到细化层面算子被更新,求解器才会“感觉到”非线性。
AMG限制和延拓算子
这里所使用的限制和延拓算子是基于附加校正(AC)策略的,结构网格的附加校正是由Hutchinson和Raithby[68]描述的。层间的传递是用分段线性插值和延拓完成的。任何粗化层面单元的缺点由细化层面包含的缺点的总和给出的,通过注入粗化层面的值来获取细化层面的校正。在这种方式中,延拓算子由限制算子的转置给出。
限制算子是用细化层面单元粗化或者分组到粗化层面单元来定义。在这个过程中,每一个细化层面的单元用一个或者更多的最强相邻网格来分组,对当前未分组的相邻网格优先选择。这个算法尝试将单元集中到成组的固定尺寸中,一般是二或者四组,但是可以指定任何数。在分组的前后关系中,最强是指当前单元i的相邻单元j的系数A_ij是最大的。对于成组的耦合方程,A_ij是一个块矩阵,它的大小的度量被简单的看成第一个单元的大小。除此之外,对于给定单元的一组耦合方程被一起处理,而且在不同的粗糙单元中不再划分。这样,就对系统中的每一个方程产生了相同的粗化。
AMG粗糙层面算子
使用Galerkin方法来建构粗化层面算子A^H。在这里,当转移到粗化层面时,与细化层面解有关的缺陷必须消除。因此我们可以写出:
在双重时间步中的方程5和限制和延拓中的方程3的基础上替换d^new 和f^new可以得到:
现在重新整理和使用双重时间步一节中的方程5有:
比较限制和延拓一节中的方程1和方程5可以得到下面的粗化层面算子的表达式:
因此,粗化层面算子的建构减少到所有精细层面单元的对角线与组中的相应对角线下面的块之和来形成该组粗化单元的对角线块。
F循环
多重网格F循环本质上是V和W循环的结合。
多重网格循环是一个递归程序,该程序通过在当前层面完成单一网格循环来扩展到下一个粗糙网格层面。参阅V和W循环一节中的图1中的V和W循环以及图2中的V和W循环我们可以看出,F循环就是用0-1层循环(每一个图中的第二个图表)程序来替换当前层(描述单一循环)的方块。可以看出,V循环包括:
W循环包括:
F循环则是用W循环之后进行V循环来构成:
正如预料的那样,F循环比V循环需要更多的计算,但是比W循环花费要少一些。但是它的收敛性比V循环要好,大致和W循环的收敛性差不多。对于耦合求解器设置来说,F循环是默认的AMG循环类型。
灵活循环
对于灵活循环,使用粗化网格的计算由下图中所示的逻辑控制多重网格程序来实现。这一逻辑控制可以保证当前层面的网格的残差减小速度足够慢时就会调用较粗糙网格的计算。除此之外,当当前粗糙网格层上的校正迭代解充分收敛而且因此应该转到下一层精细网格时,多重网格控制会做出适当的处理。这两个判断由下图中所示的两个参数a和b来控制。详细请参阅下面内容。注意多重网格程序的逻辑是这样的:在某一方程上的单一全局迭代过程中,可能会重复处理网格层面。例如:对于4层多重网格,其中包括0,1,2,3四层,解给定输运方程的灵活多重网格程序可能会按这样的顺序处理网格层面:0-1-2-3-2-3-2-1-0-1-2-1-0:
Figure 1灵活多重网格的逻辑控制
灵活循环和V,W循环之间的主要区别是:灵活循环会通过残差减小的公差和终止判据的满足情况来确定什么时候,按什么样的频率来处理每一层网格,而V和W循环则明确定义了各个层面之间的转换模式。
当当前层面的误差减小速度不够快时,多重网格程序就会调用下一个网格层面的计算,具体判断公式如下:
其中,R_i是在当前层面经过第i步迭代之后从当前网格层面计算出的残差和的绝对值。上面的公式表明,如果经过i步迭代后迭代解的残差比某一分数b(在0和1之间)大,就需要处理下一个粗化网格层面了。因此b被称为残差减小公差,用于确定什么时候放弃当前网格层面的迭代解,并转移到下一个更粗糙的网格上解校正方程。B的值控制了处理的粗化网格层面的频率。默认值是0.7。如果b的值较大,就会处理较小的频率,反之亦然。
假定残差减小速度足够块,校正方程会在当前网格层收敛,这样就可以转到下一个更精细的网格层面计算。
当校正解的误差减小到该网格层初始误差的某一分数a(在0和1之间)时,当前网格层上的校正方程就可以被认为是充分收敛了。
其中,R_i是在当前层面经过第i步迭代之后从当前网格层面计算出的残差。R_0时在当前全局计算中该网格层面最初获得的残差。参数a被称为终止判据,默认值是0.1。注意,上面的方程也用于多重网格程序中最低(最精细)网格层面的终止计算。因此,继续在每一个网格层面(包括最精细的网格层面)进行松弛,直到满足该方程的判据(或者直到完成最大的迭代步,而所指定的判据还没有实现)。
全近似格式(FAS)多重网格
FLUENT中FAS形成多重网格层级的方法是将精细网格的成组单元结合起来形成粗化网格单元。如下图所示,粗化网格单元是用节点周围的单元聚束形成的。根据网格的拓扑结构的不同,这一方法可以形成不规则网格和不定的表面数。但是,网格层面的简单创建和植入也就对应了简单的延拓和松弛算子。
Figure 1: 节点聚束形成粗化网格单元
有趣的是,虽然粗化网格单元看起来很不规则,但是在单元表面上还是看不到锯齿状的结构。离散只使用单元表面的区域映射,因此将两个不规则外形单元分开的每组锯齿状单元表面,在二维问题中等价于连接锯齿单元终点的一条直线,在三维问题中等价于从不规则但连续的几何形状映射而来的区域。这种优化方法减少了所需的内存和计算时间。
FAS限制和延拓算子
FAS既需要精细网格解f的限制又需要其残差d(误差)的限制。这个用于将解传到下一个较粗糙的网格层面的算子是用全近似格式构成的[22]。也就是说,取精细网格单元上解的体积平均值来得到粗糙单元的解。粗糙网格上的残差等于植入的精细网格单元内的残差之和。
通过简单的设定精细网格校正为与其相关的粗糙网格的值,我们构建了用于将校正传到细化层面的延拓算子P。
粗糙网格校正y^H是从粗糙层面f^H计算得到的解和限制到粗糙层面Rf的初始解之间的差值计算得到的,它产生于粗糙层面并被应用于精细层面解。因此精细层面解的校正变成:
FAS粗化层面算子
FAS粗化网格算子是很简单的,它源于粗糙层面网格上控制方程的再离散。因为在离散一节中出现的离散方程和耦合求解器对组成单元的很多表面不加限制,所以在由不规则外形单元组成的粗糙网格上进行的再离散不存在问题。
当在不规则粗糙网格单元上使用有限体积格式时会丢失一些精度,但是因为多重网格解的精度主要有最精细的网格决定,所以解的精度不会受到粗糙网格离散的影响。
为了保持精细网格解的精度,我们修改了粗糙层面方程来包括源项[72],这就保证了如果精细网格d^h上的残差为零,那么在粗糙网格f^H上计算得到的校正也会是零。因此,粗糙网格方程用公式表示为:
其中,d^H是从当前粗糙网格解f^H中计算得到的粗糙网格残差,d^H(R f)是从限制的精细层面解R f计算得到的粗糙网格残差。起初,这两项是相同的(因为在初始时我们有f^H = R f),删除这两项化简上面的方程可得:
所以当细化网格残差d^h为零时就不会有粗化层面校正了。
打开FAS多重网格
如双重时间步进一节中所讨论的,FAS多重网格选项是耦合显式求解器的可选组件(默认情况下,AMG多重网格总是打开的)。因为在几乎所有的耦合显式计算中,如果使用FAS多重网格收敛加速器都会很有用的,因此在开始计算之前通常你都应该设定粗化网格层面是一个非零值。对于大多数问题,你只需要设定FAS多重网格参数。如果遇到收敛性困难,你可以考虑应用一下设定FAS多重网格参数一节所讨论的方法。
注意:对于显式时间步进,你不能使用FAS多重网格,这是因为粗糙网格校正会破坏精细网格解的时间精度。
设定粗糙网格层
如全近似存储(FAS)多重网格一节所述,FAS多重网格在较粗糙的网格层面较好的解决问题,然后将校正解传回到原始的精细网格,因此增加了解的传播速度,并加速收敛。控制多重网格求解器最为基本的方法就是指定所使用的粗糙网格层数。
如全近似存储多重网格一节中所解释的那样,粗糙网格是通过将一组相邻的精细单元聚束成一个粗糙单元形成的。最优的网格层数是和问题相关的。对于大多数问题,你可以以4或5层开始计算。对于大的三维问题,因为粗糙网格层需要附加的内存,所以虽然内存限制可能不让你使用更多的层面,你可能还是要加上更多的层面。如果你确信多重网格会导致收敛性困难,你可以减少层数。
如果FLUENT在达到你所要求的网格层面之前已经到了只有一个单元的粗糙网格,它就会在这里结束。也就是说,如果你设定了5个网格层面,但是第四层就只有一个单元了,那么FLUENT就只创建4层,因为第4层和第5层一样。
要指定你所要的网格层数,在解控制面板(用户输入的图1)的解参数下设定多重网格层数。菜单:Solve/Controls/Solution...。
你可以在多重网格控制面板的FAS多重网格控制中设定最大粗化层。菜单:Solve/Controls/Multigrid...。
在某一个面板中改变粗糙网格层数会自动更新其它面板中网格层数的显示。
当你第一次开始迭代时,粗糙网格层就被创建了。如果你想要检查每一层内有多少个单元,请求一个迭代,然后使用菜单Grid/Info/Size(在网格尺寸一节介绍)列出每一个网格层面的尺寸。如果你觉得满意,可以继续计算,如果不满意你可以改变粗糙网格层面的数量然后再检查。
对于大多数问题,一旦你设定了适当的粗糙网格层数,你不需要修改任何附加的多重网格参数。你可以简单的继续你的计算直至收敛。
修改代数多重网格参数
对于大多数问题来说,默认的代数多重网格设定已经足够了,但是有极小一部分问题需要对其作较小的修改。本节就是介绍如何分析多重网格求解器的行为来确定需要修改哪些参数。对于几个特定的问题还提供了推荐设定并解释如何设定多重网格参数。
分析代数多重网格求解器
如前所述,在大多数情况下,你不需要对多重网格求解器给予太多的注意。但是,如果你有收敛性的困难,或者你希望使用更为精确的设定来减少整个解算的时间,你就可以监视多重网格求解器并修改参数来提高性能。(下面所介绍的都是假定你已经开始计算,如果不存在上面提到的两种情况,你就不需要监视求解器。)
要确定修改多重网格设定是否有利于解决收敛性困难,你可以检查在每一个网格层面所要求的残差是否减小了。要最小化解算的时间,你就需要检查是否转到更强大的循环会减少整个工作量
监视代数多重网格求解器
监视求解器的步骤如下:
1. 在多重网格控制面板设定多重网格Verbosity为1或者2。菜单:Solve/Controls/Multigrid。
2. 用迭代面板请求一步迭代。菜单:Solve/Iterate...。
如果你设定verbosity为2,在控制台窗口为每一个方程打印出的信息都包括:
l 方程名字
l 方程公差(求解器用源矢量的标准化计算出来的)。
l 每一个固定的多重网格循环或者灵活循环的精细松弛之后的残差值。
l 每一个多重网格层面中方程的数目,零层原始的(最精细层面的)方程系统。
注意在循环或者松弛0处打印的残差是任何多重网格循环执行之前的初始残差。
如果verbosity被设为1,只打印方程名字、公差和残差。
下面是一个打印出来的例子的一部分:
pressure correction equation:
tol. 1.2668e-05
0 2.5336e+00
1 4.9778e-01
2 2.5863e-01
3 1.9387e-01
multigrid levels:
0 918
1 426
2 205
3 97
4 45
5 21
6 10
7 4
在默认的情况下,除了压力校正方程使用V循环之外,所有方程都使用灵活循环。最典型地,在最精细的层面灵活循环只有很少的(5-10)松弛,而且没有粗糙层面会被用到。在有些情况下,可能会有一到两个粗糙层面会被用到。如果精细层面松弛的最大数不够,你可能需要增加最大数(具体参阅改变松弛的最大数一节)或者转到V循环(参阅指定多重网格循环一节)。
对于压力校正来说,默认使用V循环。如果最大的循环数不够(默认是30),你可以使用多重网格控制面板来转到W循环(具体请参阅指定多重网格循环类型一节)。注意:对于并行求解器,W循环可能会降低效率。如果你使用并行求解器,你可以在多重网格控制面板的固定循环参数下面增加最大循环的数值来增加最大循环数。菜单:Solve/Controls/Multigrid...。
改变松弛的最大循环数
要改变松弛的最大数,请在多重网格控制面板(下图)的灵活循环参数下增加或者减少最大精细松弛或者最大粗糙松弛的数值。菜单:Solve/Controls/Multigrid...。
Figure 1: 多重网格控制面板
指定多重网格循环类型
在默认的情况下,除了压力校正方程使用V循环之外,所有方程都使用灵活循环。要改变某一方程的循环类型,你就可以用多重网格控制面板(上图)上面的部分来设定。
对于每一个方程你都可以在下拉列表中选V循环、W循环或者F循环。
设定终止和残差减少参数
当你对一个方程使用灵活循环时,你可以通过在多重网格控制面板的顶部修改该方程的终止和/或限制判据来控制多重网格的的行为(改变松弛的最大数一节中的图1)。菜单:Solve/Controls/Multigrid...。
限制判据就是灵活循环一节中的方程1的残差减少公差b。这个参数规定了什么时候必须使用粗糙网格层面(由于当前层面解的改善不明显)。对应的b值越大,粗糙层面进行的运算就越少(反之亦然)。灵活循环一节中的方程3就是终止判据,它控制了什么时候求解器应该返回到较精细的网格层面(即:在当前层面什么时候残差已经充分的改善了)。
对于V,W或者F循环,终止判据确定了是否应该在最精细的(初始的)网格层面执行另一个循环。如果最精细的层面上当前的残差不满足灵活循环一节中的方程3,而且还没有执行到最大的循环数,FLUENT将会执行另一个多重网格循环(V,W和F循环不使用限制参数)。
附加的代数网格参数
有几种附加的参数可以控制代数多重网格求解器,但是通常不需要修改它们。这些附加的参数都包含在多重网格控制面板中(改变松弛的最大数一节中的图1)。菜单:Solve/Controls/Multigrid...。
对于所有的多重网格循环类型,你可以控制粗糙层面的最大数(粗糙参数的下面的最大粗糙层),它会被多重网格求解器构建出来。直到层面的最大数被创建或者罪粗糙的层面只有3个方程了,较粗糙的联立方程组才停止构建。每一个层面大约具有前一层面的一半未知量,所以粗糙过程要一直进行到只剩几个较少的单元,这个粗糙过程需要和精细网格所需要的一样多的总粗糙层面系数存储。减少粗糙层面就会减少所需要的内存,但是就需要更多的迭代才能得到收敛解。如果将最大粗糙层面设为0就关闭了代数多重网格求解器。
你可以控制的另一个粗化参数就是在连续的层面上粗糙度的增加。“用……粗糙”的参数指定了组到一起创建一个粗糙网格单元的精细网格的单元数。这个算法将每一个单元与最邻近的单元分组,然后将它们组到一起,这样直至实现所需要的粗糙度。最典型的值在2到10之间,默认值是2,对应的性能最好但是也需要最多的内存。除非你需要减少处理问题所需要的内存,否则你不应该调节这个参数。
对于固定的(V,W和F)多重网格循环,你可以控制预松弛和后松弛数,其中分别对应V和W循环和F循环两节中的b_1和b_2。预扫掠设定了移动到粗糙层面之前需要执行的松弛数。后扫掠设定了应用粗糙层面校正之后需要执行的松弛数。一般说来只有一个后松弛而没有预松弛。
返回默认的多重网格参数
如果你已经改变了多重网格参数,但是现在你想要回到FLUENT的默认设定,你可以在多重网格控制面板中点击默认按钮。FLUENT就会将所有设定改回到默认值,此时默认按钮就会变成重置按钮。要将你的设定改回来,你就可以点击重置按钮。
设定FAS多重网格参数
对于大多数计算,一旦你已经设定了大量的粗糙网格层面,就不需要修改任何FAS多重网格参数了。但是,如果你遇到了收敛性困难,你可以考虑下面所建议的程序。注意:一定要记住FAS多重网格只用于耦合显式求解器。
解决收敛性困难
有些问题在开始是很容易的收敛,但是后来残差就变得稳定了因此解也就是不真实的。在有些情况下(如长细管道),出现这种收敛性困难往往是由于多重网格减缓了压力信息在整个流场中的传播造成的。在这种情况下,你应该在解控制面板中的解参数下设定多重网格层面为零从而关闭多重网格。菜单:Solve/Controls/Solution...。
"Industrial-Strength" FAS多重网格
在有些情况下,你会发现你的问题是收敛的但是速度极慢。如果使用多重网格传播更快的格式就会加速解校正的传播,从而能够有益于这种问题的解决。对于这类问题你可以尝试使用"industrial-strength"多重网格设置。
注意:这些设定使得解的校正传播相当快,它假定传过多重网格的解信息在某种程度上是准确的。因此,你必须在执行了足够多的迭代步之后才可以尝试这里所介绍的程序。如果使用"industrial-strength"多重网格过早,也就是说解还远远不够正确,它是不会加速收敛的而且可会造成计算的不稳定,因为每一个不正确的值都在初始网格中迅速的传播开来。还需要注意的是,这些多重网格设定会减少得到收敛解所需要的迭代步,但是对于每个多重网格循环来说是要花费大得多的时间。因此求解器会执行较少的迭代步,但每一个迭代步需要的时间更长一些。
所使用的策略如下:
l 在处理下一个更粗糙的层面之前,增加每一个网格层面的迭代数。
l 在从较粗糙的网格层面返回之前,增加每一个网格层面的迭代数。
l 从一个层面到下一个更精细的层面允许完全的校正转移,而不是转移校正的减少值。
l 从较粗糙的网格将插值校正转移到较精细网格时,不对插值校正进行光滑。
你可以在多重网格控制面板的FAS多重网格控制框中设定这一策略所需要的所有参数,然后继续计算。菜单:Solve/Controls/Multigrid...。
Figure 1: 多重网格控制面板
在进行下一个粗糙网格(V和W循环与F循环两节中所描述的b_1)处理之前增加每一个网格层面的迭代数可以改善从较精细网格层面到下一个较粗糙网格层面的解。尝试将预扫掠的值增加到10(是在FAS多重网格控制中而不是在代数多重网格控制中。
在从较粗糙网格层面返回之前增加每一个层面上的迭代数会改善从每一个较粗糙网格层到下一个较精细网格层的校正传递。因此,可以减小在较粗糙网格上引入的误差从上层网格传到初始网格的传递。尝试将预扫掠的值增加到10(是在FAS多重网格控制中而不是在代数多重网格控制中)。
在默认的情况下,多重网格的校正值并没有从较粗糙网格全部传到较精细网格:只有60%的值被传输了。这就阻止了较大的误差过快的传到初始网格而导致解变得不稳定。当然,它也会使得较好的解无法快速的传到初始网格。增加校正减少到1就可以将全部的值从较粗糙网格传到较精细网格层面了,从而加速了解的传播,通常也就加速了收敛。
当校正从粗糙网格传到较精细网格层时,在默认的情况下,是先进行插值然后进行光滑处理。取消光滑处理就可以使粗糙网格单元的真实值分配到精细网格,这样也可以有助于收敛。要关闭光滑处理,请设定校正光滑为0。附加的后扫掠处理会对单元之间的不连续性进行光滑。
附加的多重网格参数
有几种附加的参数可以控制多重网格求解器,但是通常不需要修改它们。这些附加的参数都包含在多重网格控制面板中。菜单:Solve/Controls/Multigrid...。
在默认的情况下,V循环用于流动方程中(具体请参阅多重网格循环一节关于各种可用循环的描述)。要改换到W循环,你可以在多重网格控制面板的顶部的流动后面的下拉列表中选中它("Industrial-Strength" FAS多重网格中的图1)。
在多重网格控制面板的底部的Courant数减少下设定粗糙网格层面(即:除了最精细层面)减少的Courant数因子。通常是需要时间步的一些减少的(如:默认是0.9),这是因为在不规则外形的较粗糙网格单元上无法精确确定稳定性极限。
修改多步时间步进参数
改变对多重时间步进格式控制的最常用参数就是Courant数。关于修改Courant数的说明在改变Courant数一节介绍,本节主要介绍其它不太常改变的参数的修改程序。
使用残差光滑来增加Courant数
隐式残差光滑(或者平均)可用于减少求解器的时间步限制,因此允许Courant数增加。隐式光滑是用迭代Jacobi方法来实现的,具体请参阅显式格式一节。你可以在解控制面板中控制残差光滑。菜单:Solve/Controls/Solution...。
在默认的情况下,残差光滑的迭代数为零,也就是说不进行残差光滑。如果你将迭代计数器增加到1或者更多,你可以输入光滑因子。光滑因子为0.5,且两次通过Jacobi光滑器通常就足以允许Courant数加倍了。
改变多步格式
也可能对多步时间步进格式本身作出一些改变。你可以改变步数,并为每一步设定新的多步系数。你也可以控制在每一步中是否更新耗散和粘性应力。这些改变都在多步参数面板(下图)中完成。菜单:Solve/Controls/Multi-Stage...。
注意:除非你对多步格式相当熟悉,而且有兴趣尝试一下文献中介绍的不同格式,否则你不应该对FLUENT的多步格式做任何改变。
Figure 1: 多步参数面板
在默认的情况下,FLUENT多步格式使用5步,对应的系数从第一步到第五步分别为0.25,0.166666,0.375,0.5和1.0。你可以使用在多步参数面板中的步数下面的箭头按钮减少步数。(如果你想要增加步数,你就需要使用文本界面命令solve/set/multi-stage。)对于每一步,你都可以修改系数,系数必须大于0小于1。最后一步的系数应该总是1。
对于每一步,你都可以表明是否对人工耗散和粘性应力进行估值。如果某一步对应的耗散按钮被选择了,那么在这一步就会更新人工耗散。如果没有选择,那么人工耗散仍然会保持为前一步的数值。如果某一步对应的粘性框被选择了,那么这一步就会更新粘性应力。如果没有选择,那么粘性应力仍然保持为前一步的数值。在第一步应该总是要计算粘性应力的,连续不断的估值会增加解过程的鲁棒性,但是也会增加计算花费(也就是增加了每一步迭代的CPU时间)。对于定常问题,最后的解是和粘性应力更新的步无关的。
如果你已经改变了多步参数,但是现在你想要回到FLUENT的默认格式,你可以在多步参数面板中点击默认按钮。FLUENT就会将所有设定改回到默认值,此时默认按钮就会变成重置按钮。要将你的设定改回来,你就可以点击重置按钮。
相关标签搜索:【转载】FLUENT中文帮助——多重网格(赵玉新) Fluent培训 Fluent流体培训 Fluent软件培训 fluent技术教程 fluent在线视频教程 fluent资料下载 fluent分析理论 fluent化学反应 fluent软件下载 UDF编程代做 Fluent、CFX流体分析 HFSS电磁分析