FLUENT动网格讲解分析

合集下载

Fluent中的动网格

Fluent中的动网格

Fluent中的动网格动网格是目前求解计算域变化问题的常用方法。

参考Fluent帮助,可以知道动网格技术与一般流动计算设置的主要区别在于网格更新方法和更新域设置。

这里就这两方面问题的一点体会作一简单记录。

一、网格更新方法弹簧近似光滑法将任意两网格节点之间的连线理想地看成一条弹簧,并通过近似弹簧的压缩或拉伸实现网格和计算域的改变。

该方法网格拓扑不变,无需网格的插值处理,对结构化(四边形、六面体)和非结构化(三角形、四面体)网格同样适用。

但不适合于大变形情况,当计算区域变形较大时,变形后的网格质量变差,严重影响计算精度。

动态分层法在运动边界相邻处根据运动规律动态增加或减少网格层数,以此来更新变形区域的网格。

该方法适用于结构化网格,通过设置适当的分层和缩减系数,更新后的网格依然为较为均匀的结构化网格,对计算精度影响较小。

对于运动域具有多自由度和任意变形情况,该方法处理起来非常困难。

网格重生方法在整个网格更新区域内依据设定的最大和最小网格尺寸判断需要进行网格重生的网格,并依据设置的更新频率进行网格重生处理。

该方法适用于非结构化网格,能够较好的应用于任意变形的计算区域处理。

二、更新域设置更新域设置是动网格设置中的一项重要工作,最常用的设置是刚体运动域和变形域,这里针对这两种域的设置注意事项和技巧作一简单介绍。

1、域动网格一般来讲,设置为刚体运动域的区域一般为壁面类边界,通过设置固壁的运动,模拟计算域内物体的运动。

由于固壁边界有时形状较为复杂,壁面附近网格尺度与周围网格尺度存在较大差别,网格更新时变形较大。

在这种情况下,可以设置一个包含固壁运动边界的计算域,通过该计算域的整体运动模拟域内物体的运动,在有的地方将这种方法称为域动网格法。

在域动网格法中,需要设置包含运动物体的内部计算域、内部计算域界面均为刚体运动域。

如下图所示。

2、动态分层法中的分界面在应用动态分层网格更新方法时,当分层界面在计算域内部时,需要采用Split interface(这里称分界面)将运动域运动范围与固定计算域区分开来,以保证动态分层网格处理(如果运动域网格与固定域网格没有分界面,动态分层无法执行)。

FLUENT动网格讲解分析

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)。

FLUENT_6_动网格技巧

FLUENT_6_动网格技巧

FLUENT 6 动网格技巧一、动网格简介CFD动网格大致分为两类:第一类为显式规定网格节点速度,配合瞬态时间,即可很方便的得出位移,当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定网格节点的位移。

第二类为网格节点速度是通过求解得到的,如6DOF模型基本上都属于此类,用户将力换算成加速度,然后将其积分成速度。

对于第一类动网格问题,在FLUENT中通常可以使用Profile与UDF进行网格设置,通过规定节点或区域的速度、角速度或位移等方式来显式确定网格的运动,通常大部分的动网格问题都归于此类。

而对于第二类问题,通常涉及到力的计算,力在流体中通常是对压力进行积分而来。

将力转换为速度或位移,一般涉及到加速度、转动惯量等物理量的计算。

在FLUENT中,可以使用6DOF模型进行处理,在CFX中,可以使用刚体模型(13.0以上版本才有)。

在FLUENT中,动网格涉及的内容包括:1)运动的定义。

主要是PROFILE文件与UDF中的动网格宏。

2)网格更新。

FLUENT中关于网格更新方法有三种:网格光顺、动态层、网格重构。

需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。

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

在避免负网格的同时,努力提高运动更新后的网格质量。

二、第一类动网格操作0打开FLUENT双击桌面快捷方式→ 选择2D或3D模式(FLUENT和GAMBIT默认单位为米)1导入网格文件File → Read → Case → 选择mesh文件2检查网格文件Grid > Check(可以查看网格的大致情况,如有无负体积等)3定义求解器Define → Models → Solver → 在Time项里点选Unsteady(非稳态求解器)4编译UDF文件Define → User-Defined → Functions → Compiled → 单击Add添加UDF文件(*.C)→点击Build按钮→ 点击Load按钮→ 点击Close按钮(如果不关闭编译对话框,在调试程序时可随时对程序进行编译)5设定动网格参数Define → Dynamic Mesh → Parameters→ 勾选Dynamic Mesh> Models(模型)Dynamic Mesh(动网格,默认勾选)In-Cylinder(气缸)2.5DSix DOF Solver(六自由度)> Mesh Methods(网格方法)Smoothing(网格光顺,默认勾选)Layering(动态分层)Remeshing(网格重构)> Smoothing(网格方法)Spring Constant Factor(弹簧常数因子,默认为1)Boundary Node Relaxation(边界节点松弛,默认为1)Convergence Tolerance(收敛容差,默认为0.001)Number of Iterations(迭代次数,默认为20)> Layering(网格方法)Constant Height(固定高度)Constant Ratio(固定比例)Split Factor(分割因子)Collapse Factor(收缩因子)> Remeshing(网格方法)Size Function(尺寸函数)Must Improve Skewness(必须提高扭曲度)Face Remeshing(面网格重构)Minimum Length Scale(最小长度缩放,默认为0)Maximum Length Scale(最大长度缩放,默认为1000)Maximum Cell Skewness(最大单元扭曲度,默认为0.6)Maximum Face Skewness(最大面扭曲度,默认为0.7)Size Remeshing Interval(尺寸重构间隔,默认为10)Size Function Resolution(尺寸函数分辨率,默认为3)Size Function V ariation(尺寸函数变异,默认为1.581787)Size Function Rate(尺寸函数比率,默认为0.3)6设定动网格区域Define → Dynamic Mesh → Zones> Zone Names(在下拉列表里选择要运动的区域或边界)> Type(点选区域或移动边界的类型)Stationary(静止的)Rigid Body(刚体,默认勾选)Deforming(变形)User-Defined(用户自定义)> Motion Attributes(运动属性)Motion UDF/Profile(运动自定义文件,一般UDF文件编译后,会在下拉列表中显示)Center of Gravity Location(全部设置为0)Center of Gravity Orientation(全部设置为0)> Geometry Definition(几何定义,一般不设置)> Meshing Options(网格划分选项)Adjacent Zone(毗邻区域,默认为fluid)Cell Height(单元高度,一般设定为网格单元最小尺寸)→ 单击Create按钮→ 单击Draw按钮→ 单击Update按钮→ 单击Close按钮(这一步非常关键,否则无法预览动态网格)7显示网格Display → Grid(弹出网格显示窗口)8预览动网格Solve → Mesh Motion> Time(时间设置)Current Mesh Times(当前时间,即瞬态运动的时间)Time Step Sizes(时间步长,每个子步的时间)Number of Time Steps(时间步,即总的时间步数)> Display Options(显示选项)Display Grid(显示网格,默认勾选)Save Hardcopy(保存硬拷贝)Enable Autosave(启动自动保存)Display Frequency(显示频率,默认为1)三、第二类动网格操作Number of Iterations(最大迭代步数,在每个时间子步内迭代的次数,即在一个时间步内计算稳态的过程)。

fluent 动网格

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。

fluent动态网格自适应

fluent动态网格自适应

Fluent动态网格自适应详解动态网格自适应用于,瞬态求解计算时,按照一定方法动态的加密某一区域,以实现对该区域物理变量的高精度捕捉。

比如,利用VOF计算液流雾化时,连续的流体会雾化成细小的液滴,且液滴的大小和位置是时时变化的,此时就要用动态网格自适应,去动态的捕捉液滴的位置,并相应的加密此处网格,用以更精确的捕捉液滴的形状。

如下:1,网格自适应设置Method-gradient:一般选择gradient(梯度)自适应方法,本方法可以有效的捕捉两相交界面处的网格,便于更好的细化此处网格。

Coarsen threshold:粗化阀值。

这个数值的意思是,低于这个阀值的网格将被标记并粗化,还原成原来的网格。

也就是说当液滴运动到其他位置后,之前位置被细化的网格将被粗化,还原成原来的粗网格。

如果这个值设为0,那么所有被细化的网格将不会被粗化,也就是不会被还原成原来的粗网格。

只有这个值大于0,粗化才有意义。

如本案例中,粗化阀值为0.001,也就是从体积分数梯度的:MIN(1.42E-14)到0.001,这之间的网格将被粗化,还原成原来的网格。

Refine Threshold:细化阀值。

这个数值的意思是,高于这个数值的网格将被标记并细化。

拿本案例来说,体积分数梯度大于这个数值的位置,网格才被加密。

Dynamic:选择这个按钮,说明是在瞬态仿真中,要时时的去细化网格。

瞬态网格自适应,必须选择这个按钮才有效果。

Interval:这个数值的意思是,细化网格的频率。

如果数值为1,就是每个时间步长都要进行网格自适应计算。

数值为10,就是每10个步长进行一次网格自适应计算。

Normalization:包括三种正规化方法。

Standard、scale和normalize,当进行瞬态网格自适应计算时,推荐scale和normalize。

2,设置细化水平这里的细化水平的也就是网格细化的程度,数值越大表示网格细化的越厉害。

默认为2.。

动网格参数图解

动网格参数图解

主要包括两部分内容:(1)Mesh Methods (2)Dynamic Mesh Zones。

该部分主要用于网格或网格域在运动过程中,设置计算域中网格节点位置更新方法。

fluent中有三种主要网格更新方法:(1)网格光顺方法(2)动态层方法(3)网格重构。

对于3D模型,还包括in-cylinder、six-dof、Implicit Update
三种选项。

其中in-cyliner用于发动机气缸模拟,six-dof主要用于流体作用于刚体,预测刚体运动。

implicit update用于设定网格更新方式。

默认采用显式方式,勾选此选项可设定网格以隐式方式更新。

2、动态网格域
用于定义网格运动的区域及运动类型。

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

静止域在网格运动过程中,区域内节点位置保持不变。

虽然说默认情况下不设定区域运动,则该区域为静止,但是一些情况下还是需要显式设定某些区域为静止域,尤其是在一些与刚体域相连的区域处理上。

刚体运动域:这是fluent动网格中最常见的运动类型。

通过规定刚体的速度或位移来控制运动。

变形域:由于边界运动导致节点变形。

变形域通常与刚体域是相连的。

自定义域:用户可以使用UDF定义自己需要的域
耦合域:节点位移由耦合求解器计算,在流固耦合计算中,耦合面上通常设定为耦合域类型。

Fluent理论手册3—滑移网格及动网格理论

Fluent理论手册3—滑移网格及动网格理论

− 转捩模型
4.7:SST 转捩模型 4.8: − 模型
4.9:雷诺应力模型(RSM) 4.10:分离涡模型(DES) 4.11:大涡模拟模型(LES) 4.12:壁面边界湍流流动的近壁处理
更多关于 ANSYS FLUENT 中湍流模拟的资料, 可以查看用户手册第 12 章: 湍流模拟。
4.1 简介
例如仅有转子作用时如图态近似感兴时必须采动参考系问题也就是说周瞬态类型包子使用旋图322兴趣则可以31采用周期包括旋转323以使32要在位置要使32直线滑移网滑移网格在计算开始一个计算区成网格分在计算中图324分界面上使用瞬态分网格分网格交界线327图322转子网格技术格技术使用两始前将网格文域与其相邻分界的形式一个计算及325上网格并不需分析
湍流流动通过速度场波动进行表征。这些脉动混合诸于动量、能量及组分浓 度等标量方程, 引起传输量的脉动。 由于这些脉动存在于小尺度, 且频率非常高, 因此对其进行直接模拟非常消耗计算资源。
37
图 3.2. .8 3D 圆锥网格交界面 面 对于轴向转子/定子结构,转动 动及静止部 部分对齐于轴 轴线,分界 界面可能为平 平面 形。此面为 为垂直于沿着 着静子至转 转子的旋转轴 轴向的横截 截面。 扇形
33
图 3.2.9 9 3D 平面扇 扇形网格界面 面
3.2.3 滑移网 网格概念
如 3.2 节: :滑移网格 格理论中所讨 讨论,滑移 移网格模型允 允许相邻网 网格相对于其 其他 网格 格滑动。在这 这种情况下 下,网格面不 不需要在网 网格分界面上 上对齐。这 这种条件需要 要对 穿过 过两个非保 保角区域分界 界面的通量 量进行计算。 更多的关于 于 ANSYS FLUENT 中非 中 保角 角界面信息,查看用户 户手册 6.4 节 节:非保角 角网格。

fluent被动运动6DOF总结知识分享

fluent被动运动6DOF总结知识分享

f l u e n t被动运动6D O F总结利用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宏没有返回值。

4-1Fluent流体模拟培训教程-动网格详解

4-1Fluent流体模拟培训教程-动网格详解

• 守恒型动网格流场计算方程
3
Fluent中动态网格模型的兼容性
• 除欧拉多相流模型外,可以与其他物理模型兼容使用
4
Fluent中动态网格模型的兼容性
• 动网格模型可以和Fluent四大类数值解算器(基于压 力的SIMPLE、基于压力的耦合算法、基于密度的显 式、基于密度的隐式)耦合使用
5
Fluent中动态网格模型的兼容性
14
Fluent中动网格模型的限制
(1)动网格模型不允许拓扑结构的改变 (2)一般情况下,多面体网格单元与动网格模型不 兼容 (3)动态网格自适应不能和表面网格重构兼容使用
15
问题?
16
铺层
基本特点: (1)铺层过程中包含了网格的生成和销毁 (2)适用网格种类:四边形、六面体、三棱柱(网 格的分布要服从 一定的规则) (3)铺层方法一般用于边界做线性运动的情况或纯 粹的转动
实例
34
31
局部重构法
1、标记网格
2、标记的网格被删 除形成空穴 3、求解器使用重构 方法生成最好的网 格填充此区域
4、重构后物理量结 果进行插值
32
局部重构法
几点注意: 1、最大网格扭曲率仅仅被用来标记
2、局部重构的算法和Tgid的网格生成办法相同
3、在每个时间步开始之前Remesh发生
33
Fluent 17.0 重叠网格(或嵌套网格 Overset Grid)
29
弹性光顺
弹性光顺法的限制:
小变形和小运动的情况
只适用于三角形、四面体网格 其他网格,需要特殊命令
30
局部重构法
当局部网格的扭曲率或尺寸超过用户规定的范围时,此 处网格将被重构 网格之间的连接属性发生改变 适用于三角形和四面体网格 局部重构法一般和光顺算法结合使用

FLUENT实例-搅拌桨-动网格讲解

FLUENT实例-搅拌桨-动网格讲解

搅拌桨底部十字挡板流场分析动网格实例教程搅拌设备在各个行业运用的十分广泛,搅拌就是为了更够更快速更高效的将物质与介质充分混合,发生充分的反应,而搅拌中存在着许多不利于混合的情况,比如液体旋流。

为了解决这个问题,之前很多人提出在罐体的侧壁上增加挡板,可以抵消大部分旋流,然后大部分都是研究侧挡板的,对于底部挡板的研究十分少,本文就在椭圆底部挡板增加十字型挡板,对罐体中进行流场分析。

1.Gambit建模首先用Gambit建模图形如下:图1:Gambit建立的模型分为两个区域,里面的圆柱为动区域,外面包着的大圆柱设为静区域,静区域划分网格大,划分粗糙,内部动区域划分网格小,划分精细。

边界条件主要设置了轴,搅拌桨,底部挡板,上层液面。

以下就是fluent进行数值模拟。

2.fluent数值模拟2.1导入case文件2.2对网格进行检查Minimum volume的数值大于0即可。

图2网格检查2.3调节比例单位选择mm单位。

图3比例调节2.4定义求解器参数设置如图4所示图4设置求解器参数2.5设置能量线图5能量线2.6设置粘度模型,选择k-e模型k-e模型对该模型模拟十分实用。

图6粘度模型2.7定义材料介质选择液体水。

图7介质选择2.8定义操作条件由于存在着终于,建模时的方向向上,所以在Z轴增加一个重力加速度。

图8操作条件2.9定义边界条件在边界设置重,动区域如图所示,将材料设成水,motion type设成moving reference frame (相对滑动),转速设为10rad/s,单位可在Define中的set unit中的angular-velocity设置。

而在在轴的设置中,如上图所示,将wall motion设成moving wall,motion设成Absolute,速度设成-10,由于轴跟动区域速度是相对的,所以设成反的。

图9动区域边界条件图10轴边界条件2.10设置求解器求解器的设置如图11需将momentum改成0.5即可图11求解器2.11初值初始化在Slove中选择solution initialiation设置一下,初值全为0.2.12设置残留控制将plot点上,其他参数如图12所示。

FLUENT动网格系列:区域运动

FLUENT动网格系列:区域运动

FLUENT动⽹格系列:区域运动本次使⽤的是滑移⽹格,动⽹格实现以后再讨论。

要实现的运动如下图所⽰。

杯⼦中装满⽔,现在以速度1rad/s延续1s钟使杯⼦倾斜1rad,观察5s钟内⽔的变化情况。

本例可以⽤滑移⽹格或动⽹格实现,但是使⽤滑移⽹格能够保持较好的⽹格质量。

本例使⽤滑移⽹格。

FLUENT中的滑移⽹格可以最⼤限度的代替动⽹格,尤其对于⼀些分界⾯确定的计算模型。

滑移⽹格可以⽤于瞬态模拟中(其它如MRF,SRF,MP则很少⽤于瞬态模拟中)。

本例涉及到的内容包括:(1)分界⾯⼏何模型的建⽴。

涉及到多⼏何体的创建。

在workbench的DM模块中很容易解决此类问题。

但是如果要在ICEM CFD中创建⽹格的话,则需要进⾏⼀些特别的处理。

主要是各部分模型⽹格的组装问题。

(2)区域运动的指定。

在本例中主要是指定运动区域的旋转速度。

需要注意的是旋转中⼼与旋转⽅向的设定。

(3)多相流的使⽤。

本例中使⽤的是VOF模型。

1、⼏何模型本例的⼏何模型如下图所⽰。

尺⼨是随便定的。

如图所⽰,计算模型分为三个区域,1、2、3分别对应名称为braket、zone与cup,如前所述,区域zone与cup为运动区域,运动⽅式⽤UDF进⾏定义。

2、边界类型⼀共有两对interface,分别位于zone区域与cup区域,zone区域与braket区域。

如下图所⽰。

braket区域的左侧、右侧及下⽅边界均为wall类型,上⽅边界为pressure_outlet类型,内部边界为interface类型。

cup区域左、右、下侧边界为wall类型,上⽅边界为interface类型。

在mesh interface中设置interface对,⼀共是两对。

最终组合后的⽹格如下图所⽰。

3、求解参数设置导⼊模型后,在scale⾯板中进⾏必要的scale操作以使模型尺度满⾜要求。

在general⾯板中设置使⽤瞬态模拟,并设置重⼒加速度。

选择RNG K-Epsilon湍流模型。

FLUENT中被动型动网格问题求解方案:6DOF教学提纲

FLUENT中被动型动网格问题求解方案:6DOF教学提纲

CAE联盟论坛精品讲座系列FLUENT中被动型动网格问题求解方案:6DOF主讲人:流沙 CAE联盟论坛—总版主利用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宏没有返回值。

Fluent动网格

Fluent动网格

Fluent动网格----layering个一个简单实例我这几天看了点动网格技术方面的东西,在学习过程中发现这方面的例子很少,自己也走了一些弯路。

现在还好,弄明白了一些,能够应付现在我的工作。

为了让更多学习者快速了解动网格,我打算尽量把我学习心得在这里和大家分享,这里给出一个layering的一个简单例子。

1.Gambit画网格本例很简单,在Gambit里画一个10*10的矩形,网格间隔为1,也就是有100个网格,具体见下图。

都学动网格的人了,不至于这个不会做!这里需要注意一个问题:设置边界条件的时候,一定要把要移动的边单独设定,本例中一右边界作为移动的边,设成wall就可以,这里再后面需要制定。

2.编写UDF#include "udf.h"#include "unsteady.h"#include "stdio.h"#include "stdlib.h" /************************************************************/real current_time = 0.0 ;Domain * domain ;Thread * thread ;real NV_VEC( origin ),NV_VEC( force ),NV_VEC( moment ) ;/************************************************************/DEFINE_CG_MOTION(throttle,dt,vel,omega,time,dtime){current_time = CURRENT_TIME ;vel[0] = 30;Message("time=%f omega=%f\n",current_time) ; }上面这段代码就是设置x轴方向的速度为30米每秒(UDF默认是SI单位制)。

Fluent动网格【3】:DEFINE_CG_MOTION宏

Fluent动网格【3】:DEFINE_CG_MOTION宏

Fluent动⽹格【3】:DEFINE_CG_MOTION宏除了利⽤Profile进⾏运动指定之外,Fluent中还可以使⽤UDF宏来指定部件的运动。

其中⽤于运动指定的宏主要有三个:DEFINE_CG_MOTIONDEFINE_GEOMDEFINE_GRID_MOTION今天主要看第⼀个UDF宏DEFINE_CG_MOTION。

⽤途DEFINE_CG_MOTION宏主要⽤于描述刚体的运动。

所谓“刚体”,指的是在运动过程中部件⼏何形状不会发⽣任何改变,只是其质⼼位置发⽣改变。

在定义刚体的运动时,通常以速度⽅式进⾏显式定义。

形式DEFINE_CG_MOTION宏的结构很简单。

DEFINE_CG_MOTION(name,dt,vel,omega,time,dtime)其中:name:为宏的名称,可以随意定义dt:⼀个指针Dynamic_Thread *dt,存储动⽹格属性,通常不需要⽤户⼲预。

vel:平动速度,为⼀个数组,其中vel[0]为x⽅向速度,vel[1]为y⽅向速度,vel[2]为z⽅向速度。

omega:转动速度,omega[0]为x⽅向⾓速度,omega[1]为y⽅向⾓速度,omega[2]为z⽅向⾓速度。

time:当前时间。

dtime:时间步长。

实例实例1:利⽤DEFINE_CG_MOTION宏定义速度:u x=2sin(3t)可以写成:#include "udf.h"DEFINE_CG_MOTION(velocity,dt,vel,omega,time,dtime){vel[0] = 2* sin(3*time);}很简单,对不对?再来个复杂点的例⼦。

实例2:已知作⽤在部件上的⼒F,计算部件在⼒F作⽤下的运动。

可以采⽤⽜顿第⼆定律:∫t t0dv=∫t t(F/m)dt则速度可写为:v t=v t−Δt+(F/m)Δt 可写UDF宏为:/************************************************************* 1-degree of freedom equation of motion (x-direction)* compiled UDF************************************************************/#include "udf.h"static real v_prev = 0.0;static real time_prev = 0.0;DEFINE_CG_MOTION(piston,dt,vel,omega,time,dtime){Thread *t;face_t f;real NV_VEC(A);real force_x, dv;/* reset velocities */NV_S(vel, =, 0.0);NV_S(omega, =, 0.0);if (!Data_Valid_P())return;/* get the thread pointer for which this motion is defined */t = DT_THREAD(dt);/* compute pressure force on body by looping through all faces */force_x = 0.0;begin_f_loop(f,t){F_AREA(A,f,t);force_x += F_P(f,t) * A[0];}end_f_loop(f,t)/* compute change in velocity, dv = F*dt/mass */dv = dtime * force_x / 50.0;/* motion UDFs can be called multiple times and should not causefalse velocity updates */if (time > (time_prev + EPSILON)){v_prev += dv;time_prev = time;}Message("time = %f, x_vel = %f, x_force = %f\n", time, v_prev, force_x); /* set x-component of velocity */vel[0] = v_prev;}Processing math: 100%。

fluent 动网格

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。

15-Fluent_动网格讲解

15-Fluent_动网格讲解
运动区域
Introductory FLUENT Training
© 2007 ANSYS, Inc. All rights reserved.
ANSYS, Inc. Proprietary
Introductory FLUENT Notes FLUENT v6.3 Aug 2008

11-6
ANSYS, Inc. Proprietary
Introductory FLUENT Notes FLUENT v6.3 Aug 2008

建立SRF模型介绍


SRF一般针对单流域,只能是绕着某个特定的坐标点,以恒定的 速度进行旋转。 为什么使用旋转坐标系?


两种动域模型建立方法:

如果域在移动时并没有形状上的改变 (刚性运动), 我们可以在运动坐 标系下解算流体流动方程。

动量方程中可以添加附加的加速度项 动坐标系下,解算的问题变成了定常问题 可以和固定域穿过分界面相结合

如果域在移动的同时还会有形状的改变 (变形), 我们可以用动网格 (DM) 技术解算方程
baffle
rotor
Correct
Wrong!
Wall with baffles not a surface of revolution!
© 2007 ANSYS, Inc. All rights reserved.
11-8
ANSYS, Inc. Proprietary
Introductory FLUENT Notes FLUENT v6.3 Aug 2008
© 2007 ANSYS, Inc. All rights reserved.
11-7

FLUENT动网格之铺层应用1

FLUENT动网格之铺层应用1

FLUENT动网格之铺层1与光顺方法类似,动态层方法同样不是以网格质量作为网格更新判据的。

动态层方法原理很简单,且非常适合于结构网格在某一方向上具有主导运动的情况下。

本例即是这么一种情况。

1、问题描述如下图所示,计算域空间尺寸160mmx50mm,一个长方形固体块在大的空间沿x轴匀速运动,速度0.05m/s,运动时间2s,可计算出运动位移0.1m。

注意位移不能使边界重叠,否则计算会产生错误以致退出。

2、动网格解决方案若使用四边形网格,由于本例中网格运动具有强烈的方向性,满足动态层方法的应用需求。

若使用三角形网格,可使用动态层方法配合网格重构。

然而,单纯的使用动态层方法是有诸多限制的,若不对本例中的几何进行处理,是不满足动态层应用要求的。

主要问题在于:动态层方法要求运动边界为单侧边界,则同一个域中不能既拉伸又压缩。

本例显然不满足单一的网格运动,因为固体的运动前方网格被压缩,而后方网格被拉伸。

因此可将几何进行切割。

如图所示,将计算域如此切割,分解为四个计算域。

如何在ICEM CFD中对计算域进行处理,以后再说。

也可以将区域切割后分别划分网格。

边界类型:1,2,7,8:interface对类型,且为变形域,1、2伸长,7、8缩短。

3,4:wall类型,且为变形域5,6:wall类型,且为运动域9,10,11,12:计算域边界。

本例中使用wall,表示全封闭模型。

划分网格如图所示。

其中网格尺寸为1mm,共生成7306个网格。

3、定义运动本例使用PROFILE文件定义运动。

profile文件内容如下:((moveVel transient 3 0)(time 0 1 2)(v_x 0.05 0.05 0.05))4、动网格参数本例使用layering网格更新方法。

如下图所示。

只勾选Layering选项。

设置layering方法的参数如右下图所示。

采用分裂因子0.4,收缩因子0.2进行网格更新。

意味着:当网格长度大于1.4时,进行网格分裂,当网格长度小于0.2时,进行风格合并(原始网格长度为1)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题记:在学习使用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?,然后激活该选项即可。

动态层模型对于棱柱型网格区域(六面体和或者楔形),可以应用动态层模型。

动态层模型的中心思想是根据紧邻运动边界网格层高度的变化,添加或者减少动态层,即在边界发生运动时,如果紧邻边界的网格层高度增大到一定程度,就将其划分为两个网格层;如果网格层高度降低到一定程度,就将紧邻边界的两个网格层合并为一个层:如果网格层j扩大,单元高度的变化有一临界值:H_min>(1+alpha_s)*h_0式中h_min为单元的最小高度,h_0为理想单元高度,alpha_s为层的分割因子。

在满足上述条件的情况下,就可以对网格单元进行分割,分割网格层可以用常值高度法或常值比例法。

在使用常值高度法时,单元分割的结果是产生相同高度的网格。

在采用常值比例法时,网格单元分割的结果是产生是比例为alpha_s的网格。

若对第j层进行压缩,压缩极限为:H_min<alpha_c*h_0式中alpha_c为合并因子。

在紧邻动边界的网格层高度满足这个条件时,则将这一层网格与外面一层网格相合并。

动网格模型的应用有如下限制:(1)与运动边界相邻的网格必须为楔形或者六面体(二维四边形)网格。

(2)在滑动网格交界面以外的区域,网格必须被单面网格区域包围。

(3)如果网格周围区域中有双侧壁面区域,则必须首先将壁面和阴影区分割开,再用滑动交界面将二者耦合起来。

(4)如果动态网格附近包含周期性区域,则只能用FLUENT 的串行版求解,但是如果周期性区域被设置为周期性非正则交界面,则可以用FLUENT 的并行版求解。

如果移动边界为内部边界,则边界两侧的网格都将作为动态层参与计算。

如果在壁面上只有一部分是运动边界,其他部分保持静止,则只需在运动边界上应用动网格技术,但是动网格区与静止网格区之间应该用滑动网格交界面进行连接。

局部重划模型在使用非结构网格的区域上一般采用弹簧光顺模型进行动网格划分,但是如果运动边界的位移远远大于网格尺寸,则采用弹簧光顺模型可能导致网格质量下降,甚至出现体积为负值的网格,或因网格畸变过大导致计算不收敛。

为了解决这个问题,FLUENT 在计算过程中将畸变率过大,或尺寸变化过于剧烈的网格集中在一起进行局部网格的重新划分,如果重新划分后的网格可以满足畸变率要求和尺寸要求,则用新的网格代替原来的网格,如果新的网格仍然无法满足要求,则放弃重新划分的结果。

在重新划分局部网格之前,首先要将需要重新划分的网格识别出来。

FLUENT 中识别不合乎要求网格的判据有二个,一个是网格畸变率,一个是网格尺寸,其中网格尺寸又分最大尺寸和最小尺寸。

在计算过程中,如果一个网格的尺寸大于最大尺寸,或者小于最小尺寸,或者网格畸变率大于系统畸变率标准,则这个网格就被标志为需要重新划分的网格。

在遍历所有动网格之后,再开始重新划分的过程。

局部重划模型不仅可以调整体网格,也可以调整动边界上的表面网格。

需要注意的是,局部重划模型仅能用于四面体网格和三角形网格。

在定义了动边界面以后,如果在动边界面附近同时定义了局部重划模型,则动边界上的表面网格必须满足下列条件:(1)需要进行局部调整的表面网格是三角形(三维)或直线(二维)。

(2)将被重新划分的面网格单元必须紧邻动网格节点。

(3)表面网格单元必须处于同一个面上并构成一个循环。

(4)被调整单元不能是对称面(线)或正则周期性边界的一部分。

动网格的实现在FLUENT 中是由系统自动完成的。

如果在计算中设置了动边界,则FLUENT 会根据动边界附近的网格类型,自动选择动网格计算模型。

如果动边界附近采用的是四面体网格(三维)或三角形网格(二维),则FLUENT 会自动选择弹簧光顺模型和局部重划模型对网格进行调整。

如果是棱柱型网格,则会自动选择动态层模型进行网格调整。

在静止网格区域则不进行网格调整。

动网格问题中对于固体运动的描述,是以固体相对于重心的线速度和角速度为基本参数加以定义的。

既可以用型函数定义固体的线速度和角速度,也可以用UDF 来定义这两个参数。

同时需要定义的是固体在初始时刻的位置。

注:这一小节主要讲述了动网格的更新方法,最好能掌握,尤其是各种方法的适用范围,通常来讲,在一个case中,我们使用的更新方法都是根据网格类型以及和要实现的运动来选择的,很多时候都是几种更新方法搭配起来使用的。

总结一下:使用弹簧近似光滑法网格拓扑始终不变,无需插值,保证了计算精度。

但弹簧近似光滑法不适用于大变形情况,当计算区域变形较大时,变形后的网格会产生较大的倾斜变形,从而使网格质量变差,严重影响计算精度。

动态分层法在生成网格方面具有快速的优势,同时它的应用也受到了一些限制。

它要求运动边界附近的网格为六面体或楔形,这对于复杂外形的流场区域是不适合的。

使用局部网格重划法要求网格为三角形(二维)或四面体(三维),这对于适应复杂外形是有好处的,局部网格重划法只会对运动边界附近区域的网格起作用。

3、动网格问题的建立设置动网格问题的步骤如下:(1)在Solver(求解器)面板中选择非定常流(unsteady)计算。

(2)设定边界条件,即设定壁面运动速度。

(3)激活动网格模型,并设定相应参数,菜单操作如下:Define -> Dynamic Mesh -> Parameters...(4)指定移动网格区域的运动参数,菜单操作如下:Define -> Dynamic Mesh -> Zones...(5)保存算例文件和数据文件。

(6)预览动网格设置,菜单操作为:Solve -> Mesh Motion...(7)在计算活塞问题时,设定活塞计算中的事件:Define -> Dynamic Mesh -> Events...并可以通过显示阀与活塞的运动,检查上述设置是否正确:Display -> IC Zone Motion...(8)应用自动保存功能保存计算结果。

File -> Write -> Autosave...在动网格计算中,因为每个计算步中网格信息都会改变,而网格信息是储存在算例文件中的,所以必须同时保存算例文件和数据文件。

(9)如果想建立网格运动的动画过程,可以在Solution Animation(计算结果动画)面板中进行相关设置。

注:在这一步中,需要提醒一下,使用动网格进行正式计算之前,最好养成预览动网格更新的习惯;就是在正式计算前,浏览一下动网格的更新情况,这样可以避免在计算过程中出现动网格更新本身的问题。

在预览更新时,很多人都说会出现负体积的警告,更新不成功,出现这样的问题时,最好先把时间步长改的更小点儿试试,一般来讲,排除UDF出现更新出错的原因都与时间步长有关,这需要结合所使用的更新方法多琢磨。

4、设定动网格参数为了使用动网格模型,需要在dynamic mesh(动网格)面板中激活Dynamic Mesh(动网格)选项。

如果计算的是活塞运动,则同时激活In-Cylinder(活塞)选项。

然后选择动网格模型,并设置相关参数。

1)选择网格更新模型在Mesh Methods(网格划分方法)下面选择Smothing(弹簧光顺模型),Layering(动态层模型)和(或)Remshing(局部重划模型)。

2)设置弹簧光顺参数激活弹簧光顺模型,相关参数设置位于Smoothing(光顺)标签下,可以设置的参数包括Spring Constant Factor(弹簧弹性系数)、Boundary Node Relaxation(边界点松弛因子)、Convergence Tolerance(收敛判据)和Number of Iterations(迭代次数)。

相关文档
最新文档