Interpolation over an irregular surface
- To: mathgroup at smc.vnet.net
- Subject: [mg39240] Interpolation over an irregular surface
- From: jrome at mail.com (Jacob Rome)
- Date: Wed, 5 Feb 2003 00:11:20 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
I'm trying to map (interpolate) temperatures from one 2D set of points
to another for a finite element application. The initial set of
points is {x1,y1,t1} and the second set is {X1,Y1,T1}, and I know all
the values except for T1. I have connectivity data for the new mesh
{X1,Y1}, but not for the original mesh (x1,y1).
I have downloaded the ExtendGraphics package, and it has a functions
(TriangularInterpolate) which should do exactly what I need. No error
is given when I initially use it
(interpFunc=TriangularInterpolate[nodeTemp], where nodeTemp is a
3-column matrix). However, when I invoke it again (interpFunc[x1,y1]),
I get a series of errors, primarily about reaching the recursion or
iteration limits. Could this have to do with the size of the initial
matrix (~15,000 sets of data), or is there a different problem? It
only seems to work correctly when the point is outside of the initial
region, or if all the nearest nodes have the same temperature.
After this setback, I planned to use the Delaunay function in the same
package to help write my own interpolation routine. Using this
function should return three sets of data: the Convex Hull, Adjacency
Matrix and the Triangles. However, it appears that only the Convex
Hull and the Triangles are returned; to effectively write an
interpolation routine, the Adjacency Matrix is crucial. How can I get
this data from the Delaunay function?
Any advice on solving this problem is greatly appreciated, whether you
can suggest an alternative approach or provide a means to use these
functions more effectively. Thank you.