版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
动网格让网格动起来〔1〕—闲谈动网格在固体有限元计算中,网格运动实非什么稀奇事儿。而且在绝多数固体计算的根本物理量是网格的节点位移,所以,固体计算中,网格节点运动是对的,没有运动反而不正常了。也可以这么说:正因为计算域部节点间的相对运动,才导致了应力的产生。流体计算与固体完全不同。其根源在于它们使用的网格类型不同。当前固体有限元计算采用的是拉格朗日网格,而流体计算则大多数采用的欧拉网格。如果说把拉格朗日网格中的节点点看作是真实世界的物质原子的话,则欧拉网格的节点则好比是真实世界中的一个个传感器,它们总是呆在一样的位置,真实的记录着各自位置上的物理量。正常情况下,欧拉网格系统是这样的:计算域和节点保持位置不变,发生变化的是物理量,网格节点就像一个个布置在计算域中的传感器,记录该位置上的物理量。这其实是由流体力学研究方法所决定的。宏观与微观的差异决定了固体力学计算采用拉格朗日网格,流体计算采用欧拉网格。关于这局部的详细讲解,可以参阅任何一本计算流体动力学书籍。世界是公平的。有利必有弊。朗格朗日网格适合计算节点位移,然而对于过大的网格变形却难以处理。欧拉网格生来可以处理大变形〔因为节点不动〕,然而对于对于节点运动的处理,则是其直接软肋。然而很不幸的是,现实生活中有太多网格边界运动的实例。如汽车发动机中的气缸运动、阀门开启与关闭、机翼的运动、飞机投弹等等等等举不胜举。计算流体动力学计算的根本物理量通常为:速度、温度、压力、组分。并不计算网格节点位移。因此要让网格产生运动,通常给节点施加的物理约束是速度。CFD中的动网格大体分为两类:〔1〕显式规定的网格节点速度。配合瞬态时间,即可很方便的得出位移。当然一些求解器〔如FLUENT〕也支持稳态动网格,这时候可以直接指定节点位移。〔2〕网格节点速度是通过求解得到的。如6DOF模型根本上都属于此类。用户将力换算成加速度,然后将其积分成速度。对于第一类动网格问题,在fluent常可以使用profile与UDF进展网格设置,通过规定节点或区域的速度、角速度或位移等方式来显式确定网格的运动,通常大局部的动网格问题都归于此类。而对于第二类问题,通常涉及到力的计算,力在流体常是对压力进展积分而来。将力转换为速度或位移,一般涉及到加速度、转动惯量等物理量的计算。在fluent中,可以使用6DOF模型进展处理,在CF*中,可以使用刚体模型〔13.0以上版本才有〕。在FLUENT中,动网格涉及的容包括:〔1〕运动的定义。主要是PROFILE文件与UDF中的动网格宏。〔2〕网格更新。FLUENT中关于网格更新方法有三种:网格光顺、动态层、网格重构。需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用围。动网格的最在挑战来自于网格更新后的质量,防止负体积是动网风格试的主要目标。在防止负网格的同时,努力提高运动更新后的网格质量。让网格动起来〔2〕—PROFILE文件这里要说的PROFILE文件,只针对利用于网格运动定义之用的瞬态profile文件。其它类型的profile文件,可参阅FLUENT用户文档,里头有详细的描述。在ANSYSFLUENT中,有两种方式用于指定瞬态网格区域及边界条件:〔1〕与标准profile格式一样的瞬态profile文件〔2〕表格格式的瞬态profile文件。对于这两种方式,网格域及边界条件的变化均只与时间有关。然而如果使用了in-cylinder模型,则用户可以使用crank角代替时间变量。1、标准瞬态profile文件一个标准瞬态profile文件格式如下:((profile-nametransientnperiodic")(field_name_1a1a2a3…an)(field_name_2b1b2b3…bn)...(field_name_rr1r2r3…rn))注意:〔1〕profile-name:profile名,必须全部为小写字母,少于64个字符。〔2〕transient为保存关键字,不可随便更改。〔3〕n表示每一个场变量所包含的变量个数。〔4〕periodic"用于标识是否使用周期,1为使用时间周期,0表示不使用时间周期。〔5〕通常field_name_1为time,后面的变量值为升序排列。〔6〕所有的值,包括坐标值,都必须使用SI单位制。fluent读入profile文件时不进展单位转换。一个实际的例子:((sampleprofiletransient30)(time123)(u102030))解读:〔1〕profile名为sampleprofile,读入该profile文件后,适宜的地方出现的变量名为sampleprofile。〔2〕在3个时间点上定义了值,分别为1s,2s,3s。其中1s时的*方向速度值为10m/s,2s时刻对应的速度值为20m/s,3s时刻对应的速度值为30m/s。u,v,w是表示*,y,z三方向的速度,也可以使用v_*,v_y与v_z,旋转速度使用omega_*,omega_y,omega_z变量名。一个使用crankangle替代time的例子:((e*ampletransient31)(angle0180360)(temperature300500300))2、表格瞬态profile文件表格格式与标准格式有很大的差异。表格格式如下:profile_namen_fieldn_dataperidoic"field_1field_2field_3…field_4v-1-1v-2-1………v-n_field_1v-1-2v-2-2………v-n_field-2...v-1-n_datav-2-n_data………v-n_field-n_data说明:与标准格式类似,profile_name为profile名,表达在fluent中为运动变量名。格式要求与标准格式一致:小写,少于64个字符。field_1通常为time,表示时间。前方接着的是各个变量名。v-1-1表示field_1的第一个值,依此类推,v-1-2表示第二个值。按升序排列。peridoic"表示是否采用时间周期,1表示采用,0表示不采用。一个例子:sampleprofile230timeu110220330解读:第一行:sampleprofile表示profile名,fluent读入此profile后,将会在使用profile的地方显示该profile名。2表示两个场变量(time与u)或者说是表的列数,3表示一共有3个数据点或者说表有三行。0表示不使用周期。第二行:定义场变量。一共是两个场变量:time与u,通常time放在第一个。第三行到最后一行:第一个值表示时间值,第二个值表示u的值。定义了1s时的*方向速度值为10m/s,2s时刻对应的速度值为20m/s,3s时刻对应的速度值为30m/s。假设使用周期,则必须定义一个周期的时间物理量的变化。简单来说,就是最后一行的物理量的值与第一行物理量的值一样。如下一个例子:periodprofile241timeu010120230310也可以使用crankangle代替时间进展变量定义:e*aple231angletemperature0300180500360300请注意:使用列表形式的profile,只能使用TUI命令读入到fluent中:file>read-transient-table让网格动起来〔3〕—实例1:Profile定义运动 本次实例采用的场景来自于流体中高速飞行的物体。如子弹、火箭、导弹等。这里只是为了说明profile在动网格运动定义中的应用,因此为了计算方便不考虑高速问题。问题描述如下列图所示:如下图,1为运动刚体,2为计算域。由于不考虑也没方法考虑刚体的变形,因此在构建面域的时候,将1中的局部通过布尔运算去除。计算域总长度为300mm,其中固体运动最大位移为300-40-30-6mm=224mm。为了防止固体边界与计算域边界发生重叠,我们使运动最大距离为200mm。运动速度v=0.4t,这样可能计算运动完200mm需要的时间为1s。采取5个时间数据点分别为:0,0.25,0.5,0.75,1s,相对应的速度为:0,0.1,0.2,0.3,0.4m/s。profile文件如下:((moveVelocitytransient50)(time00.250.50.751)(v_*00.10.20.30.4))〔1〕将计算域离散为网格。由于三角形网格非常适合于2D动网格,因此本例使用三角形网格。假设要使用四边形网格,则需要进展滑移面处理。详细的说明将留待以后网格更新的时候进展。同样的,也不进展边界层处理。简化问题描述,设定四周为wall壁面,中间区域为rigidwall,在动网格中进展设定。全局网格尺寸为2mm,运动边界网格尺寸1mm,网格单元总数19671,节点总数9832。〔2〕启动fluent,读入msh文件选择2D求解器,勾选双精度选项。检查单位,确保使用的单位为mm。选用瞬态求解器。general中的其它选项采取默认。如下列图所示。〔3〕选用标准k-e湍流模型,材料使用水。设定cellzonecondition将默认域介质设定为water。由于本例使用全封闭计算域,所有边界类型为wall,所以boundarycondition采用默认设置。〔4〕读入profile文件利用file>profile…菜单读入已准备好的profile文件。〔5〕激活动网格选项如下列图所示。勾选smoothing、layering、remeshing选项。各选项的参数设置分别如下列图所示。〔6〕定义运动区域定义中间刚体壁面为rigidbody,选择运动profile为读入的profile文件movevelocity,设置meshingoptions中的cellheight为1mm。该参数用于网格的分裂与合并。当网格高度大于1.4时进展分裂,小于0.2时合并。预览zone的运动与网格运动。注意在预览网格运动之前保存case文件。〔7〕定义其它选项如动画、节点物理量监测等。〔8〕总结对于类似本例的纯外流场问题,通过都不利用动网格进展计算。主要原因在于:〔1〕网格发生运动后的质量不好,通常都会低于原始网格质量。〔2〕动网格计算开销比拟大。因为每次网格运动时要计算网格节点的位置。要例所示的问题,一般使用相对运动的原理:刚体不动,运动的是流动介质。然而在一些特殊的场合〔比方火箭发射后的整流罩别离等〕则必须使用到动网格。让网格动起来〔4〕—动网格UDF宏虽然瞬态PROFILE文件可以在一定程度上定义网格运动,然而其存在着一些缺陷。最主要的一些缺陷存在于以下一些方面:〔1〕PROFILE无法准确的定义连续的运动。其使用离散的点值进展插值。如果想获得较为准确的运动定义,势必要定义很多点。〔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中*一特定区域的运动。DEFINE_CG_MOTION(name,de,vel,omega,time,dtime)参数说明:name:UDF的名字。表达在fluent中表现为可选择的函数列表。Dynamic_Thread*dt:存储了用户所指定的动网格属性和构造指针。realvel[]:线速度。vel[0]为*方向速度,vel[1]为y方向速度,vel[2]为z方向速度realomega[]:角速度。与线速度定义一样。realtime:当前时间。realdtime:时间步长。函数返回值为:void从函数的参数类型,配合c语言的参数调用方式可知,vel,omega为数值类型,属于传入类型。因此只需在函数体中显式定义vel与omega即可将速度传入fluent求解器。time与dtime是用于定义速度的。详细实例可参看fluentudf文档p182。2、DEFINE_DYNAMIC_ZONE_PROPERTY该宏能用于以下一些场合:〔1〕在in-cylinder应用中定义旋转中心。〔2〕定义变化的网格层高度。第一种用法:DEFINE_DYNAMIC_ZONE_PROPERTY(name,dt,swirl_center)参数说明:name:UDF名。Dynamic_Thread*t:指向存储动网格属性构造的指针。假设没有动态区域位于当前计算的旋转中心,则fluent部将该参数设置为NULL.real*swirl_center:swirl_center为一个具有3个元素的数值,表示旋转中心的*,y,z坐标。返回值为:void。具体实例可参看udf手册p183。第二种用法:在使用动态层方法时定义变化的网格高度。参数与第一种用法略有不同。DEFINE_DYNAMIC_ZONE_PEOPERTY(name,dt,height)参数说明:name:UDF名Dynamic_Threaddt:指向存储动网格属性构造的指针real*height:一个实数指针,指向动态层高度为时间或crank角的函数。返回值:void具体实例参看fluentudf手册P1853、DEFINE_GEOM用户可以使用此宏定义变化区域的几何。默认情况下,ansysfluent提供了机制用于定义节点沿平面或柱面运动。当ansysfluent更新了变形区域上的节点时〔例如通过弹簧光顺或局部面重构之后〕,会通过调用DEFINE_GEOM宏重新定位节点。请注意该宏只能作为编译型UDF使用。函数说明:DEFINE_GEOM(name,d,dt,position)参数说明:name:UDF名Domain*d:指向计算域的指针Dynamic_Thread*dt:指向存储用户指定的动网格参数的指针real*position:指向存储位置信息的数组。此函数没有返回值。详细实例可参阅FLUENTUDF手册P187.4、DEFINE_GRID_MOTION默认情况下,ANSYSFLUENT通过使用固体运动方程来更新动态区域的节点位置。这意味着动态区域的节点之间没有相对运动。但是如果用户需要独立的控制每一个节点的运动的话,则可以通过使用DEFINE_GRID_MOTION宏来实现。例如网格运动UDF可以更新由于流固耦合所导致的弯曲形成的节点坐标。此UDF宏只能用于编译型。函数说明:DEFINE_GRID_MOTION(name,d,dt,time,dtime)参数说明:name:UDF名Domain*d:计算域指针Dynamic_Thread*dt:指向存储了动网格参数的构造的指针realtime:当前时间realdtime:时间步返回类型:void。具体实例可参阅FLUENTUDF手册P188让网格动起来〔5〕—配置UDF编译环境 FLUENTUDF中关于动网格的DEFINE宏均要求为编译型。FLUENT的UDF运行环境有两种:解释型与编译型。虽然两种方式都是采用编译,但是编译方式及编译后获得的结果是不同的。编译型UDF需要通过plied进展编译,编译后得到相应的dll文件。而解释型UDF则是通过Interprete进展加载,不会生成dll文件。据我的直觉,编译型UDF可能利用了钩子函数的技术。一、编译型UDF与解释型UDF的差异〔翻译自UDF手册〕1、解释型UDF一个精简的平台都能被作为编译型UDF使用不需要C编译器〔利用FLUENT自身的编译器〕比编译型UDF反响慢在方法方面受到较多的限制无法被到编译系统或其它库只能使用预定义宏访问存储于ansysfluent中的数据2、编译型UDF比解释型UDF反响迅速没有诸多C语法限制能够使用其它语言编写的函数当具有一些解释型UDF不能处理的功能时,无法作为解释型UDF使用3、选取原则对于小型的、简单的功能,使用解释型UDF复杂功能使用编译型UDF。〔如具有较大的CPU开销、需要访问公共库〕二、配置UDF编译环境对于编译型UDF,在fluent中加载时,需要调用C编译器将其编译成DLL文件。这里的C编译器虽说理论上是没有任何限制的,但是在windows环境下还是推荐使用microsoftvisualc++,在linu*环境下推荐使用GCC。我们这里只说windows环境下编译环境的配置问题。visualc++最高版本是6.0,再往后就是microsoftvisualstudio7.0、8.0、9.0、10.0。其中7.0对应microsoftvisualstudio2003,8.0对应2005,9.0对应2008,10.0对应2010。在一些老版的fluent中,通常需要配置环境变量。配置环境变量的方法,网络上很多,可以搜索。这里讲的是通过修改udf.bat文件来配置编译环境。在fluent12.0之后的版本中,可以通过修改udf.bat文件的方式进展编译环境配置。该文件位于**\ANSYSInc\v140\fluent\ntbin\win64目录下。本人安装的fluent是64bit的,版本为14.0。不同版本的fluent,该文件所处的位置可能不同。大家可以利用windows的文件搜索功能寻找该文件。注意假设是安装了icepak,则会有两个udf.bat文件,一定要注意我们只针对fluent目录下的该文件。我们用记事本翻开此文件,由于本机上安装的是microsoftvisualstudio2010,因此只需要关注图中橙色线框中的局部。现在来分析橙色框中的语句。有过DOS经历的人可能嫌我罗嗦,不过我还是要说一下。因为现在有DOS经历的人越来越少了。〔1〕第8行:echo是dos中助于在屏幕上写出一段文本。这与c语言中的printf,c*中的Console.WriteLine,JAVA中的System.Print的功能是一样的,只是在屏幕上打出后面一段文字,我们可以忽略了。〔2〕第10行:设定MSVC_DEFAULT的值。其实是一个赋值语句。容易理解。一会儿需要动它。〔3〕第11行:ife*ist是判断,判断后面的vcvarsall.bat文件是否存在,假设存在,则设置变量MSVC的值。〔4〕第12行:判断MSVC是否为空,假设不为空,则进入msvc_env100标记行。找到该标记行,其容位于86~89行。该标记行的容为:〔1〕设定msvc_version为100〔2〕调用vcvarsall.bat文件,利用amd64,因为我安装的fluent版本是64bit,假设32bit版本会有所不同。〔5〕跳转到ms_c_end行,该行是一个完毕标记行。看起来复杂,其实人们要做的工作很少。用户所要做的仅仅是修改第10行的容。修改microsoftvisualstudio的安装路径。假设vc是全默认安装,则什么都不需修改,否则改为正确的路径。如本机的microsoftstudio安装在d:\programfiles目录下,只需将第10行修改为:setMSVC_DEFAULT=D:\ProgramFiles\MicrosoftVisualStudio10.0就可以了。剩下要做的工作是:在fluent启动面板中勾选Environment标签页下的setuppilationEnvironmentforUDF选项。该选项默认是选中的,且不同的版本该选项所处的位置可能有所不同。三、总结配置12.0以上fluentUDF编译环境,需要进展的工作:〔1〕找到fluent安装目录下的udf.bat文件〔2〕翻开udf.bat文件,修改对应本机安装的microsoftvisualstudio版本的路径OK了!这种方式配置UDF编译环境不需要考虑计算机的操作系统。让网格动起来〔6〕—动网格参数图解 Fluent的动网格设置,主要是通过dynamicmesh面板进展设置。动网格面板如下列图所示。主要包括两局部容:〔1〕MeshMethods〔2〕DynamicMeshZones。另外还包括网格域运动预览及网格运动预览。整个动网格面板通过勾选DynamicMesh选项而激活。1、MeshMethods〔网格更新方法〕该局部主要用于网格或网格域在运动过程中,设置计算域中网格节点位置更新方法。fluent中有三种主要网格更新方法:〔1〕网格光顺方法〔2〕动态层方法〔3〕网格重构。对于3D模型,还包括in-cylinder、si*-dof、ImplicitUpdate三种选项。其中in-cyliner用于发动机气缸模拟,si*-dof主要用于流体作用于刚体,预测刚体运动。implicitupdate用于设定网格更新方式。默认采用显式方式,勾选此选项可设定网格以隐式方式更新。2、动态网格域用于定义网格运动的区域及运动类型。FLUENT中网格运动类型主要有:静止、刚体运动、变形区域、用户自定义域、耦合域。静止域在网格运动过程中,区域节点位置保持不变。虽然说默认情况下不设定区域运动,则该区域为静止,但是一些情况下还是需要显式设定*些区域为静止域,尤其是在一些与刚体域相连的区域处理上。刚体运动域:这是fluent动网格中最常见的运动类型。通过规定刚体的速度或位移来控制运动。变形域:由于边界运动导致节点变形。变形域通常与刚体域是相连的。自定义域:用户可以使用UDF定义自己需要的域耦合域:节点位移由耦合求解器计算,在流固耦合计算中,耦合面上通常设定为耦合域类型。让网格动起来〔7〕—网格光顺 FLUENT中的网格光顺〔smoothing〕主要采用两种方法:弹簧光顺与扩散光顺。其中弹簧光顺包含有:弹簧光顺、边界层光顺、拉普拉斯光顺。扩散光顺分为:基于壁面距离的扩散光顺与基于单元体积的扩散光顺。一、弹簧/拉普拉斯/边界层光顺1、弹簧光顺需要设置的参数主要有四个参数需要设置:SpringConstantFactor〔弹簧常数因子〕,BoundaryNodeRela*ation〔边界节点松弛〕,ConvergenceTolerance〔收敛精度〕,NumberofIterations〔迭代次数〕。如图中橙色框选局部。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>ma*-iterdefine>dynamic-mesh>controls>smoothing-parameters>relative-convergence-tolerance2、基于壁面距离的网格扩散光顺基于壁面距离的扩散光顺允许用户将边界网格运动扩散至部节点的规律定义为壁面距离的函数。减少远离运动边界的扩散能够使这些区域吸收更多的网格运动,同时更好的保持运动壁面附近的网格质量。用户可以通过调整diffusionparameter来控制网格扩散,该参数的取值围[0,2]。该参数默认为0,意味着扩散参数为1,也即整个计算域采用一样程度的扩散。扩散参数越大,则更多的保持近壁面网格,远离运动边界的位置将吸收更多的网格运动。对于边界旋转运动,通常将扩散参数设置为1.5默认情况下,fluent使用标准壁面距离。该方法使用最近的壁面边界进展正则化。请注意此方法是不包括其它边界类型〔如inlet,outlet,symmetry,周期边界等〕,只使用wall壁面边界。用户可以使用"generalized“壁面距离,该方法使用一切未声明为变形的边界,而不管边界的类型。两种方法均使用所有变形网格区域中发现的最大距离进展正则化。用户可以使用TUI命令设置fluent使用广义边界:define>dynamic-mesh>controls>smoothing-parameters>boundary-distance-method3、基于单元体积的网格扩散光顺允许用户将边界运动扩散至部区域定义为单元尺寸的函数。在大网格上减小扩散助于使这些网格吸收更多的网格变形,能更好的保持小体积单元的网格质量。与基于壁面距离的网格扩散一样,用户也可通过调整扩散参数来控制扩散系数。默认扩散参数为0表示采用统一的扩散。更大的扩散参数将会使更大的体积的网格吸收更多的变形。扩散参数取值围:[0,2]4、扩散光顺方法的适应性能够应用于任何类型的运动或变形网格。扩散光顺方法比弹簧光顺计算开销要大〔隐式求解扩散方程。而弹簧光顺是显式计算节点位移〕,但是能够得到较好的网格质量〔特别是对于非四面体/非三角形网格及多面体网格〕。更适合于平移运动。扩散光顺方法与边界层光顺方法及面区域重构方法不兼容。让网格动起来〔8〕—动态层方法 (2012-01-2720:28:47)▼标签:杂谈 分类:FLUENT技巧动态层方法〔dynamiclayering〕也许是fluent动网格中最容易理解与设置的方法了。动态层方法主要用于棱柱网格区域〔如六面体网格、三棱柱网格等〕或四边形网格〔2D几何〕中,用户可以使用动态层方法增加或去除与运动边界相邻的单元网格层数。在ANSYSFLUENT中,允许用户为每一个运动边界指定一个理想高度作为网格层增加或去除的标准。ANSYSFLUENT中的动态层方法一共有两种:基于高度的动态层方法与基于比率的动态层方法。两种方法需要设定的参数都是一样的,不同的是,网格分裂或收缩后的网格高度有差异。默认情况下使用基于高度的动态层方法。1、参数设置动态层方法需要设置的参数只有两个:分裂因子与收缩因子。如下图。其中splitfactor为分裂因子,collapsefactor为收缩因子。2、分裂与收缩的判定假设用户设定的理想网格高度为hideal,这通常为变形域与运动域相交的节点在变形域上的网格高度。有点拗口呵。hideal参数是在运动域中设定的cellheight。记分裂因子为alpha,收缩因子为beta。当网格被拉伸时,当hmin>(1+alpha)*hideal时,网格进展分裂。式中hmin为第一层网格高度。假设为基于高度的动态层方法,分裂后一层网格高度为hideal,另一层网格高度为h-hideal。假设为基于比率的动态层方法,则新生的网格高度为h*alpha。当网格压缩时,当hmin<beta*hideal时,网格进展合并。两层网格合并为一层。分裂因子与收缩因子的取值围均为[0,1]3、动态层方法的适应性〔1〕与运动面域相邻的风格必须是楔形或六面体〔2D中四边形〕,尽管网格域中可能包含有混合网格。〔2〕网格层必须完全被单边面域所包围,除非使用了滑移交界面。〔3〕假设边界面区域是双侧壁面,则用户必须分割壁面,并使用滑移交界面。〔4〕动态层方法无法与具有悬挂节点自适应方法联合使用。让网格动起来〔9〕—弹簧光顺方法实例上次讲到,光顺方法计算网格节点位移并不是依赖于网格质量。因此,仅使用光顺方法,只能处理一些小变形的情况。倘假设变形量过大,则会造成网格质量降低,轻则影响收敛,重则出现负网格,导致计算出错。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方向的角速度。本例中以恒定的角速度旋转。将部四条边定义为rigidbody。并把赋予运动速度。3、动网格参数勾选DynamicMesh选项,激活动网格。本例只考虑网格光顺,因此只勾选Smoothing。(说明:通常动网格应用中不会只使用一种网格更新方法,此处只是考虑光顺,所以才会这样。正常情况下本例应当使用到网格重构〕。点击setting…按键进展smoothing设置面板。如右下列图所示。采用弹簧光顺需要设置的参数一共有四个:弹簧常数因子、边界节点松弛、收敛精度及迭代次数。通常需要设置的参数为弹簧常数因子及边界节点松弛,其它两个参数采用默认即可。〔1〕弹簧常数因子:该参数取值围[0,1],取值越大表示阻尼越大,也表示边界运动对部网格的影响越小。〔2〕边界节点松弛:取值围[0,1],1表示无松弛,0表示制止节点位移。这里先将两参数取中间值0.5。3、其它设置创立运动区域。设置中间四条边为rigidbody,设置运动udf〔注意UDF必须为编译型〕。如下列图所示。4、预览网格运动〔1〕观察0.5s后的网格情况可以看到,四角位置网格已经扭曲得很厉害了。其它参数有兴趣的同学可以自己尝试。让网格动起来〔10〕——动态层实例 (2012-01-3011:13:37)▼标签:杂谈 分类:FLUENT技巧与光顺方法类似,动态层方法同样不是以网格质量作为网格更新判据的。动态层方法原理很简单,且非常适合于构造网格在*一方向上具有主导运动的情况下。本例即是这么一种情况。1、问题描述如下列图所示,计算域空间尺寸160mm*50mm,一个长方形固体块在大的空间沿*轴匀速运动,速度0.05m/s,运动时间2s,可计算出运动位移0.1m。注意位移不能使边界重叠,否则计算会产生错误以致退出。2、动网格解决方案假设使用四边形网格,由于本例中网格运动具有强烈的方向性,满足动态层方法的应用需求。假设使用三角形网格,可使用动态层方法配合网格重构。然而,单纯的使用动态层方法是有诸多限制的,假设不对本例中的几何进展处理,是不满足动态层应用要求的。主要问题在于:动态层方法要求运动边界为单侧边界,则同一个域中不能既拉伸又压缩。本例显然不满足单一的网格运动,因为固体的运动前方网格被压缩,而前方网格被拉伸。因此可将几何进展切割。如下图,将计算域如此切割,分解为四个计算域。如何在ICEMCFD中对计算域进展处理,以后再说。也可以将区域切割后分别划分网格。边界类型:1,2,7,8:interface对类型,且为变形域,1、2伸长,7、8缩短。3,4:wall类型,且为变形域5,6:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026电视台招聘笔试题及答案
- 2026电商海报考试题及答案
- 2026电力英文考试题及答案
- 2026电缆技能考试题及答案大全
- 在建工程安全巡查方案
- 2026年职业病防治知识考试试题及答案
- 托育机构婴幼儿午睡巡查细则
- 注浆施工浆液环保处置方案
- 临床医学诊断学单选题库及答案
- 2026年社区居民议事会管理试卷(附答案)
- 《加盟模式之ADIDAS》课件
- 《简支梁计算》课件
- GB/T 15934-2024电器附件电线组件和互连电线组件
- 仁爱科普版(2024)七年级上册英语Unit 3单元测试卷(含答案)
- 广东省揭阳市普宁市2023-2024学年八年级下学期7月期末数学试题
- DZ∕T 0334-2020 石油天然气探明储量报告编写规范(正式版)
- 2069-3-3101-002WKB产品判定准则-外发
- YS-T 3042-2021 氰化液化学分析方法 金量的测定
- JTG C10-2007 公路勘测规范
- 《中外管理思想史》课件
- 2023年四川宜宾市珙县选调(聘)机关事业单位人员笔试参考题库(共500题)答案详解版
评论
0/150
提交评论