[petsc-users] Fwd: Interpolation in staggered grid

Manuel Valera mvalera-w at sdsu.edu
Mon Oct 15 16:22:02 CDT 2018


Thanks Matthew, i have made some progress but i am still unsure on how to
proceed to make the DMDAs work as intended, i will try to lay out what i am
trying now:

I was able to port the interpolation into the DMDA model but it works only
in serial runs, and it becomes unstable for more than one processor running,

What i do is roughly this:

   - Calculate density at a cell-centered DMDA object, using a local vector
   so i can access the ghost rows (indices -1 and max+1)
   - Interpolate into a face-centered DMDA object for velocities, using
   also a local vector.

Doing this i get the right results using the same interpolation i used for
my non-petsc implementation of the model, as long as i use only one
processor but the doubts i have are:

   - How to use the local vectors properly: Is operating on them the
   recommended course in this case?
   - How can i access the ghost indices in the global vector so i can then
   communicate GlobalToLocal? would this be a better strategy?
   - I feel is wrong to interpolate a cell-centered based vector into a
   face-centered based vector, using the indices of the latter, what strategy
   would work best in this case?

I also tried opening a global vector with a different DA layout than the
one created (opening global density on the velocities DMDA layout) and this
introduced an error in the GlobalToLocal, LocalToLocal, LocalToGlobal
communication, something didn't happen if i used the local versions of
these vectors instead,

Thanks for your help,

Manuel





On Sat, Oct 6, 2018 at 4:45 AM Matthew Knepley <knepley at gmail.com> wrote:

> On Fri, Oct 5, 2018 at 6:49 PM Manuel Valera <mvalera-w at sdsu.edu> wrote:
>
>> Hello,
>>
>> I'm trying to do a simple variable interpolation, from a cell center to a
>> face in a staggered grid, my model data management is done with DMDAs, with
>> two different DMs one for each cell position,
>>
>> I already did this task on a fortran only version of the model using the
>> 4 closest neighbors of the scalars (cell center) to be interpolated at the
>> velocity site (cell face), i did it using a loop over the domain, somehow
>> this easy task is not translating into the DMDA framework,
>>
>
> Its not clear to me what problem you are having. We have done this before.
> For example,
>
>
> https://www.mcs.anl.gov/petsc/petsc-current/src/snes/examples/tutorials/ex30.c.html
>
> I would note that the development version of PETSc now has DMStag which
> supports staggered grid discretizations directly.
>
>   Thanks,
>
>     Matt
>
>
>> I'm not sure what I'm doing wrong or not aware of a easier way Petsc may
>> have for this task, if you could point out an easier strategy or an example
>> I would be grateful,
>>
>> Thanks,
>>
>>
>>
>>
>>
>
> --
> 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/20181015/6714c1ba/attachment.html>


More information about the petsc-users mailing list