动态网格(网格变形)

分类:流体解析(CFD) | 统合版 2026-04-06
CAE visualization for mesh motion theory - technical simulation diagram
动态网格(网格变形)

动态网格(网格变形)的理论基础

概述

🧑‍🎓

老师! 今天讲的是动态网格(网格变形)吧? 那是什么?


🎓

ALE定式化。网格速度ug的引入。弹簧类比法、扩散法。



🧑‍🎓

我终于明白先辈说\"一定要做好定式化\"的含义了。


控制方程




$$ \frac{\partial}{\partial t}\int_V \rho\,dV+\oint_S \rho(\mathbf{u}-\mathbf{u}_g)\cdot d\mathbf{S}=0 $$
$$ \nabla^2\mathbf{u}_g=0 $$




离散化方法

🧑‍🎓

这个方程在计算机里实际怎么解?


🎓

使用有限元法(FEM)进行空间离散化。组装单元刚性矩阵,构建全局刚性方程。


🎓

进行到弱形式(变分形式)的转换,使用试验函数和形状函数进行Galerkin法定式化。单元类型的选择(低阶单元 vs. 高阶单元完全积分 vs. 低缩减积分)直接关系到求解精度和计算成本的权衡。




矩阵求解算法

🧑‍🎓

矩阵求解算法具体是什么意思?


🎓

通过直接法(LU分解Cholesky分解)或迭代法(CG法GMRES法)求解线性方程组。对于大规模问题,预处理迭代法很有效。



解法分类内存使用适用规模
LU分解直接法O(n²)小~中规模
Cholesky分解直接法(对称正定)O(n²)小~中规模
PCG法迭代法O(n)大规模
GMRES法迭代法O(n·m)大规模、非对称
AMG预处理预处理O(n)超大规模
🧑‍🎓

也就是说,在有限元法这一步做得不好的话,后面就会吃大亏啊。我要铭记在心!


商用工具中的实现

🧑‍🎓

有哪些软件可以用来做动态网格(网格变形)?


工具名称开发单位/现属主要文件格式
Ansys FluentANSYS Inc..cas, .dat, .msh, .jou
Simcenter STAR-CCM+西门子 Digital Industries Software.sim, .java, .csv
OpenFOAM开源(OpenCFD/ESI、OpenFOAM Foundation)字典文件(blockMeshDict等), .foam
ANSYS CFXANSYS Inc..cfx, .def, .res, .ccl

厂商谱系与产品整合历程

🧑‍🎓

各个软件的成长历程是不是很有意思?



Ansys Fluent

🧑‍🎓

接下来讲Ansys Fluent吧。这是什么内容?


🎓

由Fluent Inc.开发。2006年被ANSYS收购。基于非结构网格的通用CFD求解器。

现所属单位: ANSYS Inc.



Simcenter STAR-CCM+

🧑‍🎓

接下来讲Simcenter STAR的内容吧。这是什么?


🎓

由CD-adapco开发。2016年被西门子收购并整合到Simcenter品牌。以多面体网格为特色。

现所属单位: 西门子 Digital Industries Software


🧑‍🎓

听完这些,我终于明白为什么开发历程很重要了!



OpenFOAM

🧑‍🎓

OpenFOAM是什么具体意思呢?


🎓

来自Imperial College London的开源CFD工具包。由OpenCFD Ltd(ESI Group旗下)和The OpenFOAM Foundation并行开发。

现所属单位: 开源(OpenCFD/ESI、OpenFOAM Foundation)


🧑‍🎓

哇,开发历程的介绍,非常有意思! 想听更多呢。


文件格式与互操作性

🧑‍🎓

在不同的软件之间互相交换数据时有什么要注意的?


格式扩展名类型概述
CGNS.cgnsCFD数据CFD通用记号系统。CFD结果的标准交换格式。
VTK.vtk/.vtu可视化可视化工具包格式。用于ParaView等。
STL.stl网格仅支持三角形面片。3D打印标准。不适合CAE网格。
🎓

在不同求解器之间进行模型转换时,需要注意单元类型的对应关系、材料模型的兼容性、荷载和边界条件的表示差异。特别是高阶单元和特殊单元(内聚单元、用户定义单元等)往往无法在求解器间直接转换。


🧑‍🎓

原来,格式看起来很简单,其实内涵很深啊。


实务注意事项

🧑‍🎓

有没有教科书上没有的\"实战智慧\"?


🎓

网格收敛性的验证、边界条件的合理性检验、材料参数的敏感性分析,这些都非常重要。


🎓
  • 网格依赖性的检验:至少用3个网格密度水平来确认收敛性
  • 边界条件的合理性:设置物理上有意义的约束条件
  • 结果的验证:与理论解、实验数据、已知基准问题进行对比


  • 🧑‍🎓

    看来动态网格(网格变形)学问很大呢… 不过听了老师讲解,感觉理清了很多!


    🎓

    好样的! 实际动手是最好的学习方式啊。有不懂的地方随时来问我。


    Coffee Break 闲聊吧

    任意拉格朗日-欧拉法(ALE)的诞生——1974年流体-结构耦合的革新

    将流动的流体(欧拉描述)和变形的结构(拉格朗日描述)统一处理的\"任意拉格朗日-欧拉法(ALE: Arbitrary Lagrangian-Eulerian Method)\"由Hirt、Amsden和Cook在1974年提出。在此之前,CFD要么使用欧拉固定网格(流体流过网格),要么使用拉格朗日追踪(网格随流体运动),两种方法各有弊端。ALE赋予了网格\"任意速度\"运动的自由度,使得自由表面、晃荡、FSI(流体-结构耦合)分析成为可能。现代的动态网格CFD、VOF法、活塞燃烧仿真——这些都是ALE方法的后代。半个世纪前的概念至今仍支撑着最先进CFD的核心,这足以说明其重要性。

    动态网格(网格变形)的数值计算方法

    数值方法详述

    🧑‍🎓

    具体怎么用算法求解动态网格(网格变形)?



    🧑‍🎓

    也就是说,在动态网格这一步做得不好的话,后面就会吃大亏啊。我要铭记在心!


    离散化定式化



    🎓

    使用形状函数 $N_i$ 对未知量进行近似:



    $$ u^h(\mathbf{x}) = \sum_{i=1}^{n} N_i(\mathbf{x}) \, u_i $$




    🎓

    用公式表示就是这样。


    $$ K_e = \int_{\Omega_e} B^T \, D \, B \, d\Omega \approx \sum_{g=1}^{n_g} w_g \, B^T(\xi_g) \, D \, B(\xi_g) \, |J(\xi_g)| $$

    基本方程式的离散形式


    🎓

    用公式表示就是这样。


    $$ \frac{\partial}{\partial t}\int_V \rho\,dV+\oint_S \rho(\mathbf{u}-\mathbf{u}_g)\cdot d\mathbf{S}=0 $$
    $$ \nabla^2\mathbf{u}_g=0 $$

    🧑‍🎓

    只看公式还是有点迷蒙… 究竟表示什么?


    🎓

    将连续体控制方程离散化后,就得到下面这样的代数方程组:



    $$ [K]\{u\} = \{F\} $$


    🎓

    这里 $[K]$ 是全局刚性矩阵(或等价的系统矩阵),$\{u\}$ 是未知节点变量向量,$\{F\}$ 是外力向量啊。


    🧑‍🎓

    啊,我明白了!连续体的控制方程就是这样离散化的啊。


    单元技术

    🧑‍🎓

    \"单元技术\"听过,但不太明白呢…


    单元类型次数节点数(3D)精度计算成本
    四面体1阶线性4低(剪切锁定)
    四面体2阶二次10
    六面体1阶线性8
    六面体2阶二次20非常高
    楔形体线性/二次6/15中~高

    积分方案

    🧑‍🎓

    积分方案是怎么一回事?


    🎓
    • 完全积分:所有项都精确积分。刚性易被高估(锁定现象)
    • 低缩减积分:减少积分点数。提高计算效率,但有沙漏模式风险
    • 选择性低缩减积分 (B-bar法):体积项和偏差项分别积分。回避锁定

    • 🧑‍🎓

      听了这些,我总算明白单元类型为什么那么重要了!


      收敛性与稳定性

      🧑‍🎓

      收敛不了的时候,首先要检查什么?


      🎓
      • h-细化:细分网格(减小单元尺寸 h),提升精度
      • p-细化:增加单元的多项式次数,提升精度
      • hp-细化:同时优化 h 和 p

      • 🎓

        收敛速度:二阶单元的误差按 $O(h^2)$ 阶减少(光滑解的情况)


        🧑‍🎓

        原来细化网格看似简单,其实学问很大呢。


        求解器设置建议

        🧑‍🎓

        具体怎么用算法求解动态网格(网格变形)?


        参数推荐值备注
        迭代法收敛判定$10^{-6}$残差范数准则
        预处理方法ILU(0) 或 AMG取决于问题规模
        最大迭代次数1000未收敛时需调整设置
        内存模式在内尽可能使用

        风上差分(Upwind)

        1阶风上:数值扩散大但稳定。2阶风上:精度提高但有振荡风险。高雷诺数流动中是必需的。

        中心差分(Central Differencing)

        2阶精度,但Pe数 > 2时会出现数值振荡。低雷诺数、扩散主导的流动中适用。

        TVD方案(MUSCL、QUICK等)

        通过限制函数抑制数值振荡,同时保持高精度。对激波和陡峭梯度的捕捉很有效。

        有限体积法 vs 有限单元法

        FVM:自然满足保存律。CFD的主流。FEM:对复杂形状和多物理耦合有利。SPH等无网格法也在快速发展中。

        CFL条件(库兰数)

        显式方法:CFL ≤ 1是稳定条件。隐式方法:CFL > 1时仍稳定,但影响精度和迭代次数。LES:推荐 CFL ≈ 1。物理意义:一个时间步内信息不能传播超过一个网格单元。

        残差监测

        连续方程、动量、能量各残差下降3~4个数量级时判断为收敛。质量保存的残差特别重要。

        松弛因子

        压力:0.2~0.3,速度:0.5~0.7是一般初始值。发散时下降松弛因子。收敛后可上升来加速。

        瞬态计算的内部迭代

        每个时间步内迭代至定常解收敛。内部迭代次数:5~20次为目标。残差在时间步间波动时,需重新考虑时间步长。

        动态网格(网格变形)的实务应用

        实践指南

        🧑‍🎓

        老师,\"实践指南\"怎么讲?


        🎓

        动态网格(网格变形)的实务分析流程和注意事项来讲。


        🧑‍🎓

        也就是说,在动态网格这一步做得不好的话,后面就会吃大亏啊。我要铭记在心!


        分析流程

        🧑‍🎓

        从最初的一步开始教我吧! 应该从哪里开始?


        🎓

        1. 预处理 (Pre-processing)

        • 导入CAD数据并简化形状
        • 定义材料特性
        • 网格生成(选择单元类型和大小)
        • 设置边界条件和荷载条件

        🎓

        2. 求解 (Solving)

        • 求解器设置(解法、收敛准则、输出控制)
        • 提交作业并执行计算
        • 收敛性监测

        🎓

        3. 后处理 (Post-processing)

        • 结果可视化(位移、应力等物理量)
        • 结果验证与合理性确认
        • 报告生成


        网格生成的最佳实践

        🧑‍🎓

        怎样判断网格的好坏?



        单元品质指标

        🧑‍🎓

        请讲讲\"单元品质指标\"!


        指标理想值允许范围影响
        宽高比1.0< 5.0精度下降
        雅可比行列式比1.0> 0.3单元退化
        翘曲< 15°精度下降
        斜度< 45°收敛性恶化
        锥形比0< 0.5精度下降

        网格密度的确定

        🧑‍🎓

        网格密度的确定是什么意思?


        🎓
        • 应力集中部:至少布置3层单元
        • 应力梯度大的区域:单元尺寸减为周围的1/3~1/5
        • 荷载施加点附近:局部细化
        • 远场区域:用粗网格保证计算效率


        • 边界条件设置指南

          🧑‍🎓

          听说边界条件这一步错了,整个分析就报废了…


          🎓
          • 防止过约束:刚体运动的约束只需6个自由度
          • 利用对称性:减小计算规模
          • 荷载等分:集中荷载 vs 分布荷载的选择

          • 🧑‍🎓

            啊,我明白了! 过约束有这样的考虑啊。


            商用工具的实现步骤

            🧑‍🎓

            有这么多软件呢? 各自有什么特点? 告诉我吧!


            工具名称开发单位/现属主要文件格式
            Ansys FluentANSYS Inc..cas, .dat, .msh, .jou
            Simcenter STAR-CCM+西门子 Digital Industries Software.sim, .java, .csv
            OpenFOAM开源(OpenCFD/ESI、OpenFOAM Foundation)字典文件(blockMeshDict等), .foam
            ANSYS CFXANSYS Inc..cfx, .def, .res, .ccl

            Ansys Fluent

            🧑‍🎓

            接下来讲Ansys Fluent吧。这是什么内容?


            🎓

            由Fluent Inc.开发。2006年被ANSYS收购。基于非结构网格的通用CFD求解器。

            现所属单位: ANSYS Inc.



            Simcenter STAR-CCM+

            🧑‍🎓

            接下来讲Simcenter STAR的内容吧。这是什么?


            🎓

            由CD-adapco开发。2016年被西门子收购并整合到Simcenter品牌。以多面体网格为特色。

            现所属单位: 西门子 Digital Industries Software


            🧑‍🎓

            老师讲得好清楚! 软件名的困惑总算解开了。


            常见失败与对策

            🧑‍🎓

            初心者容易犯什么错? 想事先了解!


            症状原因对策
            计算不收敛网格质量差,边界条件不合理网格改进、约束条件检查
            应力异常大应力奇点,网格依赖避开奇点,局部网格细化
            位移不现实材料常数错,单位制混乱检查输入数据
            计算耗时过长不必要的细化,求解效率低网格优化、并行计算

            质量保证检查清单

            🧑‍🎓

            有没有教科书上没有的\"实战智慧\"?


            🎓
            • 用3个以上的网格密度水平验证网格收敛性了吗
            • 验证了力的平衡(反力总和)吗
            • 结果是否在物理上合理的范围内
            • 与已知的理论解或基准问题进行了对比吗


            • 🧑‍🎓

              看来动态网格(网格变形)学问很大呢… 不过听了老师讲解,感觉理清了很多!


              🎓

              好样的! 实际动手是最好的学习方式啊。有不懂的地方随时来问我。


              Coffee Break 闲聊吧

              汽车挡风玻璃刮水器的CFD——用动态网格分析雨滴清除性能

              挡风玻璃刮水器的CFD分析中,结合滑动网格/重新划分和VOF法对刮水器臂的往复运动和玻璃表面雨水膜(水膜)清除进行模拟。刮水器刀片清扫水膜的过程涉及刀片变形(FSI)、薄膜流(薄膜模型)、水滴飞溅(拉格朗日追踪)的耦合。汽车制造商的CFD案例显示,通过刮水器形状和运动轨迹优化,清除率从85%提高到95%。特别是在高速行驶(时速120km)时,空气动力会使刀片离开玻璃产生升力,所以刮水器的压紧力(向下压力)设计也需要CFD支持。

              动态网格(网格变形)的软件比较

              商用工具比较

              🧑‍🎓

              有这么多软件呢? 各自有什么特点? 告诉我吧!


              🎓

              动态网格(网格变形)对应的主要商用CAE工具的功能比较和各产品的历史背景详细介绍。


              🧑‍🎓

              也就是说,在动态网格这一步做得不好的话,后面就会吃大亏啊。我要铭记在心!


              支持工具列表

              🧑‍🎓

              有哪些软件可以用来做动态网格(网格变形)?


              工具名称开发单位/现属主要文件格式
              Ansys FluentANSYS Inc..cas, .dat, .msh, .jou
              Simcenter STAR-CCM+西门子 Digital Industries Software.sim, .java, .csv
              OpenFOAM开源(OpenCFD/ESI、OpenFOAM Foundation)字典文件(blockMeshDict等), .foam
              ANSYS CFXANSYS Inc..cfx, .def, .res, .ccl

              Ansys Fluent

              🧑‍🎓

              接下来讲Ansys Fluent吧。这是什么内容?


              🎓

              由Fluent Inc.开发。2006年被ANSYS收购。基于非结构网格的通用CFD求解器。

              现所属单位: ANSYS Inc.



              Simcenter STAR-CCM+

              🧑‍🎓

              接下来讲Simcenter STAR的内容吧。这是什么?


              🎓

              由CD-adapco开发。2016年被西门子收购并整合到Simcenter品牌。以多面体网格为特色。

              现所属单位: 西门子 Digital Industries Software


              🧑‍🎓

              听完这些,我终于明白为什么开发历程很重要了!



              OpenFOAM

              🧑‍🎓

              OpenFOAM是什么具体意思呢?


              🎓

              来自Imperial College London的开源CFD工具包。由OpenCFD Ltd(ESI Group旗下)和The OpenFOAM Foundation并行开发。

              现所属单位: 开源(OpenCFD/ESI、OpenFOAM Foundation)



              ANSYS CFX

              🧑‍🎓

              请讲讲\"ANSYS CFX\"!


              🎓

              由AEA Technology (英国) 开发的CFX。2003年被Ansys收购。耦合型求解器是特色。

              现所属单位: ANSYS Inc.


              🧑‍🎓

              啊,我明白了! 开发过程就是这样啊。


              功能比较矩阵

              🧑‍🎓

              预算和时间都有限,哪个的性价比最高?


              功能FluentStar-CCM+OpenFOAMCFX
              基本功能
              高级功能
              自动化/脚本
              并行计算
              GPU支持

              转换时的风险

              🧑‍🎓

              转换时的风险是什么意思?


              🎓
              • 单元类型的不兼容:求解器专有单元无法用中立格式表示
              • 材料模型的差异:同名的模型实现方式可能不同
              • 边界条件的重新定义:大多数情况需要手动重新设置
              • 结果数据的对比:输出变量的定义有差异(节点值 vs 单元值、积分点值)

              • 🧑‍🎓

                啊,我明白了! 不同工具间的转换就是这样啊。


                许可证形式

                🧑‍🎓

                听过\"许可证形式\"这个词,但没太理解呢…


                工具许可特点
                商用FEA节点锁定/浮动费用高但有正式支持
                OpenFOAMGPL免费但支持收费
                COMSOL节点锁定/浮动按模块购买
                Code_AsterGPLEDF开发的OSS求解器

                选择指南

                🧑‍🎓

                最后应该选哪个,给点判断标准吧?


                🎓

                动态网格(网格变形)工具的选择要考虑:


                🎓
                • 分析规模:对数万~数亿自由度的可扩展性
                • 物理模型:所需本构关系和单元类型的支持情况
                • 工作流:与CAD的集成度、自动化的便利性
                • 成本:初始投资 + 年度维护 + 培训成本
                • 支持:技术支持的质量和响应时间


                • 🧑‍🎓

                  看来动态网格(网格变形)学问很大呢… 不过听了老师讲解,感觉理清了很多!


                  🎓

                  好样的! 实际动手是最好的学习方式啊。有不懂的地方随时来问我。


                  Coffee Break 闲聊吧

                  动态网格CFD工具比较——发动机气门动作分析中Fluent与OpenFOAM的设置差异

                  发动机气门开闭动作的动态网格CFD中,工具的实现差异直接影响设置的难度。Fluent的Dynamic Mesh功能采用分层(添加/删除棱晶层)、光滑化、重新网格划分三种变形策略的组合,基于GUI的设置直观,且支持将气门升程曲线作为配置文件读入的功能。OpenFOAM的dynamicMesh通过dynamicMeshDict实现等效控制,但配置文件的书写量大,初期设置需要一定习熟。StarCCM+则用\"Motion\"功能将光滑化和重新网格划分基本自动化,用户负担最小,但许可证成本较高。在气门冲程较大的发动机分析中,任何工具都逃不过\"负体积\"(网格反演)出现的困扰。

                  动态网格(网格变形)的前沿研究

                  前沿话题与研究趋势

                  🧑‍🎓

                  动态网格(网格变形)领域今后会怎样发展?


                  🎓

                  动态网格(网格变形)的最新研究动向和先进手法。


                  🧑‍🎓

                  也就是说,在动态网格这一步做得不好的话,后面就会吃大亏啊。我要铭记在心!


                  最新的数值方法

                  🧑‍🎓

                  接下来讲最新的数值方法吧。什么内容?



                  🧑‍🎓

                  只看公式还是有点迷蒙… 究竟表示什么?


                  🎓
                  • 等几何分析 (IGA):直接使用NURBS基函数,实现CAD与CAE的无缝集成
                  • 粒子法 (SPH, MPM):无网格方法可追踪大变形和破坏
                  • 位相场法 (Phase-Field):用隐式表示界面,复杂界面追踪更简单
                  • 机器学习辅助代理模型、物理约束神经网络 (PINN)


                  • 高性能计算 (H