[petsc-users] Modification to ex11.c

Matthew Knepley knepley at gmail.com
Fri Apr 17 10:07:47 CDT 2020


On Fri, Apr 17, 2020 at 10:58 AM Mark Adams <mfadams at 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 <knepley at gmail.com>
> wrote:
>
>> Tried it again and works for me.
>>
>>    Matt
>>
>> On Fri, Apr 17, 2020 at 10:39 AM Mark Adams <mfadams at lbl.gov> wrote:
>>
>>> Matt, that kink seems messed up.
>>>
>>> On Fri, Apr 17, 2020 at 9:18 AM Matthew Knepley <knepley at 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 <mfadams at 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 <
>>>>> mukkundsunjii at 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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200417/1215654c/attachment.html>


More information about the petsc-users mailing list