public class TricubicSplineInterpolatingFunction extends java.lang.Object implements TrivariateRealFunction
Tricubic interpolation in three dimensions
F. Lekien and J. Marsden
Int. J. Numer. Meth. Engng 2005; 63:455-471
Modifier and Type | Field and Description |
---|---|
private static double[][] |
AINV
Matrix to compute the spline coefficients from the function values
and function derivatives values
|
private TricubicSplineFunction[][][] |
splines
Set of cubic splines pacthing the whole data grid
|
private double[] |
xval
Samples x-coordinates
|
private double[] |
yval
Samples y-coordinates
|
private double[] |
zval
Samples z-coordinates
|
Constructor and Description |
---|
TricubicSplineInterpolatingFunction(double[] x,
double[] y,
double[] z,
double[][][] f,
double[][][] dFdX,
double[][][] dFdY,
double[][][] dFdZ,
double[][][] d2FdXdY,
double[][][] d2FdXdZ,
double[][][] d2FdYdZ,
double[][][] d3FdXdYdZ) |
Modifier and Type | Method and Description |
---|---|
private double[] |
computeSplineCoefficients(double[] beta)
Compute the spline coefficients from the list of function values and
function partial derivatives values at the four corners of a grid
element.
|
private int |
searchIndex(double c,
double[] val) |
double |
value(double x,
double y,
double z)
Compute the value for the function.
|
private static final double[][] AINV
private final double[] xval
private final double[] yval
private final double[] zval
private final TricubicSplineFunction[][][] splines
public TricubicSplineInterpolatingFunction(double[] x, double[] y, double[] z, double[][][] f, double[][][] dFdX, double[][][] dFdY, double[][][] dFdZ, double[][][] d2FdXdY, double[][][] d2FdXdZ, double[][][] d2FdYdZ, double[][][] d3FdXdYdZ)
x
- Sample values of the x-coordinate, in increasing order.y
- Sample values of the y-coordinate, in increasing order.z
- Sample values of the y-coordinate, in increasing order.f
- Values of the function on every grid point.dFdX
- Values of the partial derivative of function with respect
to x on every grid point.dFdY
- Values of the partial derivative of function with respect
to y on every grid point.dFdZ
- Values of the partial derivative of function with respect
to z on every grid point.d2FdXdY
- Values of the cross partial derivative of function on
every grid point.d2FdXdZ
- Values of the cross partial derivative of function on
every grid point.d2FdYdZ
- Values of the cross partial derivative of function on
every grid point.d3FdXdYdZ
- Values of the cross partial derivative of function on
every grid point.NoDataException
- if any of the arrays has zero length.DimensionMismatchException
- if the various arrays do not contain
the expected number of elements.java.lang.IllegalArgumentException
- if x
, y
or z
are not strictly increasing.public double value(double x, double y, double z)
value
in interface TrivariateRealFunction
x
- x-coordinate for which the function value should be computed.y
- y-coordinate for which the function value should be computed.z
- z-coordinate for which the function value should be computed.private int searchIndex(double c, double[] val)
c
- Coordinate.val
- Coordinate samples.val
corresponding to the interval
containing c
, or -1
if c
is out of the
range defined by the end values of val
.private double[] computeSplineCoefficients(double[] beta)
beta
- List of function values and function partial derivatives
values.Copyright (c) 2003-2014 Apache Software Foundation