动网格

动网格
动网格

①进行动网格演示时,首先设置为transient;

②动网格预览:display zone motion---preview mesh motion;预览之后不保存,重新打开才能恢复原样;

③问题:

出现负体积:如果有error前有warning,仔细查看;

第一章理论基础

1.1 网格生成方法比较

1)铺层layering

计算区域进行扩张和收缩时,网格进行合并或删除;

特点:

①网格的增加或删除是一层一层进行的;

②适用于四边形、六面体和三棱柱网格,不适用于三角形、四面体网格;

③常适用于边界线线性运动;

2)弹性光顺spring smoothing

计算区域进行扩张和收缩时,网格和节点像弹簧一样被拉伸和压缩(接近运动的地方压缩严重);

特点:

①节点数量和链接关系不发生变化;

②如果变形幅度过大,网格会高度扭曲;

③适用于三角形、四面体网格,也适用于四边形、六面体和三棱柱网格;

3)局部重构local remeshing

计算区域进行扩张和收缩时,会自动重构扭曲或尺寸过大的网格,以满足要求;

①节点的数量和链接关系会发生变化;

②适合大变形、大位移;仅使用与三角形网格和四面体网格;

③常和spring smoothing联合使用;

1.2 边界运动

1.2.1 in-cylinder

对于类活塞运动,fluent集成了气缸(in-cylinder)模型;dynamic mesh---option---in cylinder;

1)常用参数

Crank radius:曲柄半径;connecting rod length:连杆半径;

(1)通过设置起始、终止角度、曲柄、连杆半径,调整指定边界运动范围;

设置crank angle step size,调整边界运动速度;

设置起始、终止角度、piston axis方向,调整边界运动的方向;

2)指定运动区域

Dynamic mesh zones---creat/edit;

Zone name---选择gambit中指定的运动边界;

Type---rigid body;

Motion attributes---选择piston-full(motion udf/profile)---指定活塞轴方向(piston axis);

设置h_ideal(meshing option---cell hight);

1.2.2 profile

对于预先指定的运动,可用profile来描述;

1)define---profile---read;后缀名为prof;

1.2.3 六自由度模型

对于物体运动和流体作用力耦合的计算问题,可以使用六自由度模型;1.2.4 udf

1.3 变形的指定

1.3.1 deforming

1)边界上的节点,默认情况下是静止的(既不弹性光顺也不局部重构);

在smoothing时,如果将边界设置为deforming,则边界上的节点会做类似内部节点的运动和生成;

2)deforming的变形形式

(1)面板中只能定义cylinder和plane类型的变形;

如果边界复杂,则需要用DEFINE_GEOM来定义形状;

①cylinder:

2d:轴不能是z轴,其实成了一个矩形,定义的边界沿着两条直线变形;

(2)对于边界沿直线变化,用layering时不需要定义deforming;但是沿曲线变化则需要用deforming的udf(如扇形网格中的圆弧);

3)变形原理

第二章铺层

2.1 参数设置

Hight based:铺层形成的网格在同一层内高度相同;

Ratio based:同一层网格高度可能不同,但是不同位置处不同层网格高度比相同(移动边界为斜直线或曲线时常常出现);

Split factor:相邻网格的高度为h_ideal,当网格高度h> (1 + split factor) * h_ideal时,一层网格被分成两层网格;

Collapse fator:当网格高度h < collapse factor * h_ideal时,该层网格与相邻网格层合并;

2.2 运动形式

1)静止stationary

2)刚体运动rigid body motion

3)变形deforming

4)用户自定义user-defined

2.3 区域优先级

1)运动优先级

静止区域:高;

面区域:中;

单元区域:低;

2)以活塞向上运动为例

活塞边界(wall_down)为面区域,fluid为单元区域;

如果指定wall_down为rigid body,则网格在wall_down运动的地方进行铺层;

如果指定fluid(或者interior和其他边界)为rigid body,指定wall_up为stationary,则网格在顶部进行铺层;

2.4 边界条件的继承性

第三章弹性光顺

3.1 参数

3.1.1 convergence tolerance(收敛容差)

1)收敛容差和迭代步数,默认值在一般情况下都比较适用;

2)在迭代过程中,节点当前一次迭代位移与第一次迭代位移之比作为收敛控制参数,当其小于设定的收敛容差时,迭代停止;

在一定迭代步内不能达到规定的收敛容差,也需要停止迭代,防止死循环;

3.1.2 spring constant factor

弹性常数主要控制内部节点相对于运动边界的位移变形;范围0-1;

默认为1,此时网格在活塞(运动边界)变形明显,远离活塞变形不明显,网格仅局部变化,插值过程少,但是网格拉伸扭曲大时,也会影响计算精度;

为0时,运动边界几乎影响到所有边界,网格全局变化,需要全局插值,影响计算精度;

3.1.3 laplace node relaxation

节点松弛因子:内部节点位移对变形边界(deforming)节点位移的影响程度;范围0-1;默认1;

先在dynamic mesh zones---meshing option---smoothing methord---laplace,然后在smoothing设置该参数才会起作用;

为1,内部节点充分影响到变形边界节点运动;

为0,不影响,相当于没有设置deforming变形;

3.2 smoothing用于其它类型网格

Smoothing一般用于三角形和四面体网格,但也可以用于其他类型的网格;

设置:mesh method---setting---smoothing---parameters---element---all;

第四章局部重构

4.1 remeshing基本特点

1)当网格的扭曲率或者尺寸超过用户规定范围时,网格被重构;

2)适用于三角形和四面体网格,网格节点和数量都发生改变;

3)remeshing一般和smoothing结合使用;

4)适用于大位移大变形,比如转动和平动结合的运动;

4.2 remeshing算法

4.2.1 remeshing算法流程

1)标记网格

参数:

Minimum length scale,maxmum length scale,maxmum cell skewness;

标记出尺寸超出最小最大范围的网格,以及扭曲率超过给定值的网格;

Size remeshing interval:每几个时间步进行一次网格重构;

Mesh cell info可以查看当前网格的信息;

2)标记的网格被删除形成空穴;

3)求解器使用一系列重构方法,进行区域填充;

4)将物理量在重构的网格上进行插值;

4.2.2 算法

1)面网格重构:

(1)Region face remeshing:区域面网格重构;

一般定义最小网格尺度是平均尺度的0.4倍,最大尺度是平均尺度的1.4倍;

(2)local face remeshing:局部面网格重构;

完全基于网格的扭曲率;

不能重构那些同时属于多个变形区域的面网格;

设置:

首先mesh moethods---setting---选中local face---设置face skewness;

然后dynamic mesh zones---meshing option---remeshing method---勾选local;

(3)2.5Dface remeshing:2.5维度面网格重构;

见例9,虽然是三维网格,但是重构仅仅涉及一对表面,故为2.5d;

设置:Remeshing---2.5d---设置参数即可;

对于2.5为cell hight没什么用;

4.2.3 remeshing参数

1)Size remeshing interval(SRI)

:通过网格尺寸控制网格重构的频率;

每一个时间步,fluent都会根据扭曲率进行标记网格,并决定是否重构:如果扭曲率超标,进行重构;如果扭曲率不超标,且达到SRI的间隔,且最小最大尺寸超标,则也进行重构;

网格扭曲率对计算的影响大于网格尺寸;

SRI较大时,网格重构主要受扭曲率控制,SRI较小时,网格重构受扭曲率和尺寸共同控制;

2)maxmum cell skewness

二维:0.6-0.7;

三维:0.85;

4.3其它

4.3.1 时间步长

动网格预览时的时间步长的选取:

1)基于网格尺寸和运动速度:

Deta_t < min_scale / max_velocity;

4.3.2算法技巧

动网格的时间步长要足够小,每一次移动网格应该小于最小网格尺寸的一半;光顺方法的结合可以适当增加时间步长;

如果移动幅度已知,最好将区域划分,减少计算;

4.4 sizing function尺寸函数

4.4.1 说明

1)功能:

尺寸函数用于控制重构过程中网格的分布,使网格变化更加均匀;

尺寸函数在运动边界处约束网格,使其维持在一个较小的尺度,在远离运动边界处,逐步将其增大;

运用尺寸函数时,fluent自动标记出网格尺度大于当地尺寸函数值的网格;

尺寸函数仅用于网格标识,并不在重构过程中控制网格尺寸;

2)fluen重构网格步骤

(1)标记扭曲率大于maximum cell skewness的网格;

(2)如果time = SRI * deta_t,标记出长度尺度小于minmum scale length 和大于maxmum scale length的网格;

(3)如果打开了sizing function,标记出不满足当地尺寸函数的网格;

(4)对标记网格进行重构;

(5)如果打开了smoothing(推荐打开),进行光顺;

4.4.2参数

1)resolution:

分辨率,控制背景网格的密度;

variation:

变化量,最大允许网格尺度的量度;

Rate:

变化率,网格成长率的量度;rate=0,意味着线性增长,rate越大,表明边界处网格生长越慢,内部网格生长越快;

2)设置

fluent会自动生成variation和rate,默认参数就行;

4.4.3 技巧

1)以等高线显示尺寸函数分布:

初始化流场---输入:/solve/set/expert---keep temporary memory be freed?[no]yes(这一个打开,其它全为no)---graphics and animation---countours---adaption---background size function;

4.4.4 原理

1)[me]fluent将当前网格边长代入尺寸函数进行计算,如果大于标准值,则标记出来;

标准值:由标准网格尺寸代入求解;

标准尺寸deta_s:二维,与网格等面积的三角形网格边长;三维,等体积的四面体边长;

第五章其它

5.1耦合运动6DOF

5.1.1 概念

用in-cylinder或者profile定义的运动一般是预知的;而6DOF求解器可以计算运动与流场耦合的运动

5.2.2 设置

1)原理

6DOF是将每一个时间步的速度角速度进行积分得到当前位置和角度的;

2)设置

首先:在dynamic mesh中勾选6DOF---setting设置重力加速度;

然后:rigid body---motion attributes---six DOF option勾中on;

第十章网格实例

10.1 油缸

1)设置底边为rigid body:网格在底边生成和销毁;

10.2 箱体移动

1)设置fluid和箱体为rigidbody,左右边界为stationary:网格在左右边界生成和销毁;

10.3 子弹移动

设置下面流域和子弹体为rigid body;最左右侧边界设为stationary;网格在左右侧产生和销毁;

设置子弹体为rigid body:网格在子弹体左右产生和销毁(不利于计算);

10.4 扇形网格

扇形网格铺层:

定义右下边界为rigid body,用profile文件定义其转动角速度;

定义内外圆弧为deforming,用udf中define_geom定义其上节点在圆上进行节点位置更新;

①udf:

sector.c:DEFINE_GEOM();

10.5 油缸弹性

Smoothing网格光顺;

左右边界设置为deforming;下边界设置为rigid body;

10.6 箱体振动

Smoothing其他类型网格;

Box设置为rigidbody;

10.7投弹

Remeshing + smoothing;

设置边界层为regid body(边界层自动包含弹体边界);

之前出现负网格,是因为指定单体边界运动,而周围边界层网格为四边形不能remeshing;

①如果用6DOF:

弹体和fluid_bondary_layer都设置为rigid body,并且在fulid_bondary_ layer打开6DOF时,选中passive;

②udf:

6DOF_missile_drop.c:DEFINE_SDOF_PROPERTIES()

10.8 活塞

Remeshing---region face + smoothing;

底面设置rigid body,圆柱侧面设置为deforming---cylinder;

10.9 2.5D

设置内外表面为rigidbody;用profil文件定义旋转,方向相反(设置一个转动即可);

设置上下表面为deforming---plane,上表面的meshingmethod中勾选remeshing,下表面的不勾选remeshing,因为下表面是由上表面拉伸过去的。

10.10 阀门

设置:左侧为对称边界;中间两流域公共(竖直)为interface;中间两流域公共(横着)为rigid_body;

问题:

左图:网格尺寸过大,原因:remeshing中设置尺寸范围上限太大或SRI太大;右图:interface处网格节点不能生成,仅拉伸,没有设置deforming;

Move,move_shadow都要设置为rigid_body;(为什么会出现rigid_shadow)

动网格的入门专题

题记:在学习使用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)移动方向垂直于边界。 如果两个条件不满足,可能使网格畸变率增大。另外,在系统缺省设置中,只有四面体网格(三维)和三角形网格(二维)可以使用弹簧光顺法,如果想在其他网格类型中激活该模型,

动网格

FLUENT6.1全攻略 图10-16 转子定子模型的静压等值线图 在显示速度矢量时,同样有绝对速度和相对速度两种形式。另外需要注意的是,后处理过程不能在交界区中的壁面、内部、周期等类型的边界上建立数据显示面(surface),但是可以在交界面上建立数据显示面,但结果将是单边的,就是只显示交界面一侧的结果。而且在跨越交接面时,等值线中可能会有细微的不连续。在画三维填充等值线时,图形中可能会出现一些小缝,但是这些缝只是图形显示问题,与解的连续性无关。 10.6 动网格模型 10.6.1 简介 动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUENT根据每个迭代步中边界的变化情况自动完成。在使用移动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF定义边界的运动方式。 FLUENT要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则 21

FLUENT6.1全攻略 22 的,可以在模型设置中用FLUENT 软件提供的非正则或者滑动界面功能将各区域连接起来。 10.6.2 动网格守恒方程 在任意一个控制体中,广义标量Φ的积分守恒方程为: ()∫∫∫∫??+??=??+V V Φg V V dV S A d ΦΓA d u u ρΦV ρΦd dt d G G G G (10-7) 式中ρ为流体密度,u G 为速度向量,g u G 移动网格的网格速度,Γ为扩散系数,ΦS 为 源项,V ?代表控制体V 的边界。 方程(10-7)中的时间导数项,可以用一阶后向差分格式写成: ()()t V V dV dt d n n V ΔΦ?Φ=Φ+∫ρρρ1 (10-8) 式中n 和n+1代表不同的时间层。n+1层上的V n+1由下式计算: t dt dV V V n n Δ+=+1 (10-9) 式中dV/dt 是控制体的时间导数。为了满足网格守恒定律,控制体的时间导数由下式计算: ∫∑??=?=V n j j j g g f A u A d u dt dV G G G G , (10-10) 式中n f 是控制体积的面网格数,j A G 为面j 的面积向量。点乘j j g A u G G ?,由下式计算: t V A u j j j g Δ=?δG G , (10-11) 式中j δV 为控制体积面j 在时间间隔Δt 中扫过的空间体积。 10.6.3 动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧光滑模型、动态层模型和局部重划模型。

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动网格教程 摘自https://www.360docs.net/doc/4418647258.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语言编程基础。

动网格流沙版完美整理.

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

FLUENT动网格技术简介

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

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)

动网格相关知识--1

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

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 动网格

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.5之间,本例将其设置为0.3;Size Function Rate(尺寸函数变化率),保持默认的0.3。 动网格(dynamic mesh)是CFD中专有的概念。由于当前流体计算多采用欧拉坐标系,该坐标系区别于拉格朗日坐标系的一个最直观特点是:计算过程中网格保持静止。因此,在CFD计算中应用动网格,具有其特别的难处。 1、动网格控制方式 最主要的困难在于边界运动后的网格质量控制。由于边界的运动,不可避免的导致网格变形。我们知道,求解器对于网格质量的容忍是有限度的。当网格扭曲过大引起网格质量的急剧下降,可能导致计算发散、形成负网格,进而终止计算。因此,在边界运动过程中,对网格质量进行控制尤为重要。在fluent软件中动网格主要有三种控制方式:smoothing,layering,remeshing。其中layering主要应用与四边形网格及六面体网格,remeshing主要应用于三角形网格及四面体网格等费结构网格中,至于smoothing方法则在各类网格中均可应用。 layering方法应用于结构网格也是有条件限制的:边界运动最好是沿着某单一方向。如若是旋转,最好还是采用非结构网格配合remeshing方式。 非结构网格是最适合应用动网格模型的,但是网格质量不好控制,通常需要仔细调节。结构网格采用layering 方法,能够很好的控制网格质量,但是几何适应性差。具体采用何种网格类型以及何种控制方式,还是要

动网格实例

NACA0012翼型俯仰振荡(动网格的应用过程); 本例是想对作简谐振荡运动的NACA0012翼型的气动特性(升力系数,阻力系数和力矩系数)进行数值计算,来流速度为V, 攻角的变化规律为: Alpha(t)=A/2*sin(omega*t) 其中,A=10度,omega=10*pi 弧度/秒。 1、该例需要使用动网格来实现,首先需要编写刚体运动UDF实现翼型的俯仰运动,由于在FLUENT的UDF中只能指定速度,角速度;所以,需要将攻角对时间求导,得到转动角速度的规律: D(alpha)/dt=A*omega/2*cos(omega*t) 编写的UDF在附件中。 2、由于本例只是为了讲述动网格的实现,至于其他方面的设置及分析就不再讨论;这里详细讲述下动网格的建立以及动网格的预览的结果。步骤如下: 1)将mesh文件读入到FLUENT中,Grid:check,scale…,Smooth/Swap…;Display Grid; 2)定义求解器为,Define:pressure-based,2D,unsteady,Implicit,Green-Gauss Node Based(因本例使用的是三角形单元). 3)编译UDF,Define->User-Defined->Functions->Complied… 此时打开了Complied UDFs的窗口,Add…在选择UDF的对话框中找到NACA0012DM文件夹中的airfoil.c文件,选中,ok;此时返回到Complied UDFs的窗口点击Build,FLUENT 开始进行编译,可以在FLUENT窗口看到编译的一些过程提示;等编译完成,点击Load;就将已经编译好的UDF加载到FLUENT中了。 4)定义动网格参数,Define->Dynamic Mesh(选勾,激活动网格模型)->Parameters… 此时打开了Dynamic Mesh Parameters 窗口,在Models中只选取Dynamic Mesh,本例的网格类型为三角形单元,要实现的运动为小幅度的转动,因此选用的动网格更新方法为Smoothing+Remeshing;开始依次对这两种更新方法进行参数设定: Smoothing中的参数设定:

动网格技术之超限插值

动网格技术之超限插值 动网格技术简介: 应用背景:非定常流动(单个物体做刚性运动、多体相对运动和变形) [动态网格生成技术及非定常计算方法综述-张来平2010] 技术方式分类:网格重构、网格变形(结构、非结构网格) [RBF_TFI 结构动网格技术在风洞静气动弹性修正中的应用-孙岩2014] TFI (超限插值方法): 发展背景:Gordon 提出,Eriksson 首次将TFI 应用于CFD 计算,Gaitonde 和Sprekreijse 改进, B. K. Soni 提出基于弧长的超限插值法。国内,将TFI 与多种方法结合进行改进,如加权TFI 动网格生成方法、弹簧-TFI 混合动网格技术、RBF_TFI 结构动网格方法。。。 [Generation of Boundary-Conforming Grids Around Wing-BodyConfigurations Using Transfinite Interpolation-L. E. Eriksson*] [TWO- AND THREE-DIMENSIONAL GRID GENERATION FORINTERNAL FLOW APPLICATIONS OF COMPUTATIONAL FLUID DYNAM-B. K. Sonin] [非定常流动数值模拟及飞行器动态特性分析研究-袁先旭](未读)[动网格生成技术-史忠军] [带旋转修正的弹簧TFI-混合动网格方法-张兵,韩景龙](未读) 方法简介: 超限插值方法的基本思想是:保持外边界静止,物面边界由物体运动规律得到,内场网格由超限插值的代数方法生成。但一般不采用新的物面重新生成计算网格,这需要花费大量的时间。可行的办法是借助于初始网格数据.使用插值或迭代方法使网格接到边界的距离比例或按原来的稀疏比例重新分布。特点算法:简单、生成网格速度很快,对于较规则区域,TFI 法得到的网格效果也令人满意。 超限插值:根据边界点的信息,插值得到内部点的信息(在这里指的是边界点的物理坐标)。 其中,调和函数反应边界点影响内点的方式。[网格生成技术指无线插值法] 101010(,,)(,,)()(,,)(,,)()(,,)(,,)()(,,)n L P n i i n i n n M O j m j n j m n N R l k k n k l X U X V X W X U V W x h V x h V a x x x h V x h V b x h x h V x h V g x x x h V ======ì???=?????????=í????????=????? =排邋邋邋 线性分布TFI (边界点计算坐标位置对内点的影响)

归纳整理-动网格

一、动网格 该专题主要包括以下的主要内容: §一、动网格的相关知识介绍; §二、以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; §三、与动网格应用有关的参考文献; §四、使用动网格进行计算的一些例子。 §一、动网格的相关知识介绍有关动网格基础方面的东西,请具体参考FLUENT User’s Guide 或FLUENT全攻略的相关章节,这里只给出一些提要性的知识要点。 1、简介动网格模型可以用来模拟流场形状由于边界运动而随时间改变的问题。边界的运动形式可以是预先定义的运动,即可以在计算前指定其速度或角速度;也可以是预先未做定义的运动,即边界的运动要由前一步的计算结果决定。网格的更新过程由FLUENT 根据每个迭代步中边界的变化情况自动完成。在使用动网格模型时,必须首先定义初始网格、边界运动的方式并指定参予运动的区域。可以用边界型函数或者UDF 定义边界的运动方式。FLUENT 要求将运动的描述定义在网格面或网格区域上。如果流场中包含运动与不运动两种区域,则需要将它们组合在初始网格中以对它们进行识别。那些由于周围区域运动而发生变形的区域必须被组合到各自的初始网格区域中。不同区域之间的网格不必是正则的,可以在模型设置中用FLUENT软件提供的非正则或者滑动界面功能将各区域连接起来。注:一般来讲,在Fluent中使用动网格,基本上都要使用到UDF,所以你最好具备一定的C语言编程基础。 2、动网格更新方法动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧近似光滑模型(spring-based smoothing)、动态分层模型(dynamic layering)和局部重划模型(local remeshing)。对于3D模型,还包括in-cylinder、six-dof、Implicit Update三种选项。 其中in-cyliner用于发动机气缸模拟,six-dof主要用于流体作用于刚体,预测刚体运动。implicit update用于设定网格更新方式。默认采用显式方式,勾选此选项可设定网格以隐式方式更新。 弹簧近似光滑模型原则上弹簧光顺模型可以用于任何一种网格体系,但是在非四面体网格区域(二维非三角形),最好在满足下列条件时使用弹簧光顺方法:(1)移动为单方向。(2)移动方向垂直于边界。如果两个条件不满足,可能使网格畸变率增大。另外,在系统缺省设置中,只有四面体网格(三维)和三角形网格(二维)可以使用弹簧光顺法,如果想在其他网格类型中激活该模型,需要在dynamic-mesh-menu 下使用文字命令spring-on-all-shapes?,然后激活该选项即可。 动态分层模型动态分层模型的应用有如下限制: (1)与运动边界相邻的网格必须为楔形或者六面体(二维四边形)网格。 (2)在滑动网格交界面以外的区域,网格必须被单面网格区域包围。 (3)如果网格周围区域中有双侧壁面区域,则必须首先将壁面和阴影区分割开,再用滑动交界面将二者耦合起来。 (4)如果动态网格附近包含周期性区域,则只能用FLUENT 的串行版求解,但是如果周期性区域被设置为周期性非正则交界面,则可以用FLUENT 的并行版求解。如果移动边界为内部边界,则边界两侧的网格都将作为动态层参与计算。如果在壁面上只有一部分是运动边

(完整版)NACA0012翼型俯仰振荡实例进行讲解动网格

以NACA0012翼型俯仰振荡实例进行讲解动网格的应用过程; 首先需要声明的是,这个例子也是来源于网络,原作者不详,在此向他表示感谢。 1、问题描述 本例是想对作简谐振荡运动的NACA0012翼型的气动特性(升力系数,阻力系数和力矩系数)进行数值计算,来流速度为V,攻角的变化规律为: Alpha(t)=A/2*sin(omega*t) 其中,A=10度,omega=10*pi 弧度/秒。 2、该例需要使用动网格来实现,首先需要编写刚体运动UDF实现翼型的俯仰运动,由于在FLUENT的UDF中只能指定速度,角速度;所以,需要将攻角对时间求导,得到转动角速度的规律: D(alpha)/dt=A*omega/2*cos(omega*t) 编写的UDF在附件中。 3、由于本例只是为了讲述动网格的实现,至于其他方面的设置及分析就不再讨论;这里详细讲述下动网格的建立以及动网格的预览的结果。步骤如下: 1)将mesh文件读入到FLUENT中,Grid:check,scale…,Smooth/Swap…;Display Grid;2)定义求解器为,Define:pressure-based,2D,unsteady,Implicit,Green-Gauss Node Based(因本例使用的是三角形单元). 3)编译UDF,Define->User-Defined->Functions->Complied… 此时打开了Complied UDFs的窗口,Add…在选择UDF的对话框中找到NACA0012DM文件夹中的airfoil.c文件,选中,ok;此时返回到Complied UDFs的窗口点击Build,FLUENT开始进行编译,可以在FLUENT窗口看到编译的一些过程提示;等编译完成,点击Load;就将已经编译好的UDF加载到FLUENT中了。 4)定义动网格参数,Define->Dynamic Mesh(选勾,激活动网格模型)->Parameters… 此时打开了Dynamic Mesh Parameters 窗口,在Models中只选取Dynamic Mesh,本例的网格类型为三角形单元,要实现的运动为小幅度的转动,因此选用的动网格更新方法为Smoothing+Remeshing;开始依次对这两种更新方法进行参数设定: Smoothing中的参数设定: Spring Constant Factor(弹簧倔强系数),该值设定为一个较小的值,在0.01到0.1之间,本例选取0.08; Boundary Node Relaxation(边界节点松弛),设定为0.5; Convergence Tolerance(收敛判据),保持默认的0.001; Number of Iterations(迭代次数),保持默认的20; 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,就是每个时间都根据尺寸的标准标记及更新网格。

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中关于网格更新方法有三种:网格光顺、动态层、网格重构。需要详细了解这些网格更新方法的运作机理,每个参数所代表的具体含义及设置方法,每种方法的适用范围。

动网格技术的研究

Fluent中被动运动Six DOF (2016-01-30 10:07:51) 转载▼ 利用CFD软件解决动网格问题,通常可分为以下两类: (1)主动型动网格 主动型动网格问题通常指的是边界运动规律及运动状态已知,可由软件使用者通过函数或程序进行描述。在程序计算过程中,求解器调用动网格运动轨迹描述程序实现边界运动。这类动网格例子很多,如各类泵、风扇等。 (2)被动型动网格 被动型动网格问题通常是指其边界运动规律往往是未知的,常常需要通过计算边界上的力或力矩,以此来求取动网格的运动规律。在这类动网格计算设置中,网格变化规律难以预料,导致网格参数经常需要进行多次调整才能达到目的。这类例子在现实中也很多,比如风力发电机的叶轮、水轮机等。 解决主动型动网格问题比较容易,利用CFD软件提供的动网格模拟能力很容易解决。需要关注的地方是边界运动后,网格节点如何重新布置和生成。如在FLUENT软件中,其动网格主要包括三种网格功能:Smoothing、Layering、Remeshing。利用Remeshing 功能几乎可以解决所有主动型动网格问题。 那被动型动网格问题怎么处理呢?一般来说,这类边界的运动都是由于内部流体对其压力所造成的,那么就涉及到力和力矩计算的问题。对于这类问题,在FLUENT软件中可以采用Six DOF模型进行计算。

需要注意的是,以上所有类型动网格计算均以刚性移动边界为前提,即不考虑由于流体作用力导致的边界变形。若要计算边界变形,则需要采用流固耦合方法,利用固体求解器计算被动型动网格中的力和力矩,均是压力对面的积分计算而来。 下面介绍一下Six DOF运用方法: 在FLUENT中利用Six DOF是需要定义UDF宏的。该宏的定义形式如下: DEFINE_SDOF_PROPERTIES(name, properties, dt ,time ,dtime) 函数中: Name:宏名称 Real *properties:存储6DOF属性的数组 Dynamic_Thread *dt:存储制定的动网格属性 Real time:当前时间 Real dtime:时间步长 该UDF宏没有返回值。用户需要定义的变变量为name、properties、dt、dtime。在利用该UDF宏的过程中,需要注意的是properties数组,其包含多种属性:SDOF_MASS //质量,定义方式如properties[SDOF_MASS]=7.0定义质量7kg SDOF_IXX,SDOF_IYY,SOF_IZZ,//X、Y、Z方向惯性矩 SDOF_IXY,SDOF_IXZ,SDOF_IYZ,//惯性积 SDOF_LOAD_LOCAL,//布尔值,FALSE为全局坐标系,TRUE为体坐标系(局部坐标系),默认为FALSE SDOF_LOAD_F_X,SDOF_LOAD_F_Y,SDOF_LOAD_F_Z,//X,Y,Z方向外力

相关文档
最新文档