Dear all, 

I would like to ask you if is there an easy and efficient way in parallel (by 
using PetsC functions) to interpolate a DMDA vector associated with a 
nonuniform 1D grid to another DMDA vector with the same length but associated 
with a different nonuniform grid. 

Let me rephrase it to be as clearer as I can:

I have two structured nonuniform 1D grids with coordinate vectors x[i] and 
y[i]. Both the domains have been discretized with the same number of points, 
but the coordinate vectors x and y are different. I have a discretized field 
u[i] = u(x[i]) and I would like to use these point values to evaluate the 
values u(y[i]) in the points of the second grid.

I read on the manual pages that functions like DMCreateInterpolation or similar 
work only with different but uniform DMDAs. Did I understand correctly? 

A naive approach, with a serial code, could be to find the points x[i] and 
x[i+1] that surround the point y[j] for every j and then simply linear 
interpolating the values u[i] and u[i+1]. I suspect that this is not the most 
efficient way to do it. Moreover it won’t work in parallel since, in principle, 
I do not know beforehand how many ghost nodes could be necessary to perform all 
the interpolations. 

Thank you in advance for your help!

Francesco

Reply via email to