当前位置:文档之家› FLUENT动网格技术简介

FLUENT动网格技术简介

FLUENT动网格简介

在固体有限元计算中,网格运动实非什么稀奇事儿。而且在绝多数固体计算的基本物理量是网格的节点位移,所以,固体计算中,网格节点运动是对的,没有运动反而不正常了。也可以这么说:正因为计算域内部节点间的相对运动,才导致了内应力的产生。

流体计算与固体完全不同。其根源在于它们使用的网格类型不同。当前固体有限元计算采用的是拉格朗日网格,而流体计算则大多数采用的欧拉网格。如果说把拉格朗日网格中的节点点看作是真实世界的物质原子的话,那么欧拉网格的节点则好比是真实世界中的一个个传感器,它们总是呆在相同的位置,真实的记录着各自位置上的物理量。正常情况下,欧拉网格系统是这样的:计算域和节点保持位置不变,发生变化的是物理量,网格节点就像一个个布置在计算域中的传感器,记录该位置上的物理量。这其实是由流体力学研究方法所决定的。宏观与微观的差异决定了固体力学计算采用拉格朗日网格,流体计算采用欧拉网格。关于这部分的详细解说,可以参阅任何一本计算流体动力学书籍。

世界是公平的。有利必有弊。朗格朗日网格适合计算节点位移,然而对于过大的网格变形却难以处理。欧拉网格生来可以处理大变形(因为节点不动),然而对于对于节点运动的处理,则是其直接软肋。然而很不幸的是,现实生活中有太多网格边界运动的实例。如汽车发动机中的气缸运动、阀门开启与关闭、机翼的运动、飞机投弹等等等等举不胜举。

计算流体动力学计算的基本物理量通常为:速度、温度、压力、组分。并不计算网格节点位移。因此要让网格产生运动,通常给节点施加的物理约束是速度。CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。配合瞬态时间,即可很方便的得出位移。当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定节点位移。(2)网格节点速度是通过求解得到的。如6DOF

模型基本上都属于此类。用户将力换算成加速度,然后将其积分成速度。

对于第一类动网格问题,在fluent中通常可以使用profile与UDF进行网格设置,通过规定节点或区域的速度、角速度或位移等方式来显式确定网格的运动,通常大部分的动网格问题都归于此类。而对于第二类问题,通常涉及到力的计算,力在流体中通常是对压力进行积分而来。将力转换为速度或位移,一般涉及到加

速度、转动惯量等物理量的计算。在fluent中,可以使用6DOF模型进行处理,在CFX中,可以使用刚体模型(13.0以上版本才有)。

在FLUENT中,动网格涉及的内容包括:

(1)运动的定义。主要是PROFILE文件与UDF中的动网格宏。

(2)网格更新。FLUENT中关于网格更新方法有三种:网格光顺、动态层、网格重构。需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。

动网格的最在挑战来自于网格更新后的质量,避免负体积是动网格调试的主要目标。在避免负网格的同时,努力提高运动更新后的网格质量。

FLUENT动网格之弹簧光顺与扩散光顺

FLUENT中的网格光顺(smoothing)主要采用两种方法:弹簧光顺与扩散光顺。

其中弹簧光顺包含有:弹簧光顺、边界层光顺、拉普拉斯光顺。

扩散光顺分为:基于壁面距离的扩散光顺与基于单元体积的扩散光顺。

一、弹簧/拉普拉斯/边界层光顺

1、弹簧光顺需要设置的参数

主要有四个参数需要设置:Spring Constant Factor(弹簧常数因子),Boundary Node Relaxation(边界节点松弛),Convergence Tolerance(收敛精度),Number of Iterations(迭代次数)。如图中橙色框选部分。

2、各参数作用

弹簧常数因子:取值范围[0,1]。可以通过该值来调整弹簧刚度的大小。该值为0表示弹簧间没有阻尼,边界运动会影响到更多的内部节点。该参数的默认值为1。在实际应用中,若发现运动边界附近网格堆积严重,可适当调小此参数,将位移扩散出去。

边界节点松弛:网格位置更新时使用的参数。取值范围[0,1]。0表示没有进行网格节点保持不变,1表示不使用松弛处理。该参数默认为1。调整该参数可以控制每次网格更新的节点位置。通常使用默认值即可。

迭代精度:网格节点位移值是通过求解平衡方程得到的。本参数即控制方程的求解精度。一般保持默认值。

迭代次数:与迭代精度作用相同。用于平衡方程的求解控制。迭代方程如下。通常该参数保持默认即可。

3、弹簧光顺方法的适应性(译自用户手册)

(1)适用于任何变形或运动的单元或面域。更适用于四面体/三角形网格(2)在非四面体/三角形网格域中,建议在以下一些情况下使用弹簧光顺方法:(a)边界运动在某一方向上具有明显优势(b)运动主要沿运动边界的法向方向。

其它的非四边形/非四面体网格域(尤其是多面体网格域),建议使用扩散光顺方法。

注意:默认情况下,在非四面体/四边形网格上,弹簧光顺方法是关闭的。用户可以使用TUI命令激活:define > dynamic-mesh > controls > smoothing-paramters > spring-on-all-shapes?

二、扩散光顺

1、扩散光顺

扩散光顺是通过求解扩散方程来获得网格节点的位移的。

只有一个参数需要设置:扩散参数α。

扩散系数是通过扩散参数得到的。如下两公式求得扩散系数γ。

与,式中的d为壁面正则距离,v为正则体积。

用户可以通过TUI命令设置迭代次数与收敛精度。通常很少进行设置。

define > dynamic-mesh > controls > smoothing-parameters > max-iter define > dynamic-mesh > controls > smoothing-parameters >

relative-convergence-tolerance

2、基于壁面距离的网格扩散光顺

基于壁面距离的扩散光顺允许用户将边界网格运动扩散至内部节点的规律定义为壁面距离的函数。减少远离运动边界的扩散能够使这些区域吸收更多的网格运动,同时更好的保持运动壁面附近的网格质量。

用户可以通过调整diffusion parameter来控制网格扩散,该参数的取值范围[0,2]。该参数默认为0,意味着扩散参数为1,也即整个计算域采用相同程度的扩散。

扩散参数越大,则更多的保持近壁面网格,远离运动边界的位置将吸收更多的网格运动。

对于边界旋转运动,通常将扩散参数设置为1.5

默认情况下,fluent使用标准壁面距离。该方法使用最近的壁面边界进行正则化。请注意此方法是不包括其它边界类型(如inlet,outlet,symmetry,周期边界等),只使用wall壁面边界。用户可以使用"generalized“壁面距离,该方法使用一切未声明为变形的边界,而不管边界的类型。两种方法均使用所有变形网格区域中发现的最大距离进行正则化。

用户可以使用TUI命令设置fluent使用广义边界:

define>dynamic-mesh>controls>smoothing-parameters>boundary-distanc e-method

3、基于单元体积的网格扩散光顺

•允许用户将边界运动扩散至内部区域定义为单元尺寸的函数。在大网格上减小扩散助于使这些网格吸收更多的网格变形,能更好的保持小体积单元的网格质量。

•与基于壁面距离的网格扩散相同,用户也可通过调整扩散参数来控制扩散系数。默认扩散参数为0表示采用统一的扩散。更大的扩散参数将会使更大的体积的网格吸收更多的变形。

•扩散参数取值范围:[0,2]

4、扩散光顺方法的适应性

•能够应用于任何类型的运动或变形网格。

•扩散光顺方法比弹簧光顺计算开销要大(隐式求解扩散方程。而弹簧光顺是显式计算节点位移),但是能够得到较好的网格质量(特别是对于非四面体/非三角形网格及多面体网格)。

•更适合于平移运动。

•扩散光顺方法与边界层光顺方法及面区域重构方法不兼容。

FLUENT动网格之几何重构

对于三角形或四面体风格区域,通常都会使用到弹簧光顺方法。然而当边界位移远大于局部网格尺寸时,网格质量会下降甚至会出现退化的网格单元。这可能会使网格实效(出现负体积网格),并因此导致计算收敛问题。

为什么弹簧光顺方法会导致此类问题?主要原因在于:弹簧光顺方法并不将网格质量作为网格更新的判断因素,而只是单纯的将边界运动作为参数扩散至计算域中。

为了解决此问题,ANSYS FLUENT将这些超出网格偏斜度或尺寸标准的网格收集起来,并在这些网格或面上局部进行网格重构。若新网格单元质量达到网格质量标准,则进行网格重构,否则,新网格将会被丢弃。

ANSYS FLUENT包含有很多种网格重构方法,主要有以下几种:局部单元重构、局部区域重构、局部面重构(只用于3D)、面域重构、cutcell域重构(仅3D)以及2.5D面重构(3D中)。网格重构方法适合于以下网格类型:(1)局部网格及局部面重构方法只对区域中的三角形及四面体网格有效。(例如混合网格区域中,非三角形/四面体网格将会被忽略)

(2)区域重构方法会将其它所有类型网格替换为三角形四面体网格(分别在2D及3D区域中),并且在3D边界层中生成楔形、棱柱形网格。

(3)面域重构方法在2D中只用于三角形网格,在3D模型中只用于四面体网格。并且在3D边界层中能够产生楔形/棱柱形网格。

(4)切割单元区域重构方法能够对所有网格类型有效。

(5)2.5D重构方法只在六面体网格或由三角形拉伸形成的楔形/棱柱型单元上有效。

网格重构方法主要包含以下几个参数:如下图所示。

(1)minimum length scale:最小网格尺寸,当网格尺寸小于该尺寸时,网格将会被合并。

(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) 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用于设定网格更新方式。默认采用显式方式,勾选此选项可设定网格以隐式方式更新。

2、动态网格域

用于定义网格运动的区域及运动类型。FLUENT中网格运动类型主要有:静止、刚体运动、变形区域、用户自定义域、耦合域。

静止域在网格运动过程中,区域内节点位置保持不变。虽然说默认情况下不设定区域运动,则该区域为静止,但是一些情况下还是需要显式设定某些区域为静止域,尤其是在一些与刚体域相连的区域处理上。

刚体运动域:这是fluent动网格中最常见的运动类型。通过规定刚体的速度或位移来控制运动。

变形域:由于边界运动导致节点变形。变形域通常与刚体域是相连的。

自定义域:用户可以使用UDF定义自己需要的域

耦合域:节点位移由耦合求解器计算,在流固耦合计算中,耦合面上通常设定为耦合域类型。

fluent 介绍

想起CFD,人们总会想起FLUENT,丰富的物理模型使其应用广泛,从机翼空气流动到熔炉燃烧,从鼓泡塔到玻璃制造,从血液流动到半导体生产,从洁净室到污水处理工厂的设计,另外软件强大的模拟能力还扩展了在旋转机械,气动噪声,内燃机和多相流系统等领域的应用。今天,全球数以千计的公司得益于FLUENT的这一工程设计与分析软件,它在多物理场方面的模拟能力使其应用范围非常广泛,是目前功能最全的CFD软件。 FLUENT因其用户界面友好,算法健壮,新用户容易上手等优点一直在用户中有着良好的口碑。长期以来,功能强大的模块,易用性和专业的技术支持所有这些因素使得FLUENT成为企业选择CF D软件时的首选。 网格技术,数值技术,并行计算 计算网格是任何CFD计算的核心,它通常把计算域划分为几千甚至几百万个单元,在单元上计算并存储求解变量,FLUENT使用非结构化网格技术,这就意味着可以有各种各样的网格单元:二维的四边形和三角形单元,三维的四面体核心单元、六面体核心单元、棱柱和多面体单元。这些网格可以使用FLUENT的前处理软件GAMBIT自动生成,也可以选择在ICEM CFD工具中生成。

六面体核心网格 四边形平铺网格 在目前的CFD市场, FLUENT以其在非结构网格的基础上提供丰富物理模型而著称,久经考验的数值算法和鲁棒性极好的求解器保证了计算结果的精度,新的NITA算法大大减少了求解瞬态问题的所需时间,成熟的并行计算能力适用于NT,Linux或Unix平台,而且既适用单机的多处理器又适用网络联接的多台机器。动态加载平衡功能自动监测并分析并行性能,通过调整各处理器间的网格分配平衡各CPU的计算负载。

FLUENT动网格技术简介

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

fluent 动网格

Remeshing方法中的一些参数设定:Remeshing中的参数Minimum length scale和Maximum Length Scale,这两个参数你可以参考mesh scale info中的值,仅是参考,因为mesh scale info中的值是整个网格的评价值,设置的时候看一下动网格附近的网格和整个网格区域的大小比较,然后确定这两个参数,一般来讲,动网格附近的网格较密,这些值都比整体的小,所以在设置时通常设置为比mesh scale info中的Minimum length scale大一点,比Maximum Length Scale小一点。 以上是一般来讲的设置思路。下面是我在NACA0012翼型动网格例子中的设置: Remeshing中的参数设定: 为了得到较好的网格更新,本例在使用局部网格重新划分方法时,使用尺寸函数,也就是Remeshing+Must Improve Skewness+Size Function的策略。 将Minimum Length Scale及Maximum Length Scale均设置为0,为了使所有的区域都被标记重新划分; Maximum Cell Skewness(最大单元畸变),参考Mesh Scale Info…中的参考值0.51,将其设定为0。4,以保证更新后的单元质量; Size Remesh Interval(依照尺寸标准重新划分的间隔),将这个值设定为1,在FLUENT,不满足最大网格畸变的网格在每个时间步都会被标记,而后重新划分,而不满足最小,最大及尺寸函数的网格,只有在Current Time=(Size Remesh Interval)*delta t的时候,才根据这些尺寸的标准标记不合格的单元进行重新划分,为了保证每步的更新质量,将其修改为1,就是每个时间都根据尺寸的标准标记及更新网格. Size Function Resolution(尺寸函数分辨率),保持默认的3; Size Function Variation(尺寸函数变量):建议使用一个小值,在0.1到0。5之间,本例将其设置为0.3;Size Function Rate(尺寸函数变化率),保持默认的0.3。 动网格(dynamic mesh)是CFD中专有的概念。由于当前流体计算多采用欧拉坐标系,该坐标系区别于拉格朗日坐标系的一个最直观特点是:计算过程中网格保持静止.因此,在CFD计算中应用动网格,具有其特别的难处。 1、动网格控制方式 最主要的困难在于边界运动后的网格质量控制。由于边界的运动,不可避免的导致网格变形。我们知道,求解器对于网格质量的容忍是有限度的。当网格扭曲过大引起网格质量的急剧下降,可能导致计算发散、形成负网格,进而终止计算。因此,在边界运动过程中,对网格质量进行控制尤为重要。在fluent软件中动网格主要有三种控制方式:smoothing,layering,remeshing.其中layering主要应用与四边形网格及六面体网格,remeshing主要应用于三角形网格及四面体网格等费结构网格中,至于smoothing方法则在各类网格中均可应用。 layering方法应用于结构网格也是有条件限制的:边界运动最好是沿着某单一方向。如若是旋转,最好还是采用非结构网格配合remeshing方式。 非结构网格是最适合应用动网格模型的,但是网格质量不好控制,通常需要仔细调节。结构网格采用layering 方法,能够很好的控制网格质量,但是几何适应性差。具体采用何种网格类型以及何种控制方式,还是要从实

fluent被动运动6DOF总结

利用CFD软件解决动网格问题,通常可分为以下两类: (1)主动型动网格 主动型动网格问题通常指的是边界运动规律及运动状态已知,通常可由软件使用者通过函数或程序进行描述。在程序计算过程中,求解器调用边界运动轨迹描述程序实现边界运动。这类动网格例子很多,如各类泵、风扇等。 (2)被动型动网格 还有一类动网格问题,其边界运动规律往往是未知的,常常需要通过计算边界上的力或力矩,以此来求取边界的运动。在这类动网格计算设置中,网格变化规律难以预料,导致网格参数经常需要进行多次调整才能达到目的。这类例子在现实中其实也很多,比如风力发电机的叶轮、水轮机等。 解决主动型动网格问题比较容易,利用CFD软件提供的动网格模拟能力很容易解决。需要关注的地方是边界运动后,网格节点如何重新布置和生成。如在FLUENT软件中,其动网格主要包括三种网格功能:弹簧光顺、动态层及网格重构。利用网格重构功能几乎可以解决所有主动型动网格问题。 那被动型动网格问题怎么处理呢?一般来说,这类边界的运动都是由于内部流体对其压力所造成的,那么就涉及到力和力矩计算的问题。对于这类问题,在FLUENT软件中可以采用6DOF 模型进行计算。 需要注意的是,以上所有类型动网格计算均建立在边界为刚性的情况下。即不会计算由于流动产生的力的作用导致的边界变形。若要计算边界变形,则需要采用流固耦合方法,利用固体求解器计算。被动型动网格中的力和力矩均是压力对面的积分计算而来。 1、6DOF UDF宏 在FLUENT中利用6DOF是需要定义UDF宏的。该宏的定义形式如下: DEFINE_SDOF_PROPERTIES(name, properties, dt ,time ,dtime) 函数中: Name:宏名称 Real *properties:存储6DOF属性的数组 Dynamic_Thread *dt:存储制定的动网格属性 Real time:当前时间 Real dtime:时间步长 该UDF宏没有返回值。用户需要定义的变变量为name、properties、dt、dtime。 在利用该UDF宏的过程中,需要注意的是properties数组,其包含多种属性: SDOF_MASS //质量,定义方式如properties[SDOF_MASS]=7.0定义质量7kg SDOF_IXX,SDOF_IYY,SOF_IZZ,//X、Y、Z方向惯性矩 SDOF_IXY,SDOF_IXZ,SDOF_IYZ,//惯性积 SDOF_LOAD_LOCAL,//布尔值,FALSE为全局坐标系,TRUE为体坐标系(局部坐标系),默认为FALSE SDOF_LOAD_F_X,SDOF_LOAD_F_Y,SDOF_LOAD_F_Z,//X,Y,Z方向外力 SDOF_LOAD_M_X,SDOF_LOAD_M_Y,SDOF_LOAD_M_Z,//分别为X,Y,Z方向外力矩 SDOF_ZERO_TRANS_X,SDOF_ZERO_TRANS_Y,SDOF_ZERO_TRANS_Z,//布尔值,TRUE表示该方向位移为0,默认为FALSE SDOF_ZERO_ROT_X,SDOF_ZERO_ROT_Y,SDOF_ZERO_ROT_Z,//布尔值,TRUE表示该方向旋转自由度为0,默认值为FALSE SDOF_SYMMETRY_X,SDOF_SYMMETRY_Y,SDOF_SYMMETRY_Z,//指定半模型的对称轴法向向量。在半模型运动时使用。

动网格

①进行动网格演示时,首先设置为transient; ②动网格预览:display zone motion---preview mesh motion;预览之后不保存,重新打开才能恢复原样; ③问题: 出现负体积:如果有error前有warning,仔细查看; 第一章理论基础 1.1 网格生成方法比较 1)铺层layering 计算区域进行扩张和收缩时,网格进行合并或删除; 特点: ①网格的增加或删除是一层一层进行的; ②适用于四边形、六面体和三棱柱网格,不适用于三角形、四面体网格; ③常适用于边界线线性运动; 2)弹性光顺spring smoothing 计算区域进行扩张和收缩时,网格和节点像弹簧一样被拉伸和压缩(接近运动的地方压缩严重); 特点: ①节点数量和链接关系不发生变化; ②如果变形幅度过大,网格会高度扭曲; ③适用于三角形、四面体网格,也适用于四边形、六面体和三棱柱网格; 3)局部重构local remeshing 计算区域进行扩张和收缩时,会自动重构扭曲或尺寸过大的网格,以满足要求;

①节点的数量和链接关系会发生变化; ②适合大变形、大位移;仅使用与三角形网格和四面体网格; ③常和spring smoothing联合使用; 1.2 边界运动 1.2.1 in-cylinder 对于类活塞运动,fluent集成了气缸(in-cylinder)模型;dynamic mesh---option---in cylinder; 1)常用参数 Crank radius:曲柄半径;connecting rod length:连杆半径; (1)通过设置起始、终止角度、曲柄、连杆半径,调整指定边界运动范围; 设置crank angle step size,调整边界运动速度; 设置起始、终止角度、piston axis方向,调整边界运动的方向; 2)指定运动区域 Dynamic mesh zones---creat/edit; Zone name---选择gambit中指定的运动边界; Type---rigid body; Motion attributes---选择piston-full(motion udf/profile)---指定活塞轴方向(piston axis); 设置h_ideal(meshing option---cell hight); 1.2.2 profile 对于预先指定的运动,可用profile来描述; 1)define---profile---read;后缀名为prof;

Fluent动网格的应用过程

Fluent动网格的应用过程 一、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。网格的更新过程由FLUENT根据每个迭代步中边界的变化情况自动完成。FLUENT要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。 二、动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧近似光滑模型、动态分层模型和局部重划模型。 1、弹簧近似光滑模型 在弹簧近似光滑模型中,网格的边被理想化为节点间相互连接的弹簧。移动前的网格间距相当于边界移动前由弹簧组成的系统处于平衡状态。在网格边界节点发生位移后,会产生与位移成比例的力,力量的大小根据胡克定律计算。边界节点位移形成的力虽然破坏了弹簧系统原有的平衡,但是在外力作用下,弹簧系统经过调整将达到新的平衡,也就是说由弹簧连接在一起的节点,将在新的位置上重新获得力的平衡。从网格划分的角度说,从边界节点的位移出发,采用虎克定律,经过迭代计算,最终可以得到使各节点上的合力等于零的、新的网格节点位置,这就是弹簧光顺法的核心思想。 2、动态分层模型 对于棱柱型网格区域(六面体和或者楔形),可以应用动态层模

型。动态层模型的中心思想是根据紧邻运动边界网格层高度的变化,添加或者减少动态层,即在边界发生运动时,如果紧邻边界的网格层高度增大到一定程度,就将其划分为两个网格层;如果网格层高度降低到一定程度,就将紧邻边界的两个网格层合并为一个层。 3、局部重划模型 在使用非结构网格的区域上一般采用弹簧光顺模型进行动网格 划分,但是如果运动边界的位移远远大于网格尺寸,则采用弹簧光顺模型可能导致网格质量下降,甚至出现体积为负值的网格,或因网格畸变过大导致计算不收敛。为了解决这个问题,FLUENT 在计算过程中将畸变率过大,或尺寸变化过于剧烈的网格集中在一起进行局部网格的重新划分,如果重新划分后的网格可以满足畸变率要求和尺寸要求,则用新的网格代替原来的网格,如果新的网格仍然无法满足要求,则放弃重新划分的结果。 三、动网格问题的建立 设置动网格问题的步骤如下: (1)在Solver(求解器)面板中选择非定常流(unsteady)计算。 (2)设定边界条件,即设定壁面运动速度。 (3)激活动网格模型,并设定相应参数,菜单操作如下: Define -> Dynamic Mesh -> Parameters... (4)指定移动网格区域的运动参数,菜单操作如下: Define -> Dynamic Mesh -> Zones...

FLUENT动网格教程

FLUENT动网格教程 摘自https://www.doczj.com/doc/1019322117.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动网格教程

F L U E N T动网格教程(共17页) -本页仅作为预览文档封面,使用时请删除本页-

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

FLUENT动网格之弹性光顺

FLUENT动网格之弹性光顺 上次讲到,光顺方法计算网格节点位移并不是依赖于网格质量。因此,仅使用光顺方法,只能处理一些小变形的情况。倘若变形量过大,则会造成网格质量降低,轻则影响收敛,重则出现负网格,导致计算出错。 1、问题描述 边长120mm的正方形空腔,内有一个边长30mm的正方形固体。研究固体以角速度1rad/s旋转时对内部流场的扰动。 1、网格方案 由于四边形网格在刚体变形时会发生较大的扭曲,不太适合于使用弹簧光顺方法,因此本例中使用三角形网格。使用全局尺寸2mm,生成网格如下图所示。 2、指定运动 可以使用profile文件或DEFINE_CG_MOTION宏来定义运动。我们这里利用udf 宏来定义运动。 UDF宏文件如下:

#include “udf.h” DEFINE_CG_MOTION(RotationVel , dt , vel , omega , time , dtime) { omega[2] = 1; } omega[2]表示z方向的角速度。本例中以恒定的角速度旋转。 将内部四条边定义为rigid body。并把赋予运动速度。 3、动网格参数 勾选Dynamic Mesh选项,激活动网格。本例只考虑网格光顺,因此只勾选Smoothing。(说明:通常动网格应用中不会只使用一种网格更新方法,此处只是考虑光顺,所以才会这样。正常情况下本例应当使用到网格重构)。 点击setting…按键进行smoothing设置面板。如右下图所示。 采用弹簧光顺需要设置的参数一共有四个:弹簧常数因子、边界节点松弛、收敛精度及迭代次数。 通常需要设置的参数为弹簧常数因子及边界节点松弛,其它两个参数采用默认即可。 (1)弹簧常数因子:该参数取值范围[0,1],取值越大表示阻尼越大,也表示边界运动对内部网格的影响越小。 (2)边界节点松弛:取值范围[0,1],1表示无松弛,0表示禁止节点位移。 这里先将两参数取中间值0.5。

在FLUENT中进行公转与自转的动网格+MRF设定

在FLUENT中进行公转与自转的动网格设定,若运动情况较简单且运动规律比较特殊时,可以应用滑移网格解决。在FLUENT13.0之后的版本中,支持在动网格中同时包容MRF模型,这也为复杂运动建模提供了条件。 1、模型准备 本例中的模型需要利用ICEM CFD创建分界面的技术,前面已有介绍,这里不再累述。建立的网格模型如不图所示。整个模型共包含三个域,从外到内我们依次命名为:outer_domain,mid_domain,inner_domain。其中区域3(inner_domain)中包含一个搅拌器。区域3以速

度1rad/s绕圆心旋转,搅拌器以角速度10rad/s旋转。三个计算域以两对interface进行连接。区域1的外部为wall边界类型(即整个区域是密闭的)。 图1 图2 2、模型设置 将网格文件导入至FLUENT中,进行sacle,将模型尺度调整至满足我们需求的尺度。设置求解类型为瞬态,使用RNG K-epsilon模型,采用增强壁面函数。从材料数据库中添加材料水。 3、inner_domain区域设置 本例的重点在于区域设置。需要进行设置的区域为inner_domain与mid_domain。 进入Cell Zone Conditioons面板,选择inner_domain区域,设置区域类型为fluid,点击按钮edit…进入区域设置。如图2所示。在弹出的设置框中进行图3高亮部分的设置。

需要注意的是:设置相对区域为mid_domain,再设置旋转中心后,则设置的旋转中心为局部坐标。 4、mid_domain区域设置 采用与inner_domain类似的设置,如下图所示。设置mid_domain的旋转中心为(0,0),旋转速度1rad/s。

fluent介绍

第1章绪论 FLUENT是世界领先的CFD软件,在流体建模中被广泛应用。由于它一直以来以用户界面友好而著称,所以对初学者来说非常容易上手。FLUENT的软件设计基于CFD软件群的思想,从用户需求角度出发,针对各种复杂流动的物理现象,采用不同的离散格式和数值方法,以期在特定的领域内使计算速度、稳定性和精度等方面达到最佳组合,从而高效率地解决各个领域的复杂流动计算问题。本章简要介绍CFD的基本概念及原理,并阐述FLUENT的基本特点及分析思路。 CFD软件简介。 FLUENT的功能和特点。 FLUENT 6.3流体分析过程。 1.1 CFD软件简介 1.1.1 CFD概述 CFD是计算流体动力学的简写(Computational Fluid Dynamics),其基本的定义是通过计算机进行数值计算和图像显示,分析包含流体流动和热传导等相关物理现象的系统。CFD进行流动和传热现象分析的基本思想是用一系列有限个离散点上的变量值的集合来代替将空间域上连续的物理量的场,如速度场和压力场;然后,按照一定的方式建立这些离散点上场变量之间关系的代数方程组,通过求解代数方程组获得场变量的近似值。 CFD可以看成在流动基本方程(质量守恒方程、动量守恒方程、能量守恒方程)控制下对流动的数值模拟。通过这种数值模拟,得到复杂问题基本物理量(如速度、压力、温度、浓度等)在流场内各个位置的分布,以及这些物理量随时间的变化情况,确定旋涡分布特性、空化特性及脱流区等。还可据此算出相关的其他物理量,如旋转式流体机械的转矩、水力损失和效率等。此外,与CAD联合,还可进行结构优化设计等。 CFD具有适应性强、应用面广的优点。由于流动问题的控制方程一般是非线性的,自变量多,计算域的几何形状和边界条件复杂,很难求得解析解,只有用CFD方法才有可能找出满足工程需要的数值解;而且,可利用计算机进行各种数值试验,例如,选择不同流动参数进行物理方程中各项有效性和敏感性试验,从而进行方案比较。另外,CFD方法不受物理模型和实验模型的限制,省钱省时,有较多的灵活性,能给出详细和完整的资料,很容易模拟特殊尺寸、高温、有毒、易燃等真实条件和实验中只能接近而无法达到的理想条件。 CFD也存在一定的局限性。首先,数值解法是一种离散近似的计算方法,依赖于物理上合理、数学上适用,适合于在计算机上进行计算的离散的有限数学模型,且最终结果不能提供任何形式的解析表达式,只是有限数量离散点上的数值解,并有一定的计算误差;其次,它不像物理模型实验一开始就能给出流动现象并定性地描述,往往需要由原体观测或物理模型试验提供某些流动参数,并需要对建立的数学模型进行验证;而且程序的编制及资料的收集、整理与正确利用,在很大程度上依赖于经验与技巧。此外,因数值处理方法等原因有可能导致计算结果的不真实,例如产生数值粘性和频散等伪物理效应。最后,CFD涉及到大量数值计算,需要较高的计算机软硬件配置。

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中的动网格

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

fluent三种动网格的实现

FLUENT三种动边界控制实现方法PostBy:2008-6-3018:34:00 1)voidDEFINE_CG_MOTION(UDFname,Dynamic_Thread*dt,realvel[],realomega[ ],realtime,realdtime)。 此函数接口用于控制刚体的运动,用户把刚体质心运动速度和角速度分别赋值给vel和omega,FLUENT根据它们的值来自动计算出边界下一步的位置,从而实现动边界的控制;刚体质心的位置可以在函数接口界面对话框中定义。DynamicZones中的dwall就是要控制的动边界,MotionUDF/Profile中的 stc1sta010a0ph0就是UDFname,从中可看出它已被制定成用于控制dwall,理论上FLUENT可以通过这种方式实现无穷多个动边界的控制;C.G.Location用于设定初始位置的质心,C.G.Orientation用于设定刚体的初始角度。一般适用于刚体本身不变形的运动。 2)voidDEFINE_GEOM(charname,Domain*d,Dynamic_Thread*dt,real*position)。 此函数接口用于控制变形体的边界运动,position就是运动边界上某网格节点的位置值,用户可以通过对其赋值达到控制效果,position[0]对应边界节点的x坐标,position[1]对应y坐标,position[2]对应z坐标;FLUENT自动遍历所有的边界节点,因此适用于有规律的可以用函数描述的运动边界。 3)voidDEFINE_GRID_MOTION(name,d,dt,time,dtime)。 此函数接口也用于控制形体的边界运动。主要用于更加复杂的控制,用户需要自己利用FLUENT提供的其他函数来遍历运动边界上的节点,并对其位置进行控制,因此UDF编程比前面两种复杂得多。它甚至可以事先生成好边界数据,在计算中把数据读入,完成复杂形体控制。 1/ 1

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为计算域)

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)

相关主题
文本预览
相关文档 最新文档