Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #4
0
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
Beispiel #5
0
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