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 |