我正在学习 DG 方法,为了稍微练习一下,我正在使用 deal.ii 库。特别是,我正在查看step-12,他们在哪里解决
对于一个领域以及流入边界的不连续数据。
为了验证收敛的顺序,我决定构造一个制造的解决方案。用作字段这与他们拥有的相同,但没有缩放到一个。这样流入边界就和之前一样了,即下边界和右边界。然后方程变为
正如您在可能的扩展部分中所读到的,他们说
可以证明对于p阶元素,收敛阶为在任意网格上
就我而言所以我应该得到订单在里面规范,但这是我得到的(通过reduction_rate_log2
在ConvergenceTable
课堂上使用)
cycle cells dofs L2 H1
0 64 256 9.776e-04 - 5.471e-02 -
1 121 484 6.739e-04 0.54 4.156e-02 0.40
2 220 880 4.225e-04 0.67 3.323e-02 0.32
3 409 1636 2.138e-04 0.98 2.326e-02 0.51
4 757 3028 1.203e-04 0.83 1.720e-02 0.44
5 1399 5596 7.136e-05 0.75 1.311e-02 0.39
6 2575 10300 3.567e-05 1.00 9.398e-03 0.48
7 4699 18796 1.991e-05 0.84 7.059e-03 0.41
8 8635 34540 1.037e-05 0.94 5.142e-03 0.46
9 15799 63196 5.284e-06 0.97 3.727e-03 0.46
问:这对吗?我的意思是,这是否符合秩序的理论界限?
为了确认我的代码的优点,这与第 12 步基本相同,但有明显的修复(即程序集、精确解的定义和缩放比例的变化)) 这是我通过在全球范围内细化网格所得到的:
cycle cells dofs L2 H1
0 64 256 9.776e-04 - 5.471e-02 -
1 256 1024 2.463e-04 1.99 2.744e-02 1.00
2 1024 4096 6.180e-05 1.99 1.373e-02 1.00
3 4096 16384 1.548e-05 2.00 6.871e-03 1.00
4 16384 65536 3.873e-06 2.00 3.436e-03 1.00
5 65536 262144 9.686e-07 2.00 1.718e-03 1.00
这错误和错误收敛正确,如下表所示,所以我认为我的代码实际上没有错误。
编辑:
如您所见,EOC 在在一定数量的自由度后下降。我怎样才能证明这一点?
cells dofs u_L2_norm u_H1_norm
64 1024 9.679e-08 - 1.223e-05 -
256 4096 6.045e-09 4.00 1.532e-06 3.00
1024 16384 3.777e-10 4.00 1.918e-07 3.00
4096 65536 2.360e-11 4.00 2.556e-08 2.91
16384 262144 1.475e-12 4.00 9.353e-09 1.45
65536 1048576 9.528e-14 3.95 8.801e-09 0.09