Ok I will investigate implementing it using SLATE, thanks.

Miguel

From: Matthew Knepley <knep...@gmail.com>
Date: Tuesday, March 23, 2021 at 12:57 PM
To: "Salazar De Troya, Miguel" <salazardet...@llnl.gov>
Cc: Barry Smith <bsm...@petsc.dev>, "Jorti, Zakariae via petsc-users" 
<petsc-users@mcs.anl.gov>
Subject: Re: [petsc-users] Local Discontinuous Galerkin with PETSc TS

On Tue, Mar 23, 2021 at 11:54 AM Salazar De Troya, Miguel 
<salazardet...@llnl.gov<mailto:salazardet...@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 <bsm...@petsc.dev<mailto:bsm...@petsc.dev>>
Date: Monday, March 22, 2021 at 7:42 PM
To: Matthew Knepley <knep...@gmail.com<mailto:knep...@gmail.com>>
Cc: "Salazar De Troya, Miguel" 
<salazardet...@llnl.gov<mailto:salazardet...@llnl.gov>>, "Jorti, Zakariae via 
petsc-users" <petsc-users@mcs.anl.gov<mailto:petsc-users@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 
<knep...@gmail.com<mailto:knep...@gmail.com>> wrote:

On Mon, Mar 22, 2021 at 7:53 PM Salazar De Troya, Miguel via petsc-users 
<petsc-users@mcs.anl.gov<mailto:petsc-users@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/<https://urldefense.us/v3/__http:/www.cse.buffalo.edu/*knepley/__;fg!!G2kpM7uM-TzIFchu!lEu9NNrA97DCDc8h2EsU8GYqkX4PGCgIa_CVjM1304DB20Q3XNwndjiiEfe4GagpEU6aIw$>

Reply via email to