Linear interpolation object housing information necessary for linearly interpolating N-dimensional data using weighted averages. If interpolation points are outside of the grid will return 0 for interpolated value. NOTE: Does not support changing the number of interpolation points after the first interpolation call.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
type(Interpolation1D), | private, | dimension(:), allocatable | :: | interpObjs |
Individual 1D interpolation objects. They must correspond to the axes of the data this object should be interpolating |
||
integer(kind=ik), | private, | dimension(:,:), allocatable | :: | firstDataIndices |
An array of shape (Nd,:) where Nd is the dimensionality of the data being interpolated containing the coordinates of the origin of each hyper-cube of points used in interpolation |
||
type(IntArray), | private, | dimension(:), allocatable | :: | hyperCube |
Indices of individual hyper-cube points (e.g. [0,1,1,1,0] etc.) |
||
real(kind=rk), | private, | dimension(:,:), allocatable | :: | weights |
Hypercube vertex weigths (2^Nd,:) for each interpolation point |
Getter for userDefined
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(in) | :: | this |
Set userDefined to .true.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(inout) | :: | this |
Set userDefined to .false.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(inout) | :: | this |
Getter for firstDataIndex of component 1D interpolation object with index dim
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(InterpolationND), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | dim |
Getter for interpWeights of component 1D interpolation object with index dim
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(InterpolationND), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | dim |
Getter for interpolationPoints of component 1D interpolation object with index dim
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(InterpolationND), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | dim |
Update the interpolation points and weights of all individual 1D interpolation objects and the weights/data indices used
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(InterpolationND), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | dimension(:,:) | :: | interpolationPoints |
Interpolate FlatNDData onto interpolation points using weighted averages of vertices of the containing hypercube
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(InterpolationND), | intent(in) | :: | this | |||
type(FlatNDData), | intent(in) | :: | targetArray |
Initialization routine for ND interpolation object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(InterpolationND), | intent(inout) | :: | this | |||
type(Interpolation1D), | intent(in), | dimension(:) | :: | interpolationObjs |