我针对我的问题调整了这个 FEniCS 代码,我想知道是否有任何关于如何选择惩罚参数的好的资源?最好的情况是,如果我可以通过扩散系数和元素高度的某种关系来定义它。
带跳跃惩罚的 DG 的惩罚参数
计算科学
有限元
芬尼克斯
不连续-galerkin
2021-12-19 03:23:32
1个回答
TL;DR:设是扩散系数,是网格任意两条边之间的最小角度,是空间维度,是您正在使用的有限元基的多项式次数。然后服用
应该保证离散化的扩散算子是正定的。为了保证稳定性,您仍然必须注意对流部分使用的数值通量。
DG 部分是从Nitsche 的弱施加 Dirichlet 边界条件的方法演变而来的,因此很多相关信息都包含在 Nitsche 方法的文献中。当使用对称内部惩罚 DG 方法或 Nitsche 方法时,惩罚参数必须大于某个下限,以保证所得线性算子的积极性。如果有一个关于扩散系数和元素形状的公式会很好,这样您就可以选择一个好的值而无需任何猜测。
不幸的是,很多关于 DG 或 Nitsche 方法的论文从未解决这一点。 Hansbo 2005在单元形状方面具有分析下限,但仅适用于线性有限元。它对 Nitsche 的方法进行了一些讨论,您可以将其同样适用于 DG,因此尽管范围更有限,但值得一读。Warburton 和 Hesthaven 2003对高阶有限元进行了全面分析。我还有一些示例代码演示了 Nitsche 使用 firedrake 的 Poisson 方程的方法,如果您不熟悉它,它与 fenics 共享很多功能。
我认为值得一看的另一篇论文是Freund 和 Stenberg 1995,特别是用于讨论您正在解决的对流扩散问题。在这种情况下,算子是非对称的,因此使用非对称内部惩罚方法可能更有意义。这种方法对惩罚参数的大小没有下限,它必须是正的。