[petsc-users] Local Discontinuous Galerkin with PETSc TS

Matthew Knepley knepley at gmail.com
Tue Mar 23 14:57:40 CDT 2021


On Tue, Mar 23, 2021 at 11:54 AM Salazar De Troya, Miguel <
salazardetro1 at llnl.gov> wrote:

> The calculation of p1 and p2 are done by solving an element-wise local
> problem using u^n. I guess I could embed this calculation inside of the
> calculation for G = H(p1, p2). However, I am hoping to be able to solve the
> problem using firedrake-ts so the formulation is all clearly in one place
> and in variational form. Reading the manual, Section 2.5.2 DAE
> formulations, the Hessenberg Index-1 DAE case seems to be what I need,
> although it is not clear to me how one can achieve this with an IMEX
> scheme. If I have:
>

I am almost certain that you do not want to do this. I am guessing the
Firedrake guys will agree. Did they tell you to do this?
If you had a large, nonlinear system for p1/p2, then a DAE would make
sense. Since it is just element-wise elimination, you should
roll it into the easy equation

  u' = H

Then you can use any integrator, as Barry says, in particular a nice
symplectic integrator. My understand is that SLATE is for exactly
this kind of thing.

  Thanks,

      Matt


>                 F(U', U, t) = G(t,U)
>
>                 p1 = f(u_x)
>
>                 p2 = g(u_x)
>
>                 u' - H(p1, p2) =  0
>
>
>
> where U = (p1, p2, u), F(U’, U, t) = [p1, p2, u’ - H(p1, p2)],] and G(t,
> U) = [f(u_x), g(u_x), 0], is there a solver strategy that will solve for p1
> and p2 first and then use that to solve the last equation? The jacobian for
> F in this formulation would be
>
>
>
> dF/dU = [[M, 0, 0],
>
>                 [0, M, 0],
>
>                 [H'(p1), H'(p2), \sigma*M]]
>
>
>
> where M is a mass matrix, H'(p1) is the jacobian of H(p1, p2) w.r.t. p1
> and H'(p2), the jacobian of H(p1, p2) w.r.t. p2. H'(p1) and H'(p2) are
> unnecessary for the solver strategy I want to implement.
>
>
>
> Thanks
>
> Miguel
>
>
>
>
>
>
>
> *From: *Barry Smith <bsmith at petsc.dev>
> *Date: *Monday, March 22, 2021 at 7:42 PM
> *To: *Matthew Knepley <knepley at gmail.com>
> *Cc: *"Salazar De Troya, Miguel" <salazardetro1 at llnl.gov>, "Jorti,
> Zakariae via petsc-users" <petsc-users at mcs.anl.gov>
> *Subject: *Re: [petsc-users] Local Discontinuous Galerkin with PETSc TS
>
>
>
>
>
>    u_t  = G(u)
>
>
>
>   I don't see why you won't just compute any needed u_x from the given u
> and then you can use any explicit or implicit TS solver trivially. For
> implicit methods it can automatically compute the Jacobian of G for you or
> you can provide it directly. Explicit methods will just use the "old" u
> while implicit methods will use the new.
>
>
>
>   Barry
>
>
>
>
>
> On Mar 22, 2021, at 7:20 PM, Matthew Knepley <knepley at gmail.com> wrote:
>
>
>
> On Mon, Mar 22, 2021 at 7:53 PM Salazar De Troya, Miguel via petsc-users <
> petsc-users at mcs.anl.gov> wrote:
>
> Hello
>
>
>
> I am interested in implementing the LDG method in “A local discontinuous
> Galerkin method for directly solving Hamilton–Jacobi equations”
> https://www.sciencedirect.com/science/article/pii/S0021999110005255
> <https://urldefense.us/v3/__https:/www.sciencedirect.com/science/article/pii/S0021999110005255__;!!G2kpM7uM-TzIFchu!nue-xIlrKIjtG6dGeWKiWVhSxLIOor_uLXP0UEel7pqB4YUy0y-YTHDqVX9IQCHtstz33g$>.
> The equation is more or less of the form (for 1D case):
>
>                 p1 = f(u_x)
>
>                 p2 = g(u_x)
>
>                 u_t  = H(p1, p2)
>
>
>
> where typically one solves for p1 and p2 using the previous time step
> solution “u” and then plugs them into the third equation to obtain the next
> step solution. I am wondering if the TS infrastructure could be used to
> implement this solution scheme. Looking at the manual, I think one could
> set G(t, U) to the right-hand side in the above equations and F(t, u, u’) =
> 0 to the left-hand side, although the first two equations would not have
> time derivative. In that case, how could one take advantage of the operator
> split scheme I mentioned? Maybe using some block preconditioners?
>
>
>
> Hi Miguel,
>
>
>
> I have a simple-minded way of understanding these TS things. My heuristic
> is that you put things in F that you expect to want
>
> at u^{n+1}, and things in G that you expect to want at u^n. It is not that
> simple, since you could for instance move F and G
>
> to the LHS and have Backward Euler, but it is my rule of thumb.
>
>
>
> So, were you looking for an IMEX scheme? If so, which terms should be
> lagged? Also, from the equations above, it is hard to
>
> see why you need a solve to calculate p1/p2. It looks like just a forward
> application of an operator.
>
>
>
>   Thanks,
>
>
>
>      Matt
>
>
>
> I am trying to solve the Hamilton-Jacobi equation u_t – H(u_x) = 0. I
> welcome any suggestion for better methods.
>
>
>
> Thanks
>
> Miguel
>
>
>
> Miguel A. Salazar de Troya
>
> Postdoctoral Researcher, Lawrence Livermore National Laboratory
>
> B141
>
> Rm: 1085-5
>
> Ph: 1(925) 422-6411
>
>
>
>
> --
>
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> -- Norbert Wiener
>
>
>
> https://www.cse.buffalo.edu/~knepley/
> <https://urldefense.us/v3/__http:/www.cse.buffalo.edu/*knepley/__;fg!!G2kpM7uM-TzIFchu!nue-xIlrKIjtG6dGeWKiWVhSxLIOor_uLXP0UEel7pqB4YUy0y-YTHDqVX9IQCFFohVy9g$>
>
>
>


-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210323/7cf3e4b6/attachment.html>


More information about the petsc-users mailing list