实现有限差分自适应网格细化代码

计算科学 有限差分 自适应网格细化
2021-11-29 21:41:12

首先,我需要实现一个二维、顶点居中、有限差分方案、自适应网格细化串行代码。在开始之前,我有以下疑问:

  1. AMR(比如二维)的输入是否总是一个包围整个域的框?
  2. 单元为中心的方案比以顶点为中心的方案更容易实现吗?
  3. 我是否需要存储单元格/顶点的几何信息(单元格表示一个盒子,顶点表示它的 4 个角)?
  4. Quadtree实现二维 AMR唯一方法吗?
1个回答

我将尝试一一回答您的问题,但恐怕它们太基础了,从长远来看,仅靠这些答案无法对您有很大帮助:

1/ 不,可以在任何起始网格上运行 AMR。它不一定是正方形。其他域上的自适应网格的一些示例如下:https ://github.com/dealii/dealii/wiki/Gallery

2/ 以单元为中心和以顶点为中心的方案在某种意义上是相互对偶的。您通常可以根据在移动网格上定义的另一个来考虑其中一个。我想它们都同样容易/难以实现。

3/只要你在单位正方形上,如果你知道你是如何通过网格细化到达那个单元格的,你就可以计算出一个单元格顶点的位置。另一方面,如果您从任何其他网格开始,则必须存储顶点的位置。

4/ 除了使用四叉树之外,还有其他方法可以进行 AMR。例如,您可以对三角形进行最长边二等分或红绿细化。(因为你已经找到了我的视频讲座,所以这将是第 15 课。)不过,四叉树对于四边形来说是一种特别有用的方法。