Example #1
0
def suctionside(inputData):
    turbine, conditions = Turbine.by_conditions(*inputData, lambd=3.5)
    newconditions = np.array([
        conditions[0],
        np.array([0.22, 0.94]),
        np.array([0.5, .97]),
        np.array([0.77, .7]), conditions[6]
    ])
    #    plt.plot(newconditions[:,0], newconditions[:,1])
    #    plt.show()
    tvals = util.spacing(newconditions, (0, 1), 'uniform')
    knots = np.array([0, 0, 0, 0, 1 / 3. * sum(tvals[1:4]), 1, 1, 1, 1])
    basis = util.basisarray(3, knots)
    der0 = basis[-1]
    rang = 5
    probmatrix = np.array([
        [der0[i](tvals[0]) for i in range(rang)],
        [der0[i](tvals[1]) for i in range(rang)],
        [der0[i](tvals[2]) for i in range(rang)],
        [der0[i](tvals[3]) for i in range(rang)],
        [der0[i](tvals[4]) for i in range(rang)],
    ])

    xpts = np.linalg.solve(probmatrix, newconditions[:, 0])
    ypts = np.linalg.solve(probmatrix, newconditions[:, 1])

    return Spline(np.array([xpts, ypts]), knots)