aerosandbox.library.aerodynamics.viscous ======================================== .. py:module:: aerosandbox.library.aerodynamics.viscous Functions --------- .. autoapisummary:: aerosandbox.library.aerodynamics.viscous.Cd_cylinder aerosandbox.library.aerodynamics.viscous.Cf_flat_plate aerosandbox.library.aerodynamics.viscous.Cl_flat_plate aerosandbox.library.aerodynamics.viscous.Cd_flat_plate_normal aerosandbox.library.aerodynamics.viscous.Cl_2412 aerosandbox.library.aerodynamics.viscous.Cd_profile_2412 aerosandbox.library.aerodynamics.viscous.Cl_e216 aerosandbox.library.aerodynamics.viscous.Cd_profile_e216 aerosandbox.library.aerodynamics.viscous.Cd_wave_e216 aerosandbox.library.aerodynamics.viscous.Cl_rae2822 aerosandbox.library.aerodynamics.viscous.Cd_profile_rae2822 aerosandbox.library.aerodynamics.viscous.Cd_wave_rae2822 aerosandbox.library.aerodynamics.viscous.fuselage_upsweep_drag_area Module Contents --------------- .. py:function:: Cd_cylinder(Re_D, mach = 0.0, include_mach_effects=True, subcritical_only=False) Returns the drag coefficient of a cylinder in crossflow as a function of its Reynolds number and Mach. :param Re_D: Reynolds number, referenced to diameter :param mach: Mach number :param include_mach_effects: If this is set False, it assumes Mach = 0, which simplifies the computation. :param subcritical_only: Determines whether the model models purely subcritical (Re < 300k) cylinder flows. Useful, since this model is now convex and can be more well-behaved. Returns: # TODO rework this function to use tanh blending, which will mitigate overflows .. py:function:: Cf_flat_plate(Re_L, method='hybrid-sharpe-convex') Returns the mean skin friction coefficient over a flat plate. Don't forget to double it (two sides) if you want a drag coefficient. :param Re_L: Reynolds number, normalized to the length of the flat plate. :param method: The method of computing the skin friction coefficient. One of: * "blasius": Uses the Blasius solution. Citing Cengel and Cimbala, "Fluid Mechanics: Fundamentals and Applications", Table 10-4. Valid approximately for Re_L <= 5e5. * "turbulent": Uses turbulent correlations for smooth plates. Citing Cengel and Cimbala, "Fluid Mechanics: Fundamentals and Applications", Table 10-4. Valid approximately for 5e5 <= Re_L <= 1e7. * "hybrid-cengel": Uses turbulent correlations for smooth plates, but accounts for a non-negligible laminar run at the beginning of the plate. Citing Cengel and Cimbala, "Fluid Mechanics: Fundamentals and Applications", Table 10-4. Returns: Mean skin friction coefficient over a flat plate. Valid approximately for 5e5 <= Re_L <= 1e7. * "hybrid-schlichting": Schlichting's model, that roughly accounts for a non-negligtible laminar run. Citing "Boundary Layer Theory" 7th Ed., pg. 644 * "hybrid-sharpe-convex": A hybrid model that blends the Blasius and Schlichting models. Convex in log-log space; however, it may overlook some truly nonconvex behavior near transitional Reynolds numbers. * "hybrid-sharpe-nonconvex": A hybrid model that blends the Blasius and Cengel models. Nonconvex in log-log-space; however, it may capture some truly nonconvex behavior near transitional Reynolds numbers. :returns: The skin friction coefficient, normalized to the length of the plate. :rtype: C_f You can view all of these functions graphically using `aerosandbox.library.aerodynamics.test_aerodynamics.test_Cf_flat_plate.py` .. py:function:: Cl_flat_plate(alpha, Re_c=None) Returns the approximate lift coefficient of a flat plate, following thin airfoil theory. :param alpha: Angle of attack [deg] :param Re_c: Reynolds number, normalized to the length of the flat plate. :return: Approximate lift coefficient. .. py:function:: Cd_flat_plate_normal() Returns the drag coefficient of a flat plat oriented normal to the flow (i.e., alpha = 90 deg). Uses results from Tian, Xinliang, Muk Chen Ong, Jianmin Yang, and Dag Myrhaug. “Large-Eddy Simulation of the Flow Normal to a Flat Plate Including Corner Effects at a High Reynolds Number.” Journal of Fluids and Structures 49 ( August 2014): 149–69. https://doi.org/10.1016/j.jfluidstructs.2014.04.008. Note: Cd for this case is effectively invariant of Re. Returns: Drag coefficient .. py:function:: Cl_2412(alpha, Re_c) .. py:function:: Cd_profile_2412(alpha, Re_c) .. py:function:: Cl_e216(alpha, Re_c) .. py:function:: Cd_profile_e216(alpha, Re_c) .. py:function:: Cd_wave_e216(Cl, mach, sweep=0.0) A curve fit I did to Eppler 216 airfoil data. Within -0.4 < CL < 0.75 and 0 < mach < ~0.9, has R^2 = 0.9982. See: C:\Projects\GitHub\firefly_aerodynamics\MSES Interface\analysis\e216 :param Cl: Lift coefficient :param mach: Mach number :param sweep: Sweep angle, in deg :return: Wave drag coefficient. .. py:function:: Cl_rae2822(alpha, Re_c) .. py:function:: Cd_profile_rae2822(alpha, Re_c) .. py:function:: Cd_wave_rae2822(Cl, mach, sweep=0.0) A curve fit I did to RAE2822 airfoil data. Within -0.4 < CL < 0.75 and 0 < mach < ~0.9, has R^2 = 0.9982. See: C:\Projects\GitHub\firefly_aerodynamics\MSES Interface\analysis\rae2822 :param Cl: Lift coefficient :param mach: Mach number :param sweep: Sweep angle, in deg :return: Wave drag coefficient. .. py:function:: fuselage_upsweep_drag_area(upsweep_angle_rad, fuselage_xsec_area_max) Calculates the drag area (in m^2) of the aft end of a fuselage with a given upsweep angle. Upsweep is the characteristic shape seen on the aft end of many fuselages in transport aircraft, where the centerline of the fuselage is angled upwards near the aft end. This is done to reduce the required landing gear height for adequate takeoff rotation, which in turn reduces mass. This nonzero centerline angle can cause some separation drag, which is predicted here. Equation is from Raymer, Aircraft Design: A Conceptual Approach, 5th Ed., Eq. 12.36, pg. 440. :param upsweep_angle_rad: The upsweep angle of the aft end of the fuselage relative to the centerline, in radians. :param fuselage_xsec_area_max: The maximum cross-sectional area of the fuselage, in m^2. Returns: The drag area of the aft end of the fuselage [m^2]. This is equivalent to D/q, where D is the drag force and q is the dynamic pressure.