[petsc-users] need help with vector interpolation on nonuniform DMDA grids

Francesco Magaletti francesco_magaletti at fastwebnet.it
Tue Nov 6 04:11:15 CST 2018


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


More information about the petsc-users mailing list