From 1dc74cf382bed82fddb8745aab5611a176eca50f Mon Sep 17 00:00:00 2001 From: Zhuoran Wang Date: Thu, 2 Jan 2020 10:45:41 +0800 Subject: [PATCH] Replace 2gamma in boundary_worker by gamma,and update tables. --- examples/step-71/doc/results.dox | 64 ++++++++++++++++++-------------- examples/step-71/step-71.cc | 4 +- 2 files changed, 38 insertions(+), 30 deletions(-) diff --git a/examples/step-71/doc/results.dox b/examples/step-71/doc/results.dox index 3c6fa3d00b..35ec8c753c 100644 --- a/examples/step-71/doc/results.dox +++ b/examples/step-71/doc/results.dox @@ -39,16 +39,16 @@ and get the following convergence rates. Number of refinements $\|u-u_h^\circ\|_{L_2}$ Conv. rates $|u-u_h|_{H^1}$ Conv. rates $|u-u_h|_{H^2}$ Conv. rates - 2 1.539e-02 8.528e-02 1.602 + 2 8.780e-03 7.095e-02 1.645 - 3 4.563e-03 1.75 2.408e-02 1.82 7.965e-01 1.00 + 3 3.515e-03 1.32 2.174e-02 1.70 8.121e-01 1.018 - 4 1.250e-03 1.86 6.438e-03 1.90 3.969e-01 1.00 + 4 1.103e-03 1.67 6.106e-03 1.83 4.015e-01 1.016 - 5 3.277e-04 1.93 1.666e-03 1.94 1.981e-01 1.00 + 5 3.084e-04 1.83 1.622e-03 1.91 1.993e-01 1.010 We can see that the $L_2$ convergence rates are around 2, @@ -57,7 +57,7 @@ and $H^2$-seminorm convergence rates are around 1. The latter two match the theoretically expected rates; for the former, we have no theorem but are not surprised that it is sub-optimal given the remark in the introduction. - +

Test results on Q3 with γ = p(p+1)

@@ -67,16 +67,16 @@ in the introduction. Number of refinements $\|u-u_h^\circ\|_{L_2}$ Conv. rates $|u-u_h|_{H^1}$ Conv. rates $|u-u_h|_{H^2}$ Conv. rates - 2 2.187e-04 4.46269e-03 1.638e-01 + 2 2.045e-04 4.402e-03 1.641e-01 - 3 1.334e-05 4.03 5.54622e-04 3.00 4.095e-02 2.00 + 3 1.312e-05 3.96 5.537e-04 2.99 4.096e-02 2.00 - 4 8.273e-07 4.01 6.90599e-05 3.00 1.023e-02 2.00 + 4 8.239e-07 3.99 6.904e-05 3.00 1.023e-02 2.00 - 5 5.164e-08 4.00 8.62168e-06 3.00 2.558e-03 2.00 + 5 5.158e-08 3.99 8.621e-06 3.00 2.558e-03 2.00 We can see that the $L_2$ convergence rates are around 4, @@ -92,16 +92,16 @@ This, of course, matches our theoretical expectations. Number of refinements $\|u-u_h^\circ\|_{L_2}$ Conv. rates $|u-u_h|_{H^1}$ Conv. rates $|u-u_h|_{H^2}$ Conv. rates - 2 8.34446e-06 0.000239323 0.0109785 + 2 6.510e-06 2.215e-04 1.275e-02 - 3 2.98497e-07 4.80 1.63221e-05 3.87 0.0013551 3.01 + 3 2.679e-07 4.60 1.569e-05 3.81 1.496e-03 3.09 - 4 9.87063e-09 4.91 1.06066e-06 3.94 0.000167898 3.01 + 4 9.404e-09 4.83 1.040e-06 3.91 1.774e-04 3.07 - 5 7.88939e-10 3.64 6.75478e-08 3.97 2.08912e-05 3.00 + 5 7.943e-10 3.56 6.693e-08 3.95 2.150e-05 3.04 We can see that the $L_2$ norm convergence rates are around 5, @@ -124,22 +124,29 @@ case where we simply choose $\gamma=1$: Number of refinements $\|u-u_h^\circ\|_{L_2}$ Conv. rates $|u-u_h|_{H^1}$ Conv. rates $|u-u_h|_{H^2}$ Conv. rates - 2 4.86048e-02 3.30386e-01 4.34917 + 2 7.350e-02 7.323e-01 10.343 - 3 1.29921e-02 1.90 1.4852e-01 1.15 4.01192 0.116 + 3 6.798e-03 3.43 1.716e-01 2.09 4.836 1.09 - 4 3.33539e-03 1.96 7.20252e-02 1.04 3.96138 0.018 + 4 9.669e-04 2.81 6.436e-02 1.41 3.590 0.430 - 5 8.41058e-04 1.98 3.57705e-02 1.00 3.95719 0.001 + 5 1.755e-04 2.46 2.831e-02 1.18 3.144 0.19 -Although $L_2$ norm and $H^1$-seminorm convergence rates of $u$ -follow the theoretical expectations, the $H^2$-seminorm does not seem to converge. +Although $L_2$ norm convergence rates of $u$ more or less +follows the theoretical expectations, +the $H^1$-seminorm and $H^2$-seminorm do not seem to converge as expected. Comparing results from $\gamma = 1$ and $\gamma = p(p+1)$, it is clear that $\gamma = p(p+1)$ is a better penalty. +Given that $\gamma=1$ is already too small for $Q_2$ elements, it may not be surprising that if one repeated the +experiment with a $Q_3$ element, the results are even more disappointing: One again only obtains convergence +rates of 2, 1, zero -- i.e., no better than for the $Q_2$ element (although the errors are smaller in magnitude). +Maybe surprisingly, however, one obtains more or less the expected convergence orders when using $Q_4$ +elements. Regardless, this uncertainty suggests that $\gamma=1$ is at best a risky choice, and at worst an +unreliable one and that we should choose $\gamma$ larger.

Test results on Q2 with γ = 2

@@ -153,24 +160,26 @@ that case: Number of refinements $\|u-u_h^\circ\|_{L_2}$ Conv. rates $|u-u_h|_{H^1}$ Conv. rates $|u-u_h|_{H^2}$ Conv. rates - 2 5.482e-03 7.652e-02 1.756e-00 + 2 4.133e-02 2.517e-01 3.056 - 3 2.227e-02 1.29 2.177e-02 1.81 8.711e-01 1.01 + 3 6.500e-03 2.66 5.916e-02 2.08 1.444 1.08 - 4 9.088e-04 1.29 6.026e-03 1.85 4.196e-01 1.05 + 4 6.780e-04 3.26 1.203e-02 2.296 6.151e-01 1.231 - 5 2.822e-04 1.68 1.605e-03 1.90 2.041e-01 1.03 + 5 1.622e-04 2.06 2.448e-03 2.297 2.618e-01 1.232 In this case, the convergence rates more or less follow the theoretical expectations, but, compared to the results from $\gamma = -p(p+1)$, are more variable. That suggests that the penalty parameter -is already too small even for the value $p=2$ chosen here, and one can -readily check that it is indeed too small when using higher polynomial -degrees. +p(p+1)$, are more variable. +Again, we could repeat this kind of experiment for $Q_3$ and $Q_4$ elements. In both cases, we will find that we +obtain roughly the expected convergence rates. Of more interest may then be to compare the absolute +size of the errors. While in the table above, for the $Q_2$ case, the errors on the finest grid are comparable between +the $\gamma=p(p+1)$ and $\gamma=2$ case, for $Q_3$ the errors are substantially larger for $\gamma=2$ than for +$\gamma=p(p+1)$. The same is true for the $Q_4$ case.

Conclusions for the choice of the penalty parameter

@@ -200,4 +209,3 @@ make sense: addition should not be overly difficult using, for example, the FEInterfaceValues class combined with MeshWorker::mesh_loop() in the same spirit as we used for the assembly of the linear system. - diff --git a/examples/step-71/step-71.cc b/examples/step-71/step-71.cc index fdfd16e41e..04be59b3a1 100644 --- a/examples/step-71/step-71.cc +++ b/examples/step-71/step-71.cc @@ -631,7 +631,7 @@ namespace Step71 - av_hessian_j_dot_n_dot_n // - {grad^2 u n n} * jump_grad_i_dot_n // [grad v n] // - + 2.0 * gamma // + 2 gamma + + gamma // gamma * jump_grad_i_dot_n // [grad v n] * jump_grad_j_dot_n // [grad u n] ) * @@ -642,7 +642,7 @@ namespace Step71 (-av_hessian_i_dot_n_dot_n * // - {grad^2 v n n } (exact_gradients[qpoint] * n) // (grad u_exact . n) + // + - 2.0 * gamma // 2 gamma + gamma // gamma * jump_grad_i_dot_n // [grad v n] * (exact_gradients[qpoint] * n) // (grad u_exact . n) ) * -- 2.39.5