Re: [firedrake] Low order DG for pure diffusion?
Dear Justin, Since we don't support elimination within hybridized methods for DG at present, your best option is to use the interior penalty method since it can be applied in primal form. See for example: Arnold, D. N., Brezzi, F., Cockburn, B., & Marini, L. D. (2002). Unified analysis of discontinuous Galerkin methods for elliptic problems. *SIAM journal on numerical analysis*, *39*(5), 1749-1779. all the best -cjc On 29 September 2015 at 08:48, Justin Chang <jychang48@gmail.com> wrote:
Hi all,
I am doing an operator-splitting time-stepping scheme for an advection-diffusion-reaction system. That said, I have two maybe related questions.
1) I see that you guys have a nice low order DG scheme for the advection equation, and was wondering if a similar discretization can be made for the transient diffusion equation.
I have seen plenty of nodally discontinuous galerkin methods like SIPG, but is it possible to discretize that equation using DG0 elements (i.e., piece-wise constant)? In other words, I am wondering if it’s possible to come up with a finite-volume-like weak form of the following:
du/dt - div(D*grad(u)) = f
where D is the diffusivity tensor (dim by dim) and we use backward euler time-stepping.
2) Suppose I use the DG0 formulation for advection and CG1 for diffusion, in operator splitting, the “initial condition” for one operator is the computed solution from the previous operator. That is, if I first solve the advection equation for one time step, that solution becomes the initial condition for the diffusion equation. If I have to pass back and forth between DG0 and CG1 solution spaces, will I lose a lot of accuracy due to projecting or “smoothening” out the data?
Thanks, Justin _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
-- http://www.imperial.ac.uk/people/colin.cotter www.cambridge.org/9781107663916
Colin, 1) What do you mean by not supporting elimination within hybridized methods? 2a) So if I use the interior penalty method that would be using DG1 space. Would projecting between DG1 and DG0 spaces result in a loss of accuracy and information? 2b) For the advection demo, I modified it so that it solves a transient problem, but when I use DG1 elements I seem to get answers that violate the maximum principles. Does the formulation in the demo only work for DG0 elements or could it also potentially work for DG1 elements? I currently do not have access to any journals (since its 2:30 am where I am right now), so I am not sure if the answer to this particular question lies in the papers/books you guys have listed or not. Thanks, Justin On Tuesday, September 29, 2015, Colin Cotter <colin.cotter@imperial.ac.uk <javascript:_e(%7B%7D,'cvml','colin.cotter@imperial.ac.uk');>> wrote:
Dear Justin, Since we don't support elimination within hybridized methods for DG at present, your best option is to use the interior penalty method since it can be applied in primal form. See for example: Arnold, D. N., Brezzi, F., Cockburn, B., & Marini, L. D. (2002). Unified analysis of discontinuous Galerkin methods for elliptic problems. *SIAM journal on numerical analysis*, *39*(5), 1749-1779.
all the best -cjc
On 29 September 2015 at 08:48, Justin Chang <jychang48@gmail.com> wrote:
Hi all,
I am doing an operator-splitting time-stepping scheme for an advection-diffusion-reaction system. That said, I have two maybe related questions.
1) I see that you guys have a nice low order DG scheme for the advection equation, and was wondering if a similar discretization can be made for the transient diffusion equation.
I have seen plenty of nodally discontinuous galerkin methods like SIPG, but is it possible to discretize that equation using DG0 elements (i.e., piece-wise constant)? In other words, I am wondering if it’s possible to come up with a finite-volume-like weak form of the following:
du/dt - div(D*grad(u)) = f
where D is the diffusivity tensor (dim by dim) and we use backward euler time-stepping.
2) Suppose I use the DG0 formulation for advection and CG1 for diffusion, in operator splitting, the “initial condition” for one operator is the computed solution from the previous operator. That is, if I first solve the advection equation for one time step, that solution becomes the initial condition for the diffusion equation. If I have to pass back and forth between DG0 and CG1 solution spaces, will I lose a lot of accuracy due to projecting or “smoothening” out the data?
Thanks, Justin _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
-- http://www.imperial.ac.uk/people/colin.cotter
www.cambridge.org/9781107663916
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 29/09/15 09:32, Justin Chang wrote:
Colin,
1) What do you mean by not supporting elimination within hybridized methods?
If you choose a dual formulation of your problem, an efficient means of solving it is to "hybridise" (breaking continuity between elements, followed by enforcing continuity with lagrange multipliers. One can then, in principle, eliminate all the variables element-wise onto the lagrange multipliers and solve a global system for that. An overview is given here: Bernardo Cockburn, Jayadeep Gopalakrishnan and Raytcho Lazarov. Unified Hybridization of Discontinuous Galerkin, Mixed, and Continuous Galerkin Methods for Second Order Elliptic Problems, SIAM Journal on Numerical Analysis (2009)
2a) So if I use the interior penalty method that would be using DG1 space. Would projecting between DG1 and DG0 spaces result in a loss of accuracy and information?
2b) For the advection demo, I modified it so that it solves a transient problem, but when I use DG1 elements I seem to get answers that violate the maximum principles. Does the formulation in the demo only work for DG0 elements or could it also potentially work for DG1 elements?
I think it should work for DG1 elements. See for example the time-dependent advection tests in firedrake/tests/regression/test_periodic_interval_advection.py A guess as to why you might be getting maximum violation: Do you have steep gradients, shocks, or discontinuities in your solution? If so, then you may need to apply some form of slope limiting to avoid spurious oscillations. Dave Ketcheson has a nice ipython notebook running through some of the theory behind this (with pretty pictures!) http://nbviewer.ipython.org/gist/ketch/03da681c7966a8ce630f. Cheers, Lawrence -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJWClQkAAoJECOc1kQ8PEYvsWUH/3KUKLHh4EpzLyEr0inhyl5r ZXPrHkiWcFO1gtzzTrwAYg3gwUs8NIzqSrCLRC/pMGTEin94A0iumlE56ebDHa9c WPVjfH6GHwbij+fo4UfRMCFsiepM0eOq3oqeBBQb6ILxRenJYwqXrhNiPR3o1+Kq Bqa9pr2ZduitJwgcl9MstjGwXvYRdztZIQcbqFh+UeaKMED1toTxrBxMKicHXsC8 SQvXBIlhGomSjgZHrNrEY0JdDG8mIjcmtcB8DO17BnA4NpMEmohiR83LYE/PutPj YHXssmhilMNytzjE7lUR2x8Cbk4opVD1uohKNMZlVRnhr+dTA6hwETVyg1Sux80= =SRau -----END PGP SIGNATURE-----
participants (3)
- 
                
                Colin Cotter
- 
                
                Justin Chang
- 
                
                Lawrence Mitchell