[petsc-users] DM coordinates interpolations

Barry Smith bsmith at mcs.anl.gov
Fri Jun 26 13:09:30 CDT 2015


> 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



More information about the petsc-users mailing list