FLUENT常见问题

更新时间:2024-06-04 13:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

如何区分层流和紊流? 以什么为标准来区分呢?从层流过渡到紊流的标准是什么?

答:自然界中的流体流动状态主要有两种形式,即层流laminar和湍流(就是问题中所说的紊流)turbulence.层流是指流体在流动过程中两层之间没有相互混渗,而湍流是指流体不是处于分层流动状态。

对于圆管内流动,雷诺数小于等于2300,管流一定为层流,雷诺数大于等于8000到12000之间,管流一定为湍流,雷诺数大于2300而小于8000时,流动处于层流与湍流的过渡区。

对于一般流动,在计算雷诺数时,可以用水力半径代替管径。

第40题:在处理高速空气动力学问题时,采用哪种耦合求解器效果更好?为什么?

高速空气动力学问题也属于可压缩流动的范围,在Fluent中原则上,使用Pressure-based和Density-based求解器都可以。从历史根源上讲,基于压力的求解器以前主要用于不可压缩流动和微可压缩流动,而基于密度的求解器用于高速可压缩流动。现在,两种求解器都适用于从不可压到高速可压的很大范围流动,但总的来讲,当计算高速可压缩流动时,基于密度的求解器还是璧基于压力的求解器更有优势,因此,在使用Fluent计算高速可压缩流动时,推荐使用Density-based求解器。

也许有很多人对于Pressure-based和Density-based求解器的原理的认识还不够深,在此稍微介绍一下:

求解Navier-Stokes方程的计算方法根据连续方程的处理方式,可以分为密度法和压力法。不论是密度法还是压力法,速度场都是由动量方程所控制,差别在压力场的确定方法上,密度法是通过连续方程确定密度,再由状态方程换算压力,这一方法多用于可压缩流动,作一定修正后,也可用于低马赫数流动,而这一流动已被看做不可压缩流,但此时精度及鲁棒性都有所降低,对于湍流甚至会失去有效性。密度法的弱点正好是压力法的长处,压力法是通过压力方程或压力修正方程来获得压力场,由于其鲁棒性及有效性,得以广泛使用。该方法原是作为求解不可压缩流动发展起来的,但也可以推广到可压缩流的计算上。这两种方法在求解思路上也有所不同,密度法多用同步求解各变量,而压力法则常为顺序求解各变量。显然顺序求解的一个优势是便于补充方程而无需修改算法程序。

Fluent用户手册上,对于可压缩流动有以下需要注意的策略,在此就不再翻译了,以免曲解原意。

Solution Strategies for Compressible Flows

The difficulties associated with solving compressible flows are a result of the high degree of coupling between the flow velocity, density, pressure, and energy. Thi

s coupling may lead to instabilities in the solution process and, therefore, may require special solution techniques in order to obtain a converged solution. In addition, the presence of shocks (discontinuities) in the flow introduces an additional stability problem during the calculation. Solution techniques that may be beneficial in compressible flow calculations include the following:

##(Pressure-based solver only) Initialize the flow to be near stagnation (i.e. velocity small but not zero, pressure to inlet total pressure, temperature to inlet total temperature). Turn off the energy equation for the first 50 iterations. Leave the energy under-relaxation at 1. Set the pressure under-relaxation to 0.4, and the momentum under-relaxation to 0.3. After the solution stabilizes and the energy equation has been turned on, increase the pressure under-relaxation to 0.7.

##Set reasonable limits for the temperature and pressure (in the Solution Limits panel) to avoid solution divergence, especially at the start of the calculation. If FLUENT prints messages about temperature or pressure being limited as the solution near convergence, the high or low computed values may be physical, and you will need to change the limits to allow these values.

##If required, begin the calculations using a reduced pressure ratio at the boundaries, increasing the pressure ratio gradually in order to reach the final desired operating condition. If the Mach number is low, you can also consider starting the compressible flow calculation from an incompressible flow solution (although the incompressible flow solution can in some cases be a rather poor initial guess for the compressible calculation).

##In some cases, computing an inviscid solution as a starting point may be helpful.

对于Fluent中,Pressure-based求解器中的格式,在其他的题目中已有相关的介绍,粘性项一般均使用中心差分格式,对流项的差分格式主要有:一阶迎风格式,二阶迎风格式,指数格式,QUICK格式,三阶MUSCL格式。对于这些格式,在此不做详谈,请参考相关资料。

在Fluent中,对于Density-based求解器的格式,主要有两种:一种是Roe通量差分分裂格式,另一种就是AUSM+格式;因为本人没有做过具体的高速气动计算,在此只能从理论上介绍一下这两种格式以及相关的一些CFD格式。

目前CFD常用的计算格式有:中心格式,迎风格式以及NND,TVD,ENO等格式。其中中心格式逻辑关系简单,计算量小,但其分辨间断是通过人工粘性在一定程度上抹平间断而得到光滑解来实现的,不仅数值耗散大,而且包含经验性参数。TVD格式与ENO格式构造复杂,计算量大,TVD格式因其构造机制可限制间断附近的振荡,但有较大的数值耗散,在非间断的极值附近也会导致格式降为一阶精度;ENO格式可达到基本无振荡,一致二阶精度,但在所有二阶精度格式中其变量或通量插值的坡度最接近于零,故耗散仍比较大。迎风格式具有计算效率和间断分辨率的综合优势,在一定限制条件下也可得到TVD性质,因而得到了广泛应用。其中Van Leer格式与Roe格式是具有代表性,应用最成功的两种迎风格式。Van Leer格式分裂形式简单,计算效率高,但数值耗散比较大,格式提出之初作者就指出:即便对于精确的接触间断条件,仍然存在数值通量,从而抹平间断,会导致显著的粘性区计算误差,而且通过简单地加密网格或是使用高阶差分并不能消除这种误差。Roe格式具有间断高分辨率,但当其通量Jacobian矩阵的特征值很小时,会违反熵条件,产生非物理解,故必须引入熵修正,但熵修正引入了额外耗散,而且熵修正依赖于求解的问题有

多种形式,包含经验性常数;在高马赫数时,Roe格式还会出现所谓的红玉现象,即在强激波后产生非物理的紊乱信号。AUSM+格式,是Liu M S于1993年提出并发展而成的新格式,从格式构造上讲是Van Leer格式的一种发展改进,但从其耗散项分析,这是一种FVS(Flux Vector Splitting)与FDS(Flux Difference Splitting)的复合格式。AUSM+格式兼有Roe格式的间断高分辨率和Van Leer格式的计算效率,而且克服了二者的缺点。它的数值耗散小,具有激波与接触间断的高分辨率,无需熵修正,计算量只与Van Leer格式相近,还有标量(如密度)的正值保持性。

总结一下:

Roe格式计算量大,需熵修正,这会引入额外的数值耗散;在高马赫数时,还会产生红玉现象;

AUSM+格式,对于激波,接触间断具有高分辨率,能够精确描述激波,膨胀波,接触间断及其相互干扰的复杂波系;格式构造的内在机制使它具有标量耗散,计算效率高,数值耗散小,无需熵修正,且无红玉现象的优点。

在Fluent中计算高速流动,建议采用AUSM+,在计算的初始,使用低阶格式,如果要计算有粘且高马赫数的流动,建议先从无粘低马赫数算起作为初始值,之后加入粘性,慢慢提高马赫数,一步步计算。另外,计算的过程中,CFL不能太大。

注:以上仅是这些算法的一些理论基础,至于Fluent中具体是如何处理这些格式的,还不清楚,在作高速计算时,仅供一点儿参考。

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 obt

ain 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.

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

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

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

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

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

当几何比较复杂或流程的长度尺度的范围比较大的时候,可以创建是一个三角形/四面体网格,因为它与由四边形/六面体元素所组成的且与之等价的网格比较起来,单元要少的多。这是因为一个三角形/ 四面体网格允许单元群集在被选择的流动区域中,而结构四边形/六面体网格一般会把单元强加到所不需要的区域中。对于中等复杂几何,非结构四边形/六面体网格能构提供许多三角形/ 四面体网格所能提供的优越条件。 在一些情形下使用四边形/六面体元素是比较经济的,四边形/六面体元素的一个特点是它们允许一个比三角形/四面体单元大的多的纵横比。一个三角形/ 四面体单元中的一个大的纵横比总是会影响单元的偏斜(skewness),而这不是所希望的,因为它可能妨碍计算的精确与收敛。所以,如果你有一个相对简单的几何,在这个几何中流动与几何形状吻合的很好,例如一个瘦长管道,你可以运用一个高纵横比的四边形/六面体单元的网格。这个网格拥有的单元可能比三角形/ 四面体少的多。 3.数值耗散

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

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

关于流体流动的所有实际的数值设计包括有限数量的数值耗散。这是因

为数值耗散起于切断错误,而切断错误是一个表达离散形式的流体流动方程的结果。

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

当流动与网格相吻一致时,数值耗散减到最小。

最后这一点与网格的选择非常有关。很明显,如果你选择一个三角形/ 四面体网格,那么流动与网格总不能一致。另一方面,如果你使用一个四边形/六面体网格,这种情况也可能会发生,但对于复杂的流动则不会。在一个简单流动中,例如过一长管道的流动,你可以依靠一个四边形/六面体网格以尽可能的降低数值的耗散。在这种情形,使用一个四边形/六面体网格可能有些有利条件,因为与使用一个三角形/ 四面体单元比起来,你将能够使用比较少的单元而得到一个更好的解。

第68题:做飞机设计时,经常计算一些翼型,可是经常出现计算出来的阻力是负值,出现负值究竟是什么原因,是网格的问题还是计算参数设置的问题?

如果这个问题对于某个人经常出现的话,那就比较奇怪了,阻力是负值,难道就是传说中的前缘吸力现身?呵呵,只是开个玩笑:),估计肯定是计算错了或者是设置错了。在飞机翼型气动里面,阻力主要有两种成份:压差阻力和摩擦阻力。应该是正值的。

排除是计算过程的其他问题,我觉得在使用Fluent进行这方面的计算时,需要注意两个方面:

1.参考值的设置,也就是Report->Reference Values...

这些参考值,是用来计算Re,以及升力,阻力,力矩系数所要用到的。如果设置不当,即使计算过程是对的,所得到的升阻力等系数也是不对的。对于2D翼型仿真计算,比较容易出错的就是里面的Area该写什么,单位是平方米,这里应该填写翼型的弦长(Chord Length),The area here is actually area per unit depth;就是每单位展长的面积。

2.在监视力的时候,关于力的矢量方向设置,Solve->Monitor->Force... 这个矢量方向千万不要小看,不能填错,填错了就可能出现阻力是负值的错误,Fluent之前的版本所附带的例子,关于NACA0012翼型的计算中,这里的矢量就设置错了,受错误例子的影响,韩占忠那本书中三角形翼型的那个例子也设置错误,在书的第112页的第6步的第(7)小步就设置错误,升力系数的力方向矢量,应该是X=-0.087155,Y=0.996195;前面他也写到要注意:要确保阻力和升力分别与来流平行和垂直,那么这两个力矢量肯定是垂直的了,那么这两个矢量的点乘就肯定等于零了;所幸的是,在Fluent6.3版本的例子中,这个错误已经改正过来了。

第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 语法原形;没有直接数据结构引用;局部结构的声明;联合函数指针;函数阵列;

解释型UDF与编译型UDF的区别:

在解释型与编译型UDF 之间的主要的不同之处是很重要的,例如当你想在UDF 中引进新的数据结构时。解释型不能通过直接数据引用获得FLUENT 解算器的数据;只能间接的通过FLUENT 预先提供的宏来获取数据。具体请参考第7 章。

在解释型与编译型UDF 之间的主要的不同之处是很重要的,例如当你想在UDF 中引进新的数据结构时。解释型不能通过直接数据引用获得FLUENT 解算器的数据;只能间接的通过FLUENT 预先提供的宏来获取数据。具体请参考第7 章。

总结一下,当选择写解释型或者编译型UDF时,记住以下几条:

解释型UDF:对别的运行系统是可移植的,可以作为编译型运行,不需要c 编译器,比编译型的要慢,在使用C 程序语言时有限制,不能链接到编译系统或者用户库,只能通过预先提供的宏访问FLUENT 中存储的数据。

编译型UDF:运行要快于解释型UDF,对C 程序语言没有限制,可以使用任何ANSI-compliant c 编译器进行编译,可以调用其他语言写的函数(特别是独立于系统和编译器的),如果包含某些解释器不能处理的c 语言部分时用解释型UDF 是不行的。

总之,当决定哪一类型的udf 应用到你的模型时:

对小的,直接的函数用解释型;对复杂函数使用编译型。

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

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

160 在计算过程中其它指数都收敛了,就continuity不收敛是怎么回事?在初始化设置中,那些项影响continuity的收敛?

在计算过程中其他指数都收敛了,就continuity不收敛,这种情况一般出现在多相流中,在初始化设置中,可能把上次计算结果的进口参数作为初始化设置,可以加快continuity的收敛,不过更重要的是改进网格质量。

87 courant数:在模拟高压的流场的时候,迭代的时候总是自动减小其数值,这是什么原因造成的,为什么?怎么修改?

这是流场的压力梯度较大,Fluent自身逐步降低时间步长,防止计算发散。我一般的处理办法是:先将边界条件上的压力设置较低点,使得压力梯度较小一点,等到收敛的感觉差不多,在这个基础上,逐渐把压力增大,这样就不容易发散。

大概需要划分100万个左右的单元,且只计算稳态流动,请问这样的问题PC机上算的了吗?如果能算至少需要怎样的计算机配置呢? 答:一般来说,按照1000个节点对1MB内存这样预估就差不多了,只计算稳态流动,pc机应该差不多了,不过因为一般的pc机可能在连续计算5、6天之后就出现浮点运算错误,所以如果计算不是很复杂,采用的求解器和湍流模型不是太好计算资源,应该还是可以的。

如果使用pc机计算,建议至少采用2GB内存,主板最好固态电容,不易爆浆,电源最好功率大典,应该差不多了,现在流行四核cpu的,可以考虑使用四核的,这样的配置下来也不比服务器差多少。

本文来源:https://www.bwwdw.com/article/jvm6.html

Top