> On Jun 26, 2015, at 12:27 PM, Gianluca Meneghello <[email protected]> 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
