1、FLUENT动网格简介在固体有限元计算中,网格运动实非什么稀奇事儿。而且在绝多数固体计算的基本物理量是网格的节点位移,所以,固体计算中,网格节点运动是对的,没有运动反而不正常了。也可以这么说:正因为计算域内部节点间的相对运动,才导致了内应力的产生。流体计算与固体完全不同。其根源在于它们使用的网格类型不同。当前固体有限元计算采用的是拉格朗日网格,而流体计算则大多数采用的欧拉网格。如果说把拉格朗日网格中的节点点看作是真实世界的物质原子的话,那么欧拉网格的节点则好比是真实世界中的一个个传感器,它们总是呆在相同的位置,真实的记录着各自位置上的物理量。正常情况下,欧拉网格系统是这样的:计算域和节点保持位
2、置不变,发生变化的是物理量,网格节点就像一个个布置在计算域中的传感器,记录该位置上的物理量。这其实是由流体力学研究方法所决定的。宏观与微观的差异决定了固体力学计算采用拉格朗日网格,流体计算采用欧拉网格。关于这部分的详细解说,可以参阅任何一本计算流体动力学书籍。世界是公平的。有利必有弊。朗格朗日网格适合计算节点位移,然而对于过大的网格变形却难以处理。欧拉网格生来可以处理大变形(因为节点不动),然而对于对于节点运动的处理,则是其直接软肋。然而很不幸的是,现实生活中有太多网格边界运动的实例。如汽车发动机中的气缸运动、阀门开启与关闭、机翼的运动、飞机投弹等等等等举不胜举。计算流体动力学计算的基本物理量
3、通常为:速度、温度、压力、组分。并不计算网格节点位移。因此要让网格产生运动,通常给节点施加的物理约束是速度。CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。配合瞬态时间,即可很方便的得出位移。当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定节点位移。(2)网格节点速度是通过求解得到的。如6DOF模型基本上都属于此类。用户将力换算成加速度,然后将其积分成速度。对于第一类动网格问题,在fluent中通常可以使用profile与UDF进行网格设置,通过规定节点或区域的速度、角速度或位移等方式来显式确定网格的运动,通常大部分的动网格问题都归于此类。而对于第二类问题,通常
4、涉及到力的计算,力在流体中通常是对压力进行积分而来。将力转换为速度或位移,一般涉及到加速度、转动惯量等物理量的计算。在fluent中,可以使用6DOF模型进行处理,在CFX中,可以使用刚体模型(13.0以上版本才有)。在FLUENT中,动网格涉及的内容包括:(1)运动的定义。主要是PROFILE文件与UDF中的动网格宏。(2)网格更新。FLUENT中关于网格更新方法有三种:网格光顺、动态层、网格重构。需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。动网格的最在挑战来自于网格更新后的质量,避免负体积是动网格调试的主要目标。在避免负网格的同时,努力提
5、高运动更新后的网格质量。FLUENT动网格之弹簧光顺与扩散光顺FLUENT中的网格光顺(smoothing)主要采用两种方法:弹簧光顺与扩散光顺。其中弹簧光顺包含有:弹簧光顺、边界层光顺、拉普拉斯光顺。扩散光顺分为:基于壁面距离的扩散光顺与基于单元体积的扩散光顺。一、弹簧/拉普拉斯/边界层光顺1、弹簧光顺需要设置的参数主要有四个参数需要设置:Spring Constant Factor(弹簧常数因子),Boundary Node Relaxation(边界节点松弛),Convergence Tolerance(收敛精度),Number of Iterations(迭代次数)。如图中橙色框选部分
6、。2、各参数作用弹簧常数因子:取值范围0,1。可以通过该值来调整弹簧刚度的大小。该值为0表示弹簧间没有阻尼,边界运动会影响到更多的内部节点。该参数的默认值为1。在实际应用中,若发现运动边界附近网格堆积严重,可适当调小此参数,将位移扩散出去。边界节点松弛:网格位置更新时使用的参数。取值范围0,1。0表示没有进行网格节点保持不变,1表示不使用松弛处理。该参数默认为1。调整该参数可以控制每次网格更新的节点位置。通常使用默认值即可。迭代精度:网格节点位移值是通过求解平衡方程得到的。本参数即控制方程的求解精度。一般保持默认值。迭代次数:与迭代精度作用相同。用于平衡方程的求解控制。迭代方程如下。通常该参数
7、保持默认即可。3、弹簧光顺方法的适应性(译自用户手册)(1)适用于任何变形或运动的单元或面域。更适用于四面体/三角形网格(2)在非四面体/三角形网格域中,建议在以下一些情况下使用弹簧光顺方法:(a)边界运动在某一方向上具有明显优势(b)运动主要沿运动边界的法向方向。其它的非四边形/非四面体网格域(尤其是多面体网格域),建议使用扩散光顺方法。注意:默认情况下,在非四面体/四边形网格上,弹簧光顺方法是关闭的。用户可以使用TUI命令激活:define dynamic-mesh controls smoothing-paramters spring-on-all-shapes?二、扩散光顺1、扩散光顺
8、扩散光顺是通过求解扩散方程来获得网格节点的位移的。只有一个参数需要设置:扩散参数。扩散系数是通过扩散参数得到的。如下两公式求得扩散系数。与,式中的d为壁面正则距离,v为正则体积。用户可以通过TUI命令设置迭代次数与收敛精度。通常很少进行设置。define dynamic-mesh controls smoothing-parameters max-iterdefine dynamic-mesh controls smoothing-parameters relative-convergence-tolerance2、基于壁面距离的网格扩散光顺基于壁面距离的扩散光顺允许用户将边界网格运动扩散至内
9、部节点的规律定义为壁面距离的函数。减少远离运动边界的扩散能够使这些区域吸收更多的网格运动,同时更好的保持运动壁面附近的网格质量。用户可以通过调整diffusion parameter来控制网格扩散,该参数的取值范围0,2。该参数默认为0,意味着扩散参数为1,也即整个计算域采用相同程度的扩散。扩散参数越大,则更多的保持近壁面网格,远离运动边界的位置将吸收更多的网格运动。对于边界旋转运动,通常将扩散参数设置为1.5默认情况下,fluent使用标准壁面距离。该方法使用最近的壁面边界进行正则化。请注意此方法是不包括其它边界类型(如inlet,outlet,symmetry,周期边界等),只使用wall
10、壁面边界。用户可以使用generalized“壁面距离,该方法使用一切未声明为变形的边界,而不管边界的类型。两种方法均使用所有变形网格区域中发现的最大距离进行正则化。用户可以使用TUI命令设置fluent使用广义边界:definedynamic-meshcontrolssmoothing-parametersboundary-distance-method3、基于单元体积的网格扩散光顺 允许用户将边界运动扩散至内部区域定义为单元尺寸的函数。在大网格上减小扩散助于使这些网格吸收更多的网格变形,能更好的保持小体积单元的网格质量。 与基于壁面距离的网格扩散相同,用户也可通过调整扩散参数来控制扩散系数
11、。默认扩散参数为0表示采用统一的扩散。更大的扩散参数将会使更大的体积的网格吸收更多的变形。 扩散参数取值范围:0,24、扩散光顺方法的适应性 能够应用于任何类型的运动或变形网格。 扩散光顺方法比弹簧光顺计算开销要大(隐式求解扩散方程。而弹簧光顺是显式计算节点位移),但是能够得到较好的网格质量(特别是对于非四面体/非三角形网格及多面体网格)。 更适合于平移运动。 扩散光顺方法与边界层光顺方法及面区域重构方法不兼容。FLUENT动网格之几何重构对于三角形或四面体风格区域,通常都会使用到弹簧光顺方法。然而当边界位移远大于局部网格尺寸时,网格质量会下降甚至会出现退化的网格单元。这可能会使网格实效(出现
12、负体积网格),并因此导致计算收敛问题。为什么弹簧光顺方法会导致此类问题?主要原因在于:弹簧光顺方法并不将网格质量作为网格更新的判断因素,而只是单纯的将边界运动作为参数扩散至计算域中。为了解决此问题,ANSYS FLUENT将这些超出网格偏斜度或尺寸标准的网格收集起来,并在这些网格或面上局部进行网格重构。若新网格单元质量达到网格质量标准,则进行网格重构,否则,新网格将会被丢弃。ANSYS FLUENT包含有很多种网格重构方法,主要有以下几种:局部单元重构、局部区域重构、局部面重构(只用于3D)、面域重构、cutcell域重构(仅3D)以及2.5D面重构(3D中)。网格重构方法适合于以下网格类型:
13、(1)局部网格及局部面重构方法只对区域中的三角形及四面体网格有效。(例如混合网格区域中,非三角形/四面体网格将会被忽略)(2)区域重构方法会将其它所有类型网格替换为三角形四面体网格(分别在2D及3D区域中),并且在3D边界层中生成楔形、棱柱形网格。(3)面域重构方法在2D中只用于三角形网格,在3D模型中只用于四面体网格。并且在3D边界层中能够产生楔形/棱柱形网格。(4)切割单元区域重构方法能够对所有网格类型有效。(5)2.5D重构方法只在六面体网格或由三角形拉伸形成的楔形/棱柱型单元上有效。网格重构方法主要包含以下几个参数:如下图所示。(1)minimum length scale:最小网格尺
14、寸,当网格尺寸小于该尺寸时,网格将会被合并。(2)maximum length scale:最大网格尺寸。当网格尺寸大于该尺寸时,网格将会分裂。(3)maximum cell skewness:当网格歪斜度超出设定的尺寸时,网格会进行重构。(4)maximum face skewness:该参数只在3D模型中有效,与单元歪斜度类似(5)size remeshing interval:设置网格重构间隔,通常时间步有关系。FLUENT的动网格设置Fluent的动网格设置,主要是通过dynamic mesh面板进行设置。动网格面板如下图所示。主要包括两部分内容:(1)Mesh Methods (2)
15、 Dynamic Mesh Zones。另外还包括网格域运动预览及网格运动预览。整个动网格面板通过勾选Dynamic Mesh选项而激活。1、Mesh Methods(网格更新方法)该部分主要用于网格或网格域在运动过程中,设置计算域中网格节点位置更新方法。fluent中有三种主要网格更新方法:(1)网格光顺方法(2)动态层方法(3)网格重构。对于3D模型,还包括in-cylinder、six-dof、Implicit Update三种选项。其中in-cyliner用于发动机气缸模拟,six-dof主要用于流体作用于刚体,预测刚体运动。implicit update用于设定网格更新方式。默认采用
16、显式方式,勾选此选项可设定网格以隐式方式更新。2、动态网格域用于定义网格运动的区域及运动类型。FLUENT中网格运动类型主要有:静止、刚体运动、变形区域、用户自定义域、耦合域。静止域在网格运动过程中,区域内节点位置保持不变。虽然说默认情况下不设定区域运动,则该区域为静止,但是一些情况下还是需要显式设定某些区域为静止域,尤其是在一些与刚体域相连的区域处理上。刚体运动域:这是fluent动网格中最常见的运动类型。通过规定刚体的速度或位移来控制运动。变形域:由于边界运动导致节点变形。变形域通常与刚体域是相连的。自定义域:用户可以使用UDF定义自己需要的域耦合域:节点位移由耦合求解器计算,在流固耦合计算中,耦合面上通常设定为耦合域类型。