当前位置:文档之家› fluent划分网格经验

fluent划分网格经验

fluent划分网格经验
fluent划分网格经验

首先,在网格划分之前,你最好从数值仿真的全局出发,比如精度要求,计算时间要求,机子配置等等,思考一下是使用结构网格,还是非结构网格,抑或是混合网格;因为这关系到接下来的网格划分布置和划分策略。

然后,在确定了网格类型之后,就是根据模型情况,构思一下网格拓扑,就是自己要明确最终想得到什么样的网格,比如翼型网格,是C型,还是O型;一个圆面是想得到“内方外圆”的铜钱币类型的网格,还是一般的网格,等等。这一步有时可能不太清楚,自己有时都不知道什么样的网格拓扑是合适的,那就需要平时多看看这方面的帖子,收集一些划分比较好的网格图片,体会体会。确定了网格拓扑之后,对模型进行划分网格前的准备,比如分割啊,对尺度小对计算结果影响不大的次要几何进行简化,等等。

接着,划分网格。划分网格都是从线网格,面网格,到体网格的;线网格的划分,也就是网格节点的布置,对网格的质量影响比较大,比如歪斜,长宽比,等等,节点密度在GAMBIT中可以通过很多的方法进行控制调整,大家可以看相关的资料。面网格的划分,非结构的网格咱就不说了,结构网格可能有时比较麻烦,这就要求大家最好对那几种网格策略比较了解,比如Quad-Map划分方法所适用的模型形状,在划分的时候对顶点类型及网格节点数的要求(Quad-Map,适用于边数大于或等于4的面,顶点要求为4个End类型,其他为Side类型,对应边的网格节点数必须相等),以此类推,其他的划分方法也有这方面的要求以及适合的形状。当出现了不能划分的时候,可以根据GAMBIT给的提示进行修改顶点类型或网格节点数来满足划分方法的要求。如果实在不能划分,则退而求其次,改用其他方法进行划分或者对面进行分割;等等。关于体网格的划分,与面网格划分所要注意的东西类似。

另外,根据我个人的经验,如果模型比较简单规则,大家最好尽量使用结构网格,比较容易划分,计算结果也比较好,计算时间也相对较短;对于复杂的几何,在尽量少的损失精度的前提下,尽量使用分块混合网格。在使用分块混合网格时注意两点:1)近壁使用边界层网格,这对于近壁区的计算精度很有帮助,尽管使用足够多的非结构网格可以得到相同的结果(倘若在近壁区使用网格不当,那个湍流粘性比超过限定值的警告就可能出现);2)分块网格在分块相邻的地方一定要注意网格的衔接要平滑,相邻网格的尺寸不能相差太大,尽量控制在1.2左右。否则在计算时容易出现不收敛或者高连续方程残差的问题。

最后,一定要记得预览检查网格的质量。如果网格的质量不好,你就不要抱着侥幸的心理交给Fluent计算了,那肯定是算不好的。所以划分网格要有耐心,不断地调整,直到满足要求为止。原本我以为这一条大家都很在意,经过一段时间的论坛问题观察,其实不然,有很多版友随便划分个网格就急切地导入到Fluent中计算,出问题是理所当然的,但提出的很多问题,有时实在让人无能为力,帮不上忙。再说一遍,一定要检查网格质量,如果不满足要求,就不要导入到Fluent中计算了。

一点小知识:

1. Fluent检查网格质量的方法,网格导入Fluent中之后,grid->check,可以看看网格大致情况,有无负体积,等等;在Fluent 窗口输入,grid quality然后回车,Fluent会显示最主要的几个网格质量。

Fluent计算对网格质量的几个主要要求:

1)网格质量参数:

Skewness (不能高于0.95,最好在0.90以下;越小越好)

Change in Cell-Size (也是Growth Rate,最好在1.20以内,最高不能超过1.40)

Aspect Ratio (一般控制在5:1以内,边界层网格可以适当放宽)

Alignment with the Flow(就是估计一下网格线与流动方向是否一致,要求尽量一致,以减少假扩散)

2)网格质量对于计算收敛的影响:

高Skewness的单元对计算收敛影响很大,很多时候计算发散的原因就是网格中的仅仅几个高Skewness的单元。

举个例子:共有112,000个单元,仅有7个单元的Skewness超过了0.95,在进行到73步迭代时计算就发散了!

高长宽比的单元使离散方程刚性增加,使迭代收敛减慢,甚至困难。也就是说,Aspect Ratio尽量控制在推荐值之内。

3)网格质量对精度的影响:

相邻网格单元尺寸变化较大,会大大降低计算精度,这也是为什么连续方程高残差的原因。

网格线与流动是否一致也会影响计算精度。

4)网格单元形状的影响:

非结构网格比结构网格的截断误差大,因此,为提高计算精度计,请大家尽量使用结构网格,对于复杂几何,在近壁这些对流动影响较大的地方尽量使用结构网格,在其他次要区域使用非结构网格。

2. 不要使用那些书上写的y+与yp的计算公式,那个公式一般只能提供数量级上的参考。推荐大家使用NASA的粘性网格间距计算器,设定你想要的y+值,它就能给你计算出第一层网格高度,与计算结果的y+很接近。

https://www.doczj.com/doc/768313023.html,/APPS/YPlus/

3. 关于边界层网格高度与长度的比例,有本CFD书上说,大概在1/sqrt(Re)就可以;另外,也有这种说法,在做粘性计算时,这个比值可以在100-1000之间,无粘有激波计算时,这个比值要相应小点儿,在10-100之间,因为要考虑激波捕捉精度问题。

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)。 弹簧近似光滑模型 在弹簧近似光滑模型中,网格的边被理想化为节点间相互连接的弹簧。移动前的网格间距相当于边界移动前由弹簧组成的系统处于平衡状态。在网格边界节点发生位移后,会产生与位移成比例的力,力量的大小根据胡克定律计算。边界节点位移形成的力虽然破坏了弹簧系统原有的平衡,但是在外力作用下,弹簧系统经过调整将达到新的平衡,也就是说由弹簧连接在一起的节点,将在新的位置上重新获得力的平衡。从网格划分的角度说,从边界节点的位移出发,采用虎克定律,经过迭代计算,最终可以得到使各节点上的合力等于零的、新的网格节点位置,这就是弹簧光顺法的核心思想。 原则上弹簧光顺模型可以用于任何一种网格体系,但是在非四面体网格区域(二维非三角形),最好在满足下列条件时使用弹簧光顺方法: (1)移动为单方向。 (2)移动方向垂直于边界。 如果两个条件不满足,可能使网格畸变率增大。另外,在系统缺省设置中,只有四面体网格(三维)和三角形网格(二维)可以使用弹簧光顺法,如果想在其他网格类型中激活该模型,需要在dynamic-mesh-menu 下使用文字命令spring-on-all-shapes?,然后激活该选项即可。 动态层模型 对于棱柱型网格区域(六面体和或者楔形),可以应用动态层模型。动态层模型的中心思想是根据紧邻运动边界网格层高度的变化,添加或者减少动态层,即在边界发生运动时,如果紧邻边界的网格层高度增大到一定程度,就将其划分为两个网格层;如果网格层高度降低到一定程度,就将紧邻边界的两个网格层合并为一个层: 如果网格层j扩大,单元高度的变化有一临界值:

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)移动方向垂直于边界。 如果两个条件不满足,可能使网格畸变率增大。另外,在系统缺省设置中,只有四面体网格 (三维)和三角形网格(二维)可以使用弹簧光顺法, 需要在dynamic-mesh-menu 下使用文字命令spring-on-all-shapes?,然后激活该选项即

fluent网格质量检查

网格划分策略与网格质量检查 判断网格质量的方面有: Area单元面积,适用于2D单元,较为基本的单元质量特征。 Aspect Ratio长宽比,不同的网格单元有不同的计算方法,等于1是最好的单元,如正三角形,正四边形,正四面体,正六面体等;一般情况下不要超过5:1. Diagonal Ratio对角线之比,仅适用于四边形和六面体单元,默认是大于或等于1的,该值越高,说明单元越不规则,最好等于1,也就是正四边形或正六面体。 Edge Ratio长边与最短边长度之比,大于或等于1,最好等于1,解释同上。 EquiAngle Skew通过单元夹角计算的歪斜度,在0到1之间,0为质量最好,1为质量最差。最好是要控制在0到0.4之间。 EquiSize Skew通过单元大小计算的歪斜度,在0到1之间,0为质量最好,1为质量最差。2D质量好的单元该值最好在0.1以内,3D单元在0.4以内。 MidAngle Skew通过单元边中点连线夹角计算的歪斜度,仅适用于四边形和六面体单元,在0到1之间,0为质量最好,1为质量最差。 Size Chang e相邻单元大小之比,仅适用于3D单元,最好控制在2以内。 Stretch伸展度。通过单元的对角线长度与边长计算出来的,仅适用于四边形和六面体单元,在0到1之间,0为质量最好,1为质量最差。 Taper锥度。仅适用于四边形和六面体单元,在0到1之间,0为质量最好,1为质量最差。 Volume单元体积,仅适用于3D单元,划分网格时应避免出现负体积。 Warpage翘曲。仅适用于四边形和六面体单元,在0到1之间,0为质量最好,1为质量最差。 以上只是针对Gambit帮助文件的简单归纳,不同的软件有不同的评价单元质量的指标,使用时最好仔细阅读帮助文件。 另外,在Fluent中的窗口键入:grid quality 然后回车,Fluent能检查网格的质量,主要有以下三个指标: 1.Maxium cell squish: 如果该值等于1,表示得到了很坏的单元;

FLUENT 动网格教程

FLUENT动网格教程 摘自https://www.doczj.com/doc/768313023.html,/dvbbs/dispbbs.asp?boardid=61&id=1396题记:在学习使用Fluent的时候,有不少朋友需要使用动网格模型(Dynamic Me sh Model),因此,本版推出这个专题,进行大讨论,使大家在使用动网格时尽量少走弯路,更快更好地掌握;也欢迎使用过的版友积极参与讨论指导,谢谢!。 该专题主要包括以下的主要内容: §一、动网格的相关知识介绍; §二、以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; §三、与动网格应用有关的参考文献; §四、使用动网格进行计算的一些例子。 §一、动网格的相关知识介绍 有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUE NT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。 注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。

fluent经验

Fluent 问题集锦 问题1: 如果体网格做好后,感觉质量不好,然后将体网格删除,在其面上重新作网格,结果发现网格都脱离面,不再附体了,比其先前的网格质量更差了. 原因: 删除体网格时,也许连同较低层次的网格都删除了.上面的脱离面可能是需要的体的面. 解决方法: 重新生成了面,在重新划分网格 问题2: 在gambit下做一虚的曲面的网格,结果面上的网格线脱离曲面,由此产生的体网格出现负体积. 原因: 估计是曲面扭曲太严重造成的 解决方法: 可以试试分区域划分体网格,先将曲面分成几个小面,生成各自的面网格,再划体网格。 问题3: 当好网格文件的时候,并检查了网格质量满足要求,但输出*.msh时报错误. 原因: 应该不是网格数量和尺寸.可能是在定义边界条件或continuum type时出了问题. 解决方法: 先把边界条件删除重新导出看行不行.其二如果有两个几何信息重合在一起, 也可能出现上诉情况,将几何信息合并掉. 问题4: 当把两个面(其中一个实际是由若干小面组成,将若干小面定义为了group了)拼接在一起,也就是说两者之间有流体通过,两个面各属不同的体,网格导入到fluent时,使用interface时出现网格check的错误,将interface的边界条件删除,就不会发生网格检查的错误.如何将两个面的网格相连. 原因: interface后的两个体的交接面,fluent以将其作为内部流体处理(非重叠部分默认为wall,合并后网格会在某些地方发生畸变,导致合并失败.也可能准备合并的两个面几何位臵有误差,应该准确的在同一几何位臵(合并的面大小相等时),在合并之前要合理分块。 解决方法: 为了避免网格发生畸变(可能一个面上的网格跑到另外的面上了),可以一面网格粗,一面网格细,避免; 再者就是通过将一个面的网格直接映射到另一面上的,两个面默认为interior.也可以将网格拼接一起. 上述语言有些模糊不清,仅供参考,并希望高手批评指正,^_^

FLUENT算例 (5)搅拌桨底部十字挡板的流场分析

搅拌桨底部十字挡板的流场分析搅拌设备在各个行业运用的十分广泛,搅拌就是为了更够更快速更高效的将物质与介质充分混合,发生充分的反应,而搅拌中存在着许多不利于混合的情况,比如液体旋流。为了解决这个问题,之前很多人提出在罐体的侧壁上增加挡板,可以抵消大部分旋流,然后大部分都是研究侧挡板的,对于底部挡板的研究十分少,本文就在椭圆底部挡板增加十字型挡板,对罐体中进行流场分析。 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定义材料 介质选择液体水。 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,由于轴跟动区域速度是相对的,所以设成反的。

ICEM CFD动网格学习

FLUENT动网格教程 该专题主要包括以下的主要内容: §一、动网格的相关知识介绍; §二、以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; §三、与动网格应用有关的参考文献; §四、使用动网格进行计算的一些例子。 §一、动网格的相关知识介绍 有关动网格基础方面的东西,请具体参考FLUENT User’s Guide或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUE NT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。 注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。 2、动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即 弹簧近似光滑模型(spring-based smoothing)、 动态分层模型(dynamic layering) 局部重划模型(local remeshing)

FLUENT网格质量

答:我个人认为主要有三项: 网格的正交性,雅可比值,扭角,和光滑性。 对于一般的cfd程序,结构化网格要求正交性和光滑性(就是你说的 最大最小比率相差不大,想不出一个名次就用这个了)要比较好 但是对于fluent这样基于非结构网格的,尤其是其中程序中 加入了很多加快收敛速度的方法的软件,后者要求就不要太高 我觉得真正需要考虑网格影响的,一般应该在结构网格上才需要 基于非结构网格的有限体积法,计算通量的时候存在相邻节点的通量计算本身就可能存在计算误差,所以精度不会高到那儿, 顺便说一下,对于fluent,顶多二阶格式就够了,而且绰绰有余,一般我都用一阶 因为完全没有必要,其在计算中的误差远远达不到二阶的精度。 网格质量本身与具体问题的具体几何特性、流动特性及流场求解算法有关。因此,网格质量最终要由计算结果来评判,但是误差分析以及经验表明,CFD计算对计算网格有一些一般性的要求,例如光滑性、正交性、网格单元的正则性以及在流动变化剧烈的区域分布足够多的网格点等。对于复杂几何外形的网格生成,这些要求往往并不可能同时完全满足。例如,给定边界网格点分布,采用Laplace 方程生成的网格是最光滑的,但是最光滑的网格不一定满足物面边界正交性条件,其网格点分布也很有可能不能捕捉流动特征,因此,最光滑的网格不一定是最好的网格。 对计算网格的一个最基本的要求当然是所有网格点的Jacobian必须为正值,即网格体积必须为正,其他一些最常用的网格质量度量参数包括扭角(skew angle)、纵横比(aspect ratio、Laplacian、以及弧长(arclength)等。通过计算、检查这些参数,可以定性的甚至从某种程度上定量的对网格质量进行评判。 Parmley等给出了更多的基于网格元素和网格节点的网格质量度量参数。有限元素法关于插值逼近误差估计的理论,实际上也对网格单元的品质给出了基本的规定:即每个单元的内切球半径与外切球半径之比,应该是一个适当的,与网格疏密无关的常数。 如果import到fluent里,check一下,除了看体积不为负。 GAMBIT gambit中点最右下脚的放大镜,然后看百分数,百分数越大网格越好 以下转自马叉虫的个人空间 https://www.doczj.com/doc/768313023.html,/?uid-64676-action-viewspace-itemid-43 要生成一套好的网格,我觉得以下几点是很必要的: 1.选择一款好的网格生成软件; 2.确保实体尽量简洁; 3.合理布置线上节点;

Fluent动网格----layering个一个简单实例(作者Snow)

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) ; }

FLUENT动网格技术简介

FLUENT动网格简介 在固体有限元计算中,网格运动实非什么稀奇事儿。而且在绝多数固体计算的基本物理量是网格的节点位移,所以,固体计算中,网格节点运动是对的,没有运动反而不正常了。也可以这么说:正因为计算域内部节点间的相对运动,才导致了内应力的产生。 流体计算与固体完全不同。其根源在于它们使用的网格类型不同。当前固体有限元计算采用的是拉格朗日网格,而流体计算则大多数采用的欧拉网格。如果说把拉格朗日网格中的节点点看作是真实世界的物质原子的话,那么欧拉网格的节点则好比是真实世界中的一个个传感器,它们总是呆在相同的位置,真实的记录着各自位置上的物理量。正常情况下,欧拉网格系统是这样的:计算域和节点保持位置不变,发生变化的是物理量,网格节点就像一个个布置在计算域中的传感器,记录该位置上的物理量。这其实是由流体力学研究方法所决定的。宏观与微观的差异决定了固体力学计算采用拉格朗日网格,流体计算采用欧拉网格。关于这部分的详细解说,可以参阅任何一本计算流体动力学书籍。 世界是公平的。有利必有弊。朗格朗日网格适合计算节点位移,然而对于过大的网格变形却难以处理。欧拉网格生来可以处理大变形(因为节点不动),然而对于对于节点运动的处理,则是其直接软肋。然而很不幸的是,现实生活中有太多网格边界运动的实例。如汽车发动机中的气缸运动、阀门开启与关闭、机翼的运动、飞机投弹等等等等举不胜举。 计算流体动力学计算的基本物理量通常为:速度、温度、压力、组分。并不计算网格节点位移。因此要让网格产生运动,通常给节点施加的物理约束是速度。CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。配合瞬态时间,即可很方便的得出位移。当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定节点位移。(2)网格节点速度是通过求解得到的。如6DOF 模型基本上都属于此类。用户将力换算成加速度,然后将其积分成速度。 对于第一类动网格问题,在fluent中通常可以使用profile与UDF进行网格设置,通过规定节点或区域的速度、角速度或位移等方式来显式确定网格的运动,通常大部分的动网格问题都归于此类。而对于第二类问题,通常涉及到力的计算,力在流体中通常是对压力进行积分而来。将力转换为速度或位移,一般涉及到加

Fluent的自适应网格问题

加密网格的话有两种参考标准一种是y+值,一种是y*值,一般来说,要加密网格主要是为了是y+值满足需求,具体的情况看楼主你的需要... 根据y+值来加密网格的步骤如下:运行fluent,导入cas and dat 文件后,点击adapt——Yplus/Ystar..。,之后出现选择界面,一般情况可以保持默认界面,当然也可以根据自己的需求选择选项,一般type项选择Yplus,然后点击compute,在min及max项会出现你的选择壁面的Y+值,在其下方,有minallowed 和maxallowed,输入你所需要的Y+值范围,点击Mark按钮,会标记出不符合要求的部分,然后点击adapt,就可以了,这部分区域的网格会加密,以适应你的要求 Y*的步骤也是这样的 但是前提是要知道你的计算的y+值范围,而这个值一般是估计值,且跟计算有关的,是个不确定量,所以一般只作参考用 希望能帮到你......另外,希望给加分啊,呵呵 追问 我点完adpat,Yplus/Ystar这个是灰的,不能点。。 回答 额,你计算了吗或者说你导入的是cas & dat 文件吗如果不是,你都没 有一个y+值的范围,怎么可能让软件给你加密网格...(这是基本条件)追问 当然计算了,我保存完再导入cas& dat也不行 回答 那你试试计算完,直接点adapt试试.....还真没遇到过你说的情况 追问 adapt都能点只是里面的Yplus/Ystar不能点,是灰色的 fluent里的常见问题(一) (2011-02-26 09:44:43) 1什么叫松弛因子松弛因子对计算结果有什么样的影响它对计算的收敛情况又有什么样的影响? 1、亚松驰(Under Relaxation):所谓亚松驰就是将本层次计算结果与上一层次结果的差值作适当缩减,以避免由于差值过大而引起非线性迭代过程的发散。用通用变量来写出时,为松驰因子(Relaxation Factors)。《数值传热学-214》

FLUENT动网格需要的常用宏

FLUENT动网格需要的常用宏 虽然瞬态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:存储了用户所指定的动网格属性和结构指针。 real vel[]:线速度。vel[0]为x方向速度,vel[1]为y方向速度,vel[2]为z 方向速度 real omega[]:角速度。与线速度定义相同。 real time:当前时间。 real dtime:时间步长。 函数返回值为:void 从函数的参数类型,配合c语言的参数调用方式可知,vel,omega为数值类型,属于传入类型。因此只需在函数体中显式定义vel与omega即可将速度传入fluent求解器。time与dtime是用于定义速度的。详细实例可参看fluent udf 文档p182。

网格质量检查

1. Fluent检查网格质量的方法,网格导入Fluent中之后,grid->check,可以看看网格大致情况,有无负体积,等等;在Fluent窗口输入,grid quality然后回车,Fluent会显示最主要的几个网格质量。 Fluent计算对网格质量的几个主要要求: 1)网格质量参数: Skewness(不能高于0.95,最好在0.90以下;越小越好) Change in Cell-Size (也是Growth Rate,最好在1.20以内,最高不能超过1.40)Aspect Ratio (一般控制在5:1以内,边界层网格可以适当放宽) Alignment with the Flow(就是估计一下网格线与流动方向是否一致,要求尽量一致,以减少假扩散) 2)网格质量对于计算收敛的影响: 高Skewness的单元对计算收敛影响很大,很多时候计算发散的原因就是网格中的仅仅几个高Skewness的单元。 举个例子:共有112,000个单元,仅有7个单元的Skewness超过了0.95,在进行到73步迭代时计算就发散了! 高长宽比的单元使离散方程刚性增加,使迭代收敛减慢,甚至困难。也就是说,Aspect Ratio尽量控制在推荐值之内。 3)网格质量对精度的影响: 相邻网格单元尺寸变化较大,会大大降低计算精度,这也是为什么连续方程高残差的原因。 网格线与流动是否一致也会影响计算精度。 4)网格单元形状的影响: 非结构网格比结构网格的截断误差大,因此,为提高计算精度计,请大家尽量使用结构网格,对于复杂几何,在近壁这些对流动影响较大的地方尽量使用结构网格,在其他次要区域使用非结构网格。 2. 不要使用那些书上写的y+与yp的计算公式,那个公式一般只能提供数量级上的参考。推荐大家使用NASA的粘性网格间距计算器,设定你想要的y+值,它就能给你计算出第一层网格高度,与计算结果的y+很接近。 3. 关于边界层网格高度与长度的比例,有本CFD书上说,大概在1/sqrt(Re)就可以;另外,也有这种说法,在做粘性计算时,这个比值可以在100-1000之间,无粘有激波计算时,这个比值要相应小点儿,在10-100之间,因为要考虑激波捕捉精度问题。

Fluent中的动网格

Fluent中的动网格 动网格是目前求解计算域变化问题的常用方法。参考Fluent帮助,可以知道动网格技术与一般流动计算设置的主要区别在于网格更新方法和更新域设置。这里就这两方面问题的一点体会作一简单记录。 一、网格更新方法 弹簧近似光滑法将任意两网格节点之间的连线理想地看成一条弹簧,并通过近似弹簧的压缩或拉伸实现网格和计算域的改变。该方法网格拓扑不变,无需网格的插值处理,对结构化(四边形、六面体)和非结构化(三角形、四面体)网格同样适用。但不适合于大变形情况,当计算区域变形较大时,变形后的网格质量变差,严重影响计算精度。 动态分层法在运动边界相邻处根据运动规律动态增加或减少网格层数,以此来更新变形区域的网格。该方法适用于结构化网格,通过设置适当的分层和缩减系数,更新后的网格依然为较为均匀的结构化网格,对计算精度影响较小。对于运动域具有多自由度和任意变形情况,该方法处理起来非常困难。 网格重生方法在整个网格更新区域内依据设定的最大和最小网格尺寸判断需要进行网格重生的网格,并依据设置的更新频率进行网格重生处理。该方法适用于非结构化网格,能够较好的应用于任意变形的计算区域处理。 二、更新域设置 更新域设置是动网格设置中的一项重要工作,最常用的设置是刚体运动域和变形域,这里针对这两种域的设置注意事项和技巧作一简单介绍。 1、域动网格 一般来讲,设置为刚体运动域的区域一般为壁面类边界,通过设置固壁的运动,模拟计算域内物体的运动。 由于固壁边界有时形状较为复杂,壁面附近网格尺度与周围网格尺度存在较大差别,网格更新时变形较大。在这种情况下,可以设置一个包含固壁运动边界的计算域,通过该计算域的整体运动模拟域内物体的运动,在有的地方将这种方法称为域动网格法。在域动网格法中,需要设置包含运动物体的内部计算域、内部计算域界面均为刚体运动域。如下图所示。

学习Fluent必备经验

学习Fluent必备经验(转贴) 1 现在用FLUENT的UDF来加入模块,但是用compiled udf时,共享库老是连不上? 解决办法: 1〉你的计算机必须安装C语言编译器。 2〉请你按照以下结构构建文件夹和存放文件: libudf/src/*.c (*.c为你的源程序); libudf/ntx86/2d(二维为2d,三维为3d)/makefile(由makefile_nt.udf改过来的)libudf/ntx86/2d(二维为2d,三维为3d)/user_nt.udf(对文件中的SOURCE,VERSION,PARALLEL_NODE进行相应地编辑) 3〉通过命令提示符进入文件夹libudf/ntx86/2d/中,运行C语言命令 nmake,如果C语言编译器按装正确和你的源程序无错误,那么此时会编译出Fluent需要的库文件(*.lib)这时再启动Fluent就不会出错了。 2 在使用UDF中用编译连接,按照帮助文件中给出的步骤去做了,结果在连接中报错“系统找不到指定文件”。 udf 文件可能不在工作目录中,应该把它拷到工作目录下,或者输入它的全部路径. 3这个1e-3或者1e-4的收敛标准是相对而言的。在FLUENT中残差是以开始5步的平均值为基准进行比较的。如果你的初值取得好,你的迭代会很快收敛,但是你的残差却依然很高;但是当你改变初场到比较不同的值时,你的残差开始会很大,但随后却可以很快降低到很低的水平,让你看起来心情很好。其实两种情况下流场是基本相同的。 由此来看,判断是否收敛并不是严格根据残差的走向而定的。可以选定流场中具有特征意义的点,监测其速度,压力,温度等的变化情况。如果变化很小,符合你的要求,即可认为是收敛了。 一般来说,压力的收敛相对比较慢一些的。 是否收敛不能简单看残差图,还有许多其他的重要标准,比如进出口流量差、压力系数波动等等 尽管残差仍然维持在较高数值,但凭其他监测也可判断是否收敛。最重要的就是是否符合物理事实或试验结论。 残差曲线是否满足只是一个表面的现象,还要看进口和出口总量差不得大于1%,而且即使这样子,收敛解也不一定准确,它和网格划分/离散化误差,以及屋里模型的准确性都有关系.所

fluent划分网格经验

首先,在网格划分之前,你最好从数值仿真的全局出发,比如精度要求,计算时间要求,机子配置等等,思考一下是使用结构网格,还是非结构网格,抑或是混合网格;因为这关系到接下来的网格划分布置和划分策略。 然后,在确定了网格类型之后,就是根据模型情况,构思一下网格拓扑,就是自己要明确最终想得到什么样的网格,比如翼型网格,是C型,还是O型;一个圆面是想得到“内方外圆”的铜钱币类型的网格,还是一般的网格,等等。这一步有时可能不太清楚,自己有时都不知道什么样的网格拓扑是合适的,那就需要平时多看看这方面的帖子,收集一些划分比较好的网格图片,体会体会。确定了网格拓扑之后,对模型进行划分网格前的准备,比如分割啊,对尺度小对计算结果影响不大的次要几何进行简化,等等。 接着,划分网格。划分网格都是从线网格,面网格,到体网格的;线网格的划分,也就是网格节点的布置,对网格的质量影响比较大,比如歪斜,长宽比,等等,节点密度在GAMBIT中可以通过很多的方法进行控制调整,大家可以看相关的资料。面网格的划分,非结构的网格咱就不说了,结构网格可能有时比较麻烦,这就要求大家最好对那几种网格策略比较了解,比如Quad-Map划分方法所适用的模型形状,在划分的时候对顶点类型及网格节点数的要求(Quad-Map,适用于边数大于或等于4的面,顶点要求为4个End类型,其他为Side类型,对应边的网格节点数必须相等),以此类推,其他的划分方法也有这方面的要求以及适合的形状。当出现了不能划分的时候,可以根据GAMBIT给的提示进行修改顶点类型或网格节点数来满足划分方法的要求。如果实在不能划分,则退而求其次,改用其他方法进行划分或者对面进行分割;等等。关于体网格的划分,与面网格划分所要注意的东西类似。 另外,根据我个人的经验,如果模型比较简单规则,大家最好尽量使用结构网格,比较容易划分,计算结果也比较好,计算时间也相对较短;对于复杂的几何,在尽量少的损失精度的前提下,尽量使用分块混合网格。在使用分块混合网格时注意两点:1)近壁使用边界层网格,这对于近壁区的计算精度很有帮助,尽管使用足够多的非结构网格可以得到相同的结果(倘若在近壁区使用网格不当,那个湍流粘性比超过限定值的警告就可能出现);2)分块网格在分块相邻的地方一定要注意网格的衔接要平滑,相邻网格的尺寸不能相差太大,尽量控制在1.2左右。否则在计算时容易出现不收敛或者高连续方程残差的问题。 最后,一定要记得预览检查网格的质量。如果网格的质量不好,你就不要抱着侥幸的心理交给Fluent计算了,那肯定是算不好的。所以划分网格要有耐心,不断地调整,直到满足要求为止。原本我以为这一条大家都很在意,经过一段时间的论坛问题观察,其实不然,有很多版友随便划分个网格就急切地导入到Fluent中计算,出问题是理所当然的,但提出的很多问题,有时实在让人无能为力,帮不上忙。再说一遍,一定要检查网格质量,如果不满足要求,就不要导入到Fluent中计算了。 一点小知识: 1. Fluent检查网格质量的方法,网格导入Fluent中之后,grid->check,可以看看网格大致情况,有无负体积,等等;在Fluent 窗口输入,grid quality然后回车,Fluent会显示最主要的几个网格质量。 Fluent计算对网格质量的几个主要要求: 1)网格质量参数: Skewness (不能高于0.95,最好在0.90以下;越小越好) Change in Cell-Size (也是Growth Rate,最好在1.20以内,最高不能超过1.40) Aspect Ratio (一般控制在5:1以内,边界层网格可以适当放宽) Alignment with the Flow(就是估计一下网格线与流动方向是否一致,要求尽量一致,以减少假扩散) 2)网格质量对于计算收敛的影响: 高Skewness的单元对计算收敛影响很大,很多时候计算发散的原因就是网格中的仅仅几个高Skewness的单元。

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)

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

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为计算域)

Fluent 动网格实例具体操作步骤(完整资料).doc

【最新整理,下载后即可编辑】 Fluent 动网格实例具体操作步骤 目录 实例:Profile定义运动 (3) I、................................................................................................... 参数说明 3 II、 ................................................................................................. 操作步骤4 一、将计算域离散为网格 (4) 二、Fluent操作步骤 (5) 1. 启动Fluent 14.5求解器 (5) 2. 初始设置 (6) 3. 选择湍流模型 (7) 4. 设置流体物性 (8) 5. 设置边界条件 (9) 6. 动网格设置 (11) 7. 设置其它选项 (16)

Fluent 动网格实例具体操作步骤 在Fluent中,动网格模型可以用来模拟由于流域边界运动引起流域形状随时间变化的流动情况,动网格在求解过程中计算网格要重构,例如汽车发动机中的气缸运动、阀门的开启与关闭、机翼的运动、飞机投弹等等。 CFD中的动网格大体分为两类:(1)显式规定的网格节点速度。配合瞬态时间,即可很方便的得出位移。当然一些求解器(如FLUENT)也支持稳态动网格,这时候可以直接指定节点位移。(2)网格节点速度是通过求解得到的。如6DOF模型基本上都属于此类。用户将力换算成加速度,然后将其积分成速度。 在Fluent中,动网格涉及的内容包括: (1)运动的定义。主要是PROFILE文件与UDF中的动网格宏。 (2)网格更新。FLUENT中关于网格更新方法有三种:网格光顺、动态层、网格重构。需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。

相关主题
文本预览
相关文档 最新文档