Fluent心得 下载本文

答:给定流动出口的静压。对于有回流的出口,压力出口边界条件比质量出口边界条件边界条件更容易收敛。

压力出口边界条件压力根据内部流动计算结果给定。其它量都是根据内部流动外推出边界条件。该边界条件可以处理出口有回流问题,合理的给定出口回流条件,有利于解决有回流出口问题的收敛困难问题。 出口回流条件需要给定:回流总温(如果有能量方程),湍流参数(湍流计算),回流组分质量分数(有限速率模型模拟组分输运),混合物质量分数及其方差(PDF 计算燃烧)。如果有回流出现,给的表压将视为总压,所以不必给出回流压力。回流流动方向与出口边界垂直。

52 对于不同求解器,离散格式的选择应注意哪些细节?实际计算中一阶迎风差分与二阶迎风差分有什么异同?

离散格式对求解器性能的影响

控制方程的扩散项一般采用中心差分格式离散,而对流项则可采用多种不同的格式进行离散。Fluent允许用户为对流项选择不同的离散格式(注意:粘性项总是自动地使用二阶精度的离散格式)。默认情况下,当使用分离式求解器时,所有方程中的对流项均用一阶迎风格式离散;当使用耦合式求解器时,流动方程使用二阶精度格式,其他方程使用一阶精度格式进行离散。此外,当选择分离式求解器时,用户还可为压力选择插值方式。

当流动与网格对齐时,如使用四边形或六面体网格模拟层流流动,使用一阶精度离散格式是可以接受的。但当流动斜穿网格线时,一阶精度格式将产生明显的离散误差(数值扩散)。因此,对于2D三角形及3D四面体网格,注意使用二阶精度格式,特别是对复杂流动更是如此。一般来讲,在一阶精度格式下容易收敛,但精度较差。有时,为了加快计算速度,可先在一阶精度格式下计算,然后再转到二阶精度格式下计算。如果使用二阶精度格式遇到难于收敛的情况,则可考虑改换一阶精度格式。

对于转动及有旋流的计算,在使用四边形及六面体网格式,具有三阶精度的QUICK格式可能产生比二阶精度更好的结果。但是,一般情况下,用二阶精度就已足够,即使使用QUICK格式,结果也不一定好。乘方格式(Power-law Scheme)一般产生与一阶精度格式相同精度的结果。中心差分格式一般只用于大涡模拟,而且要求网格很细的情况。

Fluent用户手册上的内容:

First-Order Accuracy vs. Second-Order Accuracy

When the flow is aligned with the grid (e.g., laminar flow in a rectangular duct modeled with a quadrilateral or hexahedral grid) the first-order upwind discretization may be acceptable. When the flow is not aligned with the grid (i.e., when it crosses the grid lines obliquely), however, first-order convective discretization increases the numerical discretization error (numerical diffusion). For triangular and tetrahedral grids, since the flow is never aligned with the grid, you will generally obtain more accurate results by using the second-order discretization. For quad/hex grids, you will also obtain better results using the second-order discretization, especially for complex flows.

In summary, while the first-order discretization generally yields better convergence than the second-order scheme, it generally will yield less accurate results, especially on tri/tet grids. See Section 25.22 for information about controlling convergence.

For most cases, you will be able to use the second-order scheme from the start of the calculation. In some cases, however, you may need to start with the first-order scheme and then

switch to the second-order scheme after a few iterations. For example, if you are running a high-Mach-number flow calculation that has an initial solution much different than the expected final solution, you will usually need to perform a few iterations with the first-order scheme and then turn on the second-order scheme and continue the calculation to convergence. Alternatively, full multigrid initialization is also available for some flow cases which allow you to proceed with the second-order scheme from the start.

For a simple flow that is aligned with the grid (e.g., laminar flow in a rectangular duct modeled with a quadrilateral or hexahedral grid), the numerical diffusion will be naturally low, so you can generally use the first-order scheme instead of the second-order scheme without any significant loss of accuracy.

Finally, if you run into convergence difficulties with the second-order scheme, you should try the first-order scheme instead.

Other Discretization Schemes

The QUICK and third-order MUSCL discretization schemes may provide better accuracy than the second-order scheme for rotating or swirling flows. The QUICK scheme is applicable to quadrilateral or hexahedral meshes, while the MUSCL scheme is used on all types of meshes. In general, however, the second-order scheme is sufficient and the QUICK scheme will not provide significant improvements in accuracy.

##If QUICK is used for hybrid meshes, it will be invoked only for quadrilateral and hexahedral cells. Second-order discretization will be applied to all other cells.

A power law scheme is also available, but it will generally yield the same accuracy as the first-order scheme.

The bounded central differencing and central differencing schemes are available only when you are using the LES and DES turbulence models, and the central differencing scheme should be used only when the mesh spacing is fine enough so that the magnitude of the local Peclet number (Equation25.3-3) is less than 1.

A modified HRIC scheme (Section25.3.1) is also available for VOF simulations using either the implicit or explicit formulation.

53 对于FLUENT的耦合解算器,对时间步进格式的主要控制是Courant数(CFL),那么Courant数对计算结果有何影响?

courant number实际上是指时间步长和空间步长的相对关系,系统自动减小courant数,这种情况一般出现在存在尖锐外形的计算域,当局部的流速过大或者压差过大时出错,把局部的网格加密再试一下。

在Fluent中,用courant number来调节计算的稳定性与收敛性。一般来说,随着courant number的从小到大的变化,收敛速度逐渐加快,但是稳定性逐渐降低。所以具体的问题,在计算的过程中,最好是把courant number从小开始设置,看看迭代残差的收敛情况,如果收敛速度较慢而且比较稳定的话,可以适当的增加courant number的大小,根据自己具体的问题,找出一个比较合适的courant number,让收敛速度能够足够的快,而且能够保持它的稳定性。

54在分离求解器中,FLUENT提供了压力速度耦和的三种方法:SIMPLE,SIMPLEC及PISO,它们的应用有什么不同?

在FLUENT中,可以使用标准SIMPLE算法和SIMPLEC(SIMPLE-Consistent)算法,默认是SIMPLE算法,但是对于许多问题如果使用SIMPLEC可能会得到更好的结果,尤其

是可以应用增加的亚松驰迭代时,具体介绍如下:

对于相对简单的问题(如:没有附加模型激活的层流流动),其收敛性已经被压力速度耦合所限制,你通常可以用SIMPLEC算法很快得到收敛解。在SIMPLEC中,压力校正亚松驰因子通常设为1.0,它有助于收敛。但是,在有些问题中,将压力校正松弛因子增加到1.0可能会导致不稳定。

对于所有的过渡流动计算,强烈推荐使用PISO算法邻近校正。它允许你使用大的时间步,而且对于动量和压力都可以使用亚松驰因子1.0。对于定常状态问题,具有邻近校正的PISO并不会比具有较好的亚松驰因子的SIMPLE或SIMPLEC好。对于具有较大扭曲网格上的定常状态和过渡计算推荐使用PISO倾斜校正。

当你使用PISO邻近校正时,对所有方程都推荐使用亚松驰因子为1.0或者接近1.0。如果你只对高度扭曲的网格使用PISO倾斜校正,请设定动量和压力的亚松驰因子之和为1.0比如:压力亚松驰因子0.3,动量亚松驰因子0.7)。如果你同时使用PISO的两种校正方法,推荐参阅PISO邻近校正中所用的方法。

55对于大多数情况,在选择选择压力插值格式时,标准格式已经足够了,但是对于特定的某些模型使用其它格式有什么特别的要求?

压力插值方式的列表只在使用Pressure-based求解器中出现。一般情况下可选择Standard;对于含有高回旋数的流动,高Rayleigh数的自然对流,高速旋转流动,多孔介质流动,高曲率计算区域等流动情况,选择PRESTO格式;对于可压缩流动,选择Second Order;当然也可以选择Second Order以提高精度;对于含有大体力的流动,选择Body Force Weighted。

注意:Second Order格式不可以用于多孔介质;在使用VOF和Mixture多相流模型时,只能使用PRESTO或Body Force Weighted格式。

关于压力插值格式的详细内容,请参考Fluent用户手册。

Interpolation schemes for calculating cell-face pressures when using the segregated solver in FLUENT are available as follows:

Standard – The default scheme; reduced accuracy for flows exhibiting large surface-normal pressure gradients near boundaries (but should not be used when steep pressure changes are present in the flow – PRESTO! scheme should be used instead.)

PRESTO! – Use for highly swirling flows, flows involving steep pressure gradients (porous media, fan model, etc.), or in strongly curved domains

Linear – Use when other options result in convergence difficulties or unphysical behavior

Second-Order – Use for compressible flows; not to be used with porous media, jump, fans, etc. or VOF/Mixture multiphase models

Body Force Weighted – Use when body forces are large, e.g., high Ra natural convection or highly swirling flows

56.计算流体力学中在设定初始条件和边界条件的时候总是要先选择一组湍流参数,并给出其初值。如何选择并给出这些初值呢?有什么经验公式或者别的好的办法吗?

由于回答之中包含一些参数的计算公式,为了更好地解释这个问题,请参考附件中的文档,文档取自流体中文网翻译整理的《FLUENT全攻略》,在此表示感谢。

57.讨论在数值模拟过程中采用四面体网格计算效果好,还是采用六面体网格更妙呢?

在2D中,FLUENT 可以使用三角形和四边形单元以及它们的混合单元所构成的网格。在3D中,它可以使用四面体,六面体,棱锥,和楔形单元所构成的网格。选择那种类型的单元取决于你的应用。当选择网格类型的时候,应当考虑以下问题: 设置时间(setup time)

计算成本(computational expense) 数值耗散(numerical diffusion ) 1.设置时间

在工程实践中,许多流动问题都涉及到比较复杂的几何形状。一般来说,对于这样的问题,建立结构或多块(是由四边形或六面体元素组成的)网格是极其耗费时间的。所以对于复杂几何形状的问题,设置网格的时间是使用三角形或四面体单元的非结构网格的主要动机。然而,如果所使用的几何相对比较简单,那么使用哪种网格在设置时间方面可能不会有明显的节省。

如果你已经有了一个建立好的结构代码的网格,例如FLUENT 4,很明显,在FLUENT中使用这个网格比重新再生成一个网格要节省时间。这也许是你在FLUENT 模拟中使用四边形或六面体单元的一个非常强的动机。注意,对于从其它代码导入结构网格,包括FLUENT 4,FLUENT 有一个筛选的范围。

2.计算成本

当几何比较复杂或流程的长度尺度的范围比较大的时候,可以创建是一个三角形/四面体网格,因为它与由四边形/六面体元素所组成的且与之等价的网格比较起来,单元要少的多。这是因为一个三角形/ 四面体网格允许单元群集在被选择的流动区域中,而结构四边形/六面体网格一般会把单元强加到所不需要的区域中。对于中等复杂几何,非结构四边形/六面体网格能构提供许多三角形/ 四面体网格所能提供的优越条件。

在一些情形下使用四边形/六面体元素是比较经济的,四边形/六面体元素的一个特点是它们允许一个比三角形/四面体单元大的多的纵横比。一个三角形/ 四面体单元中的一个大的纵横比总是会影响单元的偏斜(skewness),而这不是所希望的,因为它可能妨碍计算的精确与收敛。所以,如果你有一个相对简单的几何,在这个几何中流动与几何形状吻合的很好,例如一个瘦长管道,你可以运用一个高纵横比的四边形/六面体单元的网格。这个网格拥有的单元可能比三角形/ 四面体少的多。

3.数值耗散

在多维情形中,一个错误的主要来源是数值耗散,术语也为伪耗散(false diffusion)。之所以称为“伪耗散”是因为耗散不是一个真实现象,而是它对一个流动计算的影响近似于增加真实耗散系数的影响。

关于数值耗散的观点有:

当真实耗散小,即情形出现对流受控时(即本身物理耗散比较小时),数值的耗散是最值得注意的。

关于流体流动的所有实际的数值设计包括有限数量的数值耗散。这是因为数值耗散起于切断错误,而切断错误是一个表达离散形式的流体流动方程的结果。

用于FLUENT 中的二阶离散方案有助于减小数值耗散对解的影响。 数值耗散的总数反过来与网格的分解有关。因此,处理数值耗散的一个方法是改进网格。 当流动与网格相吻一致时,数值耗散减到最小。

最后这一点与网格的选择非常有关。很明显,如果你选择一个三角形/ 四面体网格,那么流动与网格总不能一致。另一方面,如果你使用一个四边形/六面体网格,这种情况也可

能会发生,但对于复杂的流动则不会。在一个简单流动中,例如过一长管道的流动,你可以依靠一个四边形/六面体网格以尽可能的降低数值的耗散。在这种情形,使用一个四边形/六面体网格可能有些有利条件,因为与使用一个三角形/ 四面体单元比起来,你将能够使用比较少的单元而得到一个更好的解。

58 如何将自己用C语言编辑的程序导入到FLUENT中?在利用UDF编写程序时需注意哪些问题?

我一般用txt文件进行UDF编程,之后将文件改为.c文件 将程序导入到Fluent中利用编译功能,具体操作

在fluent中的Define -> Use-Defined -> Compiled 打开之后,选择source files下面的Add...,找到编写好的.c文件打开,点击Build,就会生成一个以liberary name命名的文件夹,编译好的资料就放在这个文件夹里面,最后点击load就会将编译好的内容导入到Fluent中,这样你在有UDF选项的下拉菜单中就会看到你编好的程序名称。

利用UDF编程和C语言编程很相似,所以最好知道一些C语言编程的基础,再掌握一些Fluent的UDF固有的一些命令,基本上一些简单的程序就都没问题了。

59.在UDF中compiled型的执行方式和interpreted型的执行方式有什么不同? 编译型UDF:

采用与FLUENT 本身执行命令相同的方式构建的。采用一个称为Makefile的脚本来引导c 编译器构造一个当地目标编码库(目标编码库包含有将高级c 语言源代码转换为机器语言。)这个共享库在运行时通过“动态加载”过程载入到FLUENT 中。目标库特指那些使用的计算机体系结构,和运行的特殊FLUENT 版本。因此,FLUENT 版本升级,计算机操作系统改变以及在另一台不同类型的计算机上运行时,这个库必须进行重构。

编译型UDF 通过用户界面将原代码进行编译,分为两个过程。这两个过程是:访问编译UDF 面板,从源文件第一次构建共享库的目标文件中;然后加载共享库到FLUENT 中。 采用与FLUENT 本身执行命令相同的方式构建的。采用一个称为Makefile的脚本来引导c 编译器构造一个当地目标编码库(目标编码库包含有将高级c 语言源代码转换为机器语言。)这个共享库在运行时通过“动态加载”过程载入到FLUENT 中。目标库特指那些使用的计算机体系结构,和运行的特殊FLUENT 版本。因此,FLUENT 版本升级,计算机操作系统改变以及在另一台不同类型的计算机上运行时,这个库必须进行重构。

编译型UDF 通过用户界面将原代码进行编译,分为两个过程。这两个过程是:访问编译UDF 面板,从源文件第一次构建共享库的目标文件中;然后加载共享库到FLUENT 中。 解释型UDF:

解释型UDF 同样也是通过图形用户界面解释原代码,却只有单一过程。这一过程伴随着运行,包含对解释型UDF 面板的访问,这一面板位于源文件中的解释函数。

在FLUENT内部,源代码通过c 编译器被编译为即时的、体系结构独立的机器语言。UDF 调用时,机器编码通过内部模拟器或者解释器执行。额外层次的代码导致操作不利,但是允许解释型UDF 在不同计算结构,操作系统和FLUENT 版本上很容易实现共享。如果迭代速度成为焦点时,解释型UDF 可以不用修改就用编译编码直接运行。

解释型UDF 使用的解释器不需要有标准的c 编译器的所有功能。特别是解释型UDF 不含有下列C 程序语言部分:

goto 语句声明;无ANSI-C 语法原形;没有直接数据结构引用;局部结构的声明;联合函