Source code for RCAIDE.Library.Mission.Common.Pre_Process.aerodynamics

# RCAIDE/Library/Missions/Common/Pre_Process/aerodynamics.py
# 
# 
# Created:  Jul 2023, M. Clarke

# ----------------------------------------------------------------------------------------------------------------------
#  IMPORT
# ---------------------------------------------------------------------------------------------------------------------- 
from RCAIDE.Library.Methods.Geometry.Planform  import wing_segmented_planform, wing_planform

# ----------------------------------------------------------------------------------------------------------------------
#  aerodynamics
# ----------------------------------------------------------------------------------------------------------------------  
[docs] def aerodynamics(mission): """ Initializes and processes aerodynamic models for mission segments Parameters ---------- mission : Mission The mission containing segments to be analyzed - analyses.aerodynamics : Analysis Aerodynamic analysis module - vehicle : Vehicle Aircraft geometry definition - wings : list Wing geometry definitions - process.compute.lift.inviscid_wings : Process Lift computation process - surrogates : Data Aerodynamic surrogate models - reference_values : Data Reference aerodynamic parameters Notes ----- This function prepares the aerodynamic analysis for each mission segment. It ensures proper wing geometry computation and manages aerodynamic surrogate models across segments for computational efficiency. The function performs the following steps: 1. Computes wing planform properties 2. Reuses previous segment's aerodynamic data when possible 3. Initializes new aerodynamic analyses when needed **Wing Processing** For each wing: - If multi-segmented: Uses wing_segmented_planform - If single segment: Uses wing_planform **Major Assumptions** * Valid wing geometry definitions * Compatible aerodynamic models between segments * Proper initialization of first segment * Continuous aerodynamic characteristics Returns ------- None Updates mission segment analyses directly See Also -------- RCAIDE.Library.Methods.Geometry.Planform """ last_tag = None for tag,segment in mission.segments.items(): if segment.analyses.aerodynamics != None: # ensure all properties of wing are computed before drag calculations vehicle = segment.analyses.aerodynamics.vehicle for wing in vehicle.wings: if len(wing.segments) > 1: wing_segmented_planform(wing) else: wing_planform(wing) if (last_tag!= None) and ('compute' in mission.segments[last_tag].analyses.aerodynamics.process.keys()): segment.analyses.aerodynamics.process.compute.lift.inviscid_wings = mission.segments[last_tag].analyses.aerodynamics.process.compute.lift.inviscid_wings segment.analyses.aerodynamics.surrogates = mission.segments[last_tag].analyses.aerodynamics.surrogates segment.analyses.aerodynamics.reference_values = mission.segments[last_tag].analyses.aerodynamics.reference_values else: aero = segment.analyses.aerodynamics aero.initialize() last_tag = tag return