BLEND - Transfinite Interpolation
BLEND is a collection of routines for "blending" data, that is,
creating interpolated values based on a set of given data.
BLEND can handle input data that is 1, 2, or 3 dimensional.
In the general, 3D case, the data can depend on smoothly varying
space parameters (R,S,T) or on tabular indices (I,J,K). The data
may be given at the corners, edges, or faces of the unit cube.
In the (R,S,T) case, BLEND can supply an interpolated value at
any point in the cube. In the (I,J,K) case, BLEND will fill in
tabular values for all intermediate indices.
In the simplest case, where BLEND is only given data values at the
endpoints of a line segment, the 4 corners of a square, or the 8
corners of a cube, BLEND is equivalent to linear, bilinear
or trilinear finite element interpolation of the data. However,
in the more interesting cases where BLEND is given, say, a formula
for the data along the sides of the square, or the edges of the
cube, the interpolation is called "transfinite", since in theory
it samples the input data at more than a finite number of points.
-
Reference 1:
-
W N Gordon and Charles A Hall,
Construction of Curvilinear Coordinate Systems and Application to
Mesh Generation,
International Journal of Numerical Methods in Engineering,
Volume 7, pages 461-477, 1973.
-
Reference 2:
-
Joe Thompson, Bharat Soni, Nigel Weatherill,
Handbook of Grid Generation,
CRC Press, 1999.
A C version of some of these routines is available as
BLENDC.
Interesting examples of the use of transfinite interpolation are in
TILER_2D
and TILER_3D.
Files you may copy include:
The list of routines includes:
-
BLEND_101 extends scalar endpoint data to a line.
-
BLEND_102 extends scalar point data into a square.
-
BLEND_103 extends scalar point data into a cube.
-
BLEND_112 extends scalar line data into a square.
-
BLEND_113 extends scalar line data into a cube.
-
BLEND_123 extends scalar face data into a cube.
-
BLEND_I_0D1 extends indexed scalar data at endpoints along a line.
-
BLEND_IJ_0D1 extends indexed scalar data at corners into a table.
-
BLEND_IJ_1D1 extends indexed scalar data along edges into a table.
-
BLEND_IJ_W_1D1 extends weighted indexed scalar data along edges into a table.
-
BLEND_IJK_0D1 extends indexed scalar corner data into a cubic table.
-
BLEND_IJK_1D1 extends indexed scalar edge data into a cubic table.
-
BLEND_IJK_2D1 extends indexed scalar face data into a cubic table.
-
BLEND_R_0DN extends vector data at endpoints into a line.
-
BLEND_RS_0DN extends vector data at corners into a square.
-
BLEND_RS_1DN extends vector data along sides into a square.
-
BLEND_RST_0DN extends vector data at corners into a cube.
-
BLEND_RST_1DN extends vector data on edges into a cube.
-
BLEND_RST_2DN extends vector data on faces into a cube.
-
RBLOCK_PRINT prints a real block (a 3D matrix).
-
RMAT_PRINT prints a real matrix.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
Return to the FORTRAN software page.
Last revised on 16 October 2001.