9.5. Interpolation Algorithms

Several interpolation algorithms are available for use with supported material data tables (TB).

Simple linear interpolation is the default for 1D and 2D grid data. To obtain meaningful results for multidimensional non-grid data, it is necessary to use one of the multidimensional interpolation algorithms.

You can select an interpolation algorithm or switch between algorithms (TBIN).

9.5.1. Simple Linear Interpolation

Simple linear interpolation can be used for one- and two-dimensional grid data:

9.5.1.1. Simple Linear Algorithm (One-Dimensional)

To demonstrate the interpolation of data in a sparsely defined grid, consider the results of a two-dimensional interpolation at a temperature of 100 and a sliding distance of 0.40. In this case, the program performs only a one-dimensional interpolation because the defined temperature value (100) lies directly on the defined grid field. For this case, the program obtains a friction coefficient value of 0.45 based on the following calculations:

Equation (1)

where

Equation (2)

Substituting the tabular values

x = 0.4,x0 = 0.2,x1 = 0.5
y0 = 0.35y1 = 0.5 

Substituting these values into Equation (2):

Equation (3)

and solving for the interpolated values using Equation (1), we obtain

Equation (4)

9.5.1.2. Simple Linear Algorithm (Two-Dimensional)

Two-dimensional interpolation requires data provided in the proper order. If UF01 and TEMP are the two field variables, for example, input the data in the following format:

  UF01 = 100 UF01 = 200 UF01 = 300 UF01 = 400
TEMP = 0 1234
TEMP = 10 5  6
TEMP = 20 7 89

If TBFIELD for TEMP is issued first, all data points with TEMP held constant and UF01 varying are issued. Then TEMP is modified again and data points with UF01 changing are issued.

Consider the case where a true two-dimensional interpolation is required at a temperature of 180 and a sliding distance of 0.40. The program performs three different linear interpolations to determine the property value within the grid. When performing two-dimensional interpolation, the program always interpolates first along the two relevant rows of the grid (Temperature in this case), then between the rows.

In this example, the program performs the first interpolation at a temperature of 100 and a sliding distance of 0.4, yielding the result of 0.45 (as shown in Equation (4)).

The program performs the second interpolation for a temperature of 200 and a sliding distance of 0.4. In this case, we find that

x = 0.4,x0 = 0.2,x1 = 0.5
y0 = 0.2y1 = 0.14 

Substituting these values into Equation (2):

Equation (5)

and solving for the interpolated values using Equation (1), we obtain

Equation (6)

Finally, the program performs a third interpolation between the temperature value of 100 and 200 at a sliding distance of 0.4.

t = 180,t0 = 100,t1 = 200
y0 = 0.45y1 = 0.16 

Substituting these values into Equation (2):

Equation (7)

and solving for the interpolated values using Equation (1), we obtain

Equation (8)

9.5.2. Multidimensional Interpolation

Use the linear-multivariate algorithm to perform interpolation when two or more field variables are input.

Unlike simple linear interpolation, you can input a random collection of data points where the material property was experimentally evaluated. It is not necessary to input data in any specific grid format (although you can still do so), but you must provide enough data to cover the region where you intend to interpolate.

Because the data is a random sampling, the algorithm creates an n-dimensional rectangular bounding box, and the queries outside of the bounding box are projected to fall on the surface or edge of the bounding box. The algorithm performs the projection by calculating a normal to each axis until it finds a position within the bounding box.

In the following figure, the stars represent the data points input that you provide, and the blue stars represent queries outside of the bounding box:

The figure shows how the data points are projected first in one dimension and then in the second dimension. This method was extrapolated and implemented for multiple dimensions.

Nonlinear interpolation can produce slightly different results from that of linear interpolation.

For material data tables that use TBPT-based input (such as TB,PLASTIC), stresses are first evaluated at the neighboring strain values provided in the TBPT input using the specified multidimensional interpolation algorithm, then linearly interpolated between the neighboring values to maintain the stress strain data C0.

9.5.2.1. Linear-Multivariate Algorithm

Linear-multivariate is an interpolation algorithm that uses points near the query location to perform the interpolation process. The algorithm generates an n-dimension mesh (simplices) using Delaunay triangulation. It uses that mesh to select an n-dimensional element, and the values at the nodes of the elements, to perform a linear interpolation.

The linear-multivariate algorithm is recommended for parameter spaces of Order 3 and above, or when the data is not a standard 2D grid. It is highly accurate when given a sufficient distribution of points. (More data points result in greater accuracy.)

The linear-multivariate algorithm is also capable of projecting points to the convex hull generated prior to the interpolation process, as shown in Example 9.6: Projecting to a Convex Hull.

When using linear-multivariate interpolation, examine the input and the interpolated values (*GET) before applying the algorithm to the solution. (See *GET General Items, Entity = TBTYPE in the Command Reference and Evaluating Interpolation Algorithm Results.) The following example cases indicate the necessity of performing an interpolation study for complex data:

Example 9.3: Linear-Multivariate Interpolation Using Four Points

In some cases, such as a perfect grid, the triangulation may not be unique. In this 2D example with the given four points, the generated mesh can take either of these forms:

If all four points are not in a plane, the linearly interpolated value is generated either from the bottom three points or from the leftmost three points, depending on how the mesh was generated internally. Enter enough points to ensure that any meshing changes do not affect the results.


Example 9.4: Dimensionality of Data

Linear-multivariate interpolation cannot handle data where the dimensionality of the data points is higher than the dimensionality of the point cloud.

For example, with 2D data, the algorithm cannot handle cases where all points lie in a single line. You must therefore either transform the data to a single dimension or populate the 2D data with additional data points to enable the algorithm to create a 2D mesh.

Likewise, avoid using this algorithm if the data points are 3D but span only a surface (a dimension less than the dimension of the point) rather than a 3D volume.


Example 9.5: Query Points Outside the Convex Hull of Input Data Points

Here is an example of a situation when the query point (blue star) is specified outside the convex hull of the specified data points but inside the bounding box:

By default, an error occurs in such cases (because the data from the nearest element will need to be extrapolated to obtain a result). To avoid this situation:


Example 9.6: Projecting to a Convex Hull

The query point is projected in the normal direction to a convex hull for a two-dimensional input (enabled via TBIN,,EXTR,PHULL):


If the field variable range differs in the various dimensions, Ansys, Inc. recommends using normalization (TBIN,NORM), enabled by default. For example, use normalization when temperatures range from 100 to 300 and UF01 (such as material fraction) ranges from 1e-5 to 3e-5.

For more information about the linear-multivariate algorithm, see Linear Multivariate Interpolation in the ACP User's Guide.

9.5.3. Evaluating Interpolation Algorithm Results

The following example input shows how to input and evaluate the interpolation algorithm via *GET:

! Example: evaluating interpolation of material data tables
/prep7

! Use a six X six X six grid
xpts=6
ypts=6
zpts=6

! 3D Grid is unnecessary. The grid below is created for demonstration
! purposes only.

! Setting up a TB,ELAS property with linear-multivariate interpolation algorithm
tb,elas,1
*DO,x,1,xpts,1
*DO,y,1,ypts,1
*DO,z,1,zpts,1
xloc=(x-1)/(xpts-1)
yloc=(y-1)/(ypts-1)
zloc=(z-1)/(zpts-1)
tbfield,xcor,xloc
tbfield,ycor,yloc
tbfield,zcor,zloc
E=(1+xloc**2+yloc**2+zloc**2)*1e6
tbdat,,E,0.0
*ENDDO
*ENDDO
*ENDDO
tbin,algo,lmul

*dim,ucalc,,101
*dim,zcalc1,,101

! Issue the *GET command to evaluate the value on
! a line across the data
*DO,x,1,101,1
myval=(x-1)/100
ucalc(x)=myval
*get,velas,elas,1,tbev,1,1,3,0.33,0.33,myval
zcalc1(x)=velas
*ENDDO

*stat,ucalc,1,101
*stat,zcalc1,1,101
finish

Figure 9.1: Evaluating Interpolation for Quadratic Data with a 6x6x6 Grid

Evaluating Interpolation for Quadratic Data with a 6x6x6 Grid

9.5.4. Material Model Support for Interpolation

Simple linear interpolation is supported for all material data tables.

Linear-multivariate interpolation is supported for these material data tables:

Material Model TB,Lab Value
Coefficient of thermal expansion CTE
Mass density DENS
Elasticity ELASTIC
Hyperelasticity HYPER
Nonlinear plasticity PLAS
Porous media PM

9.5.5. References

For further information about multidimensional field-variable interpolation, consult this reference:

  1. Amidror, I. (2002). Scattered data interpolation methods for electronic imaging systems: A survey. Journal of Electronic Imaging. 11(2) 157-176.