首页/文章/ 详情

为什么使用代数多重网格AMG方法进行大型CFD仿真

1月前浏览557

代数多重网格(AMG)求解器为大型计算流体动力学(CFD)仿真提供了稳健的解决方案。
代数多重网格AMG(Algebraic Multigrid)和几何多重网格GMG(Geometric Multigrid)是两种用于求解大型稀疏线性系统的多重网格方法。它们都是迭代求解技术,旨在通过在多个分辨率的网格上工作来加速收敛。尽管它们的目标相同,但它们在实现和应用上存在一些关键区别。

一、几何多重网格方法

GMG是一种基于物理空间的多重网格方法,它利用了问题的几何多尺度性质。在GMG中,问题的解在一系列不同粗细的物理网格上进行求解和传递。GMG的关键特点包括:
- 依赖几何信息:GMG需要问题的几何结构信息来创建从细到粗的网格序列。每个粗网格是通过在物理空间中合并相邻的细网格单元得到的。
- 限制和插值算子:GMG使用限制算子将细网格的解传递到粗网格,插值算子将粗网格的解传递回细网格。这些算子通常基于几何信息,如单元中心或面的平均值。
- V循环和W循环:GMG通过在不同网格层次之间传递解来加速收敛,包括V循环(单一的粗-细网格传递)和W循环(多次粗-细网格传递)。
- 适应性:GMG方法特别适合于具有明显多尺度特性的问题,如流体动力学和热传递问题。

二、代数多重网格方法(AMG)

AMG是一种不依赖于问题的具体几何结构的多重网格方法。它直接在系数矩阵上构建多重网格层次结构,而不是在物理空间中创建网格序列。AMG的关键特点包括:
- 无需几何信息:AMG不需要复杂的几何结构信息,适用于各种类型的矩阵,包括那些难以从几何结构生成多重网格的问题。
- 粗化策略:AMG通过代数方式(如聚类或矩阵分解)生成粗网格。这个过程不依赖于物理空间的划分,而是通过分析矩阵的结构来确定哪些未知数可以聚合成一个粗网格节点。    
- 平滑算子:在每个网格层次上应用迭代求解器(如雅克比、高斯-赛德尔或SOR方法)来平滑误差。
- 插值算子:设计算子来在不同网格层次之间传递解,以便在粗网格上计算得到的解可以准确地传递回细网格。
- 鲁棒性:AMG方法对于各种类型的矩阵和问题都表现出良好的收敛特性,尤其适用于非结构化网格和复杂几何形状的问题。

三、AMG与GMG的比较

- 适用性:AMG适用于各种类型的矩阵,尤其是那些难以从几何结构生成多重网格的问题。GMG则更适合于具有明确几何结构的问题。
- 实现复杂性:AMG的实现通常不需要对问题的几何结构有深入的了解,而GMG的实现则需要处理网格的创建和细化。
- 性能:在某些情况下,特别是对于具有良好多尺度特性的问题,GMG可能提供更快的收敛速度。然而,AMG在处理复杂问题时通常更为鲁棒。
- 并行性:两种方法都可以并行化,但AMG由于其代数本质,可能更容易在现代多核和分布式计算环境中实现高效的并行计算。    

四、为什么应该使用AMG方法?

GMG方法对于流体流动问题非常高效。然而,它有一个非常严重的限制。对于复杂几何体,可能很难甚至几乎不可能生成一个足够小的粗网格,以便在最粗级别解决方程系统。
如下图,离心泵的薄叶片导致流体叶片周围的非常小的元素。这也意味着即使是最粗的网格级别也会产生太多的元素,因此产生太多的方程,无法使用GMG的直接求解器解决。
AMG方法不需要不同的网格级别。AMG方法中的粗化过程仅基于线性方程组的结构,或者更准确地说,基于代表方程组左侧的矩阵。该方法将矩阵中相连的条目聚合成更少的条目到一个新的较小矩阵中。聚合条目的过程可以重复,甚至可以构建更小的矩阵。然后根据执行的聚合次数为这些矩阵分配不同的级别。然后,对于在不同级别上构建的矩阵,多重网格循环的原理与GMG方法的预平滑、后平滑和最粗级别求解相同。


   

来源:CFD饭圈
求解技术多尺度
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-09-08
最近编辑:1月前
CFD饭圈
硕士 分享CFD文章,感谢关注
获赞 27粉丝 27文章 378课程 0
点赞
收藏
作者推荐

菜鸟式给你讲讲CFL条件是什么以及怎么用

CFL条件,即Courant-Friedrichs-Lewy条件,是用于模拟对流或波动现象的不稳定数值方法稳定性的一个条件。因此,它在计算流体动力学(CFD)中扮演着重要角色。下面的部分将讨论数值上推导出CFL条件的过程,然后在后面部分中,通过一个案例检验其实际设置计算结果。什么是CFL条件?Culbert B. Laney在《Computational Gasdynamics》一书中对CFL条件的定义如下:完整的数值依赖域必须包含物理依赖域(the full numerical domain of dependence must contain the physical domain of dependence)。因此,CFL条件表达了在网格内任何信息在时间步长内传播的距离必须小于网格元素之间的距离。换句话说,给定单元或网格元素的信息必须仅传播到其紧邻的邻居。CFL条件常与线性稳定性条件或非线性稳定性条件混淆。然而,需要强调的是,它不是稳定性的充分条件,通常其他稳定性条件比CFL条件更具限制性。CFL推导我们可以以简单直观的方式推导CFL条件。让我们从考虑一个简单的线性对流问题开始,即量_u_的对流:对于简单的量_u_的线性对流问题,一阶显式迎风格式变为:其中_a_是速度大小,_Δt_是时间步长,_Δx_是网格元素之间的长度。通过对这个格式进行泰勒级数展开,这个格式引入了所谓的数值扩散,或数值粘度,等于: 正如从扩散系数预期的那样,数值扩散系数必须是正的,否则,解决方案将随时间无限增长,使数值方案不稳定。上述表达式中的右括号内的项通常被称为库朗特数,它是一个无量纲量。因此,库朗特数可以表述如下:根据数值扩散系数的讨论,对于任何显式的简单线性对流问题,库朗特数必须小于或等于1,否则,数值粘度将是负的:1928年,库朗特、弗里德里希斯和莱维在一篇文章中首次引入了这个条件。这个推导被认为是对CFD技术发展最有影响力的作品之一。CFL条件的其他类型问题这种讨论可能只对显式方案成立。同样重要的是,简要讨论在更现实的问题中发生的情况。首先,隐式的线性对流是无条件稳定的,也没有CFL条件。这是因为隐式方案使用整个域来计算每个时间步长。然而,每个时间步长隐式计算(即,求解隐式线性系统)可能非常昂贵。此外,随着时间步长的增加,时间精度会降低。因此,使用带有较低时间步长的显式方案是合理的。对于更复杂和有代表性的问题,包括非线性流动,CFL条件作为设置时间步长的参考。此外,当处理非线性现象时,即使选择了较大的库朗特数,隐式形式也可能存在稳定性问题。因此,在这些情况下,可能需要对线性化公式进行局部稳定性分析。尽管如此,CFL条件对于非线性问题仍然是必要的。 常见CFL使用让我们从一个模拟实例的问题开始。实例采用水渠流动的案例,它由一个带有入口和出口的矩形盒子组成。入口规定一个速度入口边界条件,出口将由规定的压力边界条件组成。 当选择0.001秒的时间步长,入口速度为5m/s。收敛图如下所示: 通过检查图表,可以清楚地看到,最终问题的最大库朗特值超过了1。通过将时间步长增加到仅0.004秒,库朗特数上升到2.0以上,导致求解器发散并显示错误。然后模拟被中断: 解决CFL收敛问题有几种方法可以解决这种收敛问题。回想库朗特数:为了降低这个值,可以:- 降低时间步长,或- 制作更粗糙的网格。第二个选项对某些人来说有时是违反直觉的,因为它似乎不合理,更粗糙的网格可以帮助收敛。然而,很容易理解,更细的网格有助于准确性。这激励工程师创建更细的网格,但忘记了降低时间步长值。关于第一个选项,正确的时间步长值并不总是显而易见的。问题可能在模拟过程中发生复杂现象。这要求工程师为模拟设置一个低时间步长,即使这些复杂现象只在一小部分模拟时间内发生。 一般CFD求解器允许使用可调整时间步长。此选项默认激活,并有两个参数:- 最大库朗特数- 最大时间步长将最大库朗特数设置为一个安全值,例如0.5,看看模拟会发生什么:求解器能够将最大库朗特数保持在0.5左右,这足以使模拟很好地收敛。来源:CFD饭圈

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈