Source code for RCAIDE.Framework.Analyses.Propulsion.Ducted_Fan_Design_Code

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

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

# RCAIDE imports   
from RCAIDE.Framework.Core import  Data , Units, Container
from RCAIDE.Framework.Analyses import Analysis   

# package imports 
import numpy as np
 
# ----------------------------------------------------------------------------------------------------------------------
# Ducted_Fan_Design_Code
# ---------------------------------------------------------------------------------------------------------------------- 
[docs] class Ducted_Fan_Design_Code(Analysis): def __defaults__(self): """This sets the default values and methods for the analysis. Assumptions: None Source: https://web.mit.edu/drela/Public/web/dfdc/ http://www.esotec.org/sw/DFDC.html """ self.tag = 'dfdc' self.current_status = Data() self.current_status.batch_index = 0 self.current_status.batch_file = None self.current_status.deck_file = None self.current_status.cases = None self.geometry = None self.settings = Data() self.settings.filenames = Data() self.settings.filenames.dfdc_bin_name = 'dfdc' # to call dfdc from command line. If avl is not on the system path, include absolute path to the avl binary i.e. '/your/path/to/avl' self.settings.filenames.run_folder = 'dfdc_files' self.settings.filenames.deck_template = 'commands_{0:02d}.deck' self.settings.filenames.results_template = 'results_Vinf_{:.0f}_RPM_{:.0f}_Alt_{:.0f}' self.settings.filenames.case = None self.settings.filenames.log_filename = 'dfdc_log.txt' self.settings.filenames.err_filename = 'dfdc_err.txt' self.settings.print_output = False # Regression Status self.settings.keep_files = False self.settings.new_regression_results = False self.run_cases = Container() # Conditions table, used for surrogate model training self.training = Data() # Standard subsonic/transolic aircarft self.training.tip_mach = np.array([0.6, 0.7, 0.8]) self.training.mach = np.array([0.15,0.3,0.45]) self.training.altitude = np.array([0,2500,5000,8000])*Units.feet self.training_file = None # Surrogate model self.surrogates = Data()
[docs] def append_case(self,case): """ Adds a case to the set of run cases " Assumptions: None Source: None Inputs: None Outputs: None Properties Used: N/A """ run_cases = self.run_cases run_cases.append(case) return