On Fri, Apr 17, 2020 at 12:52 PM Mark Adams <mfad...@lbl.gov> wrote: > Just to be clear, you seem to be suggesting adding an interface for this > and/or code to clone? >
Adding an interface. Thanks, Matt > On Fri, Apr 17, 2020 at 11:08 AM Matthew Knepley <knep...@gmail.com> > wrote: > >> 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/> >> > -- 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/>