文档库 最新最全的文档下载
当前位置:文档库 › fluent并行分割网格方法

fluent并行分割网格方法

fluent并行分割网格方法
fluent并行分割网格方法

1 网格分割的一般方法

在用Fluent 的并行求解器时,需要将网格细分割为几组单元,以便在分离处理器上求解将未分割的网格读入并行求解器里,可用系统默认的分割原则(推荐使用)还可以在连续求解器里或将mesh 文件读入并行求解器后自己分割。

在建立问题(定义模型、边界条件等)之前或之后分割网格都可以,不过,由于某些模型的特点(象非等形接触面、滑移网格、

shell-conduction encapsulation 的自适应),最好是在建立问题后。!!如果case 文件含有滑移网格或非等形接触面,要在计算过程中进行自适应,因此要用连续求解器分割。

值得注意的是计算节点间的相关单元的分布在网格自适应时要保持不变,除非是非等形接触面,这样在自适应后就不必重新分割了。若在网格分割前用连续求解器建立问题,用于此项工作的计算机必须有足够大的内存来读入网格。如果网格太大,不能读进连续求解器,可将未分割的网格直接读入并行求解器里(使用所有被定义主机的内存),然后让并行机自动分割。在这种情况下,你将在做一个初步网格分割后建立问题。如果必要可以手工再重新分割一次。

2 自动分割网格

在将case 文件读入并行求解器之前选用两分法或是其他网格分割方法来自动分割网格。对一些方法,可预览来确定是否为最佳的网格分割,注意case 文件中含有滑移网格或非等形接触面,在计算过程中要自适应,则需要在连续求解器中分割此文件,然后再把它读入并行求解器,在Auto Partition Grid 控制面板上选择Case File 选项。

并行求解器上自动网格分割的步骤如下:

1. (任选)在菜单栏上点Parallel Auto Partition...,弹出Auto Partition Grid 控制面板设置分割参数。

读入mesh 文件或case 文件时如果没有获取分割信息,那就保持Case File 选项开启,Fluent 会用Method 下拉菜单里的方法分割网格。

设置分割方法和相关选项的步骤如下:

a) 关闭Case File 选项,就可选择控制面板上的其他选项。

b) 在Method 下拉菜单里选取两分方法。

c) 可为每个单元分别选取不同的网格分割方法,也可以利用Across Zones 让网格分割穿过区域边界。推荐不采用对单元进行单独分割(关闭Across Zones 按钮),除非是溶解过程需要不同区域上的单元输出不同的计算信息(主区域包括固体和流体区域)。

d) 若选取Principal Axes 或Cartesian Axes 方法,可在实际分割之前对不同两分方向进行预测试以提高分割性能。用预检则开启Pre-Test 选项。

e) 点击OK。

如果case 文件已经网格分割,且网格分割的数量和计算节点数一样,那就可以在Auto Partition Grid 控制面板上默认选择Case File 选项,这会让Fluent 在case 文件中应用分割。

2. 读入case 文件,方法是在菜单栏上选File Read Case...。

自动分割过程的报告

当网格自动分割时,有关分割进程的信息就会被显示在控制窗口上。如果想需要额外信息,可在分割完成后,选Parallel Partition...,弹出Partition Grid 控制面板,打印报告。在Partition Grid 控制面板上点击Print Active Partitions 或Print Stored Partitions 时,Fluent 会在控制窗口里显示分割ID、单元数、面数、接触面数和每个活动或已储存分割的接触面曲率,还可以显示最小和最大的单元、面、接触面和面曲率变量

3 手动分割网格

在网格分割时推荐使用并行求解器上的自动分割,也可在连续求解器或并行求解器上手动分割。在自动或

手动分割后,可以检查生成的分割,如果必要可重新分割。在连续或并行求解器里,利用Partition Grid 也可同样作。已分割的网格也可毫无损失的在连续求解器里使用。

分割网格的指导方针

手动分割网格时推荐采用如下步骤:

1. 用默认的两分方法(Principal Axes)和优化方法(Smooth)分割网格。

2. 检查分割统计表在开启负载平衡(单元变化)时,主要是使球形接触面曲率和接触面曲率变量最小。如果统计表不能使用,可尝试其他的两分方法。

3. 一旦确定问题所采用的最佳两分方法,如需要就可以开启Pre-Test 提高分割质量。

4. 如需要可用Merge 优化提高分割质量

分割网格,需要选择生成网格分割的两分方法、设置分割数、选择区域和记录、以及所使用的优化方法等。对某些方法可采用预测试的方法以选择最好的两分方法。一旦在Partition Grid 控制面板上设置了所有你都满意的参数,点Partition 按钮,将网格用所选的两分方法和优化方法分割成所需要的数量。在菜单栏上选Parallel Partition...,弹出Partition Grid 控制面板,可在上面设置所有相关的输入参数。

1. 在Method 下拉菜单里选取两分方法。

2. 在Number 里设置你想要分割的整数值。可以用计数箭头来增加或减小这个值,也可直接键入某整数值。此数值必须是整数,且是并行计算处理器数的倍数。

3. 可为每个单元分别选取不同的网格分割方法,也可以利用Across Zones 让网格分割穿过区域边界。推荐不采用对单元进行单独分割(关闭Across Zones 按钮),除非是溶解过程需要不同区域上的单元输出不同的计算信息(主区域包括固体和流体区

域)。

4. 如果你想单元将mesh 里所有的非等形网格接触面都围绕起来,并且在计算的过程中始终在同一个分割里,可选择Encapsulate Grid Interfaces。当有滑移或网格被调整时,网格接触面必须被压缩,则当前网格为滑移网格时,Encapsulate Grid Interfaces 选项总是被选中的。如果case 文件中含有在计算过程中自适应的非等形接触面,就不得不在连续求解器中选择Encapsulate Grid Interfaces 和Encapsulate for Adaption 选项来分割它。

5. 如果在连续求解器中选择Encapsulate Grid Interfaces 选项,Encapsulate forAdaption 选项也被选中了。当选中此选项时,单元附加层将被压缩,因此并行时就不必进行单元传递了。

6. 可用Optimizations 下的选项来激活和控制想采用的优化方法。通过选中Do 按钮来激活Merge 和Smooth 格式。可为每个格式选择Iterations 数。当遇到合适的标准或迭代最大数已被执行完时就会应用每一个优化格式。若Iterations 数为0,则一完成就会应用优化格式,而没有迭代最大数的限制。

7. 若选取Principal Axes 或Cartesian Axes 方法,可在实际分割之前对不同两分方向进行预测试以提高分割性能。用预检则开启Pre-Test 选项。

8. 在Zones 和Registers 列表里,选择所想分割的分区和记录表。大多数情况下,选择所有的Zones (默认)分割整个区域,详细说明在下面介绍。

9. 点击Partition 按钮分割网格。

10. 若感觉新的分割比先前的(网格已被分割)更好,可点击Use Stored Partitions 按钮激活上次存储的单元分割(保存一个case 文件就会存储最后一次进行的单元分割),用于当前的计算中。

用区域或记录表分割

对单元分区和记录表的分割约束性可使你对一个域的子域采用不同的分割方法。例如,你的几何形状包含一个连接到矩形管道的圆柱实体,则可以用Cylindrical Axes 方法分割圆柱体,用Cartesian Axes 方法分割矩形管道。如果圆柱体和矩形管道位于不同的单元区域,可一次选一个作所需的分割。如果它们不是在两个不同的单元区域,就可以用函数为每个区域标记调整后的单元,生成一个单元记录表(基本上是一个单

元列表)。这些函数根据物理位置、单元体积、某变量的梯度和等值、及

其他参数标记单元。

!!使用Fluent 的并行版本或分割方法选用Metis 时不能使用分区和记录表分割网格。

分割报告

若网格已被分割,和分割程序有关的信息就会显示在控制窗口里。默认情况下,求解器打印产生的分割数,单元、面、接触面和面曲率变量的最小值和最大值。如果将Verbosity从默认的1 增加到2,所用分割方法,分割ID,单元、面和接触面的数量,以及每个分割上的接触面的曲率也会显示在控制窗口上。如果将Verbosity 减小到0,仅有产生的分割数和分割所需时间被显示。

若分割完成后也可以将一部分信息显示出来。在并行求解器上点Print Active Partitions或Print Stored Partitions,Fluent 就会在控制窗口上显示分割ID,单元、面和接触面的数量,以及每个活动或存储的分割上的接触面的曲率。在连续求解器上Print Partitions,也可获取相同的信息。

!!再次提醒:若感觉新的分割比先前的(网格已被分割)更好,可点击Use StoredPartitions 按钮激活上次存储的单元分割(保存一个case 文件就会存储最后一次进行的单元分割),用于当前的计算中。

重新设置分割参数

如果想修改所设置的分割参数,通过点Default 按钮就会返回到Fluent 默认的设置,Default 按钮被点后就会变为Reset 按钮。Reset 可使你返回到最近保存的设置(象点Default按钮前设置的数值),被点后就会变为Default 按钮

4 网格分割方法

并行程序的网格分割有三个主要目标:

?生成等数量单元的网格分割。

? 使分割的接触面数最小――减小分割边界面积。

? 使分割的邻域数最小。

平衡分割(平衡单元数)可确保每个处理器有相同的负载,分割被同时传输。既然分割间的传输是强烈依赖于时间的,那使分割的接触面数最小就可以减少数据交换的时间。使分割的邻域数最小,可减少网络繁忙的机会,而且在那些初始信息传输比较长信息传输更耗时间的机器来说尤为重要,特别是对依靠网络连接的工作站来说非常重要。Fluent 里的分割格式是采用两分的原则来进行的,但不象其他格式那样需要分割数,它对分割数没有限制,对每个处理器都可以产生相同分割数(也就是分割总数是处理器数量的倍数)。两分法

网格采用两分法则进行分割。被选用的法则被用于父域,然后利用递归应用于子域。例如,将网格分割成四部分,求解器将整个区域(父域)对分为两个子域,然后对每个子域进行相同的分割,总共分割为四部分。若将网格分割成三部分,求解器先将父域分成两部分――一个大概是另一个的两倍大――然后再将较大子域两分,这样总共就分为三部分。网格可用下列的任一方法进行分割。最有效的方法是和求解问题有关的,所以可试用不同的方法,直至某一个适合所求解问题。

Cartesian Axes:两分基于笛卡儿坐标系的单元区域它两分父域,所有子域都垂直于活动区域最长轴方向。因此也被称为坐标两分。

Cartesian Strip:采用坐标两分,但严格垂直于父域最长轴方向。可用这种方法使分割邻域数最小。Cartesian X-, Y-, Z- Coordinate:两分基于所选笛卡儿坐标系的区域。它两分父域,所有子域都垂直于指定方向。

Cartesian R Axes:两分区域,使得从单元中心到笛卡儿轴(x,y 或z)的径向距离最短,这样开始接触面积最小。此种方法限用于3D 情况。

Cartesian RX-, RY-, RZ-Coordinate:两分区域,使得从单元中心到所选笛卡儿轴(x,y 或z)的径向距离最短。此种方法限用于3D 情况。

Cylindrical Axes:两分基于单元柱坐标系的区域,此方法限用于3D 情况。

Cylindrical R-, Theta-, Z-Coordinate:两分基于所选柱坐标系的区域,此方法限用3D 情况。

Metis:用METIS 软件包分割不规则图形,这是由Army HPC 研究中心和Minnesota 大学的Karypis 和Kumar 提出的。它采用多级近似将精细图形上的点和边结合形成一副粗糙的图形,这副粗糙图被分割,再回复到原始图形。在使变粗糙和恢复的过程中,此方法被用于高质量分割。

!!值得注意的是用socket 版本(-pnet)时,不能用METIS 进行分割。在这种情况下,可用下面的分割滤波器进行METIS 分割

Polar Axes:两分基于单元极坐标系的区域(见图28.4.9),此方法限用于2D 情况。

Polar R-Coordinate, Polar Theta-Coordinate:两分基于所选极坐标系的区域(见图28.4.9),此方法限用于2D 情况。

Principal Axes:两分基于主轴坐标系的区域若主轴是笛卡儿轴时,即是Cartesian bisection。此原则也要考虑力矩、惯性矩或惯性力矩。它是Fluent 里默认的两分方法。

Principal Strip:采用力矩两分,但严格垂直于父域最长主轴方向。可用这种方法使分割邻域数最小。Principal X-, Y-, Z-Coordinate:两分基于所选主坐标系的区域。

Spherical Axes:两分基于单元球坐标系的区域,此方法限用于3D 情况。

Spherical Rho-, Theta-, Phi-Coordinate:两分基于球坐标系的区域,此方法限用于3D 情况。

优化

优化可以提高网格分割的质量。垂直于最长主轴方向的两分方法并不是生成最小接触边界的最好方法,“pre-testing”操作可用于在分割之前自动选择最好的方向。

迭代的优化格式主要有:

光滑

通过分割间交换单元的方式使分割接触面数最小。此格式贯穿分割边界,如果接触边界面消失就传到相邻分割。

合并

从每个分割中消除孤串。一个孤串就是一组单元,组里的每个单元至少都有一个面是接触边界。孤串会降低网格质量,导致大量传输损失。

一般,Smooth 和Merge 是相对比较节省资源的优化方法。

预测试

如果选Principal Axes 或Cartesian Axes 方法,可在实际分割之前对不同两分方向进行预测试以提高分割性能。如果不用预测试(默认),Fluent 会采用垂直于长主轴方向的两分法。如果选用预测试,在Partition Grid 控制面板上点Partition 按钮或用自动分割读入网格时都会自动运行预测试。它将测试所有的坐标方向,最后选择使分割接触面最少的两分法。

使用预测试将增加分割所需的时间。相比不进行预测试,对2D 问题将增加3 倍时间,对3D 问题将增加4 倍时间。

使用分割过滤器象上面提到的,在Auto Partition Grid 和Partition Grid 控制面板里可使用通过过滤器的METIS 分割方法。对未分割的网格使用METIS 分割方法,在菜单栏选File Import--Partition Metis...,Fluent 就会用METIS 分割网格,然后将分割读入求解器。分割数要和处理器数相等,然后再进行模型定义和求解。

!!直接通过分割过滤器引入到并行求解器里需要主机有足够的内存运行。否则在单机上运行就需要单机有足够的内存。可以在有足够内存的机器上启动并行求解器,重复上面的步骤,也可以在新机器上手动运行过滤器,然后再将分割的网格读入主机上的并行求解器。

用分割过滤器手动分割网格,使用如下命令:

utility partition input-filename partition-count output-filename

其中input-filename 是要被分割网格的文件名,partition-count 是需要分割的数量,output-filename 是被分割网格的文件名。然后就可以将分割的网格读入求解器(使用标准的File/Read/Case...菜单方式),再进行模型定义和求解。

用File/Import/Partition/Metis...将一个未分割的网格引入并行求解器里,METIS 分割整个网格。也可

File/Import/Partition/Metis Zone...单独分割每个单元分区。

这种方法可用于平衡工作负载。例如,如果一个case 有一个流体分区和一个固体分区,则单独分割每个分区会使工作负载更平衡。

5 检查分割

分割网格后,要查看分割信息,并从图形上检查分割。

解释分割统计表

自动或手动分割完成后需要显示报告。在并行求解器里,在Partition Grid 控制面板里点Print Active Partitions 或Print Stored Partitions 按钮,在连续求解器里点Print Partitions按钮。

Fluent 在并行时是区分活动单元分割和存储单元分割这两种单元分割格式的。初始两者都被设为读入case 文件建立的单元分割。如果用Partition Grid 重新分割网格,新的分割就是指存储单元分割。要是其成为活动分割,在Partition Grid 控制面板上选Use StoredPartitions 按钮。活动单元分割被用于当前计算中,而存储单元分割用于保存一个case 文件情况。这种区别可让我们在某一台机器或网络上分割一个case,而在另一台机器上求解它。

基于这两种格式的区别,在不同的并行机上,可以用一定数量的计算节点将网格划分为任意不同个数的分割,保存case 文件,再将它加载到指定机器上。在连续求解器里选Print Partitions,就可获得存储分割的信息。由分割程序产生的输出包括递归的划分和迭代优化程序的信息。它是最后分割网格的信息,包括分割ID,单元数、面数、接触面数、每个分割上接触面的曲率、相邻分割数,以及单元、面、接触面、邻域、平均单元、面曲率和球面曲率变量。球面曲率变量指的是当前分割的各个量的最小值和最大值。例如,在下面例子中,分割0 和3 有最小的接触面数(10),分割1 和2 有最大的接触面数(19),因此这个变量是10-19。

开启负载平衡时,就是要使接触面曲率变量和球接触面曲率的值较小。

>> Partitions:

P Cells I-Cells Cell Ratio Faces I-Faces Face Ratio Neighbors

0 134 10 0.075 217 10 0.046 1

1 137 19 0.139 22

2 19 0.086 2

2 134 19 0.142 218 19 0.087 2

3 137 10 0.073 223 10 0.045 1

------

Partition count = 4

Cell variation = (134 - 137)

Mean cell variation = ( -1.1% - 1.1%)

Intercell variation = (10 - 19)

Intercell ratio variation = ( 7.3% - 14.2%)

Global intercell ratio = 10.7%

Face variation = (217 - 223)

Interface variation = (10 - 19)

Interface ratio variation = ( 4.5% - 8.7%)

Global interface ratio = 3.4%

Neighbor variation = (1 - 2)

Computing connected regions; type ^C to interrupt.

Connected region count = 4

将一个case 文件读入并行求解器里,分割ID 要和计算节点ID 相对应。当一个case 文件里的分割数要比计算节点数大时,假如M 是分割数和计算节点数的比例,则计算节点0上的分割ID 为0-(M-1),计算节点1 上的分割ID 为M-(2M-1),依此类推。

在图形上检查分割要进一步获得分割信息,选择Display Contours...,可以绘出网格分割的等值图。要显示活动单元分割或存储单元分割,选择Contours Of 下拉列表里的Cell Info...,然后选Active Cell Partition 或Stored Cell Partition,并关闭Node Values 的显示!!如果还没有建立问题,为了应用Contours 就需要进行求解初始化。

6 负载分布

如果用于并行计算的处理器的速度明显不同,可在菜单栏上打开parallel partitionset load-distribution,为分割设置一个负载分布。例如,在三个节点上计算,其中一个比另外两个速度要快两倍,那就可以为速度快的机器分配两倍于另外两台机器的单元数(负载矢量为(2 1 1)),则在网格分割时,分割0 将会分割的单元数是分割1 和2 的两倍。对上例,因为分割0 要分割的单元数是其他的两倍,所以速度快的机器将被映射为节点0。否则,也可以使用负载平衡,让Fluent 自动消除计算节点间的负载差异。!!如果一个网格含有非等形接触面,要重新平衡计算节点间的负载,就要在修改后保存case 和data 文件,然后将case 和data 文件读入连续求解器,在Partition Grid 控制面板上选用Encapsulate Grid Interfaces 和Encapsulate for Adaption 重新分割,再次保存case 和data 文件。如何手动将case 和data 文件读入并行求解器,从上次停止的地方继续计算。

7 检测并提高并行性能

想了解并行计算的性能到底怎样,可通过执行观测窗口来观测计算时间、信息传输时间和并行效率。为了优化并行机,可利用Fluent 自带的负载平衡来控制计算节点间的信息量。

7.1 检测并行性能

执行观测窗口可报告所剩计算时间,以及信息传输的统计表。执行观测窗口总是被激活的,也可在计算完成后通过打印来获取统计表。要观看当前的统计表,在菜单栏上选菜单Parallel/Timer/Usage。执行统计表也可用文本处理器打开。在菜单栏上选菜单Parallel/Timer/Reset,清除执行表可以在将来的报告中删除过去的统计信息。

7.2 优化并行求解器

增加报告间隔在Fluent 里,通过增加残差printing/plotting 或其他求解追踪报告的间隔减少信息传输,提高并行性能。点Solve Iterate...,在弹出的Iterate 控制面板里修改Reporting Interval的值即可。

!!注意要等到每个报告间隔结束才能中断迭代。

负载平衡

Fluent 里有动态负载平衡的功能。用并行程序的主要原因是减小模拟的变化时间,理想

情况它是和计算源的总速度成比例的。例如,如果你用4 台CPU 求解你的问题,并且假定

CPU 之间需要很少的的数据传输,所有CPU 的速度都是一样的,都用于计算这个问题,一

般希望变化时间减少到四分之一,这当然是理想情况,实际上是不可能的。例如,CPU 的

速度根据工作平台的机器类型不同而变化,其他的任务用一个或几个CPU 即将完成,在并

行求解器之间的或外源引起的网络堵塞都会延迟一些CPU 之间必要的信息传输。

如果激活Fluent 里的动态负载平衡,计算源和网络源的负载会被周期性的监控。如果

负载平衡器确定可通过再分配计算节点间的单元来提高性能,它就会自动将其提高。负载平

衡本身有时间延迟,所以默认它是关闭的。如果你用一个专用同类源,或采用不同类源但在

网格分割过程中通过设置负载分布已考虑CPU 速度之间的差异,那就不需要用负载平衡了。

!!如果此时的接触面是非等形的,或采用壳传导模型,是不能开启负载平衡的。

点击Parallel Load Balance...,打开Load Balance 控制面板用以激活和

控制Fluent 的自动负载平衡。负载平衡会自动检测和分析并行性能,然后通过将已存在计算节点间单元的再分配来优化并行性能。

使用负载平衡的操作步骤如下:

1. 开启Load Balancing 选项。

2. 在Partition Method 下拉菜单里选择对分(bisection)方法(见28.4.4 节)产生新的网格

分割。作为自动负载平衡程序的一部分,可用特定的方法将网格重新细分。这样的

分割被分配在计算节点之间以获得平衡的负载。

3. 设置所需的Balance Interval。如果其值为0,Fluent 会自己为其去一个最佳值,初

始是用25 次迭代的间隔。取一个非零值就可以限制其行为。然后Fluent 会在每N

步之后进行一次负载平衡,N 就是设置的Balance Interval。要选择一个足够大的间

隔以平衡由于进行负载平衡所付出的。

你可以在任何时候中断计算,关掉(或开启)负载平衡,然后继续计算。

Fluent动网格专题讨论

Fluent动网格专题讨论(-) 题记:在学习使用Fluent的时候,有不少朋友需要使用动网格模型(Dynamic Mesh Model),因此,本版推出这个专题,进行大讨论,使大家在使用动网格时尽量少走弯路,更快更好地掌握;也欢迎使用过的版友积极参与讨论指导,谢谢! 该专题主要包括以下的主要内容: ##1. 动网格的相关知识介绍; ##2. 以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; ##3. 与动网格应用有关的参考文献; ##4. 使用动网格进行计算的一些例子。 ##1. 动网格的相关知识介绍 有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUENT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF 定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。 注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。 2、动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧近似光滑模型(spring-based smoothing)、动态分层模型(dynamic layering)和局部重划模型(local remeshing)。 弹簧近似光滑模型 在弹簧近似光滑模型中,网格的边被理想化为节点间相互连接的弹簧。移动前的网格间距相当于边界移动前由弹簧组成的系统处于平衡状态。在网格边界节点发生位移后,会产生与位移成比例的力,力量的大小根据胡克定律计算。边界节点位移形成的力虽然破坏了弹簧系统原有的平衡,但是在外力作用下,弹簧系统经过调整将达到新的平衡,也就是说由弹簧连接在一起的节点,将在新的位置上重新获得力的平衡。从网格划分的角度说,从边界节点的位移出发,采用虎克定律,经过迭代计算,最终可以得到使各节点上的合力等于零的、新的网格节点位置,这就是弹簧光顺法的核心思想。 原则上弹簧光顺模型可以用于任何一种网格体系,但是在非四面体网格区域(二维非三角形),最好在满足下列条件时使用弹簧光顺方法: (1)移动为单方向。 (2)移动方向垂直于边界。 如果两个条件不满足,可能使网格畸变率增大。另外,在系统缺省设置中,只有四面体网格(三维)和三角形网格(二维)可以使用弹簧光顺法,如果想在其他网格类型中激活该模型,需要在dynamic-mesh-menu 下使用文字命令spring-on-all-shapes?,然后激活该选项即可。 动态层模型 对于棱柱型网格区域(六面体和或者楔形),可以应用动态层模型。动态层模型的中心思想是根据紧邻运动边界网格层高度的变化,添加或者减少动态层,即在边界发生运动时,如果紧邻边界的网格层高度增大到一定程度,就将其划分为两个网格层;如果网格层高度降低到一定程度,就将紧邻边界的两个网格层合并为一个层: 如果网格层j扩大,单元高度的变化有一临界值:

FLUENT动网格讲解分析

题记:在学习使用Fluent的时候,有不少朋友需要使用动网格模型(Dynamic Mesh Model),因此,本版推出这个专题,进行大讨论,使大家在使用动网格时尽量少走弯路,更快更好地掌握;也欢迎使用过的版友积极参与讨论指导,谢谢! 该专题主要包括以下的主要内容: ##1.动网格的相关知识介绍; ##2.以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; ##3. 与动网格应用有关的参考文献; ##4. 使用动网格进行计算的一些例子。 ##1.动网格的相关知识介绍 有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUENT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF 定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。 注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C 语言编程基础。 2、动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧近似光滑模型(spring-based smoothing)、动态分层模型(dynamic layering)和局部重划模型(local remeshing)。 弹簧近似光滑模型 在弹簧近似光滑模型中,网格的边被理想化为节点间相互连接的弹簧。移动前的网格间距相当于边界移动前由弹簧组成的系统处于平衡状态。在网格边界节点发生位移后,会产生与位移成比例的力,力量的大小根据胡克定律计算。边界节点位移形成的力虽然破坏了弹簧系统原有的平衡,但是在外力作用下,弹簧系统经过调整将达到新的平衡,也就是说由弹簧连接在一起的节点,将在新的位置上重新获得力的平衡。从网格划分的角度说,从边界节点的位移出发,采用虎克定律,经过迭代计算,最终可以得到使各节点上的合力等于零的、新的网格节点位置,这就是弹簧光顺法的核心思想。 原则上弹簧光顺模型可以用于任何一种网格体系,但是在非四面体网格区域(二维非三角形),最好在满足下列条件时使用弹簧光顺方法: (1)移动为单方向。 (2)移动方向垂直于边界。 如果两个条件不满足,可能使网格畸变率增大。另外,在系统缺省设置中,只有四面体网格 (三维)和三角形网格(二维)可以使用弹簧光顺法, 需要在dynamic-mesh-menu 下使用文字命令spring-on-all-shapes?,然后激活该选项即

fluent网格质量检查

网格划分策略与网格质量检查 判断网格质量的方面有: Area单元面积,适用于2D单元,较为基本的单元质量特征。 Aspect Ratio长宽比,不同的网格单元有不同的计算方法,等于1是最好的单元,如正三角形,正四边形,正四面体,正六面体等;一般情况下不要超过5:1. Diagonal Ratio对角线之比,仅适用于四边形和六面体单元,默认是大于或等于1的,该值越高,说明单元越不规则,最好等于1,也就是正四边形或正六面体。 Edge Ratio长边与最短边长度之比,大于或等于1,最好等于1,解释同上。 EquiAngle Skew通过单元夹角计算的歪斜度,在0到1之间,0为质量最好,1为质量最差。最好是要控制在0到0.4之间。 EquiSize Skew通过单元大小计算的歪斜度,在0到1之间,0为质量最好,1为质量最差。2D质量好的单元该值最好在0.1以内,3D单元在0.4以内。 MidAngle Skew通过单元边中点连线夹角计算的歪斜度,仅适用于四边形和六面体单元,在0到1之间,0为质量最好,1为质量最差。 Size Chang e相邻单元大小之比,仅适用于3D单元,最好控制在2以内。 Stretch伸展度。通过单元的对角线长度与边长计算出来的,仅适用于四边形和六面体单元,在0到1之间,0为质量最好,1为质量最差。 Taper锥度。仅适用于四边形和六面体单元,在0到1之间,0为质量最好,1为质量最差。 Volume单元体积,仅适用于3D单元,划分网格时应避免出现负体积。 Warpage翘曲。仅适用于四边形和六面体单元,在0到1之间,0为质量最好,1为质量最差。 以上只是针对Gambit帮助文件的简单归纳,不同的软件有不同的评价单元质量的指标,使用时最好仔细阅读帮助文件。 另外,在Fluent中的窗口键入:grid quality 然后回车,Fluent能检查网格的质量,主要有以下三个指标: 1.Maxium cell squish: 如果该值等于1,表示得到了很坏的单元;

FLUENT 动网格教程

FLUENT动网格教程 摘自https://www.wendangku.net/doc/ad7119667.html,/dvbbs/dispbbs.asp?boardid=61&id=1396题记:在学习使用Fluent的时候,有不少朋友需要使用动网格模型(Dynamic Me sh Model),因此,本版推出这个专题,进行大讨论,使大家在使用动网格时尽量少走弯路,更快更好地掌握;也欢迎使用过的版友积极参与讨论指导,谢谢!。 该专题主要包括以下的主要内容: §一、动网格的相关知识介绍; §二、以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; §三、与动网格应用有关的参考文献; §四、使用动网格进行计算的一些例子。 §一、动网格的相关知识介绍 有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUE NT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。 注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。

fluent经验

Fluent 问题集锦 问题1: 如果体网格做好后,感觉质量不好,然后将体网格删除,在其面上重新作网格,结果发现网格都脱离面,不再附体了,比其先前的网格质量更差了. 原因: 删除体网格时,也许连同较低层次的网格都删除了.上面的脱离面可能是需要的体的面. 解决方法: 重新生成了面,在重新划分网格 问题2: 在gambit下做一虚的曲面的网格,结果面上的网格线脱离曲面,由此产生的体网格出现负体积. 原因: 估计是曲面扭曲太严重造成的 解决方法: 可以试试分区域划分体网格,先将曲面分成几个小面,生成各自的面网格,再划体网格。 问题3: 当好网格文件的时候,并检查了网格质量满足要求,但输出*.msh时报错误. 原因: 应该不是网格数量和尺寸.可能是在定义边界条件或continuum type时出了问题. 解决方法: 先把边界条件删除重新导出看行不行.其二如果有两个几何信息重合在一起, 也可能出现上诉情况,将几何信息合并掉. 问题4: 当把两个面(其中一个实际是由若干小面组成,将若干小面定义为了group了)拼接在一起,也就是说两者之间有流体通过,两个面各属不同的体,网格导入到fluent时,使用interface时出现网格check的错误,将interface的边界条件删除,就不会发生网格检查的错误.如何将两个面的网格相连. 原因: interface后的两个体的交接面,fluent以将其作为内部流体处理(非重叠部分默认为wall,合并后网格会在某些地方发生畸变,导致合并失败.也可能准备合并的两个面几何位臵有误差,应该准确的在同一几何位臵(合并的面大小相等时),在合并之前要合理分块。 解决方法: 为了避免网格发生畸变(可能一个面上的网格跑到另外的面上了),可以一面网格粗,一面网格细,避免; 再者就是通过将一个面的网格直接映射到另一面上的,两个面默认为interior.也可以将网格拼接一起. 上述语言有些模糊不清,仅供参考,并希望高手批评指正,^_^

FLUENT算例 (5)搅拌桨底部十字挡板的流场分析

搅拌桨底部十字挡板的流场分析搅拌设备在各个行业运用的十分广泛,搅拌就是为了更够更快速更高效的将物质与介质充分混合,发生充分的反应,而搅拌中存在着许多不利于混合的情况,比如液体旋流。为了解决这个问题,之前很多人提出在罐体的侧壁上增加挡板,可以抵消大部分旋流,然后大部分都是研究侧挡板的,对于底部挡板的研究十分少,本文就在椭圆底部挡板增加十字型挡板,对罐体中进行流场分析。 1.Gambit建模 首先用Gambit建模图形如下: 图1:Gambit建立的模型 分为两个区域,里面的圆柱为动区域,外面包着的大圆柱设为静区域,静区域划分网格大,划分粗糙,内部动区域划分网格小,划分精细。边界条件主要设置了轴,搅拌桨,底部挡板,上层液面。以下就是fluent进行数值模拟。 2.fluent数值模拟 2.1导入case文件

2.2对网格进行检查 Minimum volume的数值大于0即可。 图2网格检查2.3调节比例 单位选择mm单位。 图3比例调节2.4定义求解器参数 设置如图4所示

图4设置求解器参数2.5设置能量线 图5能量线 2.6设置粘度模型,选择k-e模型 k-e模型对该模型模拟十分实用。

图6粘度模型2.7定义材料 介质选择液体水。 2.8定义操作条件

由于存在着终于,建模时的方向向上,所以在Z轴增加一个重力加速度。 图8操作条件 2.9定义边界条件 在边界设置重,动区域如图所示,将材料设成水,motion type设成moving reference frame (相对滑动),转速设为10rad/s,单位可在Define中的set unit中的angular-velocity设置。而在在轴的设置中,如上图所示,将wall motion设成moving wall,motion设成Absolute,速度设成-10,由于轴跟动区域速度是相对的,所以设成反的。

ICEM CFD动网格学习

FLUENT动网格教程 该专题主要包括以下的主要内容: §一、动网格的相关知识介绍; §二、以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; §三、与动网格应用有关的参考文献; §四、使用动网格进行计算的一些例子。 §一、动网格的相关知识介绍 有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUE NT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。 注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。 2、动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即 弹簧近似光滑模型(spring-based smoothing)、 动态分层模型(dynamic layering) 局部重划模型(local remeshing)

FLUENT网格质量

答:我个人认为主要有三项: 网格的正交性,雅可比值,扭角,和光滑性。 对于一般的cfd程序,结构化网格要求正交性和光滑性(就是你说的 最大最小比率相差不大,想不出一个名次就用这个了)要比较好 但是对于fluent这样基于非结构网格的,尤其是其中程序中 加入了很多加快收敛速度的方法的软件,后者要求就不要太高 我觉得真正需要考虑网格影响的,一般应该在结构网格上才需要 基于非结构网格的有限体积法,计算通量的时候存在相邻节点的通量计算本身就可能存在计算误差,所以精度不会高到那儿, 顺便说一下,对于fluent,顶多二阶格式就够了,而且绰绰有余,一般我都用一阶 因为完全没有必要,其在计算中的误差远远达不到二阶的精度。 网格质量本身与具体问题的具体几何特性、流动特性及流场求解算法有关。因此,网格质量最终要由计算结果来评判,但是误差分析以及经验表明,CFD计算对计算网格有一些一般性的要求,例如光滑性、正交性、网格单元的正则性以及在流动变化剧烈的区域分布足够多的网格点等。对于复杂几何外形的网格生成,这些要求往往并不可能同时完全满足。例如,给定边界网格点分布,采用Laplace 方程生成的网格是最光滑的,但是最光滑的网格不一定满足物面边界正交性条件,其网格点分布也很有可能不能捕捉流动特征,因此,最光滑的网格不一定是最好的网格。 对计算网格的一个最基本的要求当然是所有网格点的Jacobian必须为正值,即网格体积必须为正,其他一些最常用的网格质量度量参数包括扭角(skew angle)、纵横比(aspect ratio、Laplacian、以及弧长(arclength)等。通过计算、检查这些参数,可以定性的甚至从某种程度上定量的对网格质量进行评判。 Parmley等给出了更多的基于网格元素和网格节点的网格质量度量参数。有限元素法关于插值逼近误差估计的理论,实际上也对网格单元的品质给出了基本的规定:即每个单元的内切球半径与外切球半径之比,应该是一个适当的,与网格疏密无关的常数。 如果import到fluent里,check一下,除了看体积不为负。 GAMBIT gambit中点最右下脚的放大镜,然后看百分数,百分数越大网格越好 以下转自马叉虫的个人空间 https://www.wendangku.net/doc/ad7119667.html,/?uid-64676-action-viewspace-itemid-43 要生成一套好的网格,我觉得以下几点是很必要的: 1.选择一款好的网格生成软件; 2.确保实体尽量简洁; 3.合理布置线上节点;

Fluent动网格----layering个一个简单实例(作者Snow)

Fluent动网格----layering个一个简单实例我这几天看了点动网格技术方面的东西,在学习过程中发现这方面的例子很少,自己也走了一些弯路。现在还好,弄明白了一些,能够应付现在我的工作。为了让更多学习者快速了解动网格,我打算尽量把我学习心得在这里和大家分享,这里给出一个layering的一个简单例子。 1.Gambit画网格 本例很简单,在Gambit里画一个10*10的矩形,网格间隔为1,也就是有100个网格,具体见下图。都学动网格的人了,不至于这个不会做! 这里需要注意一个问题:设置边界条件的时候,一定要把要移动的边单独设定,本例中一右边界作为移动的边,设成wall就可以,这里再后面需要制定。 2.编写UDF #include "udf.h" #include "unsteady.h" #include "stdio.h" #include "stdlib.h" /************************************************************/ real current_time = 0.0 ; Domain * domain ; Thread * thread ; real NV_VEC( origin ),NV_VEC( force ),NV_VEC( moment ) ; /************************************************************/ DEFINE_CG_MOTION(throttle,dt,vel,omega,time,dtime) { current_time = CURRENT_TIME ; vel[0] = 30; Message("time=%f omega=%f\n",current_time) ; }

FLUENT动网格技术简介

FLUENT动网格简介 在固体有限元计算中,网格运动实非什么稀奇事儿。而且在绝多数固体计算的基本物理量是网格的节点位移,所以,固体计算中,网格节点运动是对的,没有运动反而不正常了。也可以这么说:正因为计算域内部节点间的相对运动,才导致了内应力的产生。 流体计算与固体完全不同。其根源在于它们使用的网格类型不同。当前固体有限元计算采用的是拉格朗日网格,而流体计算则大多数采用的欧拉网格。如果说把拉格朗日网格中的节点点看作是真实世界的物质原子的话,那么欧拉网格的节点则好比是真实世界中的一个个传感器,它们总是呆在相同的位置,真实的记录着各自位置上的物理量。正常情况下,欧拉网格系统是这样的:计算域和节点保持位置不变,发生变化的是物理量,网格节点就像一个个布置在计算域中的传感器,记录该位置上的物理量。这其实是由流体力学研究方法所决定的。宏观与微观的差异决定了固体力学计算采用拉格朗日网格,流体计算采用欧拉网格。关于这部分的详细解说,可以参阅任何一本计算流体动力学书籍。 世界是公平的。有利必有弊。朗格朗日网格适合计算节点位移,然而对于过大的网格变形却难以处理。欧拉网格生来可以处理大变形(因为节点不动),然而对于对于节点运动的处理,则是其直接软肋。然而很不幸的是,现实生活中有太多网格边界运动的实例。如汽车发动机中的气缸运动、阀门开启与关闭、机翼的运动、飞机投弹等等等等举不胜举。 计算流体动力学计算的基本物理量通常为:速度、温度、压力、组分。并不计算网格节点位移。因此要让网格产生运动,通常给节点施加的物理约束是速度。CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。配合瞬态时间,即可很方便的得出位移。当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定节点位移。(2)网格节点速度是通过求解得到的。如6DOF 模型基本上都属于此类。用户将力换算成加速度,然后将其积分成速度。 对于第一类动网格问题,在fluent中通常可以使用profile与UDF进行网格设置,通过规定节点或区域的速度、角速度或位移等方式来显式确定网格的运动,通常大部分的动网格问题都归于此类。而对于第二类问题,通常涉及到力的计算,力在流体中通常是对压力进行积分而来。将力转换为速度或位移,一般涉及到加

Fluent的自适应网格问题

加密网格的话有两种参考标准一种是y+值,一种是y*值,一般来说,要加密网格主要是为了是y+值满足需求,具体的情况看楼主你的需要... 根据y+值来加密网格的步骤如下:运行fluent,导入cas and dat 文件后,点击adapt——Yplus/Ystar..。,之后出现选择界面,一般情况可以保持默认界面,当然也可以根据自己的需求选择选项,一般type项选择Yplus,然后点击compute,在min及max项会出现你的选择壁面的Y+值,在其下方,有minallowed 和maxallowed,输入你所需要的Y+值范围,点击Mark按钮,会标记出不符合要求的部分,然后点击adapt,就可以了,这部分区域的网格会加密,以适应你的要求 Y*的步骤也是这样的 但是前提是要知道你的计算的y+值范围,而这个值一般是估计值,且跟计算有关的,是个不确定量,所以一般只作参考用 希望能帮到你......另外,希望给加分啊,呵呵 追问 我点完adpat,Yplus/Ystar这个是灰的,不能点。。 回答 额,你计算了吗或者说你导入的是cas & dat 文件吗如果不是,你都没 有一个y+值的范围,怎么可能让软件给你加密网格...(这是基本条件)追问 当然计算了,我保存完再导入cas& dat也不行 回答 那你试试计算完,直接点adapt试试.....还真没遇到过你说的情况 追问 adapt都能点只是里面的Yplus/Ystar不能点,是灰色的 fluent里的常见问题(一) (2011-02-26 09:44:43) 1什么叫松弛因子松弛因子对计算结果有什么样的影响它对计算的收敛情况又有什么样的影响? 1、亚松驰(Under Relaxation):所谓亚松驰就是将本层次计算结果与上一层次结果的差值作适当缩减,以避免由于差值过大而引起非线性迭代过程的发散。用通用变量来写出时,为松驰因子(Relaxation Factors)。《数值传热学-214》

FLUENT动网格需要的常用宏

FLUENT动网格需要的常用宏 虽然瞬态PROFILE文件可以在一定程度上定义网格运动,然而其存在着一些缺陷。最主要的一些缺陷存在于以下一些方面: (1)PROFILE无法精确的定义连续的运动。其使用离散的点值进行插值。如果 想获得较为精确的运动定义,势必要定义很多点。 (2)一些情况下无法使用profile。比如稳态动网格。 在FLUENT中定义网格运动,更多的是采用UDF宏。fluent中与动网格有关的UDF 宏一共有5个,其中四个用于常规的网格运动定义,一个用于6DOF模型。这些宏分别为: DEFINE_CG_MOTION、DEFINE_DYNAMIC_ZONE_PROPERTY、DEFINE_GEOM、 DEFINE_GRID_MOTION、DEFINE_SDOF_PROPERTIES 注意:动网格宏只能为编译型UDF。 1、DEFINE_CG_MOTION 最常用的运动网格宏。用户可以使用该宏定义每一时间步上的线速度或角速度来指定fluent中某一特定区域的运动。 DEFINE_CG_MOTION(name,de,vel,omega,time,dtime) 参数说明: name:UDF的名字。体现在fluent中表现为可选择的函数列表。 Dynamic_Thread *dt:存储了用户所指定的动网格属性和结构指针。 real vel[]:线速度。vel[0]为x方向速度,vel[1]为y方向速度,vel[2]为z 方向速度 real omega[]:角速度。与线速度定义相同。 real time:当前时间。 real dtime:时间步长。 函数返回值为:void 从函数的参数类型,配合c语言的参数调用方式可知,vel,omega为数值类型,属于传入类型。因此只需在函数体中显式定义vel与omega即可将速度传入fluent求解器。time与dtime是用于定义速度的。详细实例可参看fluent udf 文档p182。

网格质量检查

1. Fluent检查网格质量的方法,网格导入Fluent中之后,grid->check,可以看看网格大致情况,有无负体积,等等;在Fluent窗口输入,grid quality然后回车,Fluent会显示最主要的几个网格质量。 Fluent计算对网格质量的几个主要要求: 1)网格质量参数: Skewness(不能高于0.95,最好在0.90以下;越小越好) Change in Cell-Size (也是Growth Rate,最好在1.20以内,最高不能超过1.40)Aspect Ratio (一般控制在5:1以内,边界层网格可以适当放宽) Alignment with the Flow(就是估计一下网格线与流动方向是否一致,要求尽量一致,以减少假扩散) 2)网格质量对于计算收敛的影响: 高Skewness的单元对计算收敛影响很大,很多时候计算发散的原因就是网格中的仅仅几个高Skewness的单元。 举个例子:共有112,000个单元,仅有7个单元的Skewness超过了0.95,在进行到73步迭代时计算就发散了! 高长宽比的单元使离散方程刚性增加,使迭代收敛减慢,甚至困难。也就是说,Aspect Ratio尽量控制在推荐值之内。 3)网格质量对精度的影响: 相邻网格单元尺寸变化较大,会大大降低计算精度,这也是为什么连续方程高残差的原因。 网格线与流动是否一致也会影响计算精度。 4)网格单元形状的影响: 非结构网格比结构网格的截断误差大,因此,为提高计算精度计,请大家尽量使用结构网格,对于复杂几何,在近壁这些对流动影响较大的地方尽量使用结构网格,在其他次要区域使用非结构网格。 2. 不要使用那些书上写的y+与yp的计算公式,那个公式一般只能提供数量级上的参考。推荐大家使用NASA的粘性网格间距计算器,设定你想要的y+值,它就能给你计算出第一层网格高度,与计算结果的y+很接近。 3. 关于边界层网格高度与长度的比例,有本CFD书上说,大概在1/sqrt(Re)就可以;另外,也有这种说法,在做粘性计算时,这个比值可以在100-1000之间,无粘有激波计算时,这个比值要相应小点儿,在10-100之间,因为要考虑激波捕捉精度问题。

Fluent中的动网格

Fluent中的动网格 动网格是目前求解计算域变化问题的常用方法。参考Fluent帮助,可以知道动网格技术与一般流动计算设置的主要区别在于网格更新方法和更新域设置。这里就这两方面问题的一点体会作一简单记录。 一、网格更新方法 弹簧近似光滑法将任意两网格节点之间的连线理想地看成一条弹簧,并通过近似弹簧的压缩或拉伸实现网格和计算域的改变。该方法网格拓扑不变,无需网格的插值处理,对结构化(四边形、六面体)和非结构化(三角形、四面体)网格同样适用。但不适合于大变形情况,当计算区域变形较大时,变形后的网格质量变差,严重影响计算精度。 动态分层法在运动边界相邻处根据运动规律动态增加或减少网格层数,以此来更新变形区域的网格。该方法适用于结构化网格,通过设置适当的分层和缩减系数,更新后的网格依然为较为均匀的结构化网格,对计算精度影响较小。对于运动域具有多自由度和任意变形情况,该方法处理起来非常困难。 网格重生方法在整个网格更新区域内依据设定的最大和最小网格尺寸判断需要进行网格重生的网格,并依据设置的更新频率进行网格重生处理。该方法适用于非结构化网格,能够较好的应用于任意变形的计算区域处理。 二、更新域设置 更新域设置是动网格设置中的一项重要工作,最常用的设置是刚体运动域和变形域,这里针对这两种域的设置注意事项和技巧作一简单介绍。 1、域动网格 一般来讲,设置为刚体运动域的区域一般为壁面类边界,通过设置固壁的运动,模拟计算域内物体的运动。 由于固壁边界有时形状较为复杂,壁面附近网格尺度与周围网格尺度存在较大差别,网格更新时变形较大。在这种情况下,可以设置一个包含固壁运动边界的计算域,通过该计算域的整体运动模拟域内物体的运动,在有的地方将这种方法称为域动网格法。在域动网格法中,需要设置包含运动物体的内部计算域、内部计算域界面均为刚体运动域。如下图所示。

学习Fluent必备经验

学习Fluent必备经验(转贴) 1 现在用FLUENT的UDF来加入模块,但是用compiled udf时,共享库老是连不上? 解决办法: 1〉你的计算机必须安装C语言编译器。 2〉请你按照以下结构构建文件夹和存放文件: libudf/src/*.c (*.c为你的源程序); libudf/ntx86/2d(二维为2d,三维为3d)/makefile(由makefile_nt.udf改过来的)libudf/ntx86/2d(二维为2d,三维为3d)/user_nt.udf(对文件中的SOURCE,VERSION,PARALLEL_NODE进行相应地编辑) 3〉通过命令提示符进入文件夹libudf/ntx86/2d/中,运行C语言命令 nmake,如果C语言编译器按装正确和你的源程序无错误,那么此时会编译出Fluent需要的库文件(*.lib)这时再启动Fluent就不会出错了。 2 在使用UDF中用编译连接,按照帮助文件中给出的步骤去做了,结果在连接中报错“系统找不到指定文件”。 udf 文件可能不在工作目录中,应该把它拷到工作目录下,或者输入它的全部路径. 3这个1e-3或者1e-4的收敛标准是相对而言的。在FLUENT中残差是以开始5步的平均值为基准进行比较的。如果你的初值取得好,你的迭代会很快收敛,但是你的残差却依然很高;但是当你改变初场到比较不同的值时,你的残差开始会很大,但随后却可以很快降低到很低的水平,让你看起来心情很好。其实两种情况下流场是基本相同的。 由此来看,判断是否收敛并不是严格根据残差的走向而定的。可以选定流场中具有特征意义的点,监测其速度,压力,温度等的变化情况。如果变化很小,符合你的要求,即可认为是收敛了。 一般来说,压力的收敛相对比较慢一些的。 是否收敛不能简单看残差图,还有许多其他的重要标准,比如进出口流量差、压力系数波动等等 尽管残差仍然维持在较高数值,但凭其他监测也可判断是否收敛。最重要的就是是否符合物理事实或试验结论。 残差曲线是否满足只是一个表面的现象,还要看进口和出口总量差不得大于1%,而且即使这样子,收敛解也不一定准确,它和网格划分/离散化误差,以及屋里模型的准确性都有关系.所

fluent划分网格经验

首先,在网格划分之前,你最好从数值仿真的全局出发,比如精度要求,计算时间要求,机子配置等等,思考一下是使用结构网格,还是非结构网格,抑或是混合网格;因为这关系到接下来的网格划分布置和划分策略。 然后,在确定了网格类型之后,就是根据模型情况,构思一下网格拓扑,就是自己要明确最终想得到什么样的网格,比如翼型网格,是C型,还是O型;一个圆面是想得到“内方外圆”的铜钱币类型的网格,还是一般的网格,等等。这一步有时可能不太清楚,自己有时都不知道什么样的网格拓扑是合适的,那就需要平时多看看这方面的帖子,收集一些划分比较好的网格图片,体会体会。确定了网格拓扑之后,对模型进行划分网格前的准备,比如分割啊,对尺度小对计算结果影响不大的次要几何进行简化,等等。 接着,划分网格。划分网格都是从线网格,面网格,到体网格的;线网格的划分,也就是网格节点的布置,对网格的质量影响比较大,比如歪斜,长宽比,等等,节点密度在GAMBIT中可以通过很多的方法进行控制调整,大家可以看相关的资料。面网格的划分,非结构的网格咱就不说了,结构网格可能有时比较麻烦,这就要求大家最好对那几种网格策略比较了解,比如Quad-Map划分方法所适用的模型形状,在划分的时候对顶点类型及网格节点数的要求(Quad-Map,适用于边数大于或等于4的面,顶点要求为4个End类型,其他为Side类型,对应边的网格节点数必须相等),以此类推,其他的划分方法也有这方面的要求以及适合的形状。当出现了不能划分的时候,可以根据GAMBIT给的提示进行修改顶点类型或网格节点数来满足划分方法的要求。如果实在不能划分,则退而求其次,改用其他方法进行划分或者对面进行分割;等等。关于体网格的划分,与面网格划分所要注意的东西类似。 另外,根据我个人的经验,如果模型比较简单规则,大家最好尽量使用结构网格,比较容易划分,计算结果也比较好,计算时间也相对较短;对于复杂的几何,在尽量少的损失精度的前提下,尽量使用分块混合网格。在使用分块混合网格时注意两点:1)近壁使用边界层网格,这对于近壁区的计算精度很有帮助,尽管使用足够多的非结构网格可以得到相同的结果(倘若在近壁区使用网格不当,那个湍流粘性比超过限定值的警告就可能出现);2)分块网格在分块相邻的地方一定要注意网格的衔接要平滑,相邻网格的尺寸不能相差太大,尽量控制在1.2左右。否则在计算时容易出现不收敛或者高连续方程残差的问题。 最后,一定要记得预览检查网格的质量。如果网格的质量不好,你就不要抱着侥幸的心理交给Fluent计算了,那肯定是算不好的。所以划分网格要有耐心,不断地调整,直到满足要求为止。原本我以为这一条大家都很在意,经过一段时间的论坛问题观察,其实不然,有很多版友随便划分个网格就急切地导入到Fluent中计算,出问题是理所当然的,但提出的很多问题,有时实在让人无能为力,帮不上忙。再说一遍,一定要检查网格质量,如果不满足要求,就不要导入到Fluent中计算了。 一点小知识: 1. Fluent检查网格质量的方法,网格导入Fluent中之后,grid->check,可以看看网格大致情况,有无负体积,等等;在Fluent 窗口输入,grid quality然后回车,Fluent会显示最主要的几个网格质量。 Fluent计算对网格质量的几个主要要求: 1)网格质量参数: Skewness (不能高于0.95,最好在0.90以下;越小越好) Change in Cell-Size (也是Growth Rate,最好在1.20以内,最高不能超过1.40) Aspect Ratio (一般控制在5:1以内,边界层网格可以适当放宽) Alignment with the Flow(就是估计一下网格线与流动方向是否一致,要求尽量一致,以减少假扩散) 2)网格质量对于计算收敛的影响: 高Skewness的单元对计算收敛影响很大,很多时候计算发散的原因就是网格中的仅仅几个高Skewness的单元。

Fluent-动网格实例具体操作步骤

目录 实例:Profile定义运动 (2) I、参数说明 (2) II、操作步骤 (3) 一、将计算域离散为网格 (3) 二、Fluent操作步骤 (4) 1.启动Fluent 14.5求解器 (4) 2.初始设置 (4) 3.选择湍流模型 (5) 4.设置流体物性 (6) 5.设置边界条件 (7) 6.动网格设置 (8) 7.设置其它选项 (12)

在Fluent中,动网格模型可以用来模拟由于流域边界运动引起流域形状随时间变化的流动情况,动网格在求解过程中计算网格要重构,例如汽车发动机中的气缸运动、阀门的开启与关闭、机翼的运动、飞机投弹等等。 CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。配合瞬态时间,即可很方便的得出位移。当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定节点位移。(2)网格节点速度是通过求解得到的。如6DOF模型基本上都属于此类。用户将力换算成加速度,然后将其积分成速度。 在Fluent中,动网格涉及的内容包括: (1)运动的定义。主要是PROFILE文件与UDF中的动网格宏。 (2)网格更新。FLUENT中关于网格更新方法有三种:网格光顺、动态层、网格重构。需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。 动网格的最在挑战来自于网格更新后的质量,避免负体积是动网格调试的主要目标。在避免负网格的同时,努力提高运动更新后的网格质量。 拉格朗日网格(固体有限元计算) 网格 欧拉网格(流体计算) 实例:Profile定义运动 I、参数说明 本次实例采用的场景来自于流体中高速飞行的物体。如子弹、火箭、导弹等。这里只是为了说明profile在动网格运动定义中的应用,因此为了计算方便不考虑高速问题。问题描述如下图所示: 图 1 (1为运动刚体,2为计算域)

Fluent动网格实例具体操作步骤

目录 实例: Profile 定义运动 (2) I、参数说明 (2) II、操作步骤 (3) 一、将计算域离散为网格 (3) 二、 Fluent 操作步骤 (4) 1. 启动Fluent 14.5 求解器 (4) 2. 初始设置 (4) 3. 选择湍流模型 (5) 4. 设置流体物性 (6) 5. 设置边界条件 (7) 6. 动网格设置 (8) 7. 设置其它选项 (12)

在Flue nt中,动网格模型可以用来模拟由于流域边界运动引起流域形状随时间变化的 流动情况,动网格在求解过程中计算网格要重构,例如汽车发动机中的气缸运动、阀门的开启与关闭、机翼的运动、飞机投弹等等。 CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。配合瞬态时间,即可很方便的得出位移。当然一些求解器(如FLUENT )也支持稳态动网格,这时候可以直接 指定节点位移。(2)网格节点速度是通过求解得到的。如6DOF模型基本上都属于此类。用 户将力换算成加速度,然后将其积分成速度。 在Flue nt中,动网格涉及的内容包括: (1)运动的定义。主要是PROFILE文件与UDF中的动网格宏。 (2)网格更新。FLUENT中关于网格更新方法有三种:网格光顺、动态层、网格重构。需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置 方法,每种方法的适用范围。 动网格的最在挑战来自于网格更新后的质量,避免负体积是动网格调试的主要目标。在避免负网格的同时,努力提高运动更新后的网格质量。 拉格朗日网格(固体有限元计算) 网格 欧拉网格(流体计算) 实例:Profile定义运动 I、参数说明 本次实例采用的场景来自于流体中高速飞行的物体。如子弹、火箭、导弹等。这里只是 为了说明profile在动网格运动定义中的应用,因此为了计算方便不考虑高速问题。问题描述如下图所示: 图1 (1为运动刚体,2为计算域)

Fluent 动网格实例具体操作步骤(完整资料).doc

【最新整理,下载后即可编辑】 Fluent 动网格实例具体操作步骤 目录 实例:Profile定义运动 (3) I、................................................................................................... 参数说明 3 II、 ................................................................................................. 操作步骤4 一、将计算域离散为网格 (4) 二、Fluent操作步骤 (5) 1. 启动Fluent 14.5求解器 (5) 2. 初始设置 (6) 3. 选择湍流模型 (7) 4. 设置流体物性 (8) 5. 设置边界条件 (9) 6. 动网格设置 (11) 7. 设置其它选项 (16)

Fluent 动网格实例具体操作步骤 在Fluent中,动网格模型可以用来模拟由于流域边界运动引起流域形状随时间变化的流动情况,动网格在求解过程中计算网格要重构,例如汽车发动机中的气缸运动、阀门的开启与关闭、机翼的运动、飞机投弹等等。 CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。配合瞬态时间,即可很方便的得出位移。当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定节点位移。(2)网格节点速度是通过求解得到的。如6DOF模型基本上都属于此类。用户将力换算成加速度,然后将其积分成速度。 在Fluent中,动网格涉及的内容包括: (1)运动的定义。主要是PROFILE文件与UDF中的动网格宏。 (2)网格更新。FLUENT中关于网格更新方法有三种:网格光顺、动态层、网格重构。需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。

相关文档