def xfoil_lefind(x, z, s, xs, zs, npt): x_a = xi.new_doublea(npt) z_a = xi.new_doublea(npt) s_a = xi.new_doublea(npt) xs_a = xi.new_doublea(npt) zs_a = xi.new_doublea(npt) npt_p = xi.copy_intp(npt) sle_p = xi.new_doublep() xle_p = xi.new_doublep() zle_p = xi.new_doublep() for i in range(npt): xi.doublea_setitem(x_a, i, x[i]) xi.doublea_setitem(z_a, i, z[i]) xi.doublea_setitem(s_a, i, s[i]) xi.doublea_setitem(xs_a, i, xs[i]) xi.doublea_setitem(zs_a, i, zs[i]) xi.xfoil_lefind(x_a, z_a, s_a, xs_a, zs_a, npt_p, sle_p, xle_p, zle_p) sle = xi.doublep_value(sle_p) xle = xi.doublep_value(xle_p) zle = xi.doublep_value(zle_p) xi.delete_doublea(x_a) xi.delete_doublea(z_a) xi.delete_doublea(s_a) xi.delete_doublea(xs_a) xi.delete_doublea(zs_a) xi.delete_doublep(sle_p) xi.delete_doublep(xle_p) xi.delete_doublep(zle_p) return sle, xle, zle
def xfoil_eval_spline(x, z, s, xs, zs, npt, sc): x_a = xi.new_doublea(npt) z_a = xi.new_doublea(npt) s_a = xi.new_doublea(npt) xs_a = xi.new_doublea(npt) zs_a = xi.new_doublea(npt) npt_p = xi.copy_intp(npt) sc_p = xi.copy_doublep(sc) xc_p = xi.new_doublep() zc_p = xi.new_doublep() for i in range(npt): xi.doublea_setitem(x_a, i, x[i]) xi.doublea_setitem(z_a, i, z[i]) xi.doublea_setitem(s_a, i, s[i]) xi.doublea_setitem(xs_a, i, xs[i]) xi.doublea_setitem(zs_a, i, zs[i]) xi.xfoil_eval_spline(x_a, z_a, s_a, xs_a, zs_a, npt_p, sc_p, xc_p, zc_p) xc = xi.doublep_value(xc_p) zc = xi.doublep_value(zc_p) xi.delete_doublea(x_a) xi.delete_doublea(z_a) xi.delete_doublea(s_a) xi.delete_doublea(xs_a) xi.delete_doublea(zs_a) xi.delete_doublep(sc_p) xi.delete_doublep(xc_p) xi.delete_doublep(zc_p) return xc, zc
def xfoil_speccl(xdg, cl_spec): cl_spec_p = xi.copy_doublep(cl_spec) alpha_p = xi.new_doublep() lift_p = xi.new_doublep() drag_p = xi.new_doublep() moment_p = xi.new_doublep() converged_p = xi.new_boolp() stat_p = xi.new_intp() xi.xfoil_speccl(xdg, cl_spec_p, alpha_p, lift_p, drag_p, moment_p, converged_p, stat_p) alpha = xi.doublep_value(alpha_p) lift = xi.doublep_value(lift_p) drag = xi.doublep_value(drag_p) moment = xi.doublep_value(moment_p) converged = xi.boolp_value(converged_p) stat = xi.intp_value(stat_p) xi.delete_doublep(cl_spec_p) xi.delete_doublep(alpha_p) xi.delete_doublep(lift_p) xi.delete_doublep(drag_p) xi.delete_doublep(moment_p) xi.delete_boolp(converged_p) xi.delete_intp(stat_p) return alpha, lift, drag, moment, converged, stat
def xfoil_get_transloc(xdg): xtranst_p = xi.new_doublep() ztranst_p = xi.new_doublep() xtransb_p = xi.new_doublep() ztransb_p = xi.new_doublep() xi.xfoil_get_transloc(xdg, xtranst_p, ztranst_p, xtransb_p, ztransb_p) xtranst = xi.doublep_value(xtranst_p) ztranst = xi.doublep_value(ztranst_p) xtransb = xi.doublep_value(xtransb_p) ztransb = xi.doublep_value(ztransb_p) xi.delete_doublep(xtranst_p) xi.delete_doublep(ztranst_p) xi.delete_doublep(xtransb_p) xi.delete_doublep(ztransb_p) return xtranst, ztranst, xtransb, ztransb
def xfoil_geometry_info(xdg): maxt_p = xi.new_doublep() xmaxt_p = xi.new_doublep() maxc_p = xi.new_doublep() xmaxc_p = xi.new_doublep() stat_p = xi.new_intp() xi.xfoil_geometry_info(xdg, maxt_p, xmaxt_p, maxc_p, xmaxc_p, stat_p) maxt = xi.doublep_value(maxt_p) xmaxt = xi.doublep_value(xmaxt_p) maxc = xi.doublep_value(maxc_p) xmaxc = xi.doublep_value(xmaxc_p) stat = xi.intp_value(stat_p) xi.delete_doublep(maxt_p) xi.delete_doublep(xmaxt_p) xi.delete_doublep(maxc_p) xi.delete_doublep(xmaxc_p) xi.delete_intp(stat_p) return maxt, xmaxt, maxc, xmaxc, stat