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