动态网格 — CAE术语解释
动态网格
老师,进行阀门或活塞动作的CFD分析时,网格也必须动起来吗?
动态网格的理论基础
动态网格的基本概念
"动态网格"是指网格会动吗?但在CAE中,网格是分割计算领域的固定网格吧。这是什么意思呢?
好问题。确实在通常的FEM或CFD中网格是固定的。动态网格是指在计算领域的形状或边界随时间变化的问题中,使网格本身进行变形、重新生成来追踪这些变化的技术。例如,在模拟活塞在气缸内运动的内燃机时,需要根据活塞的运动来压缩、拉伸燃烧室的网格。
使网格动起来会产生单元歪斜,计算不会崩溃吗?怎样才能保证品质呢?
完全正确,简单的变形很快就会导致单元歪斜,雅可比行列式变为负数。因此我们主要使用3种方法来应对。第一种是"网格光滑化"。只调整节点位置,计算成本低,但对于大变形有局限。第二种是"网格重新划分"。当歪斜程度超过阈值时,对该区域的网格进行重新生成。Ansys Fluent的动态网格中,可以设置歪斜度阈值(如0.7)来自动执行。第三种是"网格贴合"。将整个区域分为运动部分和固定部分,在接口处交换信息。
网格动起来会改变控制方程吗?普通的纳维-斯托克斯方程不行吗?
会改变。需要在网格运动的坐标系中描述物理规律。通常采用"任意拉格朗日-欧拉(ALE)定式化"。这是固定网格的欧拉描述和随物质运动的拉格朗日描述的折中方案。连续方程变为:
其中,$\mathbf{v}$是流体速度,$\mathbf{v}_g$是网格速度。当网格不运动时,$\mathbf{v}_g = 0$,回到常规方程。
动态网格的数值计算方法
主要方法和算法
刚才提到的光滑化、重新划分、贴合的具体算法是什么?
来分别说明。
光滑化:"拉普拉斯光滑化"是基础。将节点位置移动到相邻节点位置的平均值。简单易行,但边界附近需要限制。
重新划分:检测歪斜超过阈值的单元,删除周围网格后重新生成。Ansys Fluent中称为"局部重新划分",适用于三角形/四面体单元。不适合四边形/六面体单元。
贴合:"滑动网格"和"动态层"是代表性方法。
滑动网格和动态层怎样区分使用?
按运动类型区分。
滑动网格:适合旋转运动。例如涡轮机械中,将转子域和定子域的网格独立划分,通过接口在每个时间步进行数据插值。网格本身不变形,只是相对位置改变。
动态层:适合往复直线运动。通过添加/删除网格层来适应。活塞上升时,当间隙逼近最小值(如0.2mm)时,删除歪斜最严重的单元层。活塞下降时添加层。这样可保持单元数大致恒定。
时间步进有特别的考虑吗?网格改变时,需要将前一步的解映射到新网格上,对吧?
完全正确,这是动态网格计算的重要环节。发生重新划分的时间步中,旧网格上的物理量(速度、压力、温度等)需要通过"保守插值"映射到新网格的节点/单元中心。质量、动量、能量必须保守。这种插值误差会累积,所以重新划分的频率和触发条件需要谨慎设置。COMSOL Multiphysics中有"网格变更时的保守插值"设置项可以控制这一点。
动态网格的实务应用
设置工作流程和检查点
在Ansys Fluent中设置动态网格时,最开始应该检查什么?
首先是运动定义。确定哪个壁面如何运动,将其定义为"动态网格域"。运动类型选择"刚体运动"或"变形"。往复运动通常用UDF(用户定义函数)描述位移规律。其次是网格方法选择。根据区域形状和运动类型,决定启用光滑化/重新划分/层中的哪一种或组合。
参数设置容易失败的地方有哪些?
几点常见问题。
1. 重新划分触发条件:若"尺寸范围"设置过窄,重新划分频繁发生,计算变慢且插值误差累积。过宽则歪斜网格继续计算导致发散。初始网格最小、最大尺寸的2~3倍范围是参考值。
2. 动态层参数:层分裂/合并的基准系数默认为0.2和0.7,但对于快速运动需调整为0.15和0.8等,使层的添加/删除更敏感。
3. 时间步长:要足够小以适应网格运动速度。网格在一步内的移动不应超过最小单元尺寸的20%。
计算发散时,最先怀疑的设置是什么?
前几步就发散的话,首先怀疑初始网格品质和时间步长。启用动态网格前,必须确保静止状态的定常计算收敛。然后检查事件文件和网格统计输出,看重新划分是否异常频繁、层是否被一次删除多层。另外要注意,动墙附近的网格首层厚度(用于保证y+合适)在动态层作用下不应变得极薄。
动态网格的软件比较
各求解器的实现与特点
Ansys Fluent、STAR-CCM+、OpenFOAM在动态网格支持上有差异吗?
差异很大。
Ansys Fluent:历史悠久,功能丰富。GUI设置相对完善。支持光滑化/重新划分/层,并能与6DOF求解器联动追踪物体运动。但复杂变形或大规模重新划分时计算成本高。
STAR-CCM+:"重叠网格"(干涉网格)功能强大。背景网格与多个物体网格独立创建,重叠后通过插值处理干涉部分。无需大规模网格重新生成就可处理复杂相对运动(如车门开闭、机器人臂运动)。动态网格的修剪功能也很直观。
OpenFOAM:"dynamicFvMesh"库提供。灵活性最高,用户可用C++实现自定义运动和网格控制算法。但所有设置都要通过字典文件编程,学习难度高。
结构分析软件(Abaqus、LS-DYNA)也有"动态网格"吗?
术语相同但含义不同。结构分析中通常指"自适应网格细化"——在应力集中等梯度陡峭的区域,计算过程中自动细化网格。与流体的"动态网格"含义接近的是Abaqus/Explicit的"ALE(任意拉格朗日-欧拉)定式化"。用于处理结构大变形导致网格严重歪斜的问题,如流体-结构耦合或爆炸冲击问题。网格独立于物质运动,变形追踪物质点。LS-DYNA也提供"ALE法"和"SPH法(粒子法)"作为大变形问题中防止网格歪斜的手段。
我听说过网格贴合方法"Morpher"和"RBF"。这些是哪个软件的功能?
这些主要在Ansys Mechanical和Siemens NX Nastran等结构分析软件中使用,用于形状优化或参数变形结果向原CAD几何的平滑转移——这是"形状变形"技术。RBF(径向基函数)通过控制点位移来插值得到全域节点位移,生成非常光滑的变形。在CAE的前处理阶段用于设计变更时的自动网格更新。与流体的动态网格目的不同,但都涉及受控网格变形这一共同点。
动态网格的故障排除
常见错误和对策
计算中出现"Negative cell volume detected"错误并中断。怎样处理?
这是动态网格最常见的错误。表示网格歪斜严重,单元雅可比变为负。按以下顺序尝试:
1. 减小时间步长:网格移动速度相对于步长过大。试试从1e-4减到1e-5秒。
2. 放宽光滑化参数:Fluent的"Spring Constant Factor"默认为1.0,改为0.5时光滑化增强,歪斜更易分散。
3. 严格化重新划分条件:"Minimum Length Scale"稍增大,"Maximum Cell Skewness"从0.8降到0.7,使歪斜尚小时就触发重新划分。
4. 检查初始网格:运动前是否已有歪斜单元。特别要检查动边界附近的网格是否垂直分布。
使用动态层时,随着计算进行,接口附近网格变得越来越粗。为什么?
这是"层合并"频率超过"层分裂"的表现。层被删除(合并)的条件是厚度低于"合并高度"。此参数相对"分裂高度"过大。Fluent中通过"合并系数"和"分裂系数"控制,默认为0.7和0.2。网格变粗时,试试把合并系数从0.7改为0.8,分裂系数从0.2改为0.15,使层不易删除、易添加。另外,初始边界层网格首层厚度本身可能不够。
用滑动网格时,跨越接口的物理量(特别是涡)出现不连续。原因是什么?
主要有2个原因。
1. 接口网格不匹配:转动侧和固定侧的接口网格密度或位置差异大时,插值精度下降。最好两侧接口分割数相同,网格尺寸也相近。
2. 插值方法精度不足:默认插值多为一阶。Ansys Fluent的"Mesh Interface"设置中,将"Interface Interpolation Method"改为"Second Order"。计算成本增加,但涡、剪切层等梯度大的物理量传递精度提高。
3. 时间步粗糙:接口相对运动过大时,插值时信息"错开"大。旋转速度下,一步转过2~3度内是参考值。
相关主题
帮助
细节
报告