Fluent中网格出现负体积的解决方法
- 格式:docx
- 大小:12.06 KB
- 文档页数:1
FLUENT动网格应用——圆柱体在管道内
运动流场模拟
通过非结构网格的拉伸和重划,能够模拟固态边界的变形和运动,对于弹丸外流场以及汽车迎风流场这种条件,可以通过迎面来流速度相对模拟物体运动,但是对于计算域中含有静态固体边界的运动状态,还是需要通过动网格方法来模拟物体运动。
这里给出一个圆柱体在高速运动的流场模拟案例,以进行非结构动网格的应用和学习,上图中圆管静止,圆柱体以10m/s的速度在管内运动。
(本人比较恋旧,这里采用FLUENT15.0进行模拟计算)。
目录实例: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为计算域)图2计算说明:由于不考虑也没办法考虑刚体的变形,因此在构建面域的时候,将1中的部分通过布尔运算去除。
计算域总长度300mm,其中固体运动最大位移为:300-40-30-6mm=224mm。
网格划分策略与网格质量检查判断网格质量的方面有:Area单元面积,适用于2D单元,较为基本的单元质量特征。
Aspect Ratio长宽比,不同的网格单元有不同的计算方法,等于1是最好的单元,如正三角形,正四边形,正四面体,正六面体等;一般情况下不要超过5:1.Diagonal Ratio对角线之比,仅适用于四边形和六面体单元,默认是大于或等于1的,该值越高,说明单元越不规则,最好等于1,也就是正四边形或正六面体。
Edge Ratio长边与最短边长度之比,大于或等于1,最好等于1,解释同上。
EquiAngle Skew通过单元夹角计算的歪斜度,在0到1之间,0为质量最好,1为质量最差。
最好是要控制在0到之间。
EquiSize Skew通过单元大小计算的歪斜度,在0到1之间,0为质量最好,1为质量最差。
2D质量好的单元该值最好在以内,3D单元在以内。
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能检查网格的质量,主要有以下三个指标:cell squish: 如果该值等于1,表示得到了很坏的单元;cell skewness: 该值在0到1之间,0表示最好,1表示最坏;'aspect-ratio': 1表示最好。
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宏没有返回值。
关于wall-shadow这个shadow从何而来?其边界层应当如何设定?你定义了属性不同的两个计算域(例如A 和B区域),两个区域形成共同的交界面。
其中A 计算域的面取以前的名称,而 B 计算域的面则取该名称.shadow 的名字。
在边界条件中将该表面定义为interior,则可以将该两区域结合成相连的计算域。
请问shadow 是自动生成的还是要自己去定义?shadow面通常在两种情况下出现:1.当一个wall 两面都是流体域时,那么wall 的一面被定义为wall.1,wall 的另一面就会被软件自动定义为wall.1_shadow,它的特性和wall是一样的,有关它的处理和wall面没有什么区别;2.另外一种情况就是当你在fluent 软件中,把周期性面的周期特性除去时,也会出现一个shadow 面,这种情况比较好理解,shadow面和原来的面分别构成周期性的两个面.shadow也出现在wall的一面是流体,而另一面是固体的情况。
此时可以进行流体-固体的耦合计算。
初始化和边界条件1 FLUENT 的初始化面板中有一项是设置从哪个地方开始计算(compute from),选择从不同的边界开始计算有很大的区别吗?该怎样根据具体问题选择从哪里计算呢?比如有两个速度入口A 和B,还有压力出口等等,是选速度入口还是压力出口?如果选速度入口,有两个,该选哪个呀?有没有什么原则标准之类的东西?一般是选取ALL ZONE,即所有区域的平均处理,通常也可选择有代表性的进口(如多个进口时)进行初始化。
对于一般流动问题,初始值的设定并不重要,因为计算容易收敛。
但当几何条件复杂,而且流动速度高变化快(如音速流动),初始条件要仔细选择。
如果不收敛,还应试验不同的初始条件,甚至逐次改变边界条件最后达到所要求的条件。
2 要判断自己模拟的结果是否是正确的,似乎解的收敛性要比那些初始条件和边界条件更重要,可以这样理解吗?也就是说,对于一个具体的问题,初始条件和边界条件的设定并不是唯一的,为了使解收敛,需要不断调整初始条件和边界条件直到解收敛为止,是吗?如果解收敛了,是不是就可以基本确定模拟的结果是正确的呢?对于一个具体的问题,边界条件的设定当然是唯一的,只不过初始化时可以选择不同的初始条件(指定常流),为了使解的收敛比较好,我一般是逐渐的调节边界条件到额定值("额定值"是指你题目中要求的入口或出口条件,例如计算一个管内流动,要求入口压力和温度为10MPa和3000K,那么我开始叠代时选择入口压力和温度为1MPa 和500K(假设,这看你自己问题了),等流场计算的初具规模、收敛的较好了,再逐渐调高压力和温度,经过好几次调节后最终到达额定值10MPa 和3000K,这样比一开始就设为10MPa和3000K收敛的要好些)这样每次叠代可以比较容易收敛,每次调节后不用再初始化即自动调用上次的解为这次的初始解,然后继续叠代。
fluent网格检查2009-05-05 18:371. 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+很接近。
fluent常见问题汇总,原创关于wall-shadow这个shadow从何而来?其边界层应当如何设定?你定义了属性不同的两个计算域(例如A 和B区域),两个区域形成共同的交界面。
其中A计算域的面取以前的名称,而B 计算域的面则取该名称.shadow 的名字。
在边界条件中将该表面定义为interior,则可以将该两区域结合成相连的计算域。
请问shadow 是自动生成的还是要自己去定义?shadow面通常在两种情况下出现:1.当一个wall 两面都是流体域时,那么wall 的一面被定义为wall.1,wall 的另一面就会被软件自动定义为wall.1_shadow,它的特性和wall是一样的,有关它的处理和wall面没有什么区别;2.另外一种情况就是当你在fluent 软件中,把周期性面的周期特性除去时,也会出现一个shadow 面,这种情况比较好理解,shadow面和原来的面分别构成周期性的两个面.shadow也出现在wall的一面是流体,而另一面是固体的情况。
此时可以进行流体-固体的耦合计算。
初始化和边界条件1 FLUENT 的初始化面板中有一项是设置从哪个地方开始计算(compute from),选择从不同的边界开始计算有很大的区别吗?该怎样根据具体问题选择从哪里计算呢?比如有两个速度入口A 和B,还有压力出口等等,是选速度入口还是压力出口?如果选速度入口,有两个,该选哪个呀?有没有什么原则标准之类的东西?一般是选取ALL ZONE,即所有区域的平均处理,通常也可选择有代表性的进口(如多个进口时)进行初始化。
对于一般流动问题,初始值的设定并不重要,因为计算容易收敛。
但当几何条件复杂,而且流动速度高变化快(如音速流动),初始条件要仔细选择。
如果不收敛,还应试验不同的初始条件,甚至逐次改变边界条件最后达到所要求的条件。
2 要判断自己模拟的结果是否是正确的,似乎解的收敛性要比那些初始条件和边界条件更重要,可以这样理解吗?也就是说,对于一个具体的问题,初始条件和边界条件的设定并不是唯一的,为了使解收敛,需要不断调整初始条件和边界条件直到解收敛为止,是吗?如果解收敛了,是不是就可以基本确定模拟的结果是正确的呢?对于一个具体的问题,边界条件的设定当然是唯一的,只不过初始化时可以选择不同的初始条件(指定常流),为了使解的收敛比较好,我一般是逐渐的调节边界条件到额定值("额定值"是指你题目中要求的入口或出口条件,例如计算一个管内流动,要求入口压力和温度为10MPa和3000K,那么我开始叠代时选择入口压力和温度为1MPa 和500K(假设,这看你自己问题了),等流场计算的初具规模、收敛的较好了,再逐渐调高压力和温度,经过好几次调节后最终到达额定值10MPa 和3000K,这样比一开始就设为10MPa 和3000K收敛的要好些)这样每次叠代可以比较容易收敛,每次调节后不用再初始化即自动调用上次的解为这次的初始解,然后继续叠代。
哪一位做三维动网格用过remeshing这项的吗?设置有没有什么要注意的地方呀?我的只能动两步,应该是参数没设好吧?提示如下:Updating mesh to time 1.00000e-04 (step = 00001)Info: Maximum Cell Skewness outside reasonable limits, using 0.95 instead. Mesh Statistics:Min Volume =6.25835e-012Max Volume =4.59776e-007Max Cell Skew =9.79372e-001 (cell zone 2)Warning: max cell skewness exceeds 0.95.Max Face Skew =9.30400e-001 (face zone 3) Done.Updating mesh to time 2.00000e-04 (step = 00002)Info: Maximum Cell Skewness outside reasonable limits, using 0.95 instead. Mesh Statistics:Min Volume =9.55037e-012Max Volume =4.52318e-007Max Cell Skew =9.79372e-001 (cell zone 2)Warning: max cell skewness exceeds 0.95.Max Face Skew =9.30400e-001 (face zone 3) Done.Updating mesh to time 3.00000e-04 (step = 00003)Info: Maximum Cell Skewness outside reasonable limits, using 0.95 instead. Error: BL_Alloc_Bucket: out of memoryError Object: ()老师催的紧,拜谢了!!非常感谢马叉虫!我把步长改小了一个数量级,能动了,却是原地踏步。
负体积的存在说明存在连接不正确的地方,可以通过Iso-Value Adaption在图形窗口中显示出错的区域。
进行解算前必须将这些负体积区域去除。
区域的每个面的右手方向性也会得到检查,出现负体积的网格会有一个左手方向的面。
对于轴对称的case,x轴下方的节点数目被列出。
因为x轴下方的节点被禁止了,因为轴对称单元体积是通过旋转2d的单元体积形成,因此x轴下方的体积都是负的。
对于有旋转性、周期性边界的解答区域,最大、最下、平均和指定的周期角度都被计算,一个普通的错误是不正确地指定角度。
对于有传输周期性边界的区域,边界条件被检查以确保边界是真的周期性的。
最后单一计数器被检验,以确认解算器已经构造的节点、面和单元的数目和相应网格文件头部的说明一致。
如果网格检查出现一下信息:WARNING: node on face thread 2 has multiple shadows。
你可以通过以下的文本命令进行修补:1,对偶型的壁面,
grid_modify-zone_repair-duplicate-shadows。
2,对于周期性的壁面,命令同上,但是会被提示输入旋转角度。
##
最小体积为负,基本上是由于网格的倾斜度太大的缘故,需要检查网格的划分方法
##
对四面体网格,出现负体积的情况比较少。
六面体网格在一些“锐角”处容易出现负体积,这一般在gambit划分网格时会有一些提示(如提示有多少个网格严重扭曲)。
一旦出现负体积没有别的办法,只能对出现负体积的地方重新划分。
比如重新布置网格点,重新分块等,多试试就能解决。