Source code for RCAIDE.Framework.Analyses.Aerodynamics.Aerodynamics

# RCAIDE/Framework/Analyses/Aerodynamics/Aerodynamics.py
# 
# 
# Created:  Jul 2023, M. Clarke

# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ----------------------------------------------------------------------------------------------------------------------

# RCAIDE imports   
from RCAIDE.Framework.Core     import Data
from RCAIDE.Framework.Analyses import Analysis  

# package imports 
import numpy as np

# ----------------------------------------------------------------------------------------------------------------------
#  Aerodynamics
# ---------------------------------------------------------------------------------------------------------------------- 
[docs] class Aerodynamics(Analysis): """This is the base class for aerodynamics analyses. It contains functions that are built into the default class. Assumptions: None Source: N/A """ def __defaults__(self): """This sets the default values and methods for the analysis. Assumptions: None Source: N/A Inputs: None Outputs: None Properties Used: N/A """ self.tag = 'aerodynamics' self.settings = Data() self.settings.maximum_lift_coefficient = np.inf self.settings.fuselage_lift_correction = 1.20 self.settings.trim_drag_correction_factor = 1.02 self.settings.wing_parasite_drag_form_factor = 1.1 self.settings.fuselage_parasite_drag_form_factor = 2.5 self.settings.drag_reduction_factors = Data() self.settings.drag_reduction_factors.parasite_drag = 0.0 # Reduction factors are proportional (.1 is a 10% drag reduction) self.settings.drag_reduction_factors.induced_drag = 0.0 # Reduction factors are proportional (.1 is a 10% drag reduction) self.settings.drag_reduction_factors.compressibility_drag = 0.0 # Reduction factors are proportional (.1 is a 10% drag reduction) self.settings.maximum_lift_coefficient_factor = 1.0 self.settings.viscous_lift_dependent_drag_factor = 0.38 self.settings.drag_coefficient_increment = 0.0 self.settings.recalculate_total_wetted_area = False self.settings.oswald_efficiency_factor = None self.settings.span_efficiency = None self.settings.store_training_data = False self.settings.reuse_training_data = False self.settings.use_surrogate = True self.settings.subsonic = Data() self.settings.subsonic.begin_transonic_rise_mach_number = 0.70 self.settings.subsonic.end_transonic_rise_rise_mach_number = 0.95 self.settings.supersonic = Data() self.settings.supersonic.begin_drag_rise_mach_number = 0.95 self.settings.supersonic.end_drag_rise_mach_number = 1.15 self.settings.supersonic.fuselage_parasite_drag_begin_blend_mach = 0.91 self.settings.supersonic.fuselage_parasite_drag_end_blend_mach = 0.99 # Stability derivatives. If these are not user defined, then they will be calculated. self.stability_derivatives = Data() self.stability_derivatives.M_0 = None self.stability_derivatives.Clift_alpha = None self.stability_derivatives.CX_alpha = None self.stability_derivatives.CX_u = None self.stability_derivatives.CY_beta = None self.stability_derivatives.CY_r = None self.stability_derivatives.CZ_alpha = None self.stability_derivatives.CZ_u = None self.stability_derivatives.CZ_q = None self.stability_derivatives.CL_beta = None self.stability_derivatives.CL_p = None self.stability_derivatives.CL_r = None self.stability_derivatives.CM_alpha = None self.stability_derivatives.CM_u = None self.stability_derivatives.CM_q = None self.stability_derivatives.CN_beta = None self.stability_derivatives.CN_p = None self.stability_derivatives.CN_r = None self.stability_derivatives.CY_delta_a = None self.stability_derivatives.CL_delta_a = None self.stability_derivatives.CN_delta_a = None self.stability_derivatives.CM_delta_e = None self.stability_derivatives.Clift_delta_e = None self.stability_derivatives.CY_delta_r = None self.stability_derivatives.CL_delta_r = None self.stability_derivatives.CN_delta_r = None self.stability_derivatives.CM_delta_f = None self.stability_derivatives.Clift_delta_f = None self.stability_derivatives.CM_delta_s = None self.stability_derivatives.Clift_delta_s = None self.stability_derivatives.Cdrag_delta_a = None self.stability_derivatives.Cdrag_delta_r = None self.stability_derivatives.Cdrag_delta_e = None self.stability_derivatives.Cdrag_delta_f = None self.stability_derivatives.Cdrag_delta_s = None
[docs] def evaluate(self,state, vehicle): """The default evaluate function. Assumptions: None Source: N/A Inputs: None Outputs: results <Results class> (empty) Properties Used: N/A """ results = Data() return results
[docs] def post_process(self): """The default post processing function. Assumptions: None Source: N/A Inputs: None Outputs: None Properties Used: N/A """ return