(最新整理)动网格流沙版完美整理._第1页
(最新整理)动网格流沙版完美整理._第2页
(最新整理)动网格流沙版完美整理._第3页
(最新整理)动网格流沙版完美整理._第4页
免费预览已结束,剩余29页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(完整)动网格流沙版完美整理.(完整)动网格流沙版完美整理. 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)动网格流沙版完美整理.)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为(完整)动网格流沙版完美整理.的全部内容。动网格让网格动起来(1)闲谈动网格在固体有限元计算中,网格运动实非什么稀奇事儿。而且在绝多数固

2、体计算的基本物理量是网格的节点位移,所以,固体计算中,网格节点运动是对的,没有运动反而不正常了。也可以这么说:正因为计算域内部节点间的相对运动,才导致了内应力的产生.流体计算与固体完全不同。其根源在于它们使用的网格类型不同。当前固体有限元计算采用的是拉格朗日网格,而流体计算则大多数采用的欧拉网格。如果说把拉格朗日网格中的节点点看作是真实世界的物质原子的话,那么欧拉网格的节点则好比是真实世界中的一个个传感器,它们总是呆在相同的位置,真实的记录着各自位置上的物理量.正常情况下,欧拉网格系统是这样的:计算域和节点保持位置不变,发生变化的是物理量,网格节点就像一个个布置在计算域中的传感器,记录该位置上

3、的物理量。这其实是由流体力学研究方法所决定的。宏观与微观的差异决定了固体力学计算采用拉格朗日网格,流体计算采用欧拉网格。关于这部分的详细解说,可以参阅任何一本计算流体动力学书籍.世界是公平的。有利必有弊。朗格朗日网格适合计算节点位移,然而对于过大的网格变形却难以处理。欧拉网格生来可以处理大变形(因为节点不动),然而对于对于节点运动的处理,则是其直接软肋。然而很不幸的是,现实生活中有太多网格边界运动的实例。如汽车发动机中的气缸运动、阀门开启与关闭、机翼的运动、飞机投弹等等等等举不胜举。计算流体动力学计算的基本物理量通常为:速度、温度、压力、组分.并不计算网格节点位移。因此要让网格产生运动,通常给

4、节点施加的物理约束是速度。cfd中的动网格大体分为两类:(1)显式规定的网格节点速度.配合瞬态时间,即可很方便的得出位移。当然一些求解器(如fluent)也支持稳态动网格,这时候可以直接指定节点位移。(2)网格节点速度是通过求解得到的。如6dof模型基本上都属于此类.用户将力换算成加速度,然后将其积分成速度.对于第一类动网格问题,在fluent中通常可以使用profile与udf进行网格设置,通过规定节点或区域的速度、角速度或位移等方式来显式确定网格的运动,通常大部分的动网格问题都归于此类。而对于第二类问题,通常涉及到力的计算,力在流体中通常是对压力进行积分而来。将力转换为速度或位移,一般涉及

5、到加速度、转动惯量等物理量的计算。在fluent中,可以使用6dof模型进行处理,在cfx中,可以使用刚体模型(13.0以上版本才有)。在fluent中,动网格涉及的内容包括:(1)运动的定义。主要是profile文件与udf中的动网格宏。(2)网格更新。fluent中关于网格更新方法有三种:网格光顺、动态层、网格重构。需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。动网格的最在挑战来自于网格更新后的质量,避免负体积是动网格调试的主要目标。在避免负网格的同时,努力提高运动更新后的网格质量。让网格动起来(2)-profile文件 这里要说的prof

6、ile文件,只针对利用于网格运动定义之用的瞬态profile文件。其它类型的profile文件,可参阅fluent用户文档,里头有详细的描述。在ansys fluent中,有两种方式用于指定瞬态网格区域及边界条件:(1)与标准profile格式相同的瞬态profile文件(2)表格格式的瞬态profile文件。对于这两种方式,网格域及边界条件的变化均只与时间有关。然而如果使用了incylinder模型,则用户可以使用crank角代替时间变量.1、标准瞬态profile文件一个标准瞬态profile文件格式如下:((profile-name transient n periodic?)(fiel

7、d_name_1 a1 a2 a3 an)(field_name_2 b1 b2 b3 bn).。.(field_name_r r1 r2 r3 rn)注意:(1)profilename:profile名,必须全部为小写字母,少于64个字符。(2)transient为保留关键字,不可随便更改。(3)n表示每一个场变量所包含的变量个数。(4)periodic?用于标识是否使用周期,1为使用时间周期,0表示不使用时间周期。(5)通常field_name_1为time,后面的变量值为升序排列。(6)所有的值,包括坐标值,都必须使用si单位制。fluent读入profile文件时不进行单位转换.一个实

8、际的例子:((sampleprofile transient 3 0)(time 1 2 3)(u 10 20 30)解读:(1)profile名为sampleprofile,读入该profile文件后,合适的地方出现的变量名为sampleprofile。(2)在3个时间点上定义了值,分别为1s,2s,3s。其中1s时的x方向速度值为10m/s,2s时刻对应的速度值为20m/s,3s时刻对应的速度值为30m/s。u,v,w是表示x,y,z三方向的速度,也可以使用v_x,v_y与v_z,旋转速度使用omega_x,omega_y,omega_z变量名。一个使用crank angle替代time的

9、例子:((example transient 3 1)(angle 0 180 360)(temperature 300 500 300)2、表格瞬态profile文件表格格式与标准格式有很大的差异。表格格式如下:profile_name n_field n_data peridoic?field_1 field_2 field_3 field_4v1-1 v21 v-n_field_1v-1-2 v2-2 v-n_field-2。.v1-n_data v-2-n_data v-n_fieldn_data说明:与标准格式类似,profile_name为profile名,体现在fluent中为运

10、动变量名。格式要求与标准格式一致:小写,少于64个字符。field_1通常为time,表示时间.后方接着的是各个变量名。v-1-1表示field_1的第一个值,依此类推,v-1-2表示第二个值。按升序排列。peridoic?表示是否采用时间周期,1表示采用,0表示不采用.一个例子:sampleprofile 2 3 0time u1 102 203 30解读:第一行:sampleprofile表示profile名,fluent读入此profile后,将会在使用profile的地方显示该profile名.2表示两个场变量(time与u)或者说是表的列数,3表示一共有3个数据点或者说表有三行.0表

11、示不使用周期。第二行:定义场变量.一共是两个场变量:time与u,通常time放在第一个.第三行到最后一行:第一个值表示时间值,第二个值表示u的值。定义了1s时的x方向速度值为10m/s,2s时刻对应的速度值为20m/s,3s时刻对应的速度值为30m/s。若使用周期,则必须定义一个周期内的时间物理量的变化.简单来说,就是最后一行的物理量的值与第一行物理量的值相同.如下一个例子:periodprofile 2 4 1time u0 101 202 303 10也可以使用crank angle代替时间进行变量定义:exaple 2 3 1angle temperature0 300180 5003

12、60 300请注意:使用列表形式的profile,只能使用tui命令读入到fluent中:file readtransient-table让网格动起来(3)实例1:profile定义运动 本次实例采用的场景来自于流体中高速飞行的物体。如子弹、火箭、导弹等。这里只是为了说明profile在动网格运动定义中的应用,因此为了计算方便不考虑高速问题。问题描述如下图所示: 如图所示,1为运动刚体,2为计算域。由于不考虑也没办法考虑刚体的变形,因此在构建面域的时候,将1中的部分通过布尔运算去除。计算域总长度为300mm,其中固体运动最大位移为300-40-306mm=224mm。为了防止固体边界与计算域边

13、界发生重叠,我们使运动最大距离为200mm。运动速度v=0.4t,这样可能计算运动完200mm需要的时间为1s。采取5个时间数据点分别为:0,0。25,0。5,0.75,1s,相对应的速度为:0,0。1,0。2,0.3,0。4 m/s。profile文件如下:((movevelocity transient 5 0)(time 0 0.25 0.5 0.75 1)(v_x 0 0.1 0。2 0。3 0。4))(1)将计算域离散为网格.由于三角形网格非常适合于2d动网格,因此本例使用三角形网格。若要使用四边形网格,则需要进行滑移面处理。详细的说明将留待以后网格更新的时候进行.同样的,也不进行边

14、界层处理。 简化问题描述,设定四周为wall壁面,中间区域为rigid wall,在动网格中进行设定。全局网格尺寸为2mm,运动边界网格尺寸1mm,网格单元总数19671,节点总数9832。(2)启动fluent,读入msh文件选择2d求解器,勾选双精度选项。检查单位,确保使用的单位为mm。选用瞬态求解器。general中的其它选项采取默认。如下图所示。 (3)选用标准ke湍流模型,材料使用水。设定cell zone condition将默认域介质设定为water。由于本例使用全封闭计算域,所有边界类型为wall,所以boundary condition采用默认设置。(4)读入profile文

15、件利用file profile菜单读入已准备好的profile文件。(5)激活动网格选项如下图所示.勾选smoothing、layering、remeshing选项。 各选项的参数设置分别如下图所示。 (6)定义运动区域定义中间刚体壁面为rigid body,选择运动profile为读入的profile文件movevelocity,设置meshing options中的cell height为1mm。该参数用于网格的分裂与合并。当网格高度大于1。4时进行分裂,小于0。2时合并。预览zone的运动与网格运动。注意在预览网格运动之前保存case文件。(7)定义其它选项如动画、节点物理量监测等。(8

16、)总结对于类似本例的纯外流场问题,通过都不利用动网格进行计算。主要原因在于:(1)网格发生运动后的质量不好,通常都会低于原始网格质量.(2)动网格计算开销比较大。因为每次网格运动时要计算网格节点的位置.要例所示的问题,一般使用相对运动的原理:刚体不动,运动的是流动介质.然而在一些特殊的场合(比如火箭发射后的整流罩分离等)则必须使用到动网格。 让网格动起来(4)动网格udf宏 虽然瞬态profile文件可以在一定程度上定义网格运动,然而其存在着一些缺陷.最主要的一些缺陷存在于以下一些方面:(1)profile无法精确的定义连续的运动。其使用离散的点值进行插值。如果想获得较为精确的运动定义,势必要

17、定义很多点。(2)一些情况下无法使用profile。比如稳态动网格。在fluent中定义网格运动,更多的是采用udf宏。fluent中与动网格有关的udf宏一共有5个,其中四个用于常规的网格运动定义,一个用于6dof模型.这些宏分别为:define_cg_motion、define_dynamic_zone_property、define_geom、define_grid_motion、define_sdof_properties注意:动网格宏只能为编译型udf。1、define_cg_motion最常用的运动网格宏。用户可以使用该宏定义每一时间步上的线速度或角速度来指定fluent中某一特定

18、区域的运动。define_cg_motion(name,de,vel,omega,time,dtime)参数说明:name:udf的名字。体现在fluent中表现为可选择的函数列表。dynamic_thread *dt:存储了用户所指定的动网格属性和结构指针.real vel:线速度.vel0为x方向速度,vel1为y方向速度,vel2为z方向速度real omega:角速度.与线速度定义相同。real time:当前时间。real dtime:时间步长.函数返回值为:void从函数的参数类型,配合c语言的参数调用方式可知,vel,omega为数值类型,属于传入类型。因此只需在函数体中显式定义

19、vel与omega即可将速度传入fluent求解器.time与dtime是用于定义速度的。详细实例可参看fluent udf文档p182.2、define_dynamic_zone_property该宏能用于以下一些场合:(1)在incylinder应用中定义旋转中心。(2)定义变化的网格层高度。第一种用法:define_dynamic_zone_property(name,dt,swirl_center)参数说明:name:udf名。dynamic_thread *t:指向存储动网格属性结构的指针。若没有动态区域位于当前计算的旋转中心,则fluent内部将该参数设置为null。real sw

20、irl_center:swirl_center为一个具有3个元素的数值,表示旋转中心的x,y,z坐标。返回值为:void。具体实例可参看udf手册p183。第二种用法:在使用动态层方法时定义变化的网格高度。参数与第一种用法略有不同。define_dynamic_zone_peoperty(name,dt,height)参数说明:name: udf名dynamic_thread dt:指向存储动网格属性结构的指针real *height: 一个实数指针,指向动态层高度为时间或crank角的函数。返回值:void具体实例参看fluent udf手册p1853、define_geom用户可以使用此宏

21、定义变化区域的几何。默认情况下,ansys fluent提供了机制用于定义节点沿平面或柱面运动.当ansys fluent更新了变形区域上的节点时(例如通过弹簧光顺或局部面重构之后),会通过调用define_geom宏重新定位节点。请注意该宏只能作为编译型udf使用。函数说明:define_geom(name,d,dt,position)参数说明:name:udf名domain *d:指向计算域的指针dynamic_thread dt:指向存储用户指定的动网格参数的指针real *position:指向存储位置信息的数组。此函数没有返回值。详细实例可参阅fluent udf手册p187.4、d

22、efine_grid_motion默认情况下,ansys fluent通过使用固体运动方程来更新动态区域的节点位置。这意味着动态区域的节点之间没有相对运动.但是如果用户需要独立的控制每一个节点的运动的话,则可以通过使用define_grid_motion宏来实现.例如网格运动udf可以更新由于流固耦合所导致的弯曲形成的节点坐标。此udf宏只能用于编译型。函数说明:define_grid_motion(name,d,dt,time,dtime)参数说明:name:udf名domain *d:计算域指针dynamic_thread dt:指向存储了动网格参数的结构的指针real time:当前时间

23、real dtime:时间步返回类型:void。具体实例可参阅fluent udf手册p188让网格动起来(5)配置udf编译环境 fluent udf中关于动网格的define宏均要求为编译型。fluent的udf运行环境有两种:解释型与编译型.虽然两种方式都是采用编译,但是编译方式及编译后获得的结果是不同的.编译型udf需要通过complied进行编译,编译后得到相应的dll文件。而解释型udf则是通过interprete进行加载,不会生成dll文件。据我的直觉,编译型udf可能利用了钩子函数的技术。一、编译型udf与解释型udf的差异(翻译自udf手册)1、解释型udf一个精简的平台都能

24、被作为编译型udf使用不需要c编译器(利用fluent自身的编译器)比编译型udf反应慢在方法方面受到较多的限制无法被链接到编译系统或其它库只能使用预定义宏访问存储于ansys fluent中的数据2、编译型udf比解释型udf反应迅速没有诸多c语法限制能够使用其它语言编写的函数当具有一些解释型udf不能处理的功能时,无法作为解释型udf使用3、选取原则对于小型的、简单的功能,使用解释型udf复杂功能使用编译型udf。(如具有较大的cpu开销、需要访问公共库)二、配置udf编译环境对于编译型udf,在fluent中加载时,需要调用c编译器将其编译成dll文件。这里的c编译器虽说理论上是没有任何

25、限制的,但是在windows环境下还是推荐使用microsoft visual c+,在linux环境下推荐使用gcc。我们这里只说windows环境下编译环境的配置问题。visual c+最高版本是6。0,再往后就是microsoft visual studio7。0、8。0、9.0、10.0。其中7.0对应microsoft visual studio2003,8.0对应2005,9。0对应2008,10.0对应2010.在一些老版的fluent中,通常需要配置环境变量。配置环境变量的方法,网络上很多,可以搜索。这里讲的是通过修改udf。bat文件来配置编译环境。在fluent 12.0之

26、后的版本中,可以通过修改udf.bat文件的方式进行编译环境配置.该文件位于xxansys incv140fluentntbinwin64目录下。本人安装的fluent是64bit的,版本为14。0。不同版本的fluent,该文件所处的位置可能不同。大家可以利用windows的文件搜索功能寻找该文件。注意若是安装了icepak,则会有两个udf.bat文件,一定要注意我们只针对fluent目录下的该文件.我们用记事本打开此文件,由于本机上安装的是microsoft visual studio 2010,因此只需要关注图中橙色线框中的部分.现在来分析橙色框中的语句。有过dos经验的人可能嫌我罗嗦

27、,不过我还是要说一下。因为现在有dos经验的人越来越少了。(1)第8行:echo是dos中助于在屏幕上写出一段文本。这与c语言中的printf,c#中的console。writeline,java中的system.print的功能是一样的,只是在屏幕上打出后面一段文字,我们可以忽略了。(2)第10行:设定msvc_default的值。其实是一个赋值语句。容易理解。一会儿需要动它。(3)第11行:if exist是判断,判断后面的vcvarsall。bat文件是否存在,若存在,则设置变量msvc的值。(4)第12行:判断msvc是否为空,若不为空,则进入msvc_env100标记行。找到该标记行

28、,其内容位于8689行。该标记行的内容为:(1)设定msvc_version为100(2)调用vcvarsall.bat文件,利用amd64,因为我安装的fluent版本是64bit,若32bit版本会有所不同。(5)跳转到ms_c_end行,该行是一个结束标记行。 看起来复杂,其实人们要做的工作很少。用户所要做的仅仅是修改第10行的内容。修改microsoft visual studio的安装路径.若vc是全默认安装,则什么都不需修改,否则改为正确的路径。如本机的microsoft studio安装在d:program files目录下,只需将第10行修改为:set msvc_default

29、=d:program filesmicrosoft visual studio 10.0就可以了。剩下要做的工作是:在fluent启动面板中勾选environment标签页下的setup compilation environment for udf选项。该选项默认是选中的,且不同的版本该选项所处的位置可能有所不同。 三、总结配置12.0以上fluent udf编译环境,需要进行的工作:(1)找到fluent安装目录下的udf。bat文件(2)打开udf.bat文件,修改对应本机安装的microsoft visual studio版本的路径ok了!这种方式配置udf编译环境不需要考虑计算机的操

30、作系统。让网格动起来(6)动网格参数图解 fluent的动网格设置,主要是通过dynamic mesh面板进行设置。动网格面板如下图所示.主要包括两部分内容:(1)mesh methods (2) dynamic mesh zones。另外还包括网格域运动预览及网格运动预览。整个动网格面板通过勾选dynamic mesh选项而激活。 1、mesh methods(网格更新方法)该部分主要用于网格或网格域在运动过程中,设置计算域中网格节点位置更新方法.fluent中有三种主要网格更新方法:(1)网格光顺方法(2)动态层方法(3)网格重构。对于3d模型,还包括incylinder、sixdof、i

31、mplicit update三种选项。其中incyliner用于发动机气缸模拟,six-dof主要用于流体作用于刚体,预测刚体运动。implicit update用于设定网格更新方式。默认采用显式方式,勾选此选项可设定网格以隐式方式更新.2、动态网格域 用于定义网格运动的区域及运动类型。fluent中网格运动类型主要有:静止、刚体运动、变形区域、用户自定义域、耦合域。静止域在网格运动过程中,区域内节点位置保持不变。虽然说默认情况下不设定区域运动,则该区域为静止,但是一些情况下还是需要显式设定某些区域为静止域,尤其是在一些与刚体域相连的区域处理上.刚体运动域:这是fluent动网格中最常见的运动

32、类型。通过规定刚体的速度或位移来控制运动。变形域:由于边界运动导致节点变形。变形域通常与刚体域是相连的。自定义域:用户可以使用udf定义自己需要的域耦合域:节点位移由耦合求解器计算,在流固耦合计算中,耦合面上通常设定为耦合域类型.让网格动起来(7)网格光顺 fluent中的网格光顺(smoothing)主要采用两种方法:弹簧光顺与扩散光顺。其中弹簧光顺包含有:弹簧光顺、边界层光顺、拉普拉斯光顺。扩散光顺分为:基于壁面距离的扩散光顺与基于单元体积的扩散光顺.一、弹簧/拉普拉斯/边界层光顺1、弹簧光顺需要设置的参数主要有四个参数需要设置:spring constant factor(弹簧常数因子)

33、,boundary node relaxation(边界节点松弛),convergence tolerance(收敛精度),number of iterations(迭代次数)。如图中橙色框选部分. 2、各参数作用弹簧常数因子:取值范围0,1。可以通过该值来调整弹簧刚度的大小。该值为0表示弹簧间没有阻尼,边界运动会影响到更多的内部节点。该参数的默认值为1.在实际应用中,若发现运动边界附近网格堆积严重,可适当调小此参数,将位移扩散出去。边界节点松弛:网格位置更新时使用的参数.取值范围0,1。0表示没有进行网格节点保持不变,1表示不使用松弛处理。该参数默认为1.调整该参数可以控制每次网格更新的节点

34、位置。通常使用默认值即可。迭代精度:网格节点位移值是通过求解平衡方程得到的。本参数即控制方程的求解精度.一般保持默认值.迭代次数:与迭代精度作用相同。用于平衡方程的求解控制。迭代方程如下。通常该参数保持默认即可。 3、弹簧光顺方法的适应性(译自用户手册)(1)适用于任何变形或运动的单元或面域。更适用于四面体/三角形网格(2)在非四面体/三角形网格域中,建议在以下一些情况下使用弹簧光顺方法:(a)边界运动在某一方向上具有明显优势(b)运动主要沿运动边界的法向方向.其它的非四边形/非四面体网格域(尤其是多面体网格域),建议使用扩散光顺方法.注意:默认情况下,在非四面体/四边形网格上,弹簧光顺方法是

35、关闭的。用户可以使用tui命令激活:define dynamicmesh controls smoothingparamters springon-all-shapes?二、扩散光顺1、扩散光顺扩散光顺是通过求解扩散方程来获得网格节点的位移的。 只有一个参数需要设置:扩散参数。扩散系数是通过扩散参数得到的。如下两公式求得扩散系数。 与,式中的d为壁面正则距离,v为正则体积。用户可以通过tui命令设置迭代次数与收敛精度。通常很少进行设置.define dynamicmesh controls smoothing-parameters maxiterdefine dynamic-mesh cont

36、rols smoothingparameters relative-convergence-tolerance2、基于壁面距离的网格扩散光顺基于壁面距离的扩散光顺允许用户将边界网格运动扩散至内部节点的规律定义为壁面距离的函数。减少远离运动边界的扩散能够使这些区域吸收更多的网格运动,同时更好的保持运动壁面附近的网格质量。用户可以通过调整diffusion parameter来控制网格扩散,该参数的取值范围0,2。该参数默认为0,意味着扩散参数为1,也即整个计算域采用相同程度的扩散。扩散参数越大,则更多的保持近壁面网格,远离运动边界的位置将吸收更多的网格运动。对于边界旋转运动,通常将扩散参数设置为

37、1。5默认情况下,fluent使用标准壁面距离。该方法使用最近的壁面边界进行正则化。请注意此方法是不包括其它边界类型(如inlet,outlet,symmetry,周期边界等),只使用wall壁面边界。用户可以使用”generalized“壁面距离,该方法使用一切未声明为变形的边界,而不管边界的类型。两种方法均使用所有变形网格区域中发现的最大距离进行正则化.用户可以使用tui命令设置fluent使用广义边界:definedynamic-meshcontrolssmoothing-parametersboundarydistancemethod3、基于单元体积的网格扩散光顺允许用户将边界运动扩散

38、至内部区域定义为单元尺寸的函数。在大网格上减小扩散助于使这些网格吸收更多的网格变形,能更好的保持小体积单元的网格质量。与基于壁面距离的网格扩散相同,用户也可通过调整扩散参数来控制扩散系数。默认扩散参数为0表示采用统一的扩散。更大的扩散参数将会使更大的体积的网格吸收更多的变形。扩散参数取值范围:0,24、扩散光顺方法的适应性能够应用于任何类型的运动或变形网格。扩散光顺方法比弹簧光顺计算开销要大(隐式求解扩散方程.而弹簧光顺是显式计算节点位移),但是能够得到较好的网格质量(特别是对于非四面体/非三角形网格及多面体网格)。更适合于平移运动。扩散光顺方法与边界层光顺方法及面区域重构方法不兼容。让网格动

39、起来(8)动态层方法 (201201-27 20:28:47)转载标签: 杂谈分类: fluent技巧动态层方法(dynamic layering)也许是fluent动网格中最容易理解与设置的方法了。动态层方法主要用于棱柱网格区域(如六面体网格、三棱柱网格等)或四边形网格(2d几何)中,用户可以使用动态层方法增加或去除与运动边界相邻的单元网格层数。在ansys fluent中,允许用户为每一个运动边界指定一个理想高度作为网格层增加或去除的标准.ansys fluent中的动态层方法一共有两种:基于高度的动态层方法与基于比率的动态层方法。两种方法需要设定的参数都是相同的,不同的是,网格分裂或收缩

40、后的网格高度有差异。默认情况下使用基于高度的动态层方法。1、参数设置动态层方法需要设置的参数只有两个:分裂因子与收缩因子。如图所示。其中split factor为分裂因子,collapse factor为收缩因子。2、分裂与收缩的判定假设用户设定的理想网格高度为hideal,这通常为变形域与运动域相交的节点在变形域上的网格高度。有点拗口呵。hideal参数是在运动域中设定的cell height。记分裂因子为alpha,收缩因子为beta。当网格被拉伸时,当hmin (1+alpha)hideal时,网格进行分裂。式中hmin为第一层网格高度。若为基于高度的动态层方法,分裂后一层网格高度为hi

41、deal,另一层网格高度为hhideal。若为基于比率的动态层方法,则新生的网格高度为halpha。当网格压缩时,当hminbeta * hideal时,网格进行合并.两层网格合并为一层.分裂因子与收缩因子的取值范围均为0,13、动态层方法的适应性(1)与运动面域相邻的风格必须是楔形或六面体(2d中四边形),尽管网格域中可能包含有混合网格。(2)网格层必须完全被单边面域所包围,除非使用了滑移交界面。(3)若边界面区域是双侧壁面,则用户必须分割壁面,并使用滑移交界面。(4)动态层方法无法与具有悬挂节点自适应方法联合使用。让网格动起来(9)弹簧光顺方法实例 上次讲到,光顺方法计算网格节点位移并不是

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

43、ne_cg_motion(rotationvel , dt , vel , omega , time , dtime) omega2 = 1;omega2表示z方向的角速度 。本例中以恒定的角速度旋转。将内部四条边定义为rigid body。并把赋予运动速度。 3、动网格参数勾选dynamic mesh选项,激活动网格。本例只考虑网格光顺,因此只勾选smoothing。(说明:通常动网格应用中不会只使用一种网格更新方法,此处只是考虑光顺,所以才会这样。正常情况下本例应当使用到网格重构)。点击setting按键进行smoothing设置面板 。如右下图所示。 采用弹簧光顺需要设置的参数一共有四个

44、:弹簧常数因子、边界节点松弛、收敛精度及迭代次数。通常需要设置的参数为弹簧常数因子及边界节点松弛,其它两个参数采用默认即可。(1)弹簧常数因子:该参数取值范围0,1,取值越大表示阻尼越大,也表示边界运动对内部网格的影响越小。(2)边界节点松弛:取值范围0,1,1表示无松弛,0表示禁止节点位移.这里先将两参数取中间值0.5。 3、其它设置创建运动区域。设置中间四条边为rigid body,设置运动udf(注意udf必须为编译型)。如下图所示。 4、预览网格运动(1)观察0。5s后的网格情况 可以看到,四角位置网格已经扭曲得很厉害了。其它参数有兴趣的同学可以自己尝试。让网格动起来(10)-动态层实

45、例 (20120130 11:13:37)转载标签: 杂谈分类: fluent技巧与光顺方法类似,动态层方法同样不是以网格质量作为网格更新判据的。动态层方法原理很简单,且非常适合于结构网格在某一方向上具有主导运动的情况下.本例即是这么一种情况。1、问题描述如下图所示,计算域空间尺寸160mmx50mm,一个长方形固体块在大的空间沿x轴匀速运动,速度0.05m/s,运动时间2s,可计算出运动位移0.1m.注意位移不能使边界重叠,否则计算会产生错误以致退出。 2、动网格解决方案若使用四边形网格,由于本例中网格运动具有强烈的方向性,满足动态层方法的应用需求.若使用三角形网格,可使用动态层方法配合网格重构.然而,单纯的使用动态层方法是有诸多限制的,若不对本例中的几何进行处理,是不满足动态层应用要求的。主要问题在于:动态层方法要求运动边界为单侧边界,则同一个域中不能既拉伸又压缩。本例显然不满足单一的网格运动,因为固体的运动前方网格被压缩,而后方网格被拉伸。因此可将几何进行切割. 如图所示,将计算域如此切割,分解为四个计算域.如何在icem cfd中对计算域进行处理,以后再说.也可以将区域切割后分别划分网格。边界类型:1,2,7,8:interface对类型,且为变形域,1、2伸长,7、8缩短。3,4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论