deal.II version 9.7.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
step-95.h
Go to the documentation of this file.
1, fe_degree);
2303 * @endcode
2304 *
2305 * Then we do a second run with discontinuous elements (FE_DGQ).
2306 *
2307 * @code
2308 *   poisson_solver.run(true /* is_dg */, fe_degree);
2309 *   }
2310 * @endcode
2311<a name="step_95-Results"></a><h1>Results</h1>
2312
2313
2314<a name="step_95-Convergencestudy"></a><h3>Convergence study</h3>
2315
2316
2317The results of the convergence studies are shown in the tables below.
2318
2319For @f$p=1@f$ we get (for continuous elements, FE_Q):
2320
2321| Cycle | Mesh size | @f$L^2@f$-Error | EOC |
2322|:-----:|:---------:|:-----------:|:----:|
2323| 0 | 0.3025 | 8.3792e-02 | - |
2324| 1 | 0.1513 | 1.9073e-02 | 2.14 |
2325| 2 | 0.0756 | 4.2112e-03 | 2.18 |
2326| 3 | 0.0378 | 9.4586e-04 | 2.15 |
2327
2328We see that the @f$L^2@f$ error decreases as we refine and that the estimated
2329order of convergence, EOC, is close to 2.
2330
2331For @f$p=2@f$ we get (again for continuous elements):
2332
2333| Cycle | Mesh size | @f$L^2@f$-Error | EOC |
2334|:-----:|:---------:|:-----------:|:----:|
2335| 0 | 0.3025 | 1.2442e-04 | - |
2336| 1 | 0.1513 | 9.6514e-06 | 3.69 |
2337| 2 | 0.0756 | 8.3693e-07 | 3.53 |
2338| 3 | 0.0378 | 7.4062e-08 | 3.50 |
2339
2340If we increase the degree of the finite element for both the level-set and
2341the solution we observe EOC close to 3.
2342
2343We repeat the experiment for for discontinuous elements (FE_DGQ), where we get for @f$p=1@f$:
2344
2345| Cycle | Mesh size | @f$L^2@f$-Error | EOC |
2346|:-----:|:---------:|:-----------:|:----:|
2347| 0 | 0.3025 | 7.8706e-02 | - |
2348| 1 | 0.1513 | 1.8413e-02 | 2.10 |
2349| 2 | 0.0756 | 4.0863e-03 | 2.17 |
2350| 3 | 0.0378 | 9.3191e-04 | 2.13 |
2351
2352For @f$p=2@f$ we get (again for discontinuous elements):
2353
2354| Cycle | Mesh size | @f$L^2@f$-Error | EOC |
2355|:-----:|:---------:|:-----------:|:----:|
2356| 0 | 0.3025 | 1.5622e-04 | - |
2357| 1 | 0.1513 | 1.0739e-05 | 3.86 |
2358| 2 | 0.0756 | 1.0044e-06 | 3.42 |
2359| 3 | 0.0378 | 7.9919e-08 | 3.65 |
2360
2361We observe optimal order convergence also for DG.
2362
2363<a name="step_95-Possibilitiesforextension"></a><h3>Possibilities for extension</h3>
2364
2365
2366This tutorial could be easily extended to time dependent problems like the heat equation by adding a mass operator and a
2367time integration scheme in the solver class.
2368
2369Another option would be to implement a different ghost penalty like the volume based ghost penalty to allow
2370stabilization for arbitrary polynomial degree of the shape functions.
2371
2372Also, the preconditioner could be extended to a more robust scheme like multigrid.
2373
2374If you are interested in the mentioned possibilities for extensions we recommend our paper "High-performance matrix-free
2375unfitted finite element operator evaluation" @cite bergbauer2024 where volume ghost-penalty and multigrid preconditioning already have been
2376addressed.
2377 *
2378 *
2379<a name="step_95-PlainProg"></a>
2380<h1> The plain program</h1>
2381@include "step-95.cc"
2382*/
Definition fe_q.h:554
void refine(Triangulation< dim, spacedim > &tria, const Vector< Number > &criteria, const double threshold, const unsigned int max_to_mark=numbers::invalid_unsigned_int)
double volume(const Triangulation< dim, spacedim > &tria)
void run(const Iterator &begin, const std_cxx20::type_identity_t< Iterator > &end, Worker worker, Copier copier, const ScratchData &sample_scratch_data, const CopyData &sample_copy_data, const unsigned int queue_length, const unsigned int chunk_size)
int(& functions)(const void *v1, const void *v2)