Source code for RCAIDE.Library.Methods.Aerodynamics.Common.Drag.wave_drag_lift
# wave_drag_lift.py
#
# Created: Jun 2014, T. Macdonald
# Modified: Jul 2014, T. Macdonald
# Jan 2016, E. Botero
# ----------------------------------------------------------------------
# Imports
# ----------------------------------------------------------------------
import numpy as np
from RCAIDE.Framework.Core import Data
# ----------------------------------------------------------------------
# Wave Drag Lift
# ----------------------------------------------------------------------
[docs]
def wave_drag_lift(conditions,configuration,wing):
"""Computes wave drag due to lift
Assumptions:
Simplified equations
Source:
http://adg.stanford.edu/aa241/drag/ssdragcalc.html
Inputs:
conditions.freestream.mach_number [Unitless]
conditions.aerodynamics.lift_coefficient [Unitless]
wing.total_length [m]
wing.areas.reference [m^2]
Outputs:
wave_drag_lift [Unitless]
Properties Used:
N/A
"""
# Unpack
freestream = conditions.freestream
total_length = wing.total_length
Sref = wing.areas.reference
# Conditions
Mc = freestream.mach_number * 1.0
# Length-wise aspect ratio
ARL = total_length**2/Sref
# Lift coefficient
if wing.vertical:
CL = np.zeros_like(conditions.aerodynamics.lift_coefficient)
else:
# get wing specific CL
CL = conditions.aerodynamics.lift_breakdown.inviscid_wings_lift[wing.tag]
# Computations
x = np.pi*ARL/4
beta = np.array([[0.0]] * len(Mc))
beta[Mc >= 1.05] = np.sqrt(Mc[Mc >= 1.05]**2-1)
wave_drag_lift = np.array([[0.0]] * len(Mc))
wave_drag_lift[Mc >= 1.05] = CL[Mc >= 1.05]**2*x/4*(np.sqrt(1+(beta[Mc >= 1.05]/x)**2)-1)
wave_drag_lift[0:len(Mc[Mc >= 1.05]),0] = wave_drag_lift[Mc >= 1.05]
return wave_drag_lift