做数值计算可能会了解到多重网格(Multigrid)这个名词,多重网格不能从字面意思理解,不是网格~,其实是一种对微分方程进行数值求解的算法,就像更加熟悉 的PCG、PBiCG等数值求解算法一样。由于多重网格算法需要构造出不同的网格层因此也是一种比较特殊的网格生成算法(这一点可以看一下专业人士的介绍应该更容易理解)。
多重网格算法是一种迭代算法,其基本思想是:在不同规模网格上求解同一个问题,细网格负责消除误差的高频分量,而误差低频分量的消除则由粗网格负责完成,细网格光滑、粗网格校正、嵌套迭代技术是该算法的三个关键点,在细网格上作光滑迭代消除误差的高频分量,然后对误差的低频分量在更粗网格上进行校正,嵌套迭代技术通过限制和延拓算子连接所有层共同求解同一个问题,细网格光淆与粗网格校正过程的有机结合构成了多重网格
[1]朱兴文. 多重网格数值求解不可压流体的局部Fourier分析[D].昆明理工大学,2016.由于多重网格能够有效提高数值计算的计算效率、以及通过不同层的网格实现消除误差的有点,被广泛应用于流体动力学问题,特别是对N-S方程组( Navier-Stokes equations)的数值求解。目前很多的商业软件采用了多重网格算法(multigrid algorithm),例如Fluent、Comsol、Star ccm+等。
Fluent包含代数多重网格(Algebraic Multigrid,AMG)和全近似存储(Full-Approximation Storage ,FAS)多重网格两类多重网格方法,其中代数多重网格是用于隐式求解器,而全近似存储多重网格则用于显式求解器,当然实际使用中标量的求解应该使用的是代数多重网格。全近似存储(Full-Approximation Storage ,FAS)多重网格又可以被称为几何多重网格,几何多重网格需要对粗网格进行构建和存储来获得“粗”方程组,而代数多重网格获得“粗”方程组无需使用任何几何或在粗网格上重新离散化。
据了解Comsol现在也是具备代数多重网格和几何多重网格两类多重网格方法,Star ccm+不甚了解。
另外开源大作Openfoam也具备多重网格算法,叫代数几何多重网格算法(GAMG)。
THis part one can see https://zhuanlan.zhihu.com/p/651029272
See https://www.cnblogs.com/liangliangdetianxia/p/4019842.html