在“非完美矩形”网格上的多重网格


9

多重网格介绍通常使用矩形网格。值的插值就很简单了:只需在粗网格的两个相邻节点之间的边缘上线性插值,即可找到该边缘上的细网格节点的值。

对于FEM应用程序,我有一个“拓扑”为矩形的网格,因此节点连接与矩形网格相同。但是,节点在网格上的排列不是完美的,但可能会移动很短的距离以更好地适应几何形状,同时仍保持与理想矩形网格中的连接。

网格看起来像这样:网格示例。您会看到:连接是“规则矩形”,但节点位置不是。

我可以为这种设置想象几种“合理的”几何插值方案。

普遍的问题是:只要插值是“良好”的,多重网格是否需要一个完美对齐的矩形网格,或者它也可以在上述情况下工作?还是在这种情况下使用代数多重网格更好?(我不喜欢它,因为它不像几何多重网格那样直观。)


我不确定我理解网格在拓扑上是矩形,但是节点在矩形网格中未对齐的含义。网格是结构化的矩形网格吗?您可以用图纸来澄清一下吗?您使用的矩形元素没有像使用结构化笛卡尔网格时那样排列的问题吗?
詹姆斯

@James,我将OP的问题解释为:“如果我在梯形内有一个'笛卡尔式'网格,会发生什么?”。
比尔·巴特

Answers:


6

Multigrid不需要笛卡尔(矩形)统一网格。所需要的是,您可以定义精细和粗略的级别(如果要从两级方案转换为多级方案,则可以递归定义),并且可以在这些级之间定义插值运算符。解释此问题的最简单方法是,如果确实有笛卡尔网格,但实际上您可以从任何粗糙的网格开始,对其进行一次优化,就像这样:您有一个更精细的网格。

换句话说,最简单的方法是将适用于多网格的网格视为一个细网格而不是如何查找较粗的网格,而是从一个粗网格开始,通过均匀细化可以从中获得更细的层次(即,每个四边形都是细分为四个较小的)。由于始终可以进行统一优化,因此很容易为您提供层次结构。这与粗化相反,如果仅给定特定的网格,则并不总是可能的,因此使定义网格层次更加复杂。(这就是为什么人们想出了代数多网格方法来仅基于矩阵来定义粗糙级别的原因,而没有考虑从中创建网格的底层网格。)


我在问题中编辑了一个图像示例。在我的情况下,我认为仅通过获取每个第二个节点(每个维)并重新计算该网格的FEM来获得粗糙矩阵/运算符,就可以非常容易地进行粗糙化。仅通过获取每个第二节点值即可获得粗略的数据矢量。
迈克尔,

1
这可能会或可能不会达到您想要的效果(我想它可能会,但是不确定)。问题在于,在您的示例中,粗网格单元的覆盖面积与子网格的覆盖范围不同,因此有限元空间没有嵌套属性:您可以在粗网格上表示的函数不是的子集您可以在精细网格上表示的功能。Joe Pasciak和Jim Bramble已经撰写了有关此类案例的论文,我想我记得可以使它们起作用。但这对我来说不是立即显而易见的。
Wolfgang Bangerth,2015年

4

假设您具有由矩形元素组成的以下网格:

在此处输入图片说明

现在,如果您在假设法线结构为矩形矩形的情况下执行插值,则会引入与该不精确插值相关的错误。换句话说,当您限制残差矢量并延长误差矢量时,插值将产生误差。

现在,如果您的网格“接近”为正常的结构化笛卡尔网格,那么至少可能在一开始就可以使用,但是我怀疑取决于网格距矩形的距离,会发生以下两种情况之一:

1)您可能会发现多网格首先开始收敛。毕竟,您的错误毕竟仍然很大,并且您的“近似”插值实际上仅意味着有些节点的表示稍有过多,而有些节点的表示稍有不足。但是,您可能会发现,随着解变得更加精确并且插值误差变得越来越重要,收敛停滞。

2)另一个可能性是,多重网格最终会收敛,但收敛速度可能不如使用正确的插值法那么快。

基本上,通过不使用插值,您将不正确地加权某些节点的重要性。例如,在2D中,如果要给定节点的权重为:

[0.250.50.250.51.00.50.250.50.25]

实际上,因为您的网格不完全是笛卡尔坐标,则应为:

[0.250.550.250.551.00.490.280.520.30]

那么这将导致一些错误。此错误是否阻止收敛,可能取决于您的网格距离笛卡尔坐标有多远。

虽然AMG较难理解/实现,但这听起来像是您网格的正确方法。将几何多重网格应用于“近似”矩形网格可能会起作用,但我想这充其量是一个创可贴解决方案。希望这可以帮助。

更新:我认为我的回答可能有些混乱。我并不是说几何多重网格仅适用于笛卡尔网格,而是在笛卡尔网格上定义插值(并因此限制)很容易,而在非结构网格上则很难。例如,考虑具有三角形网格的简单2D域的情况。细化该网格很容易-至少在概念上如此-但是如何在粗网格和细网格之间定义插值运算符?我更喜欢AMG,仅仅是因为它的性能更像是“黑匣子”求解器,即不需要底层网格上的信息,但这只是我个人的偏见/怪癖。只要可以提供精确的插值运算符,几何多重网格就可以工作。


我可以读为“取决于插值的好坏”,对吗?因此,如果我可以提出一种“完美”的插值方案,那我应该还好吗?
迈克尔

1
我认为这个答案是正确的,但却具有误导性-它表示,如果假装网格不是常规的笛卡尔坐标,则将得到错误的答案。没错,但是您可以对任何数值方法说同样的话。关键是,正确实施时,几何多重网格在更通用的网格上是准确的。
David Ketcheson

我同意只要正确完成,几何多重网格就可以与非笛卡尔网格一起使用。我只是将OP问题当作是询问在使用为实际笛卡尔网格设计的插值时使用“近似”笛卡尔网格是否可行的问题。
詹姆斯

@Michael基本上,您需要某种方法来定义不同网格级别之间的插值运算符。使用笛卡尔网格,这很容易。对于非笛卡尔网格,这可能很快变得更加困难,具体取决于您网格的非结构化程度。正如Wolfgang在回答中所说的那样,您总是可以从粗略的网格中创建出更精细的网格,但是定义有意义的插值运算符可能很困难。AMG的优点是它的行为更像“黑匣子”求解器,因为您不需要网格数据来定义插值运算符。您需要的只是矩阵
詹姆斯

@MIchael因此,回答您的问题。是的,如果您能提出精确的插值运算符,那么几何多重网格将可以正常工作。希望这可以帮助。
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.