一个动网格的例子
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)在Flue nt中,动网格模型可以用来模拟由于流域边界运动引起流域形状随时间变化的流动情况,动网格在求解过程中计算网格要重构,例如汽车发动机中的气缸运动、阀门的开启与关闭、机翼的运动、飞机投弹等等。
CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。
配合瞬态时间,即可很方便的得出位移。
当然一些求解器(如FLUENT )也支持稳态动网格,这时候可以直接指定节点位移。
(2)网格节点速度是通过求解得到的。
如6DOF模型基本上都属于此类。
用户将力换算成加速度,然后将其积分成速度。
在Flue nt中,动网格涉及的内容包括:(1)运动的定义。
主要是PROFILE文件与UDF中的动网格宏。
(2)网格更新。
FLUENT中关于网格更新方法有三种:网格光顺、动态层、网格重构。
需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。
动网格的最在挑战来自于网格更新后的质量,避免负体积是动网格调试的主要目标。
在避免负网格的同时,努力提高运动更新后的网格质量。
拉格朗日网格(固体有限元计算)网格欧拉网格(流体计算)实例:Profile定义运动I、参数说明本次实例采用的场景来自于流体中高速飞行的物体。
如子弹、火箭、导弹等。
这里只是为了说明profile在动网格运动定义中的应用,因此为了计算方便不考虑高速问题。
问题描述如下图所示:图1 (1为运动刚体,2为计算域)图2计算说明:由于不考虑也没办法考虑刚体的变形,因此在构建面域的时候,将1中的部分通过布尔运算去除。
动网格

FLUENT6.1全攻略图10-16 转子定子模型的静压等值线图在显示速度矢量时,同样有绝对速度和相对速度两种形式。
另外需要注意的是,后处理过程不能在交界区中的壁面、内部、周期等类型的边界上建立数据显示面(surface),但是可以在交界面上建立数据显示面,但结果将是单边的,就是只显示交界面一侧的结果。
而且在跨越交接面时,等值线中可能会有细微的不连续。
在画三维填充等值线时,图形中可能会出现一些小缝,但是这些缝只是图形显示问题,与解的连续性无关。
10.6 动网格模型10.6.1 简介动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。
边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。
网格的更新过程由FLUENT根据每个迭代步中边界的变化情况自动完成。
在使用移动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。
可以用边界型函数或者UDF定义边界的运动方式。
FLUENT要求将运动的描述定义在网格面或网格区域上。
如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。
那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。
不同区域之间的网格不必是正则21FLUENT6.1全攻略22的,可以在模型设置中用FLUENT 软件提供的非正则或者滑动界面功能将各区域连接起来。
10.6.2 动网格守恒方程在任意一个控制体中,广义标量Φ的积分守恒方程为:()∫∫∫∫∂∂+⋅∇=⋅−+V V Φg V VdV S A d ΦΓA d u u ρΦV ρΦd dt d G G G G (10-7) 式中ρ为流体密度,u G 为速度向量,g u G 移动网格的网格速度,Γ为扩散系数,ΦS 为源项,V ∂代表控制体V 的边界。
方程(10-7)中的时间导数项,可以用一阶后向差分格式写成:()()t V V dV dt d nn V ΔΦ−Φ=Φ+∫ρρρ1 (10-8) 式中n 和n+1代表不同的时间层。
多相流-动网格

弹簧式 弹簧式适用于小范围的边界变 形,单元的连接和数量不变, 弹簧式适用于小范围变形的三
角形/四面体网格
A Pera Global Company © PERA China
动网格模型
FLUENT引入动网格模型来移动边界,并调整网格 例子:
– 内燃机汽缸内的活塞运动 – 容积泵 – 机翼摆动 – 阀门开关过程 – 动脉扩张和收缩
A Pera Global Company © PERA China
动网格方法
层铺法 随着边界的移动,单元层生 成或消失。单元层可以是四 边形/六面体/四面体类型, 适合边界在小范围或大范围
内的线性或旋转运动
局部重划法 随着边界移动,网格扭曲大 的区域网格重新划分。适用 于三角形/四面体网格类型,
– 所有的流体域在运动坐标系下定义 – 旋转坐标系引入了附件加速度
为什么要使用运动坐标系?
– 在静止坐标系下流场是瞬态的,使 用旋转坐标系后流场可以看做稳态 的
– 优势 • 用稳态方法求解*
• 边界条件更简单 • 调试更快捷 • 更容易的后处理的分析
Centrifugal Compressor (single blade passage)
均值,随每步迭代更新
• 分布可以是径向或轴向
– 求解收敛后,混合平面将调整 为一般流动条件
Mixing plane (Pressure outlet linked with
a mass flow inlet)
MPM的优势:只需要一个流道,和叶片数量无关
A Pera Global Company © PERA China
A Pera Global Company © PERA China
4-移动边界与动网格应用

动网格模型(Dynamic Mesh )一个简单的例子。
水在通道中流动如图所示,有一个入口(ab),一个出口(cd),一个可移动的挡板(fg),挡板有一定的移动范围(ef,gh)。
本例研究简单动网格的应用,将会涉及到:(1) UDF 函数的读入以及要注意的问题 (2) 动网格参数的设定 (3) 动网格动画的设定一、 利用Gambit 建立计算模型1、 创建各控制点2、 由点连成直线3、 由线段创建面——流域4、 设定边界类型ab--速度入口(inlet );cd--压力出流(outlet ); ef —可变形边界(form1);hg —可变形边界(form2); fg —移动边界(valve ) 5、 输出网格文件二、 利用fluent-2d 进行计算1、 读入mesh 文件File → Read → Case …2、 网格检查(注意最大长度和最小长度)3、 长度单位设定(cm ),并显示网格fg4、设置非定常求解器保持Unstready Formulation 的1st-Order Implict注意:目前动态网格计算只能用first-Order5、选择紊流模型6、材料设置为水7、边界条件:设置速度入口条件8、编译程序(1)读入和编辑udf函数Define→ User-Defined→ Functions→ Compiled…(a)在Source Files下,点击 Add…Select File 面板将会打开,选择valve.c(b)在Compiles UDF 面板下,点击Build注意:将会在FLUENT目录下产生一个缺省libudf文件夹。
如果工作目录下已有这个文件夹,请将删掉。
(c)点击Load注意:如果出现“找不到系统文件之类的提示”,则需要在计算机里装一个c语言的程序。
Valve.c的内容如下:#include <stdio.h>#include "udf.h"DEFINE_CG_MOTION(valve,dt,cg_vel,cg_omega,time,dtime){if(time<=0.5)cg_vel[0]= - 0.2;elsecg_vel[0]=0.0;}这是一个UDF文件,即用户自定义函数,可用来确定阀门的运动规律。
Fluent动网格 - -layering个一个简单实例(作者Snow)

Fluent动网格 - -layering个一个简单实例(作者Snow)Fluent动网格----layering个一个简单实例我这几天看了点动网格技术方面的东西,在学习过程中发现这方面的例子很少,自己也走了一些弯路。
现在还好,弄明白了一些,能够应付现在我的工作。
为了让更多学习者快速了解动网格,我打算尽量把我学习心得在这里和大家分享,这里给出一个layering的一个简单例子。
1.Gambit画网格本例很简单,在Gambit里画一个10*10的矩形,网格间隔为1,也就是有100个网格,具体见下图。
都学动网格的人了,不至于这个不会做!这里需要注意一个问题:设置边界条件的时候,一定要把要移动的边单独设定,本例中一右边界作为移动的边,设成wall就可以,这里再后面需要制定。
2.编写UDF#include \ #include \ #include \#include \ /************************************************************/ 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(\ omega=%f\\n\ }上面这段代码就是设置x轴方向的速度为30米每秒(UDF默认是SI单位制)。
vel[0]表示x、vel[1]表示y、vel[2]表示z。
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)。
(完整版)NACA0012翼型俯仰振荡实例进行讲解动网格

以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程;首先需要声明的是,这个例子也是来源于网络,原作者不详,在此向他表示感谢。
1、问题描述本例是想对作简谐振荡运动的NACA0012翼型的气动特性(升力系数,阻力系数和力矩系数)进行数值计算,来流速度为V,攻角的变化规律为:Alpha(t)=A/2*sin(omega*t)其中,A=10度,omega=10*pi 弧度/秒。
2、该例需要使用动网格来实现,首先需要编写刚体运动UDF实现翼型的俯仰运动,由于在FLUENT的UDF中只能指定速度,角速度;所以,需要将攻角对时间求导,得到转动角速度的规律:D(alpha)/dt=A*omega/2*cos(omega*t)编写的UDF在附件中。
3、由于本例只是为了讲述动网格的实现,至于其他方面的设置及分析就不再讨论;这里详细讲述下动网格的建立以及动网格的预览的结果。
步骤如下:1)将mesh文件读入到FLUENT中,Grid:check,scale…,Smooth/Swap…;Display Grid;2)定义求解器为,Define:pressure-based,2D,unsteady,Implicit,Green-Gauss Node Based(因本例使用的是三角形单元).3)编译UDF,Define->User-Defined->Functions->Complied…此时打开了Complied UDFs的窗口,Add…在选择UDF的对话框中找到NACA0012DM文件夹中的airfoil.c文件,选中,ok;此时返回到Complied UDFs的窗口点击Build,FLUENT开始进行编译,可以在FLUENT窗口看到编译的一些过程提示;等编译完成,点击Load;就将已经编译好的UDF加载到FLUENT中了。
4)定义动网格参数,Define->Dynamic Mesh(选勾,激活动网格模型)->Parameters…此时打开了Dynamic Mesh Parameters 窗口,在Models中只选取Dynamic Mesh,本例的网格类型为三角形单元,要实现的运动为小幅度的转动,因此选用的动网格更新方法为Smoothing+Remeshing;开始依次对这两种更新方法进行参数设定:Smoothing中的参数设定:Spring Constant Factor(弹簧倔强系数),该值设定为一个较小的值,在0.01到0.1之间,本例选取0.08;Boundary Node Relaxation(边界节点松弛),设定为0.5;Convergence Tolerance(收敛判据),保持默认的0.001;Number of Iterations(迭代次数),保持默认的20;Remeshing中的参数设定:为了得到较好的网格更新,本例在使用局部网格重新划分方法时,使用尺寸函数,也就是Remeshing+Must Improve Skewness+Size Function的策略。
动网格系列(一)

b = NV_DOT(rvec, axis);
NV_V_VS(Pp, =, origin, +, axis, *, b);
/*节点沿径向运动*/
NV_VV(dvec, =, NODE_COORD(v), -, Pp);
在动网格设置面板中,点击按钮【Create/Edit…】按钮,弹出动网格区域定义对话框。如图1-5、图1-6所示。
在图1-6所示面板中,设置Zone Names为fluid-cylinder,设置Type为User-Defined,在下方的Motion Attributes标签页中设置Mesh Motion UDF为scale_cyl::libudf,点击按钮【Create】创建动网格区域。
点击按钮【Load】加载UDF文件。如图1-2所示。
UDF加载成功后,input.txt文件内容将会被显示在命令窗口中。如图1-3所示。
图1-2编译UDF
图1-3input.txt文件内容
Step 4:设置网格运动及缩放圆柱区域
点击模型树节点【Dynamic Mesh】,在右侧面板中勾选【Dynamic Mesh】,本例不需要设置Mesh Methods,如图1-4所示。
{
v = C_NODE(c,tc,n);//取得节点
if (NODE_POS_NEED_UPDATE(v))
{
NODE_POS_UPDATED(v);
/* direction vector of node wrt origin of cylinder axis */
NV_VV(rvec, =, NODE_COORD(v), -, origin);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个动网格的例子
BY HOTSON
花了一个下午的时间看了一点关于动网格的培训资料,颇受启发,于是想自己做一个例子,问题描述如下:
一个10cm*10cm 的二维空间,顶部有一个2cm 的开口,其余全部为壁面,其中底下的壁面上下往返运动(见profile 文件),里面充满空气air ,想要模拟出类似于针筒抽吸空气的效果。
模型及其网格如图1所示,网格大小为0.4mm 。
图1 模型以及网格
以下详细描述fluent 中关于动网格的设定
首先,导入网格,当然注意单位的换算啦,按系统默认的m 作为单位,因此进行scale ,如图
2
图2 单位确定 出口 静止壁面
变形壁面 运动壁面
模型(model)以及材料(material)按默认的不做修改。
勾选Dynamic Mesh,以及remeshing,如图3
图3 选择动网格模型
Smoothing和remeshing的设定都先采用默认的值,如图4
图4 动网格策略设定
下面,建立动网格区域(Dynamic mesh zone)
顶面和出口面均设定为静止网格(stationary),在mesh option中,cell height设定为0.0004m(即初始网格的大小,官方教程建议如此设定),如图5所示
A 顶面
B 出口面
图5 静止网格的设定
由于地面上下往复运动时,侧壁是变形的,因此两个侧壁设定为变形区域(deforming),将maximum length scale设定为0.01(当然,你也可以尝试其他值),maximum skewness设定为0.75。
官方教程建议对于三角形网格,remeshing 的最大畸变度设定为0.75。
如图6所示
图6 变形网格的设定
将底面设定为运动壁面,运动类型为刚体运动(Rigid body),同样cell height设
定为0.0004m,其余默认。
这里壁面的运动用profile来定义,如下((ylocation 5 point)
(time 0 0.01 0.02 0.03 0.04)
(y 0 0.0015 0 0.0015 0))
该函数使得壁面在y方向上往复运动,开始位置为0mm,最高位置为1.5mm,运动时间0.04s,往复两次。
需要说明的是,这个profile未必是具有物理意义的,为了节约计算时间,把时间步长设定为0.001s,因此总共需要40个时间步就可以,但是这样误差肯定非常大,结果可能也失去物理意义,但是能达到使网格动起来,得出流动分布就是本文的目的了。
如图7所示,本例建模的时候,运动壁面的重心在0位置上,因此重心位置可以不做修改(当然x方向重心对计算无影响,因此不管了)
图7 运动网格的设定
到此,动网格设定完毕,大家可以根据需要对网格进行预览,注意,将预览的时间步长设定成与实际计算流动时的步长一致。
图8是本文采用的时间步长以及步数,计算结束时间刚好为运动壁面回到原始位置
图8 网格预览
初始化,开始计算,步长设定如图
9
图9 计算设定
大家可以根据需要进行动画设定,这里就不做介绍了。
计算结果:
一下为几个时刻的速度矢量图
注意这里的网格
和最开始导入的
对比下
地面向上运动,
空气被排出0.002s
地面向下运动,
空气被吸入
0.011s
0.018s
0.04s
由以上可以看出,基本能模拟出针筒抽吸空气的过程。
当然要说明的是这个例子
没有特定的物理意义,仅仅用于动网格的测试。