解检验 — CAE术语解说
解检验
怎样判断分析结果是否"正确"?与实验相符就可以了吗?
解检验的理论基础
解检验的定义和目的
"解检验"这个词常听到,具体是指做什么?只是看结果对不对吗?
好问题。解检验(Verification)是确认数值计算"正确性"的过程。具体来说,是评估"建立的数学模型,计算机解得有多准确"。比如说,如果支配方程是Navier-Stokes方程,就要调查由离散化和迭代计算引起的误差是否在允许范围内。
"允许范围"怎么决定?是根据经验吗?
不是经验性的。用定量指标。最常见的是检查网格收敛性。比如说,用粗网格、中等网格、细网格三种,计算某点的应力,观察变化趋势。细化网格后结果基本不变时,就认为获得了网格无关解。变化在1%以下就可以认为在实用上收敛了。
除了细化网格,还有其他验证方法吗?
有。另一个强大方法是使用人工制造解(Manufactured Solution)。先随意定一个解(如速度场或温度场),代入支配方程,反算得出使其满足方程的源项(外力或热源)。最后用那个源项做CAE分析,看数值解是否与最初定的解一致。这样就能验证代码或设置本身是否能正确求解方程。
解检验的数值计算方法
离散化误差的定量评估
检查网格收敛性时,只计算3次对比就行吗?有没有更系统的方法?
为此,广泛使用网格收敛指数(GCI: Grid Convergence Index),这是基于Richardson外推法的定量评估方法。从3个及以上不同网格尺寸
收敛率是什么意思?
离散化误差以网格尺寸
求解器的迭代收敛和这个离散化误差收敛是不同的东西吧?怎样分开评估?
这个区别非常重要。做解检验时,首先要让求解器的迭代残差足够小(比如10的-6次方以下),使离散化误差以外的误差可忽视,然后再调查网格依赖性。Ansys Fluent可用"残差监视器",Abaqus/Standard可用"MSG文件"看迭代历史。迭代不充分的状态下讨论网格收敛性没意义。
解检验的实务应用
实务中的检验工作流
实际设计工作中,每次都做3种网格计算太耗时间了吧?
确实全部分析都做完整GCI分析不现实。实务中采用分阶段做法。首先,从过去相似形状的分析数据库创建"网格规范书",规定各区域大概网格尺寸。比如汽车车身刚性分析,焊点用5mm,平面用20mm这样。新分析先按规范做网格,计算一次。
这样就完了吗?
不,下一步最重要。看结果,找出应力集中发生的区域或结果处于设计判断临界线的区域。对这种"关键区域",额外做一步网格细化一级的局部细密化分析。不是全部细化,而是靶向性地只在关键部分深化验证。这样既能控制计算成本,又能确保重要部分的解精度。
局部细密化时,粗网格和细网格的交界处怎么处理?
这正是实务的要点。Ansys Workbench用"网格控制"可指定局部细密化范围,但细网格和粗网格交界处要设置过渡区,避免尺寸剧变。通常相邻要素尺寸比控制在1.5倍以内。违反这个原则会在交界处产生不自然的应力集中,成为验证的干扰。
解检验的软件对比
各软件的检验支持功能
不同软件的解检验支持功能差别大吗?
差别很大。Ansys Workbench有"Convergence"工具。用参数化研究改变网格尺寸,自动执行多个分析,把指定结果(最大应力等)的收敛状况用图表可视化。而Abaqus/CAE标准版没有直接对应的自动化工具,但可以用Python脚本搭建类似流程。
有专门的验证确认软件吗?
有。NVIDIA提供的"Simulation Verification & Validation Suite"特别针对CFD分析,自动进行网格质量检查、求解器设置与最佳实践对照、结果统计对比等。开源方面"CEI Ensight"的结果比较和验证功能也很强。但这些不是通用求解器,而是结果评估的后处理工具定位。
COMSOL Multiphysics怎么样?多物理场的话验证应该更复杂吧。
COMSOL在"研究"模式有"网格收敛性研究"的内置功能。可系统地改变全局网格尺寸和局部网格设置,并建立一系列分析。多物理场时,各物理场的关注量不同,比如需要分别追踪结构应力和最高温度的收敛性。COMSOL这个功能的优点是可同时监视多个目标变量。
解检验的故障排除
检验时容易陷入的问题
网格越来越细,最大应力反而越来越大,没有收敛的迹象。这是什么情况?
这是典型的"奇异点"问题。锐角或完全固定点附近,理论上应力会无限大。网格越细越接近无穷大,数值就无限增长。这种情况无法获得网格收敛性。实务上可以用圆角消除几何奇异点,或者改为评估"离结构不连续处足够远的位置"的应力(如ASME锅炉压力容器规范中应力线性化的思想)。
改变网格后,最大应力的发生位置本身移动了。这对验证有问题吗?
问题很大。这说明网格太粗,没抓住真的应力集中部位,或者网格品质(纵横比、斜度)极差,数值噪声表现为最大值。首先检查网格质量报告。Abaqus中纵横比50以上或内角10度以下的单元会有警告。检查最大应力附近有没有这样的单元,需要改进网格。
求解器收敛标准设太严会计算时间巨大。折中方案有吗?
有。先把残差基准放松一点(如10的-3次或-4次),计算并监视关心的物理量(如阻力、平均温度)的时间序列历史。即使残差还在波动,只要物理量已稳定在某值,多数情况可认为实用上收敛了。但这只是验证"最后阶段"的做法。检查网格依赖性的"正式验证计算"应尽量降低残差(至少10的-6次方),排除求解器误差,这是专业态度,计算时间再长也得做。
相关话题
价值
更详细
错误