Source code for RCAIDE.Library.Methods.Aerodynamics.Athena_Vortex_Lattice.evaluate_AVL

# RCAIDE/Library/Methods/Aerodynamics/Vortex_Lattice_Method/evaluate_AVL_surrogate.py
#  
# Created: Oct 2024, M. Clarke

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

# RCAIDE imports   
from RCAIDE.Framework.Core import  Data   
from RCAIDE.Library.Methods.Aerodynamics.Athena_Vortex_Lattice.run_AVL_analysis  import run_AVL_analysis  

# package imports
import numpy   as np  

# ----------------------------------------------------------------------------------------------------------------------
#  Vortex_Lattice
# ---------------------------------------------------------------------------------------------------------------------- 
[docs] def evaluate_AVL_surrogate(state,settings,vehicle): """Evaluates surrogates forces and moments using built surrogates Assumptions: None Source: None Args: aerodynamics : VLM analysis [unitless] state : flight conditions [unitless] settings : VLM analysis settings [unitless] vehicle : vehicle configuration [unitless] Returns: None """ conditions = state.conditions aerodynamics = state.analyses.aerodynamics Mach = conditions.freestream.mach_number AoA = conditions.aerodynamics.angles.alpha lift_model = aerodynamics.surrogates.lift_coefficient drag_model = aerodynamics.surrogates.drag_coefficient e_model = aerodynamics.surrogates.span_efficiency_factor moment_model = aerodynamics.surrogates.moment_coefficient Cm_alpha_model = aerodynamics.surrogates.Cm_alpha_moment_coefficient Cn_beta_model = aerodynamics.surrogates.Cn_beta_moment_coefficient neutral_point_model = aerodynamics.surrogates.neutral_point cg = vehicle.mass_properties.center_of_gravity[0] MAC = vehicle.wings.main_wing.chords.mean_aerodynamic pts = np.hstack((AoA,Mach)) conditions.aerodynamics.coefficients.lift.total = np.atleast_2d(lift_model(pts)).T conditions.aerodynamics.coefficients.drag.induced.inviscid = np.atleast_2d(drag_model(pts)).T conditions.aerodynamics.span_efficiency = np.atleast_2d(e_model(pts)).T conditions.control_surfaces.slat.static_stability.coefficients.M = np.atleast_2d(moment_model(pts)).T conditions.static_stability.derivatives.CM_alpha = np.atleast_2d(Cm_alpha_model(pts)).T conditions.static_stability.derivatives.CN_beta = np.atleast_2d(Cn_beta_model(pts)).T conditions.static_stability.neutral_point = np.atleast_2d(neutral_point_model(pts)).T conditions.static_stability.static_margin = (conditions.static_stability.neutral_point - cg)/MAC aerodynamics.settings.span_efficiency = conditions.aerodynamics.span_efficiency return
[docs] def evaluate_AVL_no_surrogate(state,settings,vehicle): """Evaluates forces and moments directly using VLM. Assumptions: None Source: None Args: aerodynamics : AVL analysis [unitless] state : flight conditions [unitless] vehicle : vehicle configuration [unitless] Returns: None """ # unpack conditions = state.conditions aerodynamics = state.analyses.aerodynamics run_AVL_analysis(aerodynamics,conditions) return