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/>