> 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

Reply via email to