Matrix-free: two-point volume fluxes for entropy-stable DG?

116 views
Skip to first unread message

Jack Coughlin

unread,
Apr 23, 2024, 11:19:46 AMApr 23
to deal.II User Group
I am interested in using the deal.ii matrix-free infrastructure to implement an entropy-stable DG method. The entropy stable family of methods uses an interesting variation, where the volume flux is actually a consistent two-point flux function (similar to the numerical flux).

I've attached a screenshot of the formula in question, which is taken from this documentation page. I've also attached a review of the method.

As far as I can tell, to do this you would need to be able to tell a class like FEEvaluation to integrate a given submission only for one test function. I think I can see how to do this integration manually with FEValues, but it would be nice to take advantage of the matrix-free infrastructure if possible.

Thank you,
-Jack C
Screenshot 2024-04-23 at 8.05.59 AM.png
fphy-08-500690 (1).pdf

Martin Kronbichler

unread,
Apr 24, 2024, 4:28:07 PMApr 24
to dea...@googlegroups.com

Dear Jack,

Two-point fluxes are something we have not yet included in deal.II. I would be very interested if we could realize this feature. I must admit that I did not yet try to understand the complete formula in the link you provided, but in fact it should be possible to implement this with the internal evaluators used by FEEvaluation very efficiently. Would you be willing to share the FEValues variant, it is enough to provide it in 1D. I did work with the Trixi code before, but did not yet look into the algorithms, so I would be very curious to learn the details. My initial approach would be to encode the full D_split matrix to be fed into the tensor product evaluators in the internal namespace, and then add the respective boundary fluxes. Once we have a basic version, we can think about making the interface nicer.

Best,
Martin


Am 23.04.24 um 17:19 schrieb Jack Coughlin:
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dealii+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/0e660dc2-6d2b-4a83-a440-7a4a13ba1e3fn%40googlegroups.com.
Message has been deleted
Message has been deleted
Message has been deleted

rru

unread,
Jul 2, 2024, 2:54:52 PM (yesterday) Jul 2
to deal.II User Group
Dear Martin,
The conversations for  the two point flux entropy stable DG seem to be deleted. However this is an important topic (for strong shocks etc). Could this be done with the Matrix-Free / FEEvaluation routines or would one need to do something similar to step-69. I prefer FE_DGQ with Gauss-Lobatto quadrature and the highly efficient routines therein.  Naively speaking, we would need the following type of pseudo code (for 1D) :
Form split_derivative_matrix = D_split[q,q1] for q,q1 in [0....N];
(diagonal entries of D_split are zero)
for q in [0:N]: // q and basis same for Gauss-Lobatto quadrature
       get u[q] // dof value
        for q1 in [q+1:N] // Diagonal contribution is 0
             get u1[q]
             F[u,u1] = two_point_flux(u,u1) // This will be symmetric in u,u1 
             u_q += D_split[q,q1]*F[u,u1]
             u_q += D_split[q1,q]*F[u1,u]  // Symmetric so F[u,u1] = F[u1,u]
Maybe a more sophisticated algorithm with Tensor / Hadamard products could be formulated ?
For high performance, can the above be done efficiently in the deal.ii matrix free framework ? And if so how ?
Regards,
Rochan
Reply all
Reply to author
Forward
0 new messages