215548076.doc
注意:在创建和裁剪周期性边界条件之后,保存新的case文件(如果有数据文件也要保存)。要匹配一对边界条件,请使用如下创建周期性文本命令:Grid/modify-zones/make-periodic。你需要指定组成匹配的成对边界条件的两个表面区域(你可以输入它们的全名或仅仅是他们的ID,并指出它们是旋转性还是平移性边界条件。你指定周期性区域和该周期的匹配域(shadow)的顺序并不重要。 /grid/modify-zones> mp Periodic zone [()] 1 Shadow zone [()] 4
Rotational periodic? (if no, translational) [yes] n Create periodic zones? [yes] yes
computed translation deltas: -2.000000 -2.000000 all 10 faces matched for zones 1 and 4. zone 4 deleted
Created periodic zones.
当你创建周期性边界时,解算器会检查所选区域内的表面是否匹配(也就是说相应表面的节点是否一致)。表面匹配的公差是表面边缘最小长度的分数倍。如果周期性边界条件创建失败,你可以用matching-tolerance命令改变匹配公差,但是匹配公差不可以超过0.5,否则周期性区域匹配将不正确,并且会破坏网格。菜单:Grid/modify-zones/matching-tolerance。
剪裁(slit)周期性区域
如果你想将周期性成对区域解耦你可以使用剪裁周期性命令:Grid/modify-zones/slit-periodic。然后你指定周期性区域的名字或者ID,解算器就会将两个区域解耦,然后将它们改为两个对称性区域。 /grid/modify-zones> sp periodic zone [()] periodic-1 Separated periodic zone.
熔合(Fusing)表面区域
在组合多重网格区域之后,表面熔合是一个很方便的功能,它可以将边界熔合将节点和表面合并。当区域被分为子区域,并且每一个子区域分别产生网格时,你需要在将网格读入解算器之前,把子区域结合为一个文件。(详细内容请参阅多重网格文件一节。比如说:在你产生多块网格的每一块并且将它们分别保存在不同的网格文件中,或者在网格生成过程中,为复杂几何图形的每一部分保存一个网格文件(注意:在子区域接触的位置,网格节点的位置在边界处不必相同,具体内容请参阅非一致网格一节),就需要熔合表面区域。点击菜单Grid/Fuse...弹出下面面板,允许你将双重节点合并,并将人工内部边界删除。
Figure 1: 熔合表面区域面板
如读入多重网格文件一节所叙述的,当网格文件被合并起来时,双重节点所在的边界被分配给区域ID号(就像任何其它边界一样)。你需要在tmerge或者TGrid报告过程中明了区域的ID号,或者当全部的网格被读入之后,显示所有边界网格区域并用鼠标指针按钮确定边界的名字(详细内容请参阅关于鼠标按钮函数信息控制的鼠标按钮函数)。
熔合表面区域所需要输入的东西 熔合表面区域的步骤如下:
1. 在区域列表中选择要熔合的区域。 2. 点击Fuse按钮熔合所选区域。
如果使用默认公差没有熔合所有适当的表面,你应该增加公差尝试重新熔合。(这一公差和创建周期性区域所讨论的匹配公差一致)。公差不应该超过0.5,或者你可能熔合了错误的节点。千万要记住熔合表面之后保存新文件!!!
46
215548076.doc
结构网格生成器或解算器读入的网格通常只能是具有凹角分支切口的O型或者C型网格,在这个切口上一致的双重节点在一个周期性边界。因为FLUENT使用非结构网格,所以不必保留人工内部边界。(当然你可以保持周期性边界,解算器就会使用周期性边界条件来解决问题)。
要让周期性区域自己熔合,你必须首先裁剪边界区域。这将会创建可以融合的对称性区域。注意:如果你需要熔合非周期性区域的部分和它自己,你必须使用文本命令:fuse-face-zones,菜单:Grid/modify-zones/fuse-face-zones。这一命令会提示你确定所要熔合区域的名字或者ID(你需要输入同一区域两次)。改变节点公差请使用匹配公差(matching-tolerance)命令。
剪开表面区域
剪开表面区域功能有两种用途:
? 你可以将任何双边类型的单一边界区域剪开为两个不同的区域。 ? 你可以将耦合壁面区域剪开为两个不同的非耦合壁面区域
当你剪开表面区域,解算器会将除了在区域的二维端点或三维边缘节点以外的所有的表面和节点复制。一组节点和表面将会属于剪开之后的一个边界区域,其它的在另一个区域。每一个端点的共享节点的唯一坏的影响就是,当你用裁剪边界图形化显示数据解时,你会在那些点处看到一些错误。(注意:如果你裁剪完边界之后,你将不能再将边界熔合。)
一般说来,你不必手动剪彩表面区域。说边避免会被自动裁剪党仍然保持耦合(这一耦合只涉及网格,不涉及热耦合)。适应过程将这些周期性边界看成耦合壁面;在一个壁面的适应导致了在shadow处的相同适应。如果你想要独立于壁面的shadow适应一个壁面,你应该裁剪耦合壁面来获得两个不同的壁面。
你不可以混淆剪开表面\和分割表面\命令。剪开表面是指,剪开表面后附加的表面和节点被创建并放到新的区域。分离表面是指新的区域将会被创建,新的节点和表面不会被创建,原表面和节点简单的重新分配到区域中。
剪开表面区域所需要输入的内容
要剪开表面使用下面命令:Grid/modify-zones/slit-face-zone。指定表面区域的名字或ID,解算器会用两个区域替换原区域。 /grid/modify-zones> slfz face zone id/name [] wall-4 zone 4 deleted face zone 4 created face zone 10 created
千万要记住:剪开表面后记住保存新文件,case和data文件不管有哪个都要保存。
记录流域(Domain)和区域(Zones)
记录区域可以通过重新排列内存的节点、表面以及单元提高解算器的计算性能。Grid/Reorder包含重新记录domain和zones的命令,并且能够输出目前网格划分的带宽。Domain的记录可以提高内存的读写效率,并且可以为用户界面很方便的记录区域。带宽提供了察看内存中的单元分布。
记录区域菜单:Grid/Reorder/Domain
最后,你选择输出带宽菜单,输出目前网格的划分。这一命令输出每一网格划分的半带宽和最大的存储距离。菜单:Grid/Reorder/Print Bandwidth。每次做这些操作时,一定要记住保存新的文件!
关于记录
反Cuthill-McKee算法被用于记录过程,来创建区域内种子单元(seed cell)的层次树。首先使用Gibbs, Poole,和Stockmeyer[57]算法选择一个单元(被称为种子单元)。然后每一单元根据它距种子单元的距离被分配给一定的层次。这些层次被分配组成层次树。一般说来,表面和单元被记录以便于邻近单元在区域和内存之中是相互靠近的。因为大多数计算循环是在表面上的,所以你希望高速缓存中的两个单元在同一时刻,以减少缓存或者磁盘扫描的时间,也就是说,你希望在内存中的单元相互靠近以减少内存存取的时间。目前的格式记录了区域内的表面和单元以及内存中的节点、表面和单元。
你也可以选择记录这些区域,记录的区域首先是区域类型然后是区域的ID。使用用户界面可以很方便地实现区域记录。
使用区域记录的典型输出如下:
>> Reordering domain: zones, cells, faces, done.
47
215548076.doc
Bandwidth reduction = 809/21 = 38.52 Done.
如果你想察看带宽,可以看到如下报告: Maximum cell distance = 21
带宽是相邻单元的最大差值,也就是说,在区域列表中的每一单元顺次标号,并比较这些索引的差别。
并行处理的网格分割
如果你打算使用FLUENT的并行解算器,你应该将网格划分或者再细分为成组的单元,以便于它们可以在并行处理器上得到解决(见Figure 1)。划分可以采用FLUENT的一系列版本,也可以采用划分转换器。划分网格之后,请保存case文件并将它们读入到并行解算器中。一个被划分的网格可以被用于系列解算器中而不会丧失任何性能。如果你的主机工作站有足够的内存,你可以用划分转换器将网格直接读入到FLUENT中。然而如果你的网格太大而不能读入到系列解算器中也不能读入到划分转换器中,或者你不想自己划分网格,你可以将未划分的网格直接读入的并行解算器中,解算器会自动使用\Strip\方法对它进行划分(这种方法没有前述两种方法好)。
Figure 1: 划分网格
网格划分方法
并行处理的网格划分有三个目的 ? 用等量单元创建划分
? 最小化划分界面的数量,也就是减少划分边界表面的面积 ? 最小化相邻划分的数量。
平衡划分(使单元数量相等)保证每个处理器的负载相等,并保证各个划分在同一时间进行信息传递。因为划分之间的信息传递是相对耗时的过程,最小化界面的数量可以减少数据交换的时间。最小化划分邻域的数量可以减少网络和路由的竞争机会。除此之外,在初始信息传递的花费比更长信息的传递的花费更多的机器上,最小化划分邻域是十分重要的,尤其是对于网络连接的工作站来说。
FLUENT中的划分格式是使用对分算法来创建划分的,但是不像其它的划分格式需要划分因子为二,这一格式对划分的数量没有限制。对于每一个处理器来说,你要创建相同数量的划分(也就是说划分的数量应该是处理器数量的整数倍)
对分(Bisection)方法
网格划分采用对分算法。所选算法首先用于父区域的划分,然后再用于子区域的划分。比如说:要将网格划分为四个部分,首先对分为相等的两个部分,然后再将这两个相等的部分分别对分为两个更小的子部分。如果要划分三部分的话,首先将网格划分为三分之一为一部分,三分之二为另一部分,然后再将三分之二的部分对分为两个部分。
网格划分可以用下面的列出的任何一种方法。至于最为有效的方法视具体问题而定,所以你可以试用不同的方法,直到找出最好的方法为止。详细内容请看:推荐划分策略的网格划分指导方针。
笛卡尔轴:在单元的笛卡尔坐标的基础上对分区域(见 Figure 1)。它用垂直于坐标轴的最长的区域范围来对分区域和子区域。通常被称为坐标对分
笛卡尔带:使用笛卡尔坐标对分,但是所有的对分线都限制在父区域的最长对分线方向。这种方法通常可以最小化对分邻域的的数量
笛卡尔X-, Y-, Z坐标:在单元的笛卡尔坐标的基础上对分区域,但是它的父区域和子区域的对分线都垂直于特定的坐标方向(见Figure 2.)。
48
215548076.doc
笛卡尔R轴:对分的基础为单元中心到产生最小界面尺寸的距离的坐标轴的最短射线距离。这种方法只在三维网格中使用。
笛卡尔RX-, RY-, RZ坐标:对分的基础为单元中心到选定坐标轴的最短射线距离。 圆柱坐标:对分的基础为单元的柱坐标系,这种方法只在三维网格中使用。
圆柱R-, Theta-, Z-坐标:对分的基础为选定的柱坐标系,这种方法只在三维网格中使用。
主轴:对分的基础为平行于主轴的坐标框架(见Figure 3)。如果主轴平行于笛卡尔坐标轴 ,该方法就被简化为笛卡尔轴划分,这一算法也通常被称为动量、惯量或者惯量的动量划分。该方法是FLUENT默认的划分方法。
主带:使用动量划分,但限制在父区域最长的延长线的主轴方向(见Figure 4)。通常用这种方法最小化划分邻域的数量。
主X-, Y-, Z-坐标:划分的基础在于选定的主轴(见Figure 4)。
极轴:划分的基础在于单元的极轴,这种方法只用于二维网格的划分。
极R-轴、极Theta-轴:划分的基础在于所选的极轴,只用于二维情况(见Figure 5)。 球轴:划分是基于单元的球坐标系,只用于三维情况
球Rho-, Theta-, Phi-坐标:划分基于所选的球坐标。只用于三维情况。
Figure 1: 笛卡尔轴方法
Figure 2:笛卡尔带或者笛卡尔X-坐标方法
Figure 3:主轴方法
Figure 4:主带或者主X-坐标方法
Figure 5:急轴或者极Theta-坐标方法
最优化
附加的最优化可以提高网格划分的质量。垂直于区域最长宽度的的划分未必是产生最小界面边界的方法。“预先测试(pre-testing)”操作(见预先测试一节)可以用于划分之前自动选择最优方向。除此之外还有下面的反复迭代最优化方法:
光滑:通过交换划分之间单元来最小化划分界面的数量。这一格式详细研究了划分边界,而且如果界面边界表面减少,它会将单元给相邻的划分。(见Figure 1)
合并:尝试消除每一划分的孤立丛。孤立丛是指这样一组单元,它们组内的每一个单元至少有一个表面与界面边界一致(见Figure 2.)。孤立丛会降低多重网格的性能,并导致大量的信息交流而花费时间。
Figure 1: 光滑最优化方法
一般说来,光滑和合并是相对耗费时间的最优化工具。
预先测试(Pretesting)
Figure 2: 合并最优化方法
49
215548076.doc
如果你选择主轴方法或者笛卡尔坐标方法,你可以提前检测不同对分方法来提高对分的性能,默认是不选择预先测试,此时FLUENT在垂直区域最长范围方向进行对分。
如果使用提前预测,当你在划分网格面板点击划分按钮时自动执行提前预测。对分算法,会检测所有的坐标方向并选择产生最少对分界面的算法为最后的对分算法。注意:使用提前预测会增加对分所需的时间,对于二维问题会花费二倍的时间,对于三维问题会花费四倍的时间。
在区域和寄存器中划分
将对分限制在单元区域或者寄存器可以使你灵活的在流域的子区域中应用不同的划分方法。例如:对于连接矩形管道的圆柱形通风系统,你可以用柱坐标轴方法划分圆柱形通风系统,用笛卡尔坐标轴方法划分矩形管道。如果圆柱形和矩形在两个不同的单元区域,你可以选择一个区域执行所需要的划分。如果它们在同一个单元区域,你可以用适应方法中标记单元的函数为每一个区域创建一个单元寄存器(基本上是一个单元列表)。这些寄存器允许你在物理位置,单元体积,特定变量的梯度或等值线等参数的基础上标记单元。关于为适应标记单元的信息请参阅网格适应一章。管理适应寄存器提供了操作不同寄存器创建新寄存器的的信息。一旦你创建了新的寄存器你就可以用它来进行网格划分了。
划分网格的指导方针
下面是划分网格的推荐步骤:
1. 用默认的划分方法(主轴划分)并最优化(光滑)。
2. 在解释划分统计中检查划分统计。你的目标是在保持平衡负载(单元变化)时实现界面比率变化和全
局界面比率的最小值。如果统计不可接受可以选择其它的划分方法。
3. 如果对于你的问题已经选择了最好的对分方法,你就可以选择是否打开提前预测功能来进一步提高。 4. 如果需要的话,你也可以选择合并最优化方法提高划分的性能。
使用网格划分面板
对于网格划分,可以选择创建网格划分的对分方法,设定划分数,选择区域和/或寄存器以及选择所要使用的最优化方法。可以执行提前预测功能保证尽可能好的划分。当你在网格划分面板中设定了所有参数,点击划分按钮将网格按照所选的方法和设定进行再细分。点击菜单Grid/Partition...,弹出下面对话框:
Figure 1:网格划分面板
1. 在方法下拉列表中选择对份方法。选择是对分方法中所描述的技巧。 2. 在Number框中输入要划分的的数量(必须是处理器数量的整数倍)。
3. 你可以选择在每一个单元区域独立应用划分,你也可以使用穿越区域检查按钮来允许划分穿越区域边界。除非在不同区域的单元需要大量的计算时间(比如包括固体和流体的区域),否则不推荐使用独立的单元划分(关掉区域检查按钮就可以实现独立的单元划分)。
4. 你可以在最优化条目中激活并控制所需的最优化方法。你也可以通过打开Do检查按钮来,激活合并和光滑格式。对于每一个格式你也可以选择重复的次数,这样,每一个最优化格式会被应用直到实现适当的判据或达到最大的重复步。如果重复步被设为零,最优化格式会被一直应用到最后,而没有最大重复步限制。
5. 如果你选择主轴方法、笛卡尔坐标或者笛卡尔带方法,你可以在划分执行之前应用不同对分方向的自动检测来提高划分的质量。(Pre-Test)
6. 在Zones和/或Registers列表中,选择你要划分的区域和/或寄存器。大多数情况下你会选择所有区域(默认情况)划分整个流域,详细内容请参阅在区域和寄存器内划分一节。 7. 点击划分按钮划分网格
50