spanwise_interpolation

Returns the interpolation weights and indices of said weights for a span wise interpolation. The indices refer to column indices of a row vector containing the gust disturbance at each chordwise control point.

This is used in non-span uniform gusts with multiple inputs, where each set of chordwise control points in the state vector corresponds to one gust (i.e. its time history).

The interpolation is performed as follows.

For an arbitrary point within a grid delimited by (0, 0), (0, 1), (1, 0) and (1, 1), the velocity at a given point is:

\[u_z = \alpha_1 u_1 + \alpha_0 u_0\]

where \(\alpha_1 = \frac{y - y_0}{y_{1} - y_{0}}\) and \(\alpha_0 = \frac{y_1-y}{y_1-y_0}\).

The velocities \(u_1\) and \(u_0\) are at the current chordwise point, thus translating into

\[\begin{split}u_1 = \beta_{11} u_{11} + \beta_{10} u_{10} \\ u_0 = \beta_{01} u_{01} + \beta_{00} u_{00}\end{split}\]

where \(\beta_{11} = \frac{x - x_0}{x_1 - x_0}\) and the rest follow a similar pattern.

The resulting interpolation scheme gives

\[\begin{split}u_z = \begin{pmatrix} \alpha_1 \beta_{11} u_{11} & \alpha_1 \beta{10} & \alpha_0 \beta_{01} & \alpha_0 \beta_{00} \end{pmatrix} \begin{bmatrix} u_{11} \\ u_{10} \\ u_{01} \\ u_{00} \end{bmatrix}.\end{split}\]

The indices returned as part of the output correspond to the column indices above to match with the corresponding interpolation control points.

param y_vertex:

y (span) coordinate of point

type y_vertex:

np.float

param span_loc:

Domain of y-coordinates

type span_loc:

np.array

param x_vertex:

x (chord) coordinate of point

type x_vertex:

np.float

param x_domain:

Domain of x coordinates

type x_domain:

np.array

returns:
2-tuple containing i) the 4-array of interpolation weights and ii) the 4-array of column

indicies to place such weights.

rtype:

tuple