在以下两文中详细介绍了数值仿真中自适应网格加密的原理和方法
其核心思路是找出几何,物理场等变化较大的位置所在的网格单元,然后进行相应加密,或者找出非常小的地方进行网格稀疏。
本文介绍另外一种笔者早年使用过的一种网格加密标准,从测试结果来看,有好的,也有不好的,所以后来作为一种研究方法,并没有放到产品里。
在数值计算教程中,对于Ax=b的求解有一章专门介绍数值扰动的,也就是当b发生轻微改变时,对于x的影响情况。这种扰动可以评估A是否为病体矩阵等矩阵特点,也可以反映出求解算法的稳定性。同时这种评估可以从数值计算角度来验证有限元模型的正确性。
顺着这种思路,有些朋友可能已经猜到了,对刚度矩阵A进行敏感度分析,即找到那些对结果b敏感度高的自由度数据元素,再找到所对应的网格单元,按照敏感度高低进行排序,即能找到需要加密的单元。
在针对三维结构应力分析实际测试中,有些结果和使用场梯度作为指标的吻合的比较好,有些则相差的很远。
结果吻合的好的有如下特点:
矩阵A规模小(低于1e5)
求解使用矩阵求逆,没有使用迭代法
网格质量高,几乎没有低质量网格单元
需要加密的地方场梯度大,区分度明显
5. 边界条件使用第一边界条件
使用物理量或场的变化作为自适应网格指标比较直观,也容易理解;而从数值计算上来考虑,缺乏理论支持,在数值计算中存在很多不确定因素,比如大规模矩阵的迭代法本身存在误差,计算敏感度也存在误差,和加密无关的数值扰动也会带来误差,所有误差叠加在一起,最后结果可能就变得不可靠。
有兴趣的朋友可以试试在不同物理场和数值计算方法中的应用,针对某些特定条件下的计算,数值计算分析可能比物理场分析更有效。