如何在 4D 中网格化和重新网格化曲面(2 流形)?

计算科学 计算几何 网格生成
2021-12-18 04:14:00

为了便于解释,假设您从 (x1, x2, x3, x4) 空间中的二维曲面开始,并且该曲面以 (x1, x2) 平面中的平面区域开始。这个平坦区域的边界并不那么重要,但它会有一个封闭的边界。假设它是一个正方形。所以这个表面可能由三角形网格指定,因此是点及其邻居的列表。

通过一些操作,飞机现在变形为 4D。因此,例如,我可以为某些点分配 +(0, 0, 1, 0),为其他点分配 -(0, 0, 0, 1)。此时,您有一个 4D 的 2 流形。

问题是我需要重新网格化这个表面。我想捕捉表面上的褶皱之类的东西,并且我想重新网格化,以便对被拉伸的三角形进行细分,并避免像细三角形这样的东西。

我知道有很多关于如何在 2D 中处理二维平面表面的信息,例如Shewchuk 的三角形程序。我已阅读Persson 和 Strang关于 2D 中简单网格划分的文章,但我认为这不能推广到 4D 中的 2 流形。

最终,我正在寻找一种或多或少简单的算法(或程序)。对精度的要求不是很高,我表面的边界区域对于准确解析并不重要。

任何人都可以建议我可以参考的文献吗?在网格划分和重新划分网格方面完成了大量工作,因此很难看出什么适用于我的问题。

1个回答

您可以使用 2D 各向异性网格生成器(参见例如 H. Borouchaki、George、PL、F. Hecht、P. Laug 和 E. Saltel,Delaunay 网格生成受公制规范控制。第 1 部分:算法,分析和设计中的有限元,第 25 卷,第 61-83 页,1997 年)。

这样一个 2D 各向异性网格生成器作为输入:

  • 要网格化的 2D 域

  • 一个指标G(x,y)

度量是一个函数,它关联一个2×2 具有域的每个点的对称正定矩阵。此度量指定所需的边长,如下所示:假设您有一条边(x1,y1)(x2,y2),那么你想要的是etG(x,y)e=1, 其中 e =(x2,y2)(x1,y1)和在哪里x=(x1+x2)/2,y=(y1+y2)/2). 直观地说,平方范数e=e2=ete替换为这提供了一种“剪切”和“缩放”距离定义的方法。etGe

在实践中,度量可以存储在输入背景网格的顶点,并在背景网格的三角形上进行线性插值。然后各向异性网格生成器将创建输入几何的新三角剖分,其中所有边(大部分)相对于 metric的长度为 1 。

在您的情况下,您可以将 4D 输入域视为使用(向量值)函数转换为 4D 的 2D 域。现在,如果您生成一个变形的 2D 网格,它会完全抵消由映射产生的变形,那么您将在 4D 中拥有大部分等边三角形。这可以通过对的回调度量来实现,由给出,其中表示的雅可比矩阵。该技术用于使用 2D 各向异性网格生成器对参数曲面(样条线、Nurbs ...)进行细分。Φ(x,y)ΦG(x,y)ΦG(x,y)=JtJJΦ

如果无法计算 映射及其雅可比行列式,我们使用了另一种方法(在我们的例子中是 6D),它直接优化和计算高维空间中的网格: http://www.imr.sandia。 gov/papers/abstracts/Le621.html (但它的成本要高得多,在大多数情况下,由引导的各向异性网格划分可能要好得多)。ΦJtJ