[petsc-users] Local Discontinuous Galerkin with PETSc TS

Matthew Knepley knepley at gmail.com
Sat Mar 27 11:39:56 CDT 2021


On Fri, Mar 26, 2021 at 8:20 PM Barry Smith <bsmith at petsc.dev> wrote:

>
>    What is SLATE in this context?
>

SLATE is an extension to the Firedrake DSL that describes local
elimination. The idea is that you declaratively tell it what you want,
say static condensation or elimination to get the hybridized problem or
Wheeler Yotov elimination, and it automatically transforms the
problem to give the solve the problem after elimination, handling the local
solves automatically. We definitely want this capability if we
ever seriously pursue hybridization. Thomas Gibson did this, who just moved
to UIUC to work with Andres and company.

  Thanks,

     Matt

> On Mar 23, 2021, at 2:57 PM, Matthew Knepley <knepley at gmail.com> wrote:
>
> 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/>
>
>
>

-- 
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/20210327/b43bc483/attachment.html>


More information about the petsc-users mailing list