discontinuous galerkin method

204 views
Skip to first unread message

MGC Nestola

unread,
Dec 18, 2015, 9:32:15 AM12/18/15
to moose-users
Dear all,

I would like to have some references on the discontinuous galerkin method implemented in MOOSE.
Is it possible to have them?

Best,

Maria

MGC Nestola

unread,
Dec 18, 2015, 9:48:39 AM12/18/15
to moose-users
Ok 
maybe I found it in a previous post. It should be:

Discontinuous Galerkin Methods For Solving Elliptic And parabolic Equations: Theory and Implementation (Frontiers in Applied Mathematics).


Best,

Maria

Derek Gaston

unread,
Dec 18, 2015, 10:01:37 AM12/18/15
to moose-users
Also, note that it has quite a lot of errata which you can find here: http://www.caam.rice.edu/~riviere/Erratum.pdf

Derek

--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at https://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/3c636acd-956e-40ad-9c8c-968dbaff0e05%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

MGC Nestola

unread,
Dec 18, 2015, 10:06:34 AM12/18/15
to moose-users
many thanks

maria


Il giorno venerdì 18 dicembre 2015 15:32:15 UTC+1, MGC Nestola ha scritto:

MGC Nestola

unread,
Dec 18, 2015, 11:15:04 AM12/18/15
to moose-users
Dear all,

I am going to implement a stabilisation technique for the Lagrange multiplier. I need to compute the jump at the interface both for the test and the trial functions. I have seen that in the DG kernel they define the values of the test_neighbor and of the phi_neighbor which are what I am looking for.
However I have also read that DGKernel can be used only with Monomial variables while I am using Lagrange variables. Thus, I was wondering  if I can have an access to these values also by using other kernel in MOOSE.

Best,

Maria


Il giorno venerdì 18 dicembre 2015 15:32:15 UTC+1, MGC Nestola ha scritto:

Derek Gaston

unread,
Dec 18, 2015, 11:35:20 AM12/18/15
to moose-users
DGKernels can be used with any shape functions... but they normally only really make sense for discontinuous shape functions.

I just took a quick look and I don't see anything in the code that would forbid using DGKernels on Lagrange variables... but I also haven't tried it.

Let us know if it doesn't work for you :-)

Derek

--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at https://groups.google.com/group/moose-users.

Alex Lindsay

unread,
Dec 18, 2015, 12:27:27 PM12/18/15
to moose...@googlegroups.com
You can run DG with Lagrange shape functions in Moose just fine. You just won't acquire some of the advantages typically associated with DG, e.g. typically better behavior when compared with CG for convection dominated problems.

Wang (Non-US), Yaqi

unread,
Dec 18, 2015, 12:28:57 PM12/18/15
to moose-users
There is a discontinuous version of Lagrange shape function, L2_LAGRANGE. I think if you use LAGRANGE on solving the convection equation, you will not see the discontinuity in your solution and will be essentially doing CG without stabilization. I might be wrong on this.

Wang (Non-US), Yaqi

unread,
Dec 18, 2015, 12:32:23 PM12/18/15
to moose-users
Maybe we should let DG kernel to check the variable type in constructor and issue an error or at least a warning when the variable is in continuous type...

Alex Lindsay

unread,
Dec 18, 2015, 12:35:57 PM12/18/15
to moose...@googlegroups.com
I believe you're right Yaqi. I was running some tests just last week looking at this:

Here's the solution towards the end time of the propagation of a moving front using just CG and Lagrange shape functions.



Here's the solution with the DG method using Lagrange shape functions; it looks the exact same as the CG method:



And finally, the solution with DG using first order discontinuous monomial functions; you can see that the oscillations are significantly reduced using this method.




Alex

Derek Gaston

unread,
Dec 18, 2015, 12:36:50 PM12/18/15
to moose-users
She is doing something very specific using Lagrange Multipliers... her problem might be perfectly well defined with continuous shape functions / values (maybe she's only looking at jumps in the gradient, etc.).

I don't see any reason to restrict DGKernels to only operating on discontinuous shape functions.  If someone tries to use the jump in the variable value across an element edge with a continuous basis function... they'll figure out pretty quickly that that will always be zero ;-)

It would be pretty annoying to issue even a warning here... as there very well could be good reasons to be doing this.

Derek

Wang (Non-US), Yaqi

unread,
Dec 18, 2015, 12:37:14 PM12/18/15
to moose-users
Alex, Thanks for the confirmation, ;-)

Wang (Non-US), Yaqi

unread,
Dec 18, 2015, 12:43:31 PM12/18/15
to moose-users
Yes, Alex is using DGKernel on side sets to couple two different variables on each side, in that case and MGC's case, we do not care if both variables are discontinuous. We can be a little smarter on the check, i.e. issue errors only when trying to operate the same continuous variable on both side. This seems to me a mistake a user can easily make with DG in MOOSE.

Derek Gaston

unread,
Dec 18, 2015, 12:46:58 PM12/18/15
to moose-users
Yaqi,

What I'm saying is that you could have a perfectly valid numerical method that utilized DGKernels on continuous shape functions.  For instance, what if the jump in the gradient across an element edge contributed to the residual?  That would work perfectly fine with continuous shape functions...

Derek

Alex Lindsay

unread,
Dec 18, 2015, 12:56:17 PM12/18/15
to moose...@googlegroups.com
You're definitely right Derek that you can use Moose's DGKernels for many different kinds of things, even for continuous variables. But perhaps in Yaqi's defense, DG is kind of a misnomer at this point. We're starting to use it for so many different things other than the Discontinuous Galerkin method

Wang (Non-US), Yaqi

unread,
Dec 18, 2015, 12:57:20 PM12/18/15
to moose-users
Right, you could develop a DG kernel which has non-zero contribution to the residual even with continuous shape functions. I was thinking the three well-known DG diffusion kernels, they both will be zero with continuous functions. It could waste people a much longer time to realize that they are using wrong types in their DG calculations. 

MGC Nestola

unread,
Dec 21, 2015, 5:16:26 AM12/21/15
to moose-users
Dear all,
can I use block restricted variables in the dg_kernels?

Best,

Maria



Il giorno venerdì 18 dicembre 2015 15:32:15 UTC+1, MGC Nestola ha scritto:

Alexander Lindsay

unread,
Dec 21, 2015, 3:05:50 PM12/21/15
to moose...@googlegroups.com
Currently, when you create a dg_kernel it will live on the entire domain. I think that if you try to use a dg_kernel on a block restricted variable you will either get a seg fault or you will get residuals that don't make any sense. I think that's what I remember when I was conducting some tests about a month ago. My memory could be imperfect, however.

There is currently a pull request that implements block restriction of dg_kernels however...
--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at https://groups.google.com/group/moose-users.
Reply all
Reply to author
Forward
0 new messages