From a93a01f973428a70c0c8ac56061f221649c90cba Mon Sep 17 00:00:00 2001 From: Scott Miller Date: Sun, 11 Aug 2013 15:59:17 +0000 Subject: [PATCH] more step-51 documentation git-svn-id: https://svn.dealii.org/trunk@30285 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/examples/step-51/doc/builds-on | 2 +- deal.II/examples/step-51/doc/intro.dox | 124 ++++++++++++++++++------- deal.II/examples/step-51/step-51.cc | 2 + 3 files changed, 96 insertions(+), 32 deletions(-) diff --git a/deal.II/examples/step-51/doc/builds-on b/deal.II/examples/step-51/doc/builds-on index 943473db87..0946a61258 100644 --- a/deal.II/examples/step-51/doc/builds-on +++ b/deal.II/examples/step-51/doc/builds-on @@ -1 +1 @@ -step-7 +step-7 step-32 step-44 diff --git a/deal.II/examples/step-51/doc/intro.dox b/deal.II/examples/step-51/doc/intro.dox index 784b5f7226..4ac27d1138 100644 --- a/deal.II/examples/step-51/doc/intro.dox +++ b/deal.II/examples/step-51/doc/intro.dox @@ -10,7 +10,7 @@ One common argument against the use of discontinuous Galerkin elements is the large number of globally coupled degrees of freedom that one must solve in an implicit system. For the FE_DGP_Monomial basis, each scalar solution component is represented by polynomials of degree p -which yields (1/dim!)*\prod_{i=1}^{dim}(k+i) degrees of freedom per +which yields $(1/dim!)*\prod_{i=1}^{dim}(k+i)$ degrees of freedom per element. Typically, all degrees of freedom in an element are coupled to all of the degrees of freedom in the adjacent elements. The resulting discrete equations yield very large linear systems very quickly, especially @@ -18,37 +18,99 @@ for systems of equations in dim=2 or dim=3. To alleviate the computational cost of solving such large linear systems, the hybridizable discontinuous Galerkin (HDG) methodology has recently been -developed by Cockburn and co-workers \cite{...}. The HDG method achieves -this goal by formulating the mathematical problem in such a way that the only -global unknowns are single-valued ``trace''-values on the skeleton of the -mesh, i.e. element edges. The DG solution on element interiors is thus decoupled -from the neighboring elements, enabling an element-by-element solution process -for the `interior' solution fields. +developed by Cockburn and co-workers +( + N.C. Nguyen and J. Peraire: + Hybridizable discontinuous Galerkin methods for partial differential + equations in continuum mechanics, Journal of Computational Physics, + 2012, 231:18, 5955-5988. + [DOI] +). +The HDG method achieves +this goal by formulating the mathematical problem using Dirichlet-to-Neumann +mappings. The partial differential equations are first written as a first +order system, and each field is then discretized via a DG method. At this +point the single-valued ``trace'' values on the skeleton of the +mesh, i.e. element edges, are taken to be independent unknown quantities. +The Dirichlet-to-Neumann map concept then permits the solution procedure: +
    +
  1. Solve a Dirichlet problem on each element individually, where the local/interior +element solutions no longer couple to neighboring elements. This is known as the +'local solver', and is an embarrissingly parallel element-by-element +solution process. +
  2. Use the local element solutions to construct the global problem for the +trace values. These are the only globally coupled unknowns. +
  3. Modify the local solutions from the computed trace values. +
+ +Another criticism of traditional DG methods is that the approximate fluxes +converge suboptimally. The local HDG solutions can be shown to converge +as $\mathcal{O}(h^{p+1})$. Additionally, a super-convergence property can +be used to post-process a new approximate solution that converges at the +rate $\mathcal{O}(h^{p+2})$. + -- Discuss theoretical convergence rates. Other big picture HDG details?

HDG applied to the convection-diffusion problem

-- Problem formulation. Flux-formulation, HDG formulation, -domain, BCs, etc. - -- Reference: -@article{Nguyen20093232, -title = "An implicit high-order hybridizable discontinuous Galerkin method for linear convection–diffusion equations ", -journal = "Journal of Computational Physics ", -volume = "228", -number = "9", -pages = "3232 - 3254", -year = "2009", -note = "", -issn = "0021-9991", -doi = "http://dx.doi.org/10.1016/j.jcp.2009.01.030", -url = "http://www.sciencedirect.com/science/article/pii/S0021999109000308", -author = "N.C. Nguyen and J. Peraire and B. Cockburn", -keywords = "Finite element methods", -keywords = "Discontinuous Galerkin methods", -keywords = "Hybrid/mixed methods", -keywords = "Convection–diffusion equations " -} - -

Implementation

\ No newline at end of file +The HDG formulation used for this example is taken from + + + N.C. Nguyen, J. Peraire, B. Cockburn: + An implicit high-order hybridizable discontinuous Galerkin method + for linear convection–diffusion equations, + Journal of Computational Physics, 2009, 228:9, 3232-3254. + [DOI] + + +We consider the convection-diffusion equation: +@f{eqnarray*} + \nabla \cdot (\mathbf{c} u) - \nabla \cdot (\kappa \nabla u) &= f, + \quad \text{ in } \Omega, \\ + u &= g_D, \quad \text{ on } \partial \Omega_D, \\ + (\mathbf{c} u - \kappa \nabla u)\cdot \mathbf{n} &= g_N, + \quad \text{ on } \partial \Omega_D. +@f} + +Introduce the auxiliary variable $\mathbf{q}=-\kappa \nabla u$ and rewrite +the above equation as the first order system: +@f{eqnarray*} + \mathbf{q} + \kappa \nabla u &= 0, \quad \text{ in } \Omega, \\ + \nabla \cdot (\mathbf{c} u + \mathbf{q}) &= f, \quad \text{ in } \Omega, \\ + u &= g_D, \quad \text{ on } \partial \Omega_D, \\ + (\mathbf{q} + \mathbf{c}u)\cdot\mathbf{n} = &= g_N, + \quad \text{ on } \partial \Omega_D. +@f} + + + +

Problem specific data

+Example specific data: +$\Omega := [-1,1]^d$ + +\mathbf{c} = \begin{cases} +1, & \textrm{dim}=1 +(y, -x), & \textrm{dim}=2 +(y, -x, 1), & \textrm{dim}=3 +\end{cases} + +the centers $x_i$ of the exponentials are + $\{x_i\}_1^3 = \{ -\frac{1}{3}, 0, \frac{1}{3} \}$ + $\{\mathbf{x}_i\}_1^3 = \{ (-\frac{1}{2},\frac{1}{2}) + (-\frac{1}{2},-\frac{1}{2}) + (\frac{1}{2},-\frac{1}{2}) + \}$ + $\{\mathbf{x}_i\}_1^3 = \{ (-\frac{1}{2},\frac{1}{2}, \frac{1}{4}) + (-\frac{3}{5},-\frac{1}{2}, -\frac{1}{8}) + (\frac{1}{2},-\frac{1}{2}, \frac{1}{2}) + \}$ + + +

Implementation

+ +Implementation notes: + +- WorkStream to parallelize local solvers. Workstream is already used in step-32, step-44. +- Reconstructing the trace +- Post-processing the solution for superconvergence +- DataOutFaces: direct output of the global solution \ No newline at end of file diff --git a/deal.II/examples/step-51/step-51.cc b/deal.II/examples/step-51/step-51.cc index 2877aff2b5..747a270408 100644 --- a/deal.II/examples/step-51/step-51.cc +++ b/deal.II/examples/step-51/step-51.cc @@ -281,6 +281,8 @@ double RightHandSide::value (const Point &p, // The HDG solution procedure follows closely that of step-7. The major // difference is the use of 3 different sets of DoFHandler and FE objects, // along with the ChunkSparseMatrix and the corresponding solutions vectors. +// We also use WorkStream to enable a multi-threaded local solution process which exploits +// the embarrassingly parallel nature of the local solver. template class Step51 -- 2.39.5