非结构网格自适应细化的实现与应用

非结构网格自适应细化的实现与应用
非结构网格自适应细化的实现与应用

动网格的入门专题

题记:在学习使用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 动网格更新方法 动网格计算中网格的动态变化过程可以用三种模型进行计算,即弹簧光滑模型、动态层模型和局部重划模型。

动网格流沙版完美整理.

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

结构化网格和非结构化网格

1. 什么是结构化网格和非结构化网格 1.1结构化网格 从严格意义上讲,结构化网格是指网格区域内所有的内部点都具有相同的毗邻单元。 它可以很容易地实现区域的边界拟合,适于流体和表面应力集中等方面的计算。它的主要优点是: 网格生成的速度快。 网格生成的质量好。 数据结构简单。 对曲面或空间的拟合大多数采用参数化或样条插值的方法得到,区域光滑,与实际的模型更容易接近。 它的最典型的缺点是适用的范围比较窄,只适用于形状规则的图形。尤其随着近几年的计算机和数值方法的快速发展,人们对求解区域的几何形状的复杂性的要求越来越高,在这种情况下,结构化网格生成技术就显得力不从心了。 1.2非结构化网格 同结构化网格的定义相对应,非结构化网格是指网格区域内的内部点不具有相同的毗邻单元。即与网格剖分区域内的不同内点相连的网格数目不同。从定义上可以看出,结构化网格和非结构化网格有相互重叠的部分,即非结构化网格中可能会包含结构化网格的部分。 2.如果一个几何造型中既有结构化网格,也有非结构化网格,分块完成的,分别生成网格后,也可以直接就调入fluent中计算。 3.在fluent中,对同一个几何造型,如果既可以生成结构化网格,也可生成非结构化网格,当然前者要比后者的生成复杂的多,那么应该选择哪种网格,两者计算结果是否相同,哪个的计算结果更好些呢? 一般来说,结构网格的计算结果比非结构网格更容易收敛,也更准确。但后者容易做。 影响精度主要是网格质量,和你是用那种网格形式关系并不是很大,如果结构话网格的质量很差,结果同样不可靠,相对而言,结构化网格更有利于计算机存储数据和加快计算速度。

结构化网格据说计算速度快一些,但是网格划分需要技巧和耐心。非结构化网格容易生成,但相对来说速度要差一些。 4.在gambit中,只有map和submap生成的是结构化网格,其余均为非结构化网格。 采用分块网格划分的时候,在两个相邻块之间设置了connected,但是这两个块我要用不同尺寸的网格来划分。比如说我用结构化的六面体网格来划分,一遍的尺寸为2,另一边的尺寸为3,这时候公共边界面该怎么处理?如果采用cooper 的格式来划分这个网格,尺寸就是前面所说的,该怎么来做呢? 我用单独的两个块试过,就是在公共边界上采用interface的格式,但是由于与这个公共边界相邻的另一个边界也不得不用interface格式,结果导入fluent 的时候就说can not creat a bound loop,也不清楚这是什么问题。 如果中间面两侧的面网格一致,可以直接在fluent中merge,如果不一致,可以设interface 网格的正交性是指三个方向上的网格边之间互相垂直的程度。一般而言,三维网格单元中,三个方向上的网格边之间的夹角越接近90度则质量越好。这一点在规则区域(例如正方形方腔)很容易实现,但对于流动区域比较复杂的问题则非常困难。但一般情况下,应当保证所有的网格单元内的网格边夹角大于10度,否则网格本身就会引入较大的数值误差。 EquiSize Skew(尺寸扭曲率)和EquiAngle Skew(角度扭曲率)是评判网格质量最主要标准,其值越小,网格质量越高 一般来说,Fluent要求扭曲率3D小于0.85,2D小于0.75。 关于复杂模型和gambit中的实体及虚体 模型比较复杂,是在pro/E中建的模,然后用igs导入gambit,不过这样就产生了很多碎线和碎面并且在一些面交界的地方还存在尖角。我曾经做成功过把它们统统merge成一个虚面,中间设置了一个可以容忍尖角的参数,也可以划分网格,但把生成的msh文件导入fluent就会出错,这是virtual geometry的原因还是因为尖角的原因?还有,virtual geometry和普通的真实的几何体到底有什么区别?好像最大的区别是virtual geometry不能进行布尔操作,布尔操作(boolean operation)又是什么?使用virtual geometry需要注意哪些问题?virtual geometry是很头疼的问题。你把它们统统merge成一个虚面 按理说全是虚的也是可以算的。可能是因为尖角的原因,虚实最大差别:是virtual geometry不能进行布尔操作,boolean operation即是并 对于复杂外形的网格生成,不可避免的会用到virtual geometry,virtual face ,和virtual edge等, 1。作网格的时候,把所有的面全部合成一个虚面的做法不好,特别是对于复杂外形的网格生成,你最好在模型变化剧烈的地方多分几个面,这样会更有效的控制网格能够在模型表面曲率比较大的地方能够生成规则的结构或者非结构网格。

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扩大,单元高度的变化有一临界值:

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动网格技术简介

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

Fluent中的动网格

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

径向基函数在动网格中的应用及可并行性研究

4 ·技术?/? TECHNOLOGY ·科研信息化技术与应用2012, 3(5): 4–12 径向基函数在动网格中的应用及可并行性研究 马文鹏,陆忠华,胡晓东 中国科学院计算机网络信息中心 超级计算中心,北京 100190摘 要: 关键词: Applications of Radial Basis Functions in Dynamic Mesh and Its Parallelizability Ma Wenpeng, Lu Zhonghua, Hu Xiaodong Supercomputing Center, Computer Network Information Center , Chinese Academy of Sciences , Beijing 100190, China Abstract: 径向基函数广泛应用于网格变形、气动外形优化设计、网格优化等领域。近年来,基于径向基函数的动网格技术得到了深入的研究和广泛的应用。本文结合计算流体力学和高性能计算的应用背景,从径向基函数对网格的变形质量和变形效率进行了总结和进一步研究:在网格变形方面,重点对比了不同基函数对同一网格运动变形能力和同一基函数对不同网格运动的适应能力;在网格变形效率方面,分析了算法在计算和存储的瓶颈所在,考虑了? OpenMP 和?GPU 这两种共享内存的加速方式,得到较好加速比。最后,分析了当网格规模增大时,动网格在分布式计算和存储模型?(MPI) 下的处理方法。 径向基函数;径向函数;动网格;网格变形;并行 Radial basis functions are widely used for mesh deformation, aerodynamic shape optimization, grid optimization, etc. Recently, dynamic mesh techniques based on radial basis functions are widely used and much more attention is paid to them. This paper summaries the quality and efficiency of mesh deformation with the applications of radial basis functions on both CFD (Computational Fluid Dynamics) and HPC (High Performance Computing). In addition, a further research is conducted on the following two aspects: the abilities to satisfy the same mesh motion among different radial basis functions and the abilities to satisfy different mesh motion using one radial basis function; computation and storage bottleneck are analyzed and then parallel solutions based on shared memory models including OpenMP and GPU are considered 基金项目:国家高技术研究发展计划 (863 计划) (2012AA01A304);国家自然科学基金 (91130019)

结构化网格与非结构化网格比较

对于连续的物理系统的数学描述,如航天飞机周围的空气的流动,水坝的应力 集中等等,通常是用偏微分方程来完成的。为了在计算机上实现对这些物理系统的行为或状态的模 拟,连续的方程必须离散化,在方程的求解域上(时间和空间)仅仅需要有限个点,通过 计算这些点上的未知变量既而得到整个区域上的物理量的分布。有限差分,有限体积和有限元等数值方法都是通过这种方法来 实现的。这些数值方法的非常重要的一个部分就是实现对求解区域的网格剖分。 网格剖分技术已经有几十年的发展历史了。到目前为止,结构化网格技术发展 得相对比较成熟,而非结构化网格技术由于起步较晚,实现比较困难等方面的 原因,现在正在处于逐渐走向成熟的阶段。下面就简要介绍一些这方面的情况。 从严格意义上讲,结构化网格是指网格区域内所有的内部点都具有相同的毗邻 单元。 结构化网格生成技术有大量的文献资料[1,2,3,4]。结构化网格有很多 优点: 1.它可以很容易地实现区域的边界拟合,适于流体和表面应力集中等方面的计算。 5.对曲面或空间的拟合大多数采用参数化或样条插值的方法得到,区域光滑, 与实际的模型更容易接近。 它的最典型的缺点是适用的范围比较窄。尤其随着近几年的计算机和数值方法 的快速发展,人们对求解区域的复杂性的要求越来越高,在这种情况下,结构 化网格生成技术就显得力不从心了。 代数网格生成方法。主要应用参数化和插值的方法,对处理简单的求解区域十 分有效。 同结构化网格的定义相对应,非结构化网格是指网格区域内的内部点不具有相 同的毗邻单元。即与网格剖分区域内的不同内点相连的网格数目不同。从定义 上可以看出,结构化网格和非结构化网格有相互重叠的部分,即非结构化网格 中可能会包含结构化网格的部分。 非结构化网格技术从六十年代开始得到了发展,主要是弥补结构化网格不能够 解决任意形状和任意连通区域的网格剖分的缺欠.到90年代时,非结构化网格的文献达到了它的高峰时期.由于非结构化网格的生成技术比较复杂,随着人们对 求解区域的复杂性的不断提高,对非结构化网格生成技术的要求越来越高.从现 在的文献调查的情况来看,非结构化网格生成技术中只有平面三角形的自动生

动网格技术的研究

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方向外力

动网格相关知识--1

https://www.360docs.net/doc/626225075.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 动网格

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 方法,能够很好的控制网格质量,但是几何适应性差。具体采用何种网格类型以及何种控制方式,还是要

动网格技术之超限插值

动网格技术之超限插值 动网格技术简介: 应用背景:非定常流动(单个物体做刚性运动、多体相对运动和变形) [动态网格生成技术及非定常计算方法综述-张来平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 的并行版求解。如果移动边界为内部边界,则边界两侧的网格都将作为动态层参与计算。如果在壁面上只有一部分是运动边

相关文档
最新文档