[petsc-users] DM coordinates interpolations

Gianluca Meneghello gianmail at gmail.com
Sat Jun 27 13:25:04 CDT 2015


Dear Matthew, Berry and Dave,

Thanks for your reply. I will do as you suggest: only two more questions:

- is the beginning of formFunction the right place to set up the
coordinates? As far as I understand I do not have access to the refined DM
before running the code with -snes_grid_sequence.

- if so, what should I check in order to avoid to recompute the coordinates
at each formFunction call? e.g., what does DMGetCoordinates return NULL as
the coordinate vector (or something else) if called when the coordinates
have not yet been set up?

Thanks again

Gianluca



On Fri, Jun 26, 2015 at 11:28 AM, Dave May <dave.mayhem23 at gmail.com> wrote:

> Also note that if you go and modify the global coordinate vector after
> calling DMDASetUniformCoordinates, you will need to explicitly call the
> vecscatter yourself to update the local coordinates.
>
>
>
> On Friday, 26 June 2015, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>>
>> > On Jun 26, 2015, at 12:27 PM, Gianluca Meneghello <gianmail at gmail.com>
>> wrote:
>> >
>> > Dear all,
>> >
>> > I would like to solve a PDE discretized on a nonuniform --- but
>> rectangular --- grid and I wanted to use the DM coordinates vector to
>> compute the metric terms by finite difference. The only alternative I see
>> is to recompute the coordinates (and then the metric terms) at every
>> function and jacobian evaluation call.
>> >
>> > My question is what is the best (or even correct) way to provide the
>> coordinates to the newly created da objects. Is there anything like a
>> DMDASetNonUniformCoordinates to which to pass a function computing the
>> coordinates? As far as I can tell the fine grid coordinates are currently
>> linearly interpolated from the coarse grid ones.
>>
>>    Call DMDASetUniformCoordinates() on each level then call
>> DMGetCoordinates() and put the coordinate values you want in. You can call
>> DMGetCoordinateDM(dm, &dmcoor) to get the DM that goes with the coordinate
>> vector and use DMDAVecGetArray(dmcoor,coor,&array) to give easy access to
>> the entries.
>>
>> >
>> > Please also let me thank you for your great work: it has been and it
>> currently is of enormous help.
>> >
>> > Best
>> >
>> > Gianluca
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150627/16b4eb58/attachment.html>


More information about the petsc-users mailing list