On Fri, Apr 17, 2020 at 10:58 AM Mark Adams <mfad...@lbl.gov> wrote: > Line 1528 of dmplexsnes.c ? >
Yes. This is where we add in u_t, so it would make sense to also add in the source term here. If it were a function of t, s(t), you would just add vol*s(t). Thanks, Matt > On Fri, Apr 17, 2020 at 10:41 AM Matthew Knepley <knep...@gmail.com> > wrote: > >> Tried it again and works for me. >> >> Matt >> >> On Fri, Apr 17, 2020 at 10:39 AM Mark Adams <mfad...@lbl.gov> wrote: >> >>> Matt, that kink seems messed up. >>> >>> On Fri, Apr 17, 2020 at 9:18 AM Matthew Knepley <knep...@gmail.com> >>> wrote: >>> >>>> Mark is right, you could just add in a source term for each cell this >>>> way. >>>> >>>> If you really wanted a lower level interface, it would go here I think: >>>> >>>> >>>> https://gitlab.com/petsc/petsc/-/blob/master/src/snes/utils/dmplexsnes.c#L1528 >>>> >>>> What would you want the interface to look like? >>>> >>>> Thanks, >>>> >>>> Matt >>>> >>>> On Fri, Apr 17, 2020 at 7:55 AM Mark Adams <mfad...@lbl.gov> wrote: >>>> >>>>> You can write your own DMPlexTSComputeRHSFunctionFVM method like this >>>>> and give that to the dm. >>>>> >>>>> PetscErrorCode foo(DM dm, PetscReal time, Vec locX, Vec F, void *user) >>>>> { >>>>> PetscErrorCode ierr; >>>>> PetscFunctionBegin; >>>>> ierr = DMPlexTSComputeRHSFunctionFVM(dm, time, locX, F, >>>>> user);CHKERRQ(ierr); >>>>> ... >>>>> >>>>> PetscFunctionReturn(0); >>>>> } >>>>> >>>>> >>>>> On Fri, Apr 17, 2020 at 5:28 AM MUKKUND SUNJII < >>>>> mukkundsun...@gmail.com> wrote: >>>>> >>>>>> Greetings, >>>>>> >>>>>> I had been working on ts/tutorials/ex11.c as part of my master’s >>>>>> thesis. >>>>>> >>>>>> In ex11.c, there is a 2D Shallow Water Model. I want to modify the >>>>>> model by adding a source term to the model. This source term would factor >>>>>> in the effects of bathymetry or bed elevation in addition to water >>>>>> height. >>>>>> >>>>>> I know how I will be able to achieve this if just use >>>>>> TSSetRHSFunction(). However ex11.c makes use of the Riemann Solver for >>>>>> the >>>>>> computation fluxes at the interfaces (therefore, it uses >>>>>> DMTSSetRHSFunctionLocal(dm, DMPlexTSComputeRHSFunctionFVM, user) ). >>>>>> >>>>>> Is there a routine that allows me to *add* a source term *for every >>>>>> cell* to the RHS function? >>>>>> >>>>>> Thank you in advance! >>>>>> >>>>>> Regards, >>>>>> >>>>>> Mukkund >>>>>> >>>>> >>>> >>>> -- >>>> 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/>