最近总有小伙伴向我询问Fluent中的动网格问题,因此决定做一期关于Fluent动网格技术的内容。

动网格技术在流体仿真中很特殊,应用也很广。生活中能够碰到形形色色的包含有部件运动的问题,比如说我现在想要出门,那么开门的一瞬间,门的运动会影响到房间内部的空气流动,这就是一个典型的动网格问题。在工程中,动网格应用也非常的广泛,如依靠转子运动而工作的泵和压缩机、依靠旋翼旋转而飞行的直升机、随海浪起伏的船只、内燃机缸内活塞运动等等。

CFD中才有动网格

为什么只有搞CFD的人才会提动网格这个事儿?
固体结构仿真中并不会有动网格的提法。因为在结构计算中,网格节点的运动位移是要求解计算的基本物理量,而模型边界上的位移则可以直接作为载荷条件输入。结构仿真计算基于拉格朗日坐标系, 每一个网格节点都具有转动和(或)平动自由度,因此节点运动是理所当然的事情。

然而流体计算基于欧拉坐标系,在欧拉坐标系中,计算空间与网格节点保持固定,因此在利用CFD计算流体问题时,要考虑区域中部件的变形或运动,则需要通过特殊的手段来解决。

CFD中运动的解决方案

当前很多的CFD软件都有针对边界或区域运动的解决方案。

商业CFD软件中用得比较多的方法包括:

  • 方法一:针对区域运动的单参考系、多参考系及混合平面模型
  • 方法二:针对区域运动的滑移网格
  • 方法三:针对边界运动及区域运动的动网格

其中方法一为稳态模型,采用的是动参考系模型,在计算过程中,网格实际上并不运动。滑移网格方法中,网格的确是在运动,然而滑移网格只能解决区域运动问题,对于只有区域内各边界以不同规则运动的情况则无能为力。而这些问题都可以采用动网格技术来实现。动网格最接近真实物理状态。

其实还有一种情况,比如说在CFD中可以设定壁面是运动的还是静止的,可以设定运动壁面的平动速度或转动速度。但这仅仅只是边界条件的设定罢了,并未涉及到区域或边界的真实运动,网格也不会产生任何变化。

动网格包含的内容

动网格(Dynamic Mesh)通常包含两个方面的内容:运动方式描述以及网格的处理。

运动方式的描述

在CFD中由于速度是可以求解的量,因此在定义物体部件的运动时常用速度进行表达。

主要有两种类型:

  • 显式定义。直接给定运动部件的运动速度。可以是常数,也可以是与时间相关的函数。
  • 隐式定义。无法直接获得速度,但是速度可以通过牛顿定律计算得到。

对于可以显示定义的运动方式,我们可以称之为主动运动;而无法直接得到速度的运动方式,可以称之为被动运动。对于被动运动,目前很多主流的CFD求解器都提供了6DOF模型进行解决。

网格的处理

部件的运动势必会影响原始网格,当运动量较大时,可能会导致网格退化,甚至产生负体积。

目前成熟的CFD软件对于动网格中网格的处理主要分为两个阵营:

  • 采用网格重构。当部件产生运动后,程序检测部件运动对于初始网格的影响,并对运动后的网格进行重新划分,以确保网格质量能够满足要求。
  • 采用重叠网格。重叠网格基本原理很简单,采用两套网格,一套为背景网格,一套为前景网格。部件运动过程中,程序不断的检测背景网格与前景网格的重合区域,并计算交接界面。重叠网格有点儿类似于区域运动,只不过这个区域是叠加在背景网格上而已。

Fluent中的动网格

Fluent中动网格功能非常齐全,对于部件的运动,Fluent提供了Profile及UDF宏来进行定义,只要运动规律能够用数学语言描述,软件可以定义任意复杂程度的运动。

对于网格的处理,Fluent以网格重构(Remeshing)见长,同时还包含了网格光顺方法及动态铺层方法,以应对不同的应用场合。同时在新版本的Fluent中,还加入了Overset重叠网格,对于复杂运动的网格处理提供了更为强大的功能。

在被动运动方面,Fluent可以利用UDF将被动运动转化为主动运动,也可以利用6DOF模型。同时还针对发动机缸内运动提供了in-cylinder运动描述。除此之外,Fluent还提供了接触检测功能以应对边界运动过程中发生的接触问题。

在后续的文章中,我们将会逐步的剖析Fluent处理动网格所采用的方法。


更多CFD资料可微信扫描下方二维码关注微信公众号。

Fluent动网格【1】:概述的更多相关文章

  1. Fluent动网格【13】:网格光顺总结及实例

    光顺(Smoothing)方法是最基本的网格节点更新方法.Fluent提供了三种光顺方法: Spring弹簧光顺 Diffusion扩散光顺 Linearly Elastic Solid光顺 三种方法 ...

  2. Fluent动网格【8】:网格节点运动案例

    Fluent动网格中的DEFINE_GRID_MOTION宏允许用户定义网格节点的运动.本案例演示采用DEFINE_GRID_MOTION宏指定边界节点的运动. 案例动网格效果如图所示. 案例描述 本 ...

  3. Fluent动网格【11】:弹簧光顺

    动网格除了前面讲了很多的关于运动指定之外,另一个重要主题则为网格的更新. 在部件运动之后,不可避免的会造成网格形状的变化,如若不对网格加以控制,在持续运动的过程中,则可能造成网格极度变形.歪曲率过大, ...

  4. Fluent动网格【9】:区域运动

    本文所述的区域运动并非动网格中的运动域,而是指在多参考系(MRF)或滑移网格中所涉及到的区域的运动. 在滑移网格中指定区域运动时,除了能够指定绝对运动外,还能指定某一区域与其他区域间的相对运动,如图所 ...

  5. Fluent动网格【7】:网格节点运动

    在动网格中,对于那些既包含了运动也包含了变形的区域,可以通过UDF来指定区域中每一个节点的位置.这给了用户最大的自由度来指定网格的运动.在其他的动网格技术中(如重叠网格)则很难做到这一点.定义网格节点 ...

  6. Fluent动网格【5】:部件变形

    在动网格中关于部件运动除了指定刚体运动外,有时还需要指定某些边界的变形,这种情况经常会遇到,尤其是与运动部件存在相连接边界的情况下,如下图中边界1运动导致与之相连的边界2和边界3发生变形. Fluen ...

  7. Fluent动网格【3】:DEFINE_CG_MOTION宏

    除了利用Profile进行运动指定之外,Fluent中还可以使用UDF宏来指定部件的运动.其中用于运动指定的宏主要有三个: DEFINE_CG_MOTION DEFINE_GEOM DEFINE_GR ...

  8. Fluent动网格【2】:Profile文件

    动网格中一个重要任务是部件运动方式的指定.在动网格中指定部件的运动,往往将部件的运动方式指定为其加速度.速度或位移与时间的相关关系,本文主要讲述如何在Fluent中利用瞬态Profile文件指定部件的 ...

  9. Fluent动网格【6】:部件变形案例

    本案例描述使用动网格过程中处理边界变形的问题. 案例描述 本案例几何为一个抛物线旋转成型的几何体.如图所示. 其中上壁面刚体运动引起抛物面变形.刚体运动方程为: \[ v=\left\{ \begin ...

随机推荐

  1. UVA 129困难的串【DFS】

    题目链接 题目大意: 给出n,l:要求按特定格式输出由前l个大写字母构成的按字母表排列的第n个没有连续重复子串的字符串以及该字符串长度. 此题是一道dfs递归回溯的基础题,难点在于对当前字符串是否有连 ...

  2. 003.Kickstart部署之HTTP架构

    一 准备 1.1 完整架构:Kickstart+DHCP+HTTP+TFTP+PXE 1.2 组件应用 Kickstart服务端IP:172.24.8.12 DHCP:提供客户端IP,网关,镜像路径等 ...

  3. 在 Windows 10 中使用 OpenAI Spinning Up

    前段时间,openAI 发布了 Spinning Up ,本篇博客将介绍如何在 Windows 系统中使用 Spinning Up. 什么是 Spinning Up 先来说说 Spinning Up, ...

  4. vimtutor学习笔记

    简介 vimtutor是vim这款知名的文本编辑器的学习工具/指南.语法如下. vimtutor [-g] [language] gvimtutor -g选项和gvimtutor是启动GUI版本的指南 ...

  5. Linux成长之路

    Linux命令格式: 命令   选项 参数command [-options] [parameter1] ···· 常用命令: tree 以目录树的方式显示: tree / 以目录树方式显示根目录结构 ...

  6. Javascript实现对象的继承

    在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼.压个啥样,就得是个啥样,不能随便动,动一动就坏了.而在Javascript中,没有模子,月饼被换成了面 ...

  7. android studio的汉化 教程 及解析

    android studio的汉化 教程 及解析 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.c ...

  8. 迪杰斯特拉算法dijkstra(可打印最短路径)

    #include <iostream> #include <iomanip> #include <string> using namespace std; #def ...

  9. Pyinstaller安装以及参数使用

    一.安装 pip install pyinstaller (注:win7系统安装有pywin32依赖包,先按pywin32在进行以上的步骤) 二.参数说明(这里要注意大小写) -F   表示生成单个可 ...

  10. Unity枚举和字符串的相互转换

    直接上代码,见下图: public enum enumEx { A, B, C, D, } public class enumTest : MonoBehaviour { void Start () ...