1、1.学习方法首先看两本教材,然后开始看软件的说明。如果说要提高效率的话,在阅读说明的时候可以先读完Getting Start Guide部分,然后大致先浏览一下Users Guide,之后重点过一遍Tutorial Guide。而且我建议Tutorial Guide部分不要因为跟自己的实际使用的模块不一样就跳过,因为实际上每一个Tutorial都会有前处理后处理,这一部分是通用的。就算是模型部分,你也难保课题在进行过程中会需要换模型,你现在做一天算例,心里有数了,以后想尝试改变模型时心里也有底。我个人前前后后应该是将Tutorial Guide部分的算例做了近三遍,第一遍基本按操作说明一步一步
2、来。第一遍做下来对于Fluent这个软件的大体逻辑就有个数了。注意这里有一个问题,那就是计算流体力学的逻辑和软件的操作逻辑还不能等同的。这里涉及到一个数学模型在软件层面的具体实现路径的问题。所以你即使学过计算流体力学的课程,细致地做一遍Tutorial Guide部分的算例我觉得也是有很大的必要的。完成Tutorial Guide的第一遍演练之后,我就回头开始看Users Guide部分,并且边看边做第二遍算例演练。两个部分说明互相对照,开始明白每一步操作的实际目的是什么。渐渐知道自己在干什么了。这一个阶段会推进的比较慢,因为来回对照着做,太快了也不现实,所以需要静下心来做。第二遍完成之后,我
3、在做第三的时候,则基本可以脱离操作说明,来完成设计了和计算了。而且Users Guide于自己课题相关的内容也基本仔细读过了。这样大体就可以进入下一个阶段了。第三个阶段就是要真正利用Fluent计算自己的算例了。这里涉及到每个人模拟的具体物理过程,基本上大家在了解了Fluent有哪一些具体模块之后,也就清楚自己需要使用哪一个。第一步可以尽量尝试简单的几何模型以及初始条件和便捷条件。首要的目标是能够开始计算,模型跑通了才行。能够计算了才有接下来继续讨论的基础。简单模型调试成功之后接下来才算是正式能够开始课题工作了。每个人课题不同,所以在这个阶段计算的东西可能不太一样。我自己的理解是如果课题主要的
4、工作是模拟计算的话,那么有两大东西是课题讨论的,一是在Fluent的基础之上讨论算法和计算参数的设置对于计算结果的影响,二是在稳定算例的基础之上讨论物理模型的数值模型建立方式控制方程的形式,计算模型的选择等因素对计算结果的影响。前者实际上往往是出不了什么成绩的,至少没有太多创新性的成绩。因为你始终在调整的是Fluent的用户控制界面上给出的选项,Fluent程序底层的东西你看不到。但是不同参数下的计算结果比较作为学位论文的一部分应该没什么问题,尤其当精度和迭代求解算法等参数对计算结果又非常明显的影响的时候,也还是可以作为自己的一个发现的。而且我认为这部分工作其实是必须要做的,一方面多数情况下这
5、些参数的选择本身可能对计算结果和收敛速度方面有直接且显著的影响,自己在调试算例的时候这些工作肯定是要做的额。另一方面完整的数值模拟过程就是要做到一个非参数化,也就是你的计算结果应该是稳定,不因网格尺寸等因素的变化而明显变化。关于Fluent的算法和计算参数对计算结果的讨论暂且先说这么一些,下面谈一点关于物理模型到数据模型到控制方程这样思路的关于计算模型修正的讨论。这对于大多数的研究来说应该是最核心的东西,也是最难的东西,这一方面对于理论功底有要求,另一方面对于软件的使用的熟悉度也有要求。而且很多的时候计算结果不对,可能有模型构建的问题,也有软件实现的时候设置的问题,需要非常小心细致的工作才行。
6、要走这一方面的工作学习UDF部分应该是必不可少的。如何学习编写UDF,也没有其他方法仔细看UDF Manual,然后自己尝试。这时候在自己最简单的算例上进行尝试,做到单变量变化来推进整个研究过程。不要急于求成,这个阶段是最容易出现挫败感的阶段,因为你的输入在些微细节上的疏忽就可能导致无法计算、计算不收敛、或者计算结果失真的问题。我自己在这方面是吃了很多苦头的,最开始目标设得太远直接按最复杂的模型编写UDF,编了十几个UDF插入,但是计算就是不对,然后再一个一个回头去找问题,这是特别头痛的一件事,最后都没有走通。最后是换了一种思路,从最简单的单相模型开始做,一直做到三相的模型,这样每一个阶段都能
7、有一点结果的积累,毕业论文的压力也不会太大。关于自己模型的具体描述,对于跟我不是做一样方向的同学也没有什么价值,我就不具体详述了。关键还是细心看完UDF Manual然后自己尝试着从最简单的开始编写。另外网络上能找到一些比较复杂的UDF模板,对于同样需要编写复杂UDF的同学,不妨找来读一读,在它的基础之上做修改,这样编写起来要简单很多。2.fluent模拟当你决定使FLUENT解决某一问题时,首先要考虑如下几点问题:(1)定义模型目标:从CFD模型中需要得到什么样的结果?从模型中需要得到什么样的精度?(2)选择计算模型:你将如何隔绝所需要模拟的物理系统?计算区域的起点和终点是什么?在模型的边界
8、处使用什么样的边界条件?二维问题还是三维问题?什么样的网格拓扑结构适合解决问题?(3)物理模型的选取:无粘,层流还湍流?定常还是非定常?可压流还是不可压流?是否需要应用其它的物理模型?(4)确定解的程序:问题可否简化?是否使用缺省的解的格式与参数值?采用哪种解格式可以加速收敛?使用多重网格计算机的内存是否够用?得到收敛解需要多久的时间?在使用CFD分析之前详细考虑这些问题,对你的模拟来说是很有意义的。当你计划一个CFD工程时,请利用提供给FLUENT使用者的技术支持。3.fluent 网格FLUENT在二维问题中可以使用由三角形、四边形或混合单元组成的网格,在三维问题中可以使用四面体,六面体,
9、金字塔形以及楔形单元,或者两种单元的混合。网格的选择依赖于具体的问题,在选择网格的时候,你应该考虑下列问题:1)初始化的时间2)计算花费3)数值耗散4)初始化的时间。很多实际问题是具有复杂几何外形的,对于这些问题采用结构网格或块结构网格可能要花费大量的时间,甚至根本无法得到结构网格。复杂几何外形初始化时间的限制刺激了人们在非结构网格中使用三角形网格和四面体网格。然而,如果你的几何外形并不复杂的话,两种方法所耗费的时间没有明显差别。如果你已经有了结构网格代码如FLUENT 4生成的网格,那么在FLUENT中使用该网格会比重新生成网格节约大量的时间。这一特点也刺激了人们在FLUENT仿真中使用四边
10、形网格和六面体网格。注意:FLUENT有一个格式转换器允许你从其它程序中读入结构网格。CFD网格(1)细化网格来捕捉关心的梯度;(2)网格的质量和平滑度对结果的精确度至关重要;(3)大部分可划分为四面体网格, 但六面体单元仍然是首选的;(4)CFD网格的四面体单元通常是一阶的(单元边上不包含中节点);(1)四面体网格1) 可以快速地、自动地生成,并适合于复杂几何网格可以由2步生成:步骤 1: 定义网格尺寸步骤 2: 生成网格2) 等向细化为捕捉一个方向的梯度,网格在所有的三个方向细化网格数量迅速上升。四面体网格的优缺点:优点:任意体总可以用四面体网格;可以快速, 自动生成, 并适用于复杂几何;
11、在关键区域容易使用曲度和近似尺寸功能自动细化网格;可使用膨胀细化实体边界附近的网格 (边界层识别)。缺点:在近似网格密度情况下,单元和节点数高于六面体网格;一般不可能使网格在一个方向排列;由于几何和单元性能的非均质性,不适合于薄实体或环形体。(2)六面体网格大多 CFD 程序中,使用六面体网格可以使用较少的单元数量来进行求解:1)流体分析中,同样的求解精度,六面体节点数少于四面体网格的一半;2)各向异性单元和各向异性物理相匹配(边界层,高曲率区域如同导行翼和曳尾边)对任意几何,六面体网格划分需要多步过程来产生高质高效的网格对许多简单几何,扫掠技术是生成六面体网格的一种简单方式:扫掠、多区2D几
12、何网格划分方法有四种不同的划分方法:自动(四边形支配)、三角形、均匀四边形和三角形、均匀四边形。(3)3D几何网格划分方法3D几何有六种不同网格划分方法:自动划分、四面体(patch conforming; patch independent)、扫掠划分、多区、六面体支配、CFX网格。Patch conforming算法的四面体方法:1)考虑面和它们的边界 (边和顶点) 2)包含膨胀因子的设定,控制四面体边界尺寸的内部增长率3)包括CFD的膨胀层或边界层识别4)同一个组建中可和体扫掠方法混合使用-产生一致的网格。算法生成方法:首先由默认的考虑几何所有面和边的Delaunay 或Advancin
13、g Front 表面网格划分器生成表面网格 (注意: 一些内在缺陷在最小尺寸限度之下)。 然后基于TGRID Tetra算法由表面网格生成体网格。默认时考虑所有的面和边 (尽管在收缩控制和虚拟拓扑时会改变且默认损伤外貌基于最小尺寸限制);适度简化CAD (如. native CAD, Parasolid, ACIS, 等.);在多体部件中可能结合使用扫掠方法生成共形的混合四面体/棱柱和六面体网格;有高级尺寸功能;表面网格体网格Patch independent 算法的四面体方法:1)如没有载荷,边界条件或其它作用,面和它们的边界 (边和顶点) 不必考虑2)适用于粗糙的网格或生成更均匀尺寸的网格
14、3)ANSYS Meshing Application可以非常方便的生成四面体网格4)ANSYS Meshing Application 标准的网格尺寸控制5)Tetra 部分也有膨胀应用。生成方法为:生成体网格并映射到表面产生表面网格。如没有载荷,边界条件或其它作用,面和它们的边界 (边和顶点) 不必要考虑。这个方法更加容许质量差的 CAD几何。 Patch Independent算法基于ICEM CFD Tetra. 对 CAD 有长边的面, 许多面的修补, 短边等有用;内置 defeaturing/simplification 基于网格技术;基于 ICEM CFD 四面体/棱柱 Octr
15、ee方法;体网格表面网格。weep方法:1)生成六面体或棱柱2)体必须是可扫掠的3)一个源面,一个目标面4)膨胀层可生成纯六面体或棱柱网格通常是单个源面对单个目标面。薄壁模型自动网格划分会有多个面,且厚度方法可划分为多个单元。右击mesh,选show sweepable。几何要求:所有的3D网格划分方法要求组成的几何为实体(solid)。如果输入一个由面体组成的几何,需要在ANSYS网格划分应用程序中生成3D网格,就需要额外的步骤将其转换为3D 实体 (尽管表面体可以由表面网格划分法来划分)。3.1网格划分程序设置目标物理环境 (结构, CFD, 等)。自动生成相关物理环境的网格 (如FLUE
16、NT, CFX, 或 Mechanical);设定网格划分方法;定义网格设置 (尺寸, 控制, 膨胀, 等);方便使用创建命名选项;预览网格并进行必要调整;生成网格;检查网格质量;准备分析的网格。初始尺寸种子控制每一部件的初始网格种子;已定义单元尺寸则被忽略;Active Assembly: 基于这个设置,初始种子放入未抑制部件。网格可以改变Full Assembly: 基于这个设置,初始种子放入所有装配部件,不管抑制部件的数量。由于抑制部件网格不改变 。Part: 基于这个设置,初始种子在网格划分时放入个别特殊部件。由于抑制部件网格不改变 。平滑和过渡平滑(Advanced Size Fun
17、ction 是关闭的)平滑网格是通过移动周围节点和单元的节点位置来改进网格质量。下列选项和网格划分器开始平滑的门槛尺度一起控制平滑迭代次数. 中等 (Mechanical);中等 (CFD, Emag);高 (Explicit )过渡 (Advanced Size Function是关闭的):过渡控制邻近单元增长比缓慢(CFD, Explicit) 产生网格过渡;快速 (Mechanical, Emag)产生网格过渡跨度中心角:Span Angle Center 设定基于边的细化的曲度目标. 网格在弯曲区域细分,直到单独单元跨越这个角. 有以下几种选择: 粗糙 91 to 60 中等 75 t
18、o 24 细化 36 to 12 只在 Advanced Size Function 关闭时使用高级尺寸功能无高级尺寸功能时, 根据已定义的单元尺寸对边划分网格, 对curvature 和proximity细化,对缺陷和收缩控制进行调整, 然后通过面和体网格划分器。选项和默认值:Proximity 与 CurvatureCurvature (默认):缺省值18度Proximity:缺省值每个间隙3 个单元(2D和3D)缺省精度:0.5如果proximity 不允许就增大到 1局部网格控制:可用于局部网格控制包括:尺寸、接触尺寸、细化、映射面划分、匹配控制、收缩、膨胀。局部尺寸:“Element
19、 Size”定义体, 面, 边,或顶点的平均单元边长 ;“Number of Divisions” 定义边的单元分数;球体内的“Sphere of Influence” 单元给定平均单元尺寸 ;以上可用选项取决于作用的实体,如使用了高级尺寸功能选项会不同。细化单元细化即划分现有网格,对面, 边和顶点有效,对Patch Independent Tetrahedrons或 CFX-Mesh不可用。首先由全局和局部尺寸控制形成初始网格, 然后在指定位置单元细化。细化水平可从1 (最小的) 到3 (最大的)改变。细化水平 “1”将初始网格单元的边一分为二。由于不能使用膨胀,对CFD不推荐。3.2四面体
20、网格膨胀膨胀选项平滑过渡平滑过渡(默认)使用局部四面体单元尺寸计算每个局部的初始高度和总高度以达到平滑的体积变化比。 每个膨胀的三角形都有一个关于面积计算的初始高度,在节点处平均。这意味着对一均匀网格,初始高度大致相同,而对变化网格初始高度也是不同的。过渡比:1)膨胀层最后单元层和四面体区域第一单元层间的体尺寸改变;2)当求解器设置为 CFX时, 默认的 Transition Ratio是 0.77. 对其它物理选项, 包括Solver Preference 设置为 Fluent的CFD, 默认值是 0.272;3)因为Fluent 求解器是单元为中心的,其网格单元等于求解器单元, 而CFX
21、求解器是顶点为中心的 ,求解器单元是双重节点网格构造的,因此会发生不同的处理厚度选项:总厚度:创建常膨胀层,用Number of Layers 的值和Growth Rate 控制以获得Maximum Thickness值控制的总厚度。不同于Smooth Transition 选项的膨胀,Total Thickness选项的膨胀其第一膨胀层和下列每一层的厚度是常量.第一层厚度:创建常膨胀层,用 First Layer Height, Maximum Layers, 和 Growth Rate 控制生成膨胀网格。不同于Smooth Transition 选项的膨胀, First Layer Thi
22、ckness 选项的膨胀其第一膨胀层和下列每一层的厚度是常量。膨胀算法前处理:TGrid 算法所有物理类型的默认设置。首先表面网格膨胀, 然后生成体网格不支持邻近面设置不同的层数可应用于扫掠和 2D 网格划分后处理:ICEM CFD 算法使用一种在四面体网格生成后作用的后处理技术;只对 patching conforming和patch independent 四面体网格有效.高级膨胀选项:Mesh 设置为 Yes,在Global Inflation Options下可看到Advanced Options 冲突避免:Layer Compression (对 Fluent默认);不同面的膨胀阵面
23、扩展有可能冲突, 膨胀层就要受压制,以给四面体层留足够的空间;如果层压缩不能解决冲突, 层就会由于以下描述的stair stepping而去除.会产生一警告信息并且FLUENT用户特别关心的网格质量会受到影响Stair Stepping (对 CFX默认): 剥离膨胀层阻止阵面扩展冲突,以给四面体层留足够的空间。Proximity细化狭缝中单元越过狭缝单元数(只在 Curvature and Proximity Refinement 设置为Yes时显示)。这是狭缝中的单元数,设置 proximity 细化的目标。网格将在紧密区域细分, 但细化受到Min Size Limit的限制,不会越过这个
24、限制。 缺省值是1Curvature细化跨角(只在 Curvature and Proximity Refinement 设置为Yes时显示)。设置curvature细化的目标。 类似于Advanced Size Function的设置.这个细化也受到 Min Size Limit的限制.下列几个选择可用:粗糙 91 度 60 度中等 75度 到24度细化 36 度到18 度3.3扫掠划分当创建六面体网格时, 先划分源面再延伸到目标面;其它面叫做侧面;扫掠方向或路径由侧面定义;源面和目标面间的单元层是由插值法而建立并投射到侧面。薄扫掠:多个源面对多个目标面的扫掠;很好地替代壳模型中面以得到纯六
25、面体网格。善于处理薄部件的多个源面和目标面。多区方法:自由分解方法;多个源面对多个目标面。提供自由分解方法: 尝试非手动分裂模型几何;支持多个源面和多个目标面方法可扫掠体:一个可扫掠体需满足:1)包含不完全闭合空间;2)至少有一个由边或闭合表面连接的从源面到目标面的路径3)没有硬性分割定义以致在源面和目标面相应边上有不同分割数;可通过右击 Show Sweepable Bodies预览;找不到可扫掠体的轴,但总可以手动设置;源面和目标面不必是平面或平行面;不必是等截面的。对扫掠网格,选择源面的边,源面则得到膨胀;网格方法中的Src/Trg Selection 应设置为Manual Source
26、或Manual;Source and Target;一旦定义了源面, 然后就可以定义膨胀扫掠网格的膨胀将使用Pre inflation 算法只能利用 First Layer 或Total Thickness 选项。3.4多区网格划分多区的特征是自动分解几何,从而避免将一个体分裂成可扫掠体以用扫掠方法得到六面体网格。多区不利用高级尺寸功能 (只用Patch Conforming 四面体和扫掠方法)。算法不同于其它膨胀方法 (拉伸 o-grid)作用于体, 对面定义只有 First Layer 或Total Thickness 选项。3.5表面网格划分主要针对壳和表面体的网格划分方法。CFX 不接
27、受表面网格划分,因为它是一个固有 3D 代码;ANSYS 中Fluent和Mechanical 产品,接受 2D分析的2D (表面) 网格。表面网格划分控制:边尺寸和映射面的划分,边尺寸:必要使用 Bias Factor和硬分割; 映射面划分:To try to enforce a structured rather than a paved mesh,边, 角, 和端面可由高级选项定义。3.6网格质量控制Mesh中的mesh metric可以对其进行设置和查看来评估网格质量,主要常用的是纵横比aspect ratio和偏斜skewness。两种方法定义偏差:基于等变形的体的误差(只用于三角形
28、和四面体,三角形和四面体的默认方法)和基于规划的角误差(适用于所有的面和单元形状,使用于棱柱和棱锥)。Skewness:对六面体, 三角形和四边形: 应小于 0.8;对四面体: 应小于 0.9Aspect Ratio:应小于 40, 但取决于流体特性,膨胀层可容忍大于 50 Cell Size Change:应在1与2之间Skewness和fluent求解器不推荐高 skewness 值,一般保持体网格最大 skewness 值 0.98);退化单元 (偏斜 1);高纵横比单元;负体积单元质量改进改进表面网格质量移动网格节点CAD 修整几何问题如尖角, 小边, 合并面和/或分解几何DM 中Cl
29、ean-up工具简化几何和它们的实体 ANSYS Meshing程序中不同方法,全局和局部尺寸和参数ANSYS Meshing 程序中收缩控制消除小特征 ANSYS Meshing 程序中虚拟拓扑以简化几何4边界条件4.1 FLUENT中各种边界条件的适用范围速度入口边界条件:用于定义流动入口边界的速度和标量。 压力入口边界条件:用来定义流动入口边界的总压和其它标量。 质量流动入口边界条件:用于已知入口质量流速的可压缩流动。在不可压缩流动中不必指定入口的质量流,因为当密度是常数时,速度入口边界条件就确定了质量流条件。压力出口边界条件:用于定义流动出口的静压(在回流中还包括其它的标量)。当出现回
30、流时,使用压力出口边界条件来代替质量出口条件常常有更好的收敛速度。 压力远场边界条件:用于模拟无穷远处的自由可压缩流动(free stream flow),该流动的自由流马赫数以及静态条件已知。这一边界类型可用于可压缩流。 质量出口边界条件:用于在解决流动问题之前,所模拟的流动出口的流速和压力的详细情况还未知的情况。在流动出口是完全发展的时候这一条件是适合的,这是因为质量出口边界条件假定出了压力之外的所有流动变量正法向梯度为零。不适合于可压缩流动。 进风口边界条件:用于模拟具有指定的损失系数、流动方向以及周围(入口)环境总压和总温的进风口。 进气扇边界条件:用于模拟外部进气扇,它具有指定的压力
31、跳跃、流动方向以及周围(进口)总压和总温。 通风口边界条件:用于模拟通风口,它具有指定的损失系数以及周围环境(排放处)的静压和静温。 排气扇边界条件:用于模拟外部排气扇,它具有指定的压力跳跃以及周围环境(排放处)的静压。速度入口边界条件:速度入口边界条件用于定义流动速度以及流动入口的流动属性相关标量。这一边界条件适用于不可压缩流,如果用于可压缩流它会导致非物理结果,这是因为它允许驻点条件浮动。应该注意不要让速度入口靠近固体妨碍物,因为这会导致流动入口驻点属性具有太高的非一致性。压力入口边界条件:压力入口边界条件用于定义流动入口的压力以及其它标量属性。它即可以适用于可压缩流,也可以用于不可压缩流
32、。压力入口边界条件可用于压力已知但是流动速度和/或速率未知的情况。这一情况可用于很多实际问题,比如浮力驱动的流动。压力入口边界条件也可用来定义外部或无约束流的自由边界。质量流动入口边界条件:用于已知入口质量流速的可压缩流动。在不可压缩流动中不必指定入口的质量流,因为当密度是常数时,速度入口边界条件就确定了质量流条件。 当要求达到的是质量和能量流速而不是流入的总压时,通常就会使用质量入口边界条件。 调节入口总压可能会导致解的收敛速度较慢,所以如果压力入口边界条件和质量入口条件都可以接受,应该选择压力入口边界条件。压力出口边界条件:压力出口边界条件需要在出口边界处指定静(gauge)压。静压值的指
33、定只用于亚声速流动。如果当地流动变为超声速,就不再使用指定压力了,此时压力要从内部流动中推断。所有其它的流动属性都从内部推出。 在解算过程中,如果压力出口边界处的流动是反向的,回流条件也需要指定。如果对于回流问题指定了比较符合实际的值,收敛性困难就会被减到最小。压力远场边界条件:FLUENT中使用的压力远场条件用于模拟无穷远处的自由流条件,其中自由流马赫数和静态条件被指定了。压力远场边界条件通常被称为典型边界条件,这是因为它使用典型的信息(黎曼不变量)来确定边界处的流动变量。这一边界条件只应用于密度是用理想气体定律计算出来的情况,不可以适用于其它情况要有效地近似无限远处的条件,必须建立的这个远
34、场放到所关心的计算物体的足够远处。例如,在机翼升力计算中远场边界一般都要设到20倍弦长的圆周之外。质量出口边界条件:当流动出口的速度和压力在解决流动问题之前是未知时,FLUENT会使用质量出口边界条件来模拟流动。你不需要定义流动出口边界的任何条件(除非你模拟辐射热传导、粒子的离散相或者分离质量流):FLUENT会从内部推导所需要的信息。然而,重要的是要知道这一边界类型的限制。 注意:下面的几种情况不能使用质量出口边界条件: 1.如果包含压力出口,请使用压力出口边界条件2.如果模拟可压缩流3.如果模拟变密度的非定常流,即使流动是不可压的也不行。4.2边界条件的匹配/组合方式1,只有壁面2.壁面、
35、进口和至少一个出口;3.壁面、进口和至少一个恒压边界;4.壁面和恒压边界。物理上,出口压力控制着流体在多出口件的分流情况,因此,在出口给定压力值要比给定出口条件合理。将出口条件和一个或多个恒压边界结合使用是不允许的,因为零梯度的出口条件不能指定出口的流量,也不能指定出口的压力,这样将使问题不可解。4.3outflowOutflow用在求解流动问题之前,流动速度和压力细节不知道的场合,适合于在出口上的流动为全发展,因为outflow边界条件假设除压力外的所有的流动参数法向梯度为0,不用于压缩性流动计算。注意,Outflow边界条件不能用在下列场合:1. 如过问题中包含压力进口边界条件,用压力出口
36、边界条件代替;即,如果入口为pressure inlet ,出口选pressure outlet;2.如果你用的是可压缩流体模型;3.即使流体是不可压缩,如果模型为包含密度变化的非稳态流。4.多相流模型不可用outflow边界,唯一例外是明渠模型。Fluent使用outflow边界条件是基于以下两点的:也就是出口平面上的是由主域推导来的,所以出口条件对上流没有影响,fluent使得出口边界上的速度和压力满足全发展流动假设。5 稳态和瞬态稳态计算与初始值无关,很多CFD软件在稳态计算时要求进行初始化,这只是用于迭代计算,理论上是不会影响到最终的结果,但是不好的初始会值会影响到收敛过程。而瞬态计算
37、则不同,其计算结果与初始状态紧密相关。还是上面的例子,若雨滴的初始速度不是0的话,则稳定时间会发生改变,稳定之前的速度值也会不同。所以在瞬态计算时,初始条件与边界条件一样重要,会影响计算结果的正确性。在瞬态计算的时候,常常使用稳态计算结果作初始值。稳态计算中计算参数较少,只有一个迭代参数需要设置。FLUENT中计算终止标准有两个:(1)计算达到收敛(2)达到指定的迭代次数。当达到迭代次数未收敛时,可以继续计算。瞬态计算中常涉及的几个计算参数:时间步数,时间步长、模拟时间、子步迭代数。其中:模拟时间时间步数*时间步长。这里的时间是真实时间。子步迭代数指的是一个子步内进行迭代的次数,该概念与稳态迭
38、代次数相同。因此我们可以将每一个子步看作是一个稳态迭代过程,收敛判据与稳态计算相同,亦要求在每一时间步内达到收敛。在使用瞬态模拟时还有个参数:库朗数。这是个无量纲数,是用于在计算时控制时间步长。其值主要由两个量控制:网格尺寸及用户设定的时间步长。库朗数的值与网格尺寸成反比,与时间步长成正比。因此有些需要配合库朗数的算法计算时出现库朗数大于250时,可以考虑减小时间步长,也可以考虑增大网格,但由于在求解器中增大网格比较困难,一般都是减小时间步长。(这里可以使用网格自适应来改变网格)。在瞬态计算设置时间步时,还需要考虑的是时间点的问题。仿真者要确保能够输出所感兴趣的时间点的数据。比如说,用户感兴趣
39、的时间点为0.1s,0.2s,0.3s,0.4s,则输入的时间步长若为0.15s,则只能输出0.3s的数据,若输入的时间步长为0.2s,则只能输出0.2,0.4s的数据。所以在设计时间步长是需要额外考虑这些问题。5.2 time step 和max iterations per time step如果在20步以内,迭代计算达到精度(一般为10e-3),则跳到下一个时间步继续计算,此时设置成20与100,都是一样的效果;如果假设要算到80步才能达到精度,你设的是20步,那么,它还没有达到所要的精度就进入下一个时间步计算了,会损失精度,会失真。因此很多实例上设置为40.5.3用FLUENT计算非稳
40、态问题,是不是在计算时必须保证在每个时间步timestep里都要收敛才行,否则计算结果就不对呢?也就是说,在iteration选项里,max iteration pertime step设为一个值,比如500,就是如果500次迭代后仍未收敛,进入下一步迭代,那对结果会有什么影响。 对于隐式非定常格式,原则上,每个时间步长内必须保证结果收敛。在fluent 的帮助中就有这样的话:对于不可压流动,在每个时间步内,不可压解必须迭代直至收敛。另外,我们回归到fluent内部计算的本源,它实质就是一种差分算法,通过不断逼近来获得真实解,这样我们就不难理解为什么在每个时间步长内需要收敛了。max iter
41、ation pertime step 设定的是最大时间步,在单一步长内,如果结果已经收敛,则会自动跳至下一时间进行计算。所以其设定要纵观全局。但对于周期性流动,这种收敛性的要求就相对松动一些。不过你需要多计算几个周期,等计算结果达到对时间的周期状态后,再对结果进行储存。 对于显式非定常格式,在Fluent帮助中这样说:一定记住,对于显式非定常格式,每一个迭代就是一个时间步。 如果每个时间步内结果没有得到收敛,则很有可能你所得到的结果是不真实的,但是一个时间步内的不真实性应该不 会影响到下一个时间步长内的计算。因为在每一个时间步开时,fluent 都会进行初始化。在单个时间步内,它实际是按照稳态
42、进行计算的。 time step size的设定是根据你的计算需要,一般是你的特征长度(比如说管道的长度)除于特征速度(比如平均速度)的值再小一到两个量级即可,如果你的time stip size太大,计算会提示你的,改小即可。number of time steps是这样设定的:number of time steps X time step size实际时间积累。比如说,你计算一个射流,你需要计算到1秒时候的情况,那么(number of time steps)1秒(time step size)。 Fluent中非稳态时间步长设置最近所做的非稳态计算,若设置太小,计算时间就太长,设置太大
43、的话就会出现Global Courant Number飙升过大的不能继续进行下去的问题。有网友建议:单元最小长度除于流场平均流速,不过这个值可能很小,你可以以这个值为基准进行调节,一开始可以取大些,如果没有问题,可以再放大些,这样可以缩短计算时间。若按这种方法,计算下面这个例子:2mm,10个网格,流速1m/s。时间步长time steps=0.2/1000=0.0002。但是我在进行计算时,设置为1e-6,都无法进行下去。所以这种换算方法还是只能作为参考。我现在采用的是自动调节时间步长,目前看来效果还可以。 怎么知道非稳态计算时间步长是合适的?courant number与收敛 couran
44、t number实际上是指时间步长和空间步长的相对关系,系统自动减小courant数,这种情况一般出现在存在尖锐外形的计算域,当局部的流速过大或者压差过大时出错,把局部的网格加密再试一下。在fluent中,用courant number来调节计算的稳定性与收敛性。一般来说,随着courant number的从小到大的变化,收敛速度逐渐加快,但是稳定性逐渐降低。所以具体的问题,在计算的过程中,最好是把courant number从小开始设置,看看迭代残差的收敛情况,如果收敛速度较慢而且比较稳定的话,可以适当的增加courant number的大小,根据自己具体的问题,找出一个比较合适的courant number,让收敛速度能够足够的快,而且能够保持它的稳定性。时间步长与准确性摘自数值计算与工程仿真第一期 作者gim1 、在不计模型误差,而且计算稳定的前提下,数值计算的时间步长的选取存在一个恰当值,过大或过小都会影响模拟结果的准确性。