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)