STAR-CCM+如果计算不收敛怎么办?

小刘仿真日记 2024-06-25 17:35:04 阅读 74

​STAR-CCM+模拟经常遇到计算发散的问题(浮点异常)?对于排错这个事儿,如果不知道从哪里开始,什么应该优先检查? 可以按照下面的流程逐项检查,每一个CFDer都应该养成良好的仿真检查习惯。

Geometry

Mesh

Initial Conditions

Boundary Conditions

Wall Y+

Physics

Solvers

Extra Post-Processing

一、几何

几何是一切的来源,不要忽视几何的准备。几何图形需要准确地表示将要模拟的东西:

首先要确定几何尺度正确。大部分模型都是从外部以不同的放缩比导入的,要养成良好的尺度检查习惯。

检查模型中是否包含老旧的几何模型,或者不希望包含的几何,或者存在不封闭的间隙;设计人员关注点不同于CFD分析人员,几何导入和格式转换总会带入误差。

运行表面检查,STAR-CCM+提供了一个表面质量检查工具Repair Surface,确保几何清理干净并且可以用来划分网格。

在几何部件中,右键单击几何部件可以访问Repair Surface工具,该工具可用于在表面离散上运行诊断。必须处理的错误包括“pierced faces,free edges,non-manifold edges,and non-manifold vertices”,必须在开始体积网格生成之前解决。大多数时候,表面网格中的这些问题阻止了体积网格的生成,所以你甚至不能执行仿真。但也有例外,这些例外可能允许生成一个体积网格,但单元质量非常低。当然在使用自动表面修复时要非常小心,虽然它可以快速的解决几个穿孔面,但不能期望这个工具修复一切。

确保各部件之间的接触都已妥善处理,至少在各个部分之间没有被穿透的面(没有出现相互交叉的部分)、自由边。

二、网格

STAR-CCM+非常强大,可以生成非常好的网格质量,即使是复杂的几何图形。但是网格的质量总是需要检查的,因为网格规格有时可能不符合复杂的几何要求。例如,有1e-3m的小间隙,但指定的最小表面尺寸为1m。虽然STAR-CCM+可以生成一个网格,但在这种情况下,可能会出现一些质量较差的网格。

对于表面检查,STAR-CCM+也提供了一个体网格检查工具:STAR-CCM+ Menu > Mesh > Diagnostics,下面提供了一个STAR-CCM+输出的报告网格质量的主要标准,如:

Face validity:推荐大于0.9,允许少部分网格值位于0.8~0.9之间,但大部分网格位于0.8以下是不合理的。

Volume change:推荐大于1e-3,允许少部分网格值位于1e-3~1e-4之间,但大部分网格位于1e-4以下是不合理的。

使用阈值衍生体,以体积变化和表面有效性作为场函数,有助于对质量差的细胞进行定位和可视化。一旦定位,您有3个选择:

在要计算的领域提高网格规格,以提高网格质量。大多数的网格质量问题来自于表面网格规格,所以首先聚焦在表面网格上。

网格质量校正:一种物理模型,它对质量差的网格及其相邻网格的梯度应用一种特殊的处理,可以从物理连续体中选择。

移除无效单元:从区域中去除质量差的单元;他们的边界将被对称的边界所取代,以减少他们的去除对结果的影响。要使用此功能,右键单击感兴趣的区域并选择“删除无效单元格”。

通过参数设置修改网格是最为推荐的方式;如果实在是缺乏资源(时间,硬件资源),可以考虑使用“单元质量校正”这个物理模型,但是如果差单元太多时使用这个模型会对结果产生影响;最后如果模型非常复杂,差单元的数量比较少,可以考虑采用”移除无效网格“的手段。

三、初始条件

在稳态模拟中,初始条件应该尽可能地与模拟的预期结果一致。

在非定常模拟中,初始条件必须是模拟的精确初始条件。

与边界(例如,压力边界为100 atm,初始条件为1 atm)相比,初始条件严重错误或产生极高初始梯度的问题,通常在运行的早期就表现出来。

对于稳态模拟,推荐使用专家级初始化:

对于分离流,可以激活:

STAR-CCM+>求解>分离流>专家特性>连续初始化。

STAR-CCM+>求解> K-Epsilon湍流>专家特性>边界层初始化。

    对于耦合流,可以激活:

STAR-CCM+>求解>耦合>隐式>专家初始化>方法属性>网格排序。

STAR-CCM+>求解> K-Epsilon湍流>专家特性>边界层初始化。

四、边界条件

首先,可以使用初始化求解来可视化计算场景,例如检查边界的位置是否正确,流向和初始流的大小等等。工具栏中的绿色标志按钮为初始化求解功能。

第二,确保入口和出口离目标区域足够远。理想情况下,流域的入口和出口应该位于没有任何不规则模型的地方。例如,对于内部流动,建议在入口和出口使用大于8倍水力直径的拉伸网格,目标是确保在出口没有回流,入口有完全发展的湍流。

第三,确保使用兼容的边界条件,并为选择物理连续体最适合的边界条件。例如,可压缩流体不要使用速度入口。

最后,作为最后的手段,可以使用斜坡函数逐步地增加或减少边界值。

五、壁面Y+和棱柱层网格

Wall Y+可用于指导棱柱层网格规格,以确保准确捕捉近壁现象。不好的Wall Y+会导致计算错误的,甚至发散,所以网格健壮性和准确性的目标是使Wall Y+得到合适的值,Wall Y+是基于密度,粘度,速度和特征距离而生成的。

为了得到合适的值,需要关注影响Wall Y+的变量是什么。密度和粘度是材料的特性,速度是模拟的输出(是试图预测的量);所以剩下的唯一变量是特征距离。在STAR-CCM+中,用于计算Wall Y+的特征距离为从壁面到近壁单元质心在法向上的距离。换句话说,它是第一棱柱层厚度的一半。这意味着变量是棱柱层的网格,更具体地说是近壁层的厚度。

密度和粘度通常是恒定的或者只是略有变化。这基本上意味着大部分的Wall Y+灵敏度来自流速和第一棱柱层厚度变化。

当使用高Y+方法(Wall Y+ > 30)时,意味着在靠近固体壁面的首层网格中,将采用对数律(Log-law)来模拟粘性底层内的速度剖面。

当使用低Y+方法(Wall Y+ <1),意味着需要对靠近固体壁面的粘性底层进行精细的空间离散化,以准确捕捉速度剖面和其它流动特性。

一般需要避免在“缓冲区”(1 < Y+ < 30),所以你需要管理你的棱柱层网格,以大部分域表面位于高Y+或者低Y+区域;因为无法避免表面的一些部分在缓冲区(死区,过渡区),建议当壁面处理完全可用时使用All Y+模型,这个模型在低Y+和高Y+之间使用一个混合函数,这样就可以覆盖整个Y+范围。

为了保证网格质量,相邻网格的体积变化需要保持合理,也就是相邻网格差异不要太大。如果首层网格非常薄,棱柱层网格和核心区域网格的体积变化率会比较高,为了平滑过度增加边界层数并使用合理的网格增长率。一般推荐值:

高Y+法边界层划分2层

低Y+法边界层划分5~15层

一般来说推荐高Y+法,因为可以节省计算资源;当流体从壁上的附着/分离对准确捕获流动很重要时,使用低Y+方法。

综上,当划分边界层网格时,默认使用2层棱柱层,在流动区域使用5到15层。然后调整棱柱层网格参数,以获得良好的Y+值和实现网格从棱柱层到核心网格的平滑过渡。

六、物理模型

物理模型必须反映仿真实的物理过程。我们常常疑问:我刚刚选择的物理模型有什么限制?它是否可以满足我的计算资源和对真实物理过程的模拟。例如:

VOF模型不能用于模拟微小的液滴,除非使用了十分精细的网格

分离流模型不适用于高可压缩流(马赫数> 0.6)

相反,另一个好问题是:有没有一种更简单的方法/模型可以让我使用更少的资源或更健壮地满足我的需求?例如:所有壁面都使用低Y+方法是否是必要的,部分使用高Y+方法可能节省计算资源。最好的仿真模型是在计算资源和精度之间做出合理妥协。

七、求解器

如果检查了上述所有步骤,仍然面临发散问题,那么可以开始使用求解器属性。必要时可检查和减少松弛因子或Courant数。还可以从较低的值开始,然后随着模拟收敛而平稳地增加这些值,从而使求解变得更加健壮。

八、引入额外的后处理

在求解器属性面板中,某些情况下打开 Temporary Storage Retained 选项,在启用选项的情况下运行至少一个迭代步,将能够访问额外引入的场函数,这些场函数可用于解决问题。例如,局部残差、梯度、校正信息等等,这些可以被后期处理和可视化,以检查模型上极高梯度的区域,例如残差。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。