Fluent_动网格总结
Fluent中的动网格
Fluent中的动网格动网格是目前求解计算域变化问题的常用方法。
参考Fluent帮助,可以知道动网格技术与一般流动计算设置的主要区别在于网格更新方法和更新域设置。
这里就这两方面问题的一点体会作一简单记录。
一、网格更新方法弹簧近似光滑法将任意两网格节点之间的连线理想地看成一条弹簧,并通过近似弹簧的压缩或拉伸实现网格和计算域的改变。
该方法网格拓扑不变,无需网格的插值处理,对结构化(四边形、六面体)和非结构化(三角形、四面体)网格同样适用。
但不适合于大变形情况,当计算区域变形较大时,变形后的网格质量变差,严重影响计算精度。
动态分层法在运动边界相邻处根据运动规律动态增加或减少网格层数,以此来更新变形区域的网格。
该方法适用于结构化网格,通过设置适当的分层和缩减系数,更新后的网格依然为较为均匀的结构化网格,对计算精度影响较小。
对于运动域具有多自由度和任意变形情况,该方法处理起来非常困难。
网格重生方法在整个网格更新区域内依据设定的最大和最小网格尺寸判断需要进行网格重生的网格,并依据设置的更新频率进行网格重生处理。
该方法适用于非结构化网格,能够较好的应用于任意变形的计算区域处理。
二、更新域设置更新域设置是动网格设置中的一项重要工作,最常用的设置是刚体运动域和变形域,这里针对这两种域的设置注意事项和技巧作一简单介绍。
1、域动网格一般来讲,设置为刚体运动域的区域一般为壁面类边界,通过设置固壁的运动,模拟计算域内物体的运动。
由于固壁边界有时形状较为复杂,壁面附近网格尺度与周围网格尺度存在较大差别,网格更新时变形较大。
在这种情况下,可以设置一个包含固壁运动边界的计算域,通过该计算域的整体运动模拟域内物体的运动,在有的地方将这种方法称为域动网格法。
在域动网格法中,需要设置包含运动物体的内部计算域、内部计算域界面均为刚体运动域。
如下图所示。
2、动态分层法中的分界面在应用动态分层网格更新方法时,当分层界面在计算域内部时,需要采用Split interface(这里称分界面)将运动域运动范围与固定计算域区分开来,以保证动态分层网格处理(如果运动域网格与固定域网格没有分界面,动态分层无法执行)。
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动网格简介在固体有限元计算中,网格运动实非什么稀奇事儿。
而且在绝多数固体计算的基本物理量是网格的节点位移,所以,固体计算中,网格节点运动是对的,没有运动反而不正常了。
也可以这么说:正因为计算域内部节点间的相对运动,才导致了内应力的产生。
流体计算与固体完全不同。
其根源在于它们使用的网格类型不同。
当前固体有限元计算采用的是拉格朗日网格,而流体计算则大多数采用的欧拉网格。
如果说把拉格朗日网格中的节点点看作是真实世界的物质原子的话,那么欧拉网格的节点则好比是真实世界中的一个个传感器,它们总是呆在相同的位置,真实的记录着各自位置上的物理量。
正常情况下,欧拉网格系统是这样的:计算域和节点保持位置不变,发生变化的是物理量,网格节点就像一个个布置在计算域中的传感器,记录该位置上的物理量。
这其实是由流体力学研究方法所决定的。
宏观与微观的差异决定了固体力学计算采用拉格朗日网格,流体计算采用欧拉网格。
关于这部分的详细解说,可以参阅任何一本计算流体动力学书籍。
世界是公平的。
有利必有弊。
朗格朗日网格适合计算节点位移,然而对于过大的网格变形却难以处理。
欧拉网格生来可以处理大变形(因为节点不动),然而对于对于节点运动的处理,则是其直接软肋。
然而很不幸的是,现实生活中有太多网格边界运动的实例。
如汽车发动机中的气缸运动、阀门开启与关闭、机翼的运动、飞机投弹等等等等举不胜举。
计算流体动力学计算的基本物理量通常为:速度、温度、压力、组分。
并不计算网格节点位移。
因此要让网格产生运动,通常给节点施加的物理约束是速度。
CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。
配合瞬态时间,即可很方便的得出位移。
当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定节点位移。
(2)网格节点速度是通过求解得到的。
如6DOF模型基本上都属于此类。
用户将力换算成加速度,然后将其积分成速度。
对于第一类动网格问题,在fluent中通常可以使用profile与UDF进行网格设置,通过规定节点或区域的速度、角速度或位移等方式来显式确定网格的运动,通常大部分的动网格问题都归于此类。
Fluent动网格系列篇
A:求解uds不,求解选specified flux就行了。一般来说速度
的第二类边界条件不用特别设置吧
Q:边界条件设置UDS菜单的中,编号为0的标量方程应该是自 定义的第一个标量方程还是动量方程?动量方程的flux在哪 里设置呢?如果需要求解一个自定义的标量方程,那么第二 类边界条件如何编写UDF?还有一个问题,flux给定的是对x 的偏导还是对y的偏导?
散,各位有木有碰到这种情况的?
A:VOF法比较容易发散,且引起发散的原因很多。 1.调小点时间步长、松弛因子。 2、检查求解格式 3、检查网格
4、检查边界条件
2.Fluent风扇用fan模型计算知道PQ曲线 :大家好,在fluent, 没有风扇的结构尺寸,但是厂家给了风扇的PQ曲线,想利用 fluent的Fan模型,设置了PQ曲线,但是计算的流量为0之类
到边界运动的流体力学的问题都可以解决。
咨讯: 1.FLUENT动网格系列:公转&自转
2.FLUENT动网格系列:System Coupling流固耦合
3.FLUENT动网格系列:区域运动
问答:
1.使用vof功能时,为什么经常会发散?无论是结构网格还是非
结构网格,使用vof功能时,基于压力的求解器下,很容易发
却。我在 Gambit中已经把网格划分完毕,先划十节圆柱形电
池,然后通过布尔操作把电池和风扇减去,最后划分剩下的 部分。由于电池在充放电时需要发热,所以需要 给电池加载 生热率,我以前用ANSYS可以直接添加生热率,但是不知道 Fluent该如何处理,网上有人说使用UDF,但是大约看了一下 UDF的介绍,也还不太清楚。有哪位.pdf 网格与CFD求解精度的关系,Fluent公司工程师崔凯的文章。 曾经想整理出版,但是他自己找不到原稿了,翻箱底我竟然 找到了,哈哈哈,分享给需要者。
fluent使用总结(本站推荐)
fluent使用总结(本站推荐)第一篇:fluent使用总结(本站推荐)3.1计算流体力学基础与FLUENT软件介绍 3.1.1计算流体力学基础计算流体力学(Computational Fluid Dynamics,简称CFD)是利用数值方法通过计算机求解描述流体运动的数学方程,揭示流体运动的物理规律,研究定常流体运动的空间物理特性和非定常流体运动的时空物理特征的学科[}ss}。
其基本思想可以归纳为:把原来在时间域和空间域上连续的物理量的场,如速度场和压力场,用一系列有限个离散点上的变量值的集合来代替,通过一定的原则和方式建立起关十这些离散点上场变量之间的关系的代数方程组,然后求解代数方程组获得场变量的近似值[f=}}l计算流体力学可以看作是在流动基本方程(质量守恒方程、动量守恒方程、能量守恒方程)控制下对流动的数值仿真。
通过这种数值仿真,可以得到流场内各个位置上的基本物理量(如速度、压力、温度和浓度等)的分布以及这些物理量随时间的变化规律。
还可计算出相关的其它物理量,如旋转式流体机械的转矩、水力损失和效率等。
此外,与CAD联合还可进行结构优化设计等。
过去,流体力学的研究主要有实验研究和理论分析两种方法。
实验研究主要以实验为研究手段,得到的结果真实可信,是理论分析和数值计算的基础,其重要性不容低估。
然}fu实验往往受到模型尺寸、流场扰动和测量精度等的限制,有时可能难以通过实验的方法得到理想的结果。
此外,实验往往经费投入较大、人力和物力耗费较大及周期较长;理论分析方法通常是利用简化的流动模型假设,给出所研究问题的解析解或简化方程。
然}fu随着时代的发展,这些方法已不能很好地满足复杂非线性流体运动规律的研究。
理论分析方法的优点是所得结果具有普遍适用性,各种影响因素清晰可见,是指导试验研究和验证新的数值计算方法的理论基础。
但是,它往往要求对计算对象进行抽象和简化,才有可能得出理论解。
}fU对十非线性情况,只有少数流动才能得到解析结果。
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动网格技术简介
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。
fluent被动运动6DOF总结
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宏没有返回值。
Fluent学习资料教程集锦15-Fluent_动网格
• 处理策略: – 确定网格质量足够好 (最大网格偏斜 < 0.9 – 0.95)。 – 为难以开始(hard-to-start)的问题使用 FMG初始化。
• FMG初始化适合混合平面模型。
大纲
• 介绍和模型建立方法概览 • 单参考系 (SRF)模型 • 多重域和多参考系(MRF)模型 • 混合面模型 (MPM) • 滑移网格模型 (SMM) • 动网格 (DM) 模型 • 概要 • 附录
• 为每个旋转流域 (流体边界条件), 在 Motion
Type 选项中选择 Moving
Reference Frame ,输入旋转 速度。
– SRF中除了多重域 ,其它都一样 – 静止域选上静止选项(Stationary) • 设置其它边界条件,求解器设置
MRF问题的计算方法
• 和SRF问题相同,因为一个或者多个流域的流 动梯度比较大,MRF问题也比较难解。
– 绝对速度公式 (AVF)
• 由相对速度方程得到
• 绝对速度和绝对总内
能为依赖变量
z
– 动量方程中的旋转源项
stationary frame
ro
z
r
R
rotating frame
x
CFD domain
x
axis of rotation
公式比较
• 相对速度方程:x方向上动量方程
wx t
– 定子和转子之间,不考虑动力学相互作用。
MRF模型的分界面
正交分界面
– 把相邻的流域分开的内部网格面 。
– 两边的网格必须一样。
非正交分界面
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宏没有返回值。
Fluent理论手册3—滑移网格及动网格理论
31
图 3.2.2 转子 子-定子相互 互作用
图 3.2.3 3 风机
3.2.1 滑移网 网格技术
滑移网格 格技术使用两 两个或多个 个计算区域 (如果使用独 独立区域生 生成网格,则 则需 要在 在计算开始 始前将网格文 文件进行合 合并, 如用户 户手册 6.3.15 节: 读入多 多网格文件 件) 。 每一 一个计算区域与其相邻 邻的区域间 间至少存在一 一个分界面 面。 相邻计算 算区域的分界 界面 形成 成“网格分 分界”的形式 式,相隔计 计算区域将会 会关于网格 格分界面进行 行运动。 在计算中,一个计算 算区域相对于 于另一个计 计算域沿着网格分界滑 滑动(旋转或 或平 ,图 3.2.4 及 3.2.5 为两个计算区 移) 为 区域在初始 始位置以及在 在便后一段 段时间后的先 先对 位置 置。 分界面上 上网格并不需 需要进行对 对齐,由于流 流动的非稳态 态特性,因 因此在计算中 中需 要使 使用瞬态分 分析。
34
模型中将各区域连接起来。
3.3.1 动网格更新方法
ANSYS FLUENT 中有三组网格运动方法对变形区域网格进行运动边界指定: 光顺方法(smoothing methods) 动态层(dynamic layering) 局部重构方法(local remeshing methods)
图 3.1 .1 非稳态作 作用示意图 图 在多参考 考系模型 (MRF M ) 及混合 合平面模型 型 (MR) 中, 都只适用 用于稳态问题 题, 忽略 略了瞬态作用,而滑移 移网格模型 型则不忽略瞬 瞬态作用。 模型使用 FL LUENT 求解 解器移动边 边界或目标, ,或者藉此 此调整网格。 。动 动网格模 网格 格模型用于 于边界刚性运 运动(直线 线运动或转动 动) 。例如: 活塞关 关于气缸运 运动 机翼的 的振动
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动网格----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单位制)。
15-Fluent_movingzones动网格全解
非定常的流域当放在旋转坐标系下来看时,可以认为是定常的情况 。 定常问题比较容易求解…
边界条件简单 低的计算机资源占用 易于进行后处理和分析
壁面条件必须符合下列标准:
随着流域动的壁面可以是任意形状。 固定(至于确定的坐标)的壁面必须是旋转表面。
选择旋转周期性边界条件可以提高效率 (减少网格数量)
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
域的位置和形状的改变都可以用时间函数来表示 非定常问题
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的时候,有不少朋友需要使用动网格模型(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、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0.3
Maximum Length Scale
1.4
Maximum Cell Skewness
0.7
Size Remeshing Interval
5
结论:(2)(3)中 Minimum Length Scale 和 Maximum Length Scale 差距过大,导致新生成 网格的长细比大,看上去质量应不高。(4)(5)(6)中的网格同差,但比(2)(3)强一点。 由于尺度差距较大,很难设置的好,除非全局网格都画小。否则 Max/Min 大了后,网格质 量不会好的哪里去。sizing function 应该可以解决这个问题。以(4)的参数作为基本参数,进 行 sizing function 参数设置的分析。
Value 0.3 1.4 0.7 5 3 1 0.3
网格质量明显变好,但无关网格也发生了变化,物体周围的局部网格也令人满意。
江之上制作
7
(8)
Parameter Minimum Length Scale Maximum Length Scale Maximum Cell Skewness Size Remeshing Interval
Resolution Variation(a) Rate(beta)
Value 0.3 1.4 0.7 5 10 1 0.3
不知道怎么回事,远处的网格不变了。附近的网格(全局图中)密了一些。
(9)
Parameter
Value
Minimum Length Scale
0.3
Maximum Length Scale
江之上制作
8
Parameter Minimum Length Scale Maximum Length Scale Maximum Cell Skewness Size Remeshing Interval
Resolution Variation(a) Rate(beta)
Value 0.3 1.4 0.7 5 3 0.5 0.6
ቤተ መጻሕፍቲ ባይዱ
然后 Define->User Define->Function->Complier。(没细看,就这么个过程吧)。 Add 好自己的 C 以后,点击 build 就可以了。
自己将快捷方式中的目标拷出来,做了个*.bat;加入了 fluent 的启动行命令,但 fluent 启动命 令没有运行;还是需要粘贴进去。
5
Maximum Length Scale 按 Mesh Info 设置,无关网格应不变。
Minimum Length Scale 变小,结果未知。
江之上制作
5
无关处网格没有变化,物体周围网格较(1)(2)密,是 Minimum Length Scale 的影响。
Minimum Length Scale 应当按外部网格的最小尺度来设置(即不包含运动域的网格)。
5
江之上制作
4
整体的网格密,物体周围网格没有平滑过渡。 (2)
Parameter Minimum Length Scale Maximum Length Scale Maximum Cell Skewness Size Remeshing Interval
Value 0.2 5 0.7 5
外部网格没有变化,新生成网格大,物体周围网格更差。
properties 的 pointer:
质量: SDOF_MASS /* mass */ 转动惯量: SDOF_IXX, /* moment of inertia */ SDOF_IYY, /* moment of inertia */ SDOF_IZZ, /* moment of inertia */ SDOF_IXY, /* product of inertia */ SDOF_IXZ, /* product of inertia */ SDOF_IYZ, /* product of inertia */ 力和扭矩: SDOF_LOAD_LOCAL, /* boolean */默认 false 全局坐标系 SDOF_LOAD_F_X, /* external force */ SDOF_LOAD_F_Y, /* external force */ SDOF_LOAD_F_Z, /* external force */ SDOF_LOAD_M_X, /* external moment */ SDOF_LOAD_M_Y, /* external moment */ SDOF_LOAD_M_Z, /* external moment */ 冻结某个自由度的运动:默认 false 不限制 SDOF_ZERO_TRANS_X, /* boolean, suppress translation in x-direction */ SDOF_ZERO_TRANS_Y, /* boolean, suppress translation in y-direction */ SDOF_ZERO_TRANS_Z, /* boolean, suppress translation in z-direction */ SDOF_ZERO_ROT_X, /* boolean, suppress rotation around x-axis */ SDOF_ZERO_ROT_Y, /* boolean, suppress rotation around y-axis */ SDOF_ZERO_ROT_Z, /* boolean, suppress rotation around z-axis */ 定义对称面的法向量: SDOF_SYMMETRY_X, /* normal vector of symmetry plane for half model */ SDOF_SYMMETRY_Y, /* normal vector of symmetry plane for half model */ SDOF_SYMMETRY_Z, /* normal vector of symmetry plane for half model */
(7)开了 sizing function: Parameter
Minimum Length Scale Maximum Length Scale Maximum Cell Skewness Size Remeshing Interval
Resolution Variation(a) Rate(beta)
呵呵,和(9)的区别不大。 结论:beta=0.3 应该合适,不需要怎么动。Variation 和 Resolution 可以动一下,要和具体算 例结合。书中没说 Resolution 的含义,自我感觉应该是背景网格的参数。a 是可达到的最大 网格尺寸的一个度量,beta 是生长速度的一个度量。
江之上制作
(4)
Parameter
Value
Minimum Length Scale
0.2
Maximum Length Scale
1.4
Maximum Cell Skewness
0.7
Size Remeshing Interval
5
(5)
Parameter Minimum Length Scale Maximum Length Scale Maximum Cell Skewness Size Remeshing Interval
Display Zone Motion 只预览运动区域的运动;网格不会重新生成。
江之上制作
2
Preview Mesh Motion 预览网格变化。 设置时,必须把新生成的 itf 设置为动区域,不然 itf 不动,网格异常。
江之上制作
3
网格生成参数设置对比
With the identical origin grid and the identical time step size(0.05s) and number(100). The result grids are compared for different parameters.
基本过程
一开始画的非结构 2D 网格导入 Fluent 总也不能成功。 后来又新建了一个工程,也没怎么弄,可能就勾选了几个东西吧,问题就解决了。也不是很 清楚,可以往后再研究一下。
关于标记和分割网格。 用 ISO Value 中的 Cell Type 来标记网格,并用 Mesh 下的 Separate->Cells 分割出来。刚导进 的网格是无法 Adapt->Iso Value 的,但初始化一下就可以了。分割了网格后,两部分网格中 间的交接线也会被特殊提出来。
Value 0.2 1.4 0.6 5
江之上制作
6
和(4)基本没区别,而且 Maximum Cell Skewness 设置太小了也不好,会导致很多网格被
标记,计算变缓。书中说 0.85 就可以了(2D 还是 3D 忘了)。
(6)
Parameter
Value
Minimum Length Scale
1.4
Maximum Cell Skewness
0.7
Size Remeshing Interval
5
Resolution
3
Variation(a)
0.5
Rate(beta)
0.3
远处网格不往大变了,(7)中的变化可能是由于 Resolution 和 Variaration 都太放纵了。 书上说,Variation 是原则上可达到的最大网格(只是度量);Rate 是变化率,越大,边界处 网格变化越慢,但内部增长会变快。 (10)
1
基本过程............................................................................................................................................. 1 网格生成参数设置对比.....................................................................................................................2 UDF 启动过程....................................................................................................................................8 6 自由度的 UDF.................................................................................................................................9 非定常动画制作............................................................................................................................... 11