我有一个二维三角形网格,并且在该网格的所有顶点处定义了
我想准确估计和的值。
在使用标准公式处理标准正交网格上的有限差分方法时,我知道如何做到这一点。我将如何在二维网格上执行此操作?
我有一个二维三角形网格,并且在该网格的所有顶点处定义了
我想准确估计和的值。
在使用标准公式处理标准正交网格上的有限差分方法时,我知道如何做到这一点。我将如何在二维网格上执行此操作?
如果您有一个在每个顶点定义数据的三角形网格,您当然可以将线性函数与在顶点处插入数据值的每个元素相关联。这还通过仅计算线性插值的梯度为您提供了每个单元格上的梯度估计值。当然,这只是一个估计,因为您正在计算的插值的梯度,而不是本身的梯度。
但是,可以提高该估计的准确性。例如,您可以使用诸如 ZZ 估计器(简称 Zienkiewicz 和 Zhou)之类的过程。如果你在谷歌上搜索“ZZ estimator”,你会发现很多链接到描述如何完成的页面。(通常,这些页面讨论应力、应变和位移;在您的上下文中,想象stress=strain=和displacement=。)
您可以使用每个顶点附近的信息(在这种情况下是离散的)计算此网格的微分算子。在此参考文献中,作者计算了 1 星邻域中的微分几何算子,即每个顶点周围的单元。
另一种选择是在每个顶点周围拟合抛物面并分析计算导数。
概念上最简单的方法是选择一个插值方案,通过您拥有的数据点进行插值,然后计算插值的导数。这是典型的有限差分微分公式的自然推广。
虽然您没有提及您的确切要求(特别是:您需要网格点处的导数,还是网格三角形内的导数?),但最简单的方法是在每个三角形中线性插值函数值,并将导数估计为线性插值的导数;插值将具有分段常数导数,并且在网格点和边缘处不连续,您可以在其中对相邻插值进行线性组合。
您还可以查看其他插值方法,例如径向基函数。
另请注意,许多软件包本身支持 2d 插值,在这种情况下,可能不需要自己执行插值步骤。如果库可以对函数进行插值,但不计算插值的导数,则可以通过对插值使用有限差分近似来恢复导数。
我通常使用梯度平均,因为它在某些规律性假设下具有一些超收敛特性,并且当我想要这样做时,我总是倾向于使用某种有限元代码。让例如定义在域的网格上的分段线性有限元空间. 这个想法是考虑投影问题:找到这样
如果您没有有限元代码,您可以通过计算节点的每个相邻元素中的分段常数导数来实现等效投影,将它们的加权平均值与三角形的面积作为权重并让该平均值表示节点处的导数。