On Wed, Apr 14, 2021 at 5:39 AM Thibault Bridel-Bertomeu < thibault.bridelberto...@gmail.com> wrote:
> Hello Matthew, > > Sorry for the late answer ! > > Unfortunately, I couldn't find any elegant way to add a source term with a > TS+DM+PetscFV ... The only thing I could find was to write completely my > own RHS function that i pass to DMTSSetRHSFunctionLocal. That way I have > full control over everything, but it's not as elegant as using the > DMPlexTSComputeRHSFunctionFVM that is already in PETSc. > > I added you to the project on Gitlab where i do this (I have not been > continuing with this code but with another, also based on PETSc, that's why > there are no updates recently) so you can see what I coded, if it can be of > any help for a future release / for the people in the other project you > mention. What I am talking about is in timeDiscretization_PETSc.c & > fluxCalculation.c, mostly. (I did not expect to share that work so it might > be a bit poor comments-wise, sorry). > Feel free to share the code if you feel it can be useful, as long as the > headers in the source files stay as they are ;) > Thanks! It seems I have to figure this out now, so I will do something. Looking at your code will be a huge help. What are you working on now? Thanks, Matt > Thibault > > > Le lun. 12 avr. 2021 à 16:38, Matthew Knepley <knep...@gmail.com> a > écrit : > >> On Mon, Jul 20, 2020 at 11:04 AM Thibault Bridel-Bertomeu < >> thibault.bridelberto...@gmail.com> wrote: >> >>> Thank you Mark, Jed and Matthew for your quick answers ! >>> >>> I see now where I should be more accurate in my question. >>> >>> Mark, I mentioned the hyperbolicity because I would like to keep using >>> the PetscDSSetRiemannSolver and the DMTSSetBoundaryLocal and >>> DMTSSetRHSFunctionLocal >>> with DMPlexTSComputeRHSFunctionFVM that are quite automatic and nice and >>> efficient wrappers. Now aside from those which deal specifically with the >>> hyperbolic part of the PDE, i would like to add the diffusive terms. I >>> would rather stay in the FVM world, but if it is easier in the FEM world >>> then I am open to it. >>> >>> Jed, as for the discretization let us say indeed that the mesh can be >>> either cartesian or not, and the discretization should therefore be >>> independent of the nature of the mesh - any unstructured mesh (i handle it >>> with DMPlex in my case). I saw indeed that FV has gradient reconstruction, >>> with or without a limiter, which is great. However I have not quite >>> understood what function to use to get the gradient of any variable, be it >>> in the context (e.g. for N-S, ro, rou, rov, etc...) or an auxiliary >>> variable (e.g. the components of the strain tensor). I also agree that the >>> diffusive part is usually the one that strongly limits the time step in >>> explicit computations, but for now I would like to set up a fully explicit >>> system. >>> >>> Matthew, I'll take a look at ex 18, thanks, I missed that one. >>> >>> So basically if I wanted to summarize, I want to keep the Riemann Solver >>> capability from the DS, and use the >>> "automatic" DMPlexTSComputeRHSFunctionFVM for the hyperbolic part and add >>> on top of it a discretization of the diffusive terms. I was thinking maybe >>> one way to go would be to hack the DMTSSetForcingFunction but >>> 1/ I still am not sure what this function should return exactly, is it a >>> Vec for the flux on all faces ? >>> 2/ I still do not know how to compute all the derivatives involved in >>> the diffusive terms of the N-S using the gradient reconstruction from >>> PetscFV >>> >>> Thank you for your help, I hope I am clear enough in where I want to go ! >>> >> >> Hi Thibault, >> >> Did anything happen on this front? I have another project where people >> want to do that same thing. >> >> Thanks, >> >> Matt >> >> >>> Thibault >>> >>> Le lun. 20 juil. 2020 à 16:10, Matthew Knepley <knep...@gmail.com> a >>> écrit : >>> >>>> On Mon, Jul 20, 2020 at 9:36 AM Jed Brown <j...@jedbrown.org> wrote: >>>> >>>>> How would you like to discretize the diffusive terms? The example has >>>>> a type of gradient reconstruction so you can have cellwise gradients, but >>>>> there are many techniques for discretizing diffusive terms in FV. It's >>>>> simpler if you use an orthogonal grid, but I doubt that you are. >>>>> >>>>> As for terminology, the diffusive part is usually stiff and thus must >>>>> be treated implicitly. In TS terminology, this would be part of the >>>>> IFunction, not the RHSFunction. >>>>> >>>> >>>> At a high level, I would say that this is doable, but complicated. You >>>> can see me trying to do something much easier (advection + >>>> visco-elasticity) in TS ex18, >>>> where I want to discretize the elliptic part with FEM and the advective >>>> part with FVM. I assume that is why Jed wants to know how you want to >>>> handle the >>>> elliptic terms, since this has a large impact on how you would >>>> implement. >>>> >>>> Thanks, >>>> >>>> Matt >>>> >>>> >>>>> Thibault Bridel-Bertomeu <thibault.bridelberto...@gmail.com> writes: >>>>> >>>>> > Dear all, >>>>> > >>>>> > I have been studying ex11.c from ts/tutorials to understand how to >>>>> solve an >>>>> > hyperbolic system of equations using PETSCFV. I first worked on the >>>>> Euler >>>>> > equations for inviscid fluids and based on what ex11.c presents, I >>>>> was able >>>>> > to add the right PETSc instructions in an already existing in-house >>>>> code >>>>> > with different gas models to solve the problems in parallel (MPI) >>>>> and with >>>>> > the AMR capabilities offered by P4EST. >>>>> > >>>>> > Now my goal is to move to Navier-Stokes equations. Theoretically the >>>>> system >>>>> > is not completely hyperbolic and can be seen as one with an >>>>> hyperbolic part >>>>> > (identical to the Euler equations) and a parabolic part coming from >>>>> the RHS >>>>> > diffusion terms. >>>>> > I have been looking into the manual and also the sources of PETSc >>>>> around >>>>> > the DM, DMPlex, DS and FV classes but I could not find anything that >>>>> speaks >>>>> > to me as "adding a RHS to an hyperbolic system of equations" or >>>>> "adding a >>>>> > source term to an hyperbolic system of equations". What's more, that >>>>> source >>>>> > term depends on the derivatives of the context variables ... >>>>> > >>>>> > I wanted to know if anyone maybe had a suggestion regarding this >>>>> issue ? >>>>> > >>>>> > Thank you very much in advance, >>>>> > >>>>> > Thibault Bridel-Bertomeu >>>>> > — >>>>> > Eng, MSc, PhD >>>>> > Research Engineer >>>>> > CEA/CESTA >>>>> > 33114 LE BARP >>>>> > Tel.: (+33)557046924 >>>>> > Mob.: (+33)611025322 >>>>> > Mail: thibault.bridelberto...@gmail.com >>>>> >>>> >>>> >>>> -- >>>> 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/> >> > -- 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/>