diff --git a/.gitignore b/.gitignore index e633e4cd..ba1e27c1 100644 --- a/.gitignore +++ b/.gitignore @@ -81,6 +81,7 @@ Examples/*.p # Exclude testing results ROSCO_testing/results/ +ROSCO_testing/testing # Simulink/Matlab temp files *.slxc diff --git a/Examples/01_turbine_model.py b/Examples/01_turbine_model.py index 14a30fc2..95a69bac 100644 --- a/Examples/01_turbine_model.py +++ b/Examples/01_turbine_model.py @@ -1,5 +1,5 @@ ''' ------------ Example_01 -------------- +----------- 01_turbine_model -------------- Load and save a turbine model ------------------------------------- In this example: diff --git a/Examples/02_ccblade.py b/Examples/02_ccblade.py index 8d09aaff..11afd6a2 100644 --- a/Examples/02_ccblade.py +++ b/Examples/02_ccblade.py @@ -1,5 +1,5 @@ ''' ------------ Example_03 -------------- +----------- 02_ccblade -------------- Run CCblade, save a rotor performance text file ------------------------------------- diff --git a/Examples/03_tune_controller.py b/Examples/03_tune_controller.py index a4308390..4aa19369 100644 --- a/Examples/03_tune_controller.py +++ b/Examples/03_tune_controller.py @@ -1,5 +1,5 @@ ''' ------------ Example_04 -------------- +----------- 03_tune_controller -------------- Load a turbine model and tune the controller ------------------------------------- diff --git a/Examples/04_simple_sim.py b/Examples/04_simple_sim.py index 29d0c7b2..aba7e468 100644 --- a/Examples/04_simple_sim.py +++ b/Examples/04_simple_sim.py @@ -1,5 +1,5 @@ ''' ------------ Example_05 -------------- +----------- 04_simple_sim -------------- Run and plot a simple simple step wind simulation ------------------------------------- diff --git a/Examples/05_openfast_sim.py b/Examples/05_openfast_sim.py index a11f1b30..7dd33085 100644 --- a/Examples/05_openfast_sim.py +++ b/Examples/05_openfast_sim.py @@ -1,5 +1,5 @@ ''' ------------ Example_06 -------------- +----------- 05_openfast_sim -------------- Load a turbine, tune a controller, run OpenFAST simulation ------------------------------------- diff --git a/Examples/06_peak_shaving.py b/Examples/06_peak_shaving.py index fdad7db8..525e4fc0 100644 --- a/Examples/06_peak_shaving.py +++ b/Examples/06_peak_shaving.py @@ -1,5 +1,5 @@ ''' ------------ Example_07 -------------- +----------- 06_peak_shavings -------------- Load saved turbine, tune controller, plot minimum pitch schedule ------------------------------------- diff --git a/Examples/07_openfast_outputs.py b/Examples/07_openfast_outputs.py index a794baf0..d50eab99 100644 --- a/Examples/07_openfast_outputs.py +++ b/Examples/07_openfast_outputs.py @@ -1,5 +1,5 @@ ''' ------------ Example_08 -------------- +----------- 07_openfast_outputss -------------- Plot some OpenFAST output data ------------------------------------- diff --git a/Examples/08_run_turbsim.py b/Examples/08_run_turbsim.py index bdabca8a..488b07ea 100644 --- a/Examples/08_run_turbsim.py +++ b/Examples/08_run_turbsim.py @@ -1,5 +1,5 @@ ''' ------------ Example_09 -------------- +----------- 08_run_turbsim -------------- Run TurbSim to create wind field binary ------------------------------------- diff --git a/Examples/09_distributed_aero.py b/Examples/09_distributed_aero.py index 6d970194..234fd6de 100644 --- a/Examples/09_distributed_aero.py +++ b/Examples/09_distributed_aero.py @@ -1,5 +1,5 @@ ''' ------------ Example_10 -------------- +----------- 09_distributed_aero -------------- Tune a controller for distributed aerodynamic control ------------------------------------- diff --git a/Examples/10_linear_params.py b/Examples/10_linear_params.py index b0c2470f..69aa3094 100644 --- a/Examples/10_linear_params.py +++ b/Examples/10_linear_params.py @@ -1,5 +1,5 @@ ''' ------------ Example_11 -------------- +----------- 10_linear_params -------------- Load a turbine, tune a controller, export linear model ------------------------------------- diff --git a/Examples/11_robust_tuning.py b/Examples/11_robust_tuning.py index 65f676d3..aa4d7df6 100644 --- a/Examples/11_robust_tuning.py +++ b/Examples/11_robust_tuning.py @@ -1,5 +1,5 @@ ''' ------------ Example_12 -------------- +----------- 11_robust_tuning -------------- Controller tuning to satisfy a robustness criteria ------------------------------------- NOTE: This example necessitates the mbc3 through either pyFAST or WEIS diff --git a/Examples/12_tune_ipc.py b/Examples/12_tune_ipc.py index d4040a68..e435becf 100644 --- a/Examples/12_tune_ipc.py +++ b/Examples/12_tune_ipc.py @@ -14,105 +14,58 @@ import matplotlib.pyplot as plt # ROSCO toolbox modules -from ROSCO_toolbox import controller as ROSCO_controller -from ROSCO_toolbox import turbine as ROSCO_turbine -from ROSCO_toolbox.utilities import DISCON_dict from ROSCO_toolbox.ofTools.fast_io import output_processing -from ROSCO_toolbox.inputs.validation import load_rosco_yaml -from ROSCO_toolbox.ofTools.case_gen.CaseLibrary import set_channels -from ROSCO_toolbox.ofTools.case_gen.runFAST_pywrapper import runFAST_pywrapper_batch -from ROSCO_toolbox.ofTools.case_gen.CaseGen_General import CaseGen_General - - - -this_dir = os.path.dirname(os.path.abspath(__file__)) -rosco_dir = os.path.dirname(this_dir) -example_out_dir = os.path.join(this_dir,'examples_out') -example_name = '12_ipc_sim' -run_dir = os.path.join(example_out_dir, example_name) - -# Load yaml file (Open Loop Case) -parameter_filename = os.path.join(rosco_dir,'Tune_Cases/BAR.yaml') - -inps = load_rosco_yaml(parameter_filename) -path_params = inps['path_params'] -turbine_params = inps['turbine_params'] -controller_params = inps['controller_params'] - -# Turn flaps off and IPC on -controller_params['Flp_Mode'] = 0 -controller_params['IPC_ControlMode'] = 1 - -# Instantiate turbine, and controller -turbine = ROSCO_turbine.Turbine(turbine_params) -controller = ROSCO_controller.Controller(controller_params) - -# Load turbine data from OpenFAST and rotor performance text file -turbine.load_from_fast( - path_params['FAST_InputFile'], - os.path.join(this_dir, path_params['FAST_directory']) - ) -# Tune controller -controller.tune_controller(turbine) - -# Set rosco_dll -if platform.system() == 'Windows': - rosco_dll = os.path.join(rosco_dir, 'ROSCO/build/libdiscon.dll') -elif platform.system() == 'Darwin': - rosco_dll = os.path.join(rosco_dir, 'ROSCO/build/libdiscon.dylib') -else: - rosco_dll = os.path.join(rosco_dir, 'ROSCO/build/libdiscon.so') - -case_inputs = {} -case_inputs[('ServoDyn','DLL_FileName')] = {'vals': [rosco_dll], 'group': 0} -case_inputs[('ServoDyn','Ptch_Cntrl')] = {'vals': [1], 'group': 0} - -# Apply all discon variables as case inputs -discon_vt = DISCON_dict( - turbine, - controller, - txt_filename=os.path.join(this_dir,path_params['FAST_directory'],path_params['rotor_performance_filename']) - ) - -for discon_input in discon_vt: - case_inputs[('DISCON_in',discon_input)] = {'vals': [discon_vt[discon_input]], 'group': 0} - -# Generate cases -if not os.path.exists(run_dir): - os.makedirs(run_dir) - -case_list, case_name_list = CaseGen_General(case_inputs, dir_matrix=run_dir, namebase='ipc_example') -channels = set_channels() -channels['BldPitch2'] = True -channels['BldPitch3'] = True - -# Run FAST cases -fastBatch = runFAST_pywrapper_batch() - -fastBatch.FAST_directory = os.path.realpath(os.path.join(rosco_dir,'Tune_Cases',path_params['FAST_directory'])) -fastBatch.FAST_InputFile = path_params['FAST_InputFile'] -fastBatch.channels = channels -fastBatch.FAST_runDirectory = run_dir -fastBatch.case_list = case_list -fastBatch.case_name_list = case_name_list -fastBatch.debug_level = 2 -fastBatch.FAST_exe = 'openfast' - -fastBatch.run_serial() - - -# # Define Plot cases -cases = {} -cases['Baseline'] = ['Wind1VelX', ('BldPitch1', 'BldPitch2', 'BldPitch3'), 'RootMyc1', 'RotSpeed'] - -out_file = os.path.join(example_out_dir,example_name,'ipc_example_0.outb') -op = output_processing.output_processing() -fastout = op.load_fast_out(out_file, tmin=0) -fig, ax = op.plot_fast_out(cases=cases,showplot=False) -if False: - plt.show() -else: - fig[0].savefig(os.path.join(example_out_dir,'13_ipc_FAST_Out.png')) - - +from ROSCO_toolbox.ofTools.case_gen.run_FAST import run_FAST_ROSCO +from ROSCO_toolbox.ofTools.case_gen import CaseLibrary as cl + +def main(): + this_dir = os.path.dirname(os.path.abspath(__file__)) + rosco_dir = os.path.dirname(this_dir) + example_out_dir = os.path.join(this_dir,'examples_out') + example_name = '12_ipc_sim' + run_dir = os.path.join(example_out_dir, example_name) + + # Load yaml file (Open Loop Case) + parameter_filename = os.path.join(rosco_dir,'Tune_Cases/NREL2p8.yaml') + + case_inputs = {} + case_inputs[('ServoDyn','Ptch_Cntrl')] = {'vals': [1], 'group': 0} + case_inputs[('DISCON_in','IPC_SatMode')] = {'vals': [0,1,2,3], 'group': 1} + + + + # simulation set up + r = run_FAST_ROSCO() + r.tuning_yaml = parameter_filename + r.wind_case_fcn = cl.ramp # single step wind input + r.wind_case_opts = { + 'U_start': 11, # from 10 to 15 m/s + 'U_end': 9, + 't_start': 100, + 't_end': 400, + 'both_dir': True, + 'vert_shear': 0.2 + } + r.case_inputs = case_inputs + r.save_dir = run_dir + r.rosco_dir = rosco_dir + r.n_cores = 4 + r.run_FAST() + + + # # Define Plot cases + cases = {} + cases['Baseline'] = ['Wind1VelX', 'BldPitch1', 'RootMyc1', 'RotSpeed'] + + out_files = [os.path.join(example_out_dir,example_name,f'NREL2p8/ramp/base/NREL2p8_{i_case}.outb') for i_case in range(4)] + op = output_processing.output_processing() + fastout = op.load_fast_out(out_files, tmin=0) + fig, ax = op.plot_fast_out(cases=cases,showplot=False) + if False: + plt.show() + else: + fig[0].savefig(os.path.join(example_out_dir,'12_ipc_FAST_Out.png')) + +if __name__=="__main__": + main() diff --git a/Examples/20_active_wake_control.py b/Examples/20_active_wake_control.py new file mode 100644 index 00000000..c67555d8 --- /dev/null +++ b/Examples/20_active_wake_control.py @@ -0,0 +1,244 @@ +''' +----------- 20_active_wake_control ------------ +Run openfast with ROSCO and active wake control +----------------------------------------------- +Set up and run simulation with AWC, check outputs +Active wake control (AWC) with blade pitching is implemented in this example with two approaches as detailed below: + +----------------------------------------------- +AWC_Mode = 1: Normal mode method: +----------------------------------------------- +The normal mode method is an adaptation into the rotating frame of the mathematical framework from the classical theory for stability of axisymmetric jets [1], which offers flexibility in specifying the forcing strategy. + +The inputs to the controller are: + Name Unit Type Range Description + AWC_NumModes - Integer [0,inf] number of forcing modes + AWC_n - Integer [-inf,inf] azimuthal mode number(s) (i.e., the azimuthal mode number relates to the number and direction of the lobes of the wake structure according to the classical spatio-temporal Fourier decomposition of an arbitrary quantity q, sigma{sigma{q*exp(i*n*theta)*exp(i*omega*time)}}. For the case of a non-time-varying flow (i.e., where omega = 0), the azimuthal mode number specifies the number of cycles of blade pitch oscillation per one rotation around the rotor azimuth.) + AWC_clockangle deg Float [0,360] clocking angle(s) of forcing mode(s) + AWC_freq Hz Float [0,inf] frequency(s) of forcing mode(s) + AWC_amp deg Float [0,inf] pitch amplitude(s) of forcing mode(s) (note that AWC_amp specifies the amplitude of each individual mode so that the total amplitude of pitching will be the sum of AWC_amp) + +The latter two inputs may be specified based on the expected inflow while the former three inputs determine the type of active wake control to be used. + +Readers may be familiar with several forcing strategies from literature on active wake control that can be represented as follows: + -collective dynamic induction control: AWC_NumModes = 1, AWC_n = 0, AWC_clockangle = 0 + -helix clockwise [2]: AWC_NumModes = 1, AWC_n = 1, AWC_clockangle = 0 + -helix counter-clockwise [2]: AWC_NumModes = 1, AWC_n = -1, AWC_clockangle = 0 + -up-and-down: AWC_NumModes = 2, AWC_n = -1 1, AWC_clockangle = 0 0 + -side-to-side: AWC_NumModes = 2, AWC_n = -1 1, AWC_clockangle = 90 90 + -other: Higher-order modes or different combinations of the above can also be specified + + These strategies are implemented using the following calculation methodology: + For each blade, we compute the total phase angle of blade pitch excursion according to: + AWC_angle(t) = 2*Pi*AWC_freq * t - AWC_n * (psi(t) + phi + AWC_clockangle*PI/180) (eq 1) + where t is time + phi(t) is the angular offset of the given blade in the rotor plane relative to blade 1 + psi is the angle of blade 1 in the rotor plane from top-dead center + + Next, the phase angle is converted into the complex pitch amplitude: + AWC_complexangle(t) = AWC_amp*PI/180 * EXP(i * AWC_angle(t)) (eq 2) + where i is the square root of -1 + + Note that if AWC_NumModes>1, then eq 1 and 2 are computed for each additional mode, and AWC_complexangle becomes a summation over all modes for each blade. + + Finally, the real pitch amplitude, theta(t), to be passed to the next step of the controller is calculated: + theta(t) = theta_0(t) + REAL(AWC_complexangle(t)) (eq 3) + where theta_0(t) is the controller's nominal pitch command + + Rearranging for ease of viewing: + Inserting eq 1 into eq 2, and then putting that result into eq 3 gives: + theta(t) = theta_0(t) + REAL(AWC_amp*PI/180 * EXP(i * (2*Pi*AWC_freq * t - AWC_n * (psi(t) + phi + AWC_clockangle*PI/180)))) (eq 4) + + Applying Euler's formula and carrying out the REAL operator: + theta(t) = theta_0(t) + AWC_amp*PI/180 * cos(2*Pi*AWC_freq * t - AWC_n * (psi(t) + phi + AWC_clockangle*PI/180)) (eq 5) + + As an example, we can set parameters to produce the counter-clockwise helix pattern from [2] using AWC_NumModes = 1, AWC_n = -1, and AWC_clockangle = 0: + For blade 1, eq 5 becomes: + theta(t) = theta_0(t) + AWC_amp*PI/180 * cos(2*Pi*AWC_freq * t + psi(t)) (eq 6) + +Note that the inverse multi-blade coordinate (MBC) transformation can also be used to obtain the same result as eq 6. + Beginning with Eq. 3 from [2], we have + + / \ / \ + | theta_1(t) | | theta_0(t) | + | theta_2(t) | = T^-1(psi(t)) * | theta_tilt(t) | (eq 7) + | theta_3(t) | | theta_yaw(t) | + \ / \ / + + where + + / \ + | 1 cos(psi_1(t)) sin(psi_1(t)) | + T^-1(psi(t)) = | 1 cos(psi_2(t)) sin(psi_2(t)) | + | 1 cos(psi_3(t)) sin(psi_3(t)) | + \ / + + Multiplying the first row of the top matrix (and dropping the subscript of blade 1) yields: + theta(t) = theta_0(t) + theta_tilt(t)*cos(psi(t)) + theta_yaw(t)*sin(psi(t)) (eq 8) + + Setting theta_tilt(t) = AWC_amp*PI/180 * cos(2*Pi*AWC_freq * t) and theta_yaw(t) = -AWC_amp*PI/180 * sin(2*Pi*AWC_freq * t) gives: + theta(t) = theta_0(t) + (AWC_amp*PI/180 * cos(2*Pi*AWC_freq * t))*cos(psi(t)) - (AWC_amp*PI/180 * sin(2*Pi*AWC_freq * t))*sin(psi(t)) (eq 9) + + Applying a Ptolemy identity gives: + theta(t) = theta_0(t) + AWC_amp*PI/180 * cos(2*Pi*AWC_freq * t + psi(t)) (eq 10) + which is equivlanet to eq 6 above. + +----------------------------------------------- +AWC_Mode = 2: Coleman transform method: +----------------------------------------------- +A second method is the Coleman transform method. + +The inputs to the controller are: + Name Unit Type Range Description + AWC_NumModes - Integer [1,2] number of modes for tilt and yaw (1: identical settings for tilt and yaw pitch angles, 2: seperate settings for tilt and yaw moments) + AWC_harmonic - Integer [0,inf] harmonic(s) to apply in the inverse Coleman transform (size = AWC_NumModes. 0: collective pitch AWC, 1: 1P IPC-AWC, 2: 2P IPC-AWC, etc.) + AWC_clockangle deg Array of Floats [-360,360] clocking angle(s) of tilt and yaw pitch angles (size = AWC_NumModes. If size = 1, yaw clockangle = 2*clockangle) + AWC_freq Hz Array of Floats [0,inf] frequency(s) of the tilt and yaw ptich angles, respectively (size = AWC_NumModes. If size = 1, both frequencies are assumed identical) + AWC_amp deg Array of Floats [0,inf] pitch amplitude(s) of tilt and yaw pitch angles (size = AWC_NumModes. If size = 1, both amplitudes are assumed identical) + +Using the inputs mentioned above, the user is able to specify any desired combination of sinusoidal tilt and yaw modes to be tracked by the turbine. +When a single mode is defined in the inputs, the prescribed tilt and yaw angles are assumed to be identical, except for the phase. The phase difference +between the tilt and yaw angles is taken from the input AWC_clockangle. + +Readers may be familiar with several forcing strategies from literature on active wake control that can be represented as follows: + -collective dynamic induction control: AWC_NumModes = 1, AWC_harmonic = 0 + -helix clockwise [2]: AWC_NumModes = 1, AWC_harmonic = 1, AWC_clockangle = -90 OR AWC_NumModes = 2, AWC_n = [1 1], AWC_clockangle = [0 -90] + -helix counter-clockwise [2]: AWC_NumModes = 1, AWC_harmonic = 1, AWC_clockangle = 90 OR AWC_NumModes = 2, AWC_n = [1 1], AWC_clockangle = [0 90] + -up-and-down: AWC_NumModes = 2, AWC_harmonic = [1 1], AWC_amp = [# 0] (where "#" represents the desired amplitude) + -side-to-side: AWC_NumModes = 2, AWC_harmonic = [1 1], AWC_amp = [0 #] (where "#" represents the desired amplitude) + -other: different combinations of the above can also be specified + + These strategies are implemented using the following calculation methodology: + The inputs described above enable the user to specify a desired sinusoidal signal for either the collective pitch (AWC_n = 0) or tilt and yaw pitch + angles (AWC_n = 1). These AWC pitch angles are defined as: + AWC_angle(t) = AWC_amp * sin(2*pi*AWC_freq*t + AWC_clockangle) (eq 1) + + In case of collective pitch AWC, this signal is directly superimposed on the regular pitch control signal. + + In case of IPC-based AWC, the reference tilt and yaw pitch angles theta are transformed to the rotating frame (i.e., pitch angles theta_k(t) for all + individual blades) using the inverse MBC transformation: + + / \ / \ + | theta_1(t) | | theta_0(t) | + | theta_2(t) | = T^-1(psi(t)) * | theta_tilt(t) | (eq 2) + | theta_3(t) | | theta_yaw(t) | + \ / \ / + + where + + theta_tilt(t) = AWC_amp(1) * sin(2*pi*AWC_freq(1)*t + AWC_clockangle(1)) (eq 3) + theta_yaw(t) = AWC_amp(2) * sin(2*pi*AWC_freq(2)*t + AWC_clockangle(2)) (eq 4) + + and + / \ + | 1 cos(psi_1(t)) sin(psi_1(t)) | + T^-1(psi(t)) = | 1 cos(psi_2(t)) sin(psi_2(t)) | (eq 5) + | 1 cos(psi_3(t)) sin(psi_3(t)) | + \ / + + with psi_k(t) the azimuthal position of blade k at time instant t. Note that if AWC_NumModes = 1, it is assumed that: + AWC_amp(2) = AWC_amp(1) + AWC_freq(2) = AWC_freq(1) + AWC_clockangle(2) = 2*AWC_clockangle(1) + + For more information on this control strategy, the user is referred to [2]. + +----------------------------------------------- + +General Implementation note: AWC strategies will be compromised if the AWC pitch command attempts to lower the blade pitch below value PC_MinPit as specified +in the DISCON file, so PC_MinPit may need to be reduced by the user. + +References: +[1] - Batchelor, G. K., and A. E. Gill. "Analysis of the stability of axisymmetric jets." Journal of fluid mechanics 14.4 (1962): 529-551. +[2] - Frederik, Joeri A., et al. "The helix approach: Using dynamic individual pitch control to enhance wake mixing in wind farms." Wind Energy 23.8 (2020): 1739-1751. +''' + +import os, platform +from ROSCO_toolbox.ofTools.case_gen.run_FAST import run_FAST_ROSCO +from ROSCO_toolbox.ofTools.case_gen import CaseLibrary as cl +from ROSCO_toolbox.ofTools.fast_io import output_processing +from ROSCO_toolbox.utilities import read_DISCON, DISCON_dict +import numpy as np + +# Choose your implementation method +AWC_Mode = 1 # 1 for SNL implementation, 2 for Coleman Transformation implementation + +#directories +this_dir = os.path.dirname(os.path.abspath(__file__)) +rosco_dir = os.path.dirname(this_dir) +example_out_dir = os.path.join(this_dir,'examples_out') +os.makedirs(example_out_dir,exist_ok=True) + +if platform.system() == 'Windows': + lib_name = os.path.realpath(os.path.join(this_dir, '../ROSCO/build/libdiscon.dll')) +elif platform.system() == 'Darwin': + lib_name = os.path.realpath(os.path.join(this_dir, '../ROSCO/build/libdiscon.dylib')) +else: + lib_name = os.path.realpath(os.path.join(this_dir, '../ROSCO/build/libdiscon.so')) + + +def main(): + + # Input yaml and output directory + parameter_filename = os.path.join(rosco_dir,'Tune_Cases/NREL2p8.yaml') # will be dummy and overwritten with SNL DISCON params + run_dir = os.path.join(example_out_dir,'20_active_wake_control/all_cases') + os.makedirs(run_dir,exist_ok=True) + + # Read all DISCON inputs + rosco_vt = read_DISCON(os.path.join(rosco_dir,'Test_Cases','NREL_2p8_127/NREL-2p8-127_DISCON.IN')) + + # Apply all discon variables as case inputs + control_base_case = {} + for discon_input in rosco_vt: + control_base_case[('DISCON_in',discon_input)] = {'vals': [rosco_vt[discon_input]], 'group': 0} + + # Set up AWC cases defined above + if AWC_Mode == 1: + control_base_case[('DISCON_in','AWC_Mode')] = {'vals': [0,1,1,1,1,1], 'group': 2} + control_base_case[('DISCON_in','AWC_NumModes')] = {'vals': [1,1,1,1,2,2], 'group': 2} + control_base_case[('DISCON_in','AWC_n')] = {'vals': [[0],[0],[1],[-1],[-1,1], [-1,1]], 'group': 2} + control_base_case[('DISCON_in','AWC_freq')] = {'vals': [[0],[0.05],[0.05],[0.05],[0.05,0.05], [0.05,0.05]], 'group': 2} + control_base_case[('DISCON_in','AWC_amp')] = {'vals': [[0],[2.5],[2.5],[2.5],[1.25,1.25], [1.25,1.25]], 'group': 2} + control_base_case[('DISCON_in','AWC_clockangle')] = {'vals': [[0],[0],[0],[0],[0,0], [90,90]], 'group': 2} + elif AWC_Mode == 2: + control_base_case[('DISCON_in','AWC_Mode')] = {'vals': [0,2,2,2,2,2], 'group': 2} + control_base_case[('DISCON_in','AWC_NumModes')] = {'vals': [1,1,2,2,2,2], 'group': 2} + control_base_case[('DISCON_in','AWC_harmonic')] = {'vals': [[0],[0],[1,1],[1,1],[1,1], [1,1]], 'group': 2} + control_base_case[('DISCON_in','AWC_freq')] = {'vals': [[0],[0.05],[0.05,0.05],[0.05,0.05],[0.05,0.05], [0.05,0.05]], 'group': 2} + control_base_case[('DISCON_in','AWC_amp')] = {'vals': [[0],[2.5],[2.5,2.5],[2.5,2.5],[2.5,0.0], [0.0,2.5]], 'group': 2} + control_base_case[('DISCON_in','AWC_clockangle')] = {'vals': [[0],[0],[0,-90],[0,90],[0,0], [180,180]], 'group': 2} + + # simulation set up + r = run_FAST_ROSCO() + r.tuning_yaml = parameter_filename + r.wind_case_fcn = cl.power_curve # single step wind input + r.wind_case_opts = { + 'U': [14], # from 10 to 15 m/s + 'TMax': 100, + } + r.case_inputs = control_base_case + r.case_inputs[("ServoDyn","Ptch_Cntrl")] = {'vals':[1], 'group':0} # Individual pitch control must be enabled in ServoDyn + r.save_dir = run_dir + r.rosco_dir = rosco_dir + r.n_cores = 5 + r.run_FAST() + + # # Check AWC here + # filenames = [os.path.join(run_dir,'IEA15MW/simp_step/base/IEA15MW_0.outb')] + # fast_out = output_processing.output_processing() + + # # Load and plot + # fastout = fast_out.load_fast_out(filenames) + # offset_2 = fastout[0]['BldPitch2'] - fastout[0]['BldPitch1'] + # offset_3 = fastout[0]['BldPitch3'] - fastout[0]['BldPitch1'] + + # # check that offset (min,max) is very close to prescribed values + # np.testing.assert_almost_equal(offset_2.max(),pitch2_offset,decimal=3) + # np.testing.assert_almost_equal(offset_2.min(),pitch2_offset,decimal=3) + # np.testing.assert_almost_equal(offset_3.max(),pitch3_offset,decimal=3) + # np.testing.assert_almost_equal(offset_3.max(),pitch3_offset,decimal=3) + + + +if __name__=="__main__": + main() diff --git a/Examples/21_optional_inputs.py b/Examples/21_optional_inputs.py new file mode 100644 index 00000000..8a69b0ac --- /dev/null +++ b/Examples/21_optional_inputs.py @@ -0,0 +1,51 @@ +''' +----------- 21_optional_inputse_discon_version ----------------- +Test and demonstrate update_discon_version() function for converting an old ROSCO input +to the current version +''' + +import os, platform +from ROSCO_toolbox import control_interface as ROSCO_ci +from ROSCO_toolbox import sim as ROSCO_sim +from ROSCO_toolbox import turbine as ROSCO_turbine +import numpy as np + + +this_dir = os.path.dirname(os.path.abspath(__file__)) +rosco_dir = os.path.dirname(this_dir) + +example_out_dir = os.path.join(this_dir,'examples_out') +example_in_dir = os.path.join(this_dir,'example_inputs') + + +def main(): + + # Set up rosco_dll + if platform.system() == 'Windows': + rosco_dll = os.path.join(rosco_dir, 'ROSCO/build/libdiscon.dll') + elif platform.system() == 'Darwin': + rosco_dll = os.path.join(rosco_dir, 'ROSCO/build/libdiscon.dylib') + else: + rosco_dll = os.path.join(rosco_dir, 'ROSCO/build/libdiscon.so') + + # Load turbine model from saved pickle + turbine = ROSCO_turbine.Turbine + turbine = turbine.load(os.path.join(example_out_dir,'01_NREL5MW_saved.p')) + + # Not an extensive list, but can add if issues arise + param_filenames = [ + os.path.join(example_in_dir, 'minimal_DISCON.IN'), # pass + os.path.join(example_in_dir, 'minimal_DISCON_err.IN'), # fail + ] + + avi_fail = [] + for param_filename in param_filenames: + controller_int = ROSCO_ci.ControllerInterface(rosco_dll,param_filename=param_filename,sim_name='sim1') + controller_int.kill_discon() + avi_fail.append(controller_int.aviFAIL.value) + + # Check whether controller call failed + assert avi_fail == [0,-1], "Unexpected pass/fail" + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/Examples/22_cable_control.py b/Examples/22_cable_control.py new file mode 100644 index 00000000..467ed629 --- /dev/null +++ b/Examples/22_cable_control.py @@ -0,0 +1,153 @@ +''' +----------- 22_cable_control ------------------------ +Run openfast with ROSCO and cable control +----------------------------------------------- + +Set up and run simulation with pitch offsets, check outputs + +''' + +import os, platform +from ROSCO_toolbox.ofTools.case_gen.run_FAST import run_FAST_ROSCO +from ROSCO_toolbox.ofTools.case_gen import CaseLibrary as cl +from ROSCO_toolbox.ofTools.fast_io import output_processing +import numpy as np +from ROSCO_toolbox.ofTools.fast_io.FAST_reader import InputReader_OpenFAST +from ROSCO_toolbox.inputs.validation import load_rosco_yaml +import matplotlib.pyplot as plt +from ROSCO_toolbox.controller import OpenLoopControl + +''' +ROSCO currently supports user-defined hooks for cable control actuation, if CC_Mode = 1. +The control logic can be determined in Controllers.f90 with the CableControl subroutine. +The CableControl subroutine takes an array of CC_DesiredL (length) equal to the ChannelIDs set in MoorDyn and +determines the length and change in length needed for MoorDyn using a 2nd order actuator model (CC_ActTau). +In the DISCON input, users must specify CC_GroupIndex relating to the deltaL of each control ChannelID. +These indices can be found in the ServoDyn summary file (*SrvD.sum) + +In the example below (and hard-coded in ROSCO) a step change of -10 m on line 1 is applied at 50 sec. +''' + + +#directories +this_dir = os.path.dirname(os.path.abspath(__file__)) +rosco_dir = os.path.dirname(this_dir) +example_out_dir = os.path.join(this_dir,'examples_out') +os.makedirs(example_out_dir,exist_ok=True) + +def main(): + + # Input yaml and output directory + parameter_filename = os.path.join(rosco_dir,'Tune_Cases/IEA15MW_cable.yaml') + run_dir = os.path.join(example_out_dir,'22_cable_control') + os.makedirs(run_dir,exist_ok=True) + + # Read initial input file + inps = load_rosco_yaml(parameter_filename) + path_params = inps['path_params'] + + # Change inputs programatically, read first + reader = InputReader_OpenFAST() + reader.FAST_InputFile = path_params['FAST_InputFile'] + reader.FAST_directory = os.path.join(rosco_dir,'Tune_Cases',path_params['FAST_directory']) + reader.execute() + + # Set control line mapping (ChannelID -> Line(s)) + reader.fst_vt['MoorDyn']['ChannelID'] = [1, 2, 3] + reader.fst_vt['MoorDyn']['Lines_Control'] = [['1'], ['2'], ['3']] + + # Make segments longer + reader.fst_vt['MoorDyn']['NumSegs'] = [20,20,20] + + # Outputs + reader.fst_vt['MoorDyn']['Outputs'] = ['l', 'l', 'l'] + + # Set up ServoDyn for cable control + reader.fst_vt['ServoDyn']['CCmode'] = 5 + + # Set heading + heading = 40 # deg + reader.fst_vt['ServoDyn']['YawNeut'] = heading + reader.fst_vt['ElastoDyn']['NacYaw'] = heading + reader.fst_vt['InflowWind']['PropagationDir'] = -heading + + t_trans = 100 + t_sigma = 20 + t_max = 200 + + line_ends = [-14.51, 1.58, 10.33] + + olc = OpenLoopControl(t_max=t_max) + olc.interp_timeseries( + 'cable_control_1', + [0,t_trans,t_trans+t_sigma], + [0,0,line_ends[0]] , + 'sigma' + ) + + olc.interp_timeseries( + 'cable_control_2', + [0,t_trans,t_trans+t_sigma], + [0,0,line_ends[1]] , + 'sigma' + ) + + olc.interp_timeseries( + 'cable_control_3', + [0,t_trans,t_trans+t_sigma], + [0,0,line_ends[2]] , + 'sigma' + ) + + + ol_params = olc.write_input(os.path.join(run_dir,'open_loop_cable.dat')) + + controller_params = {} + controller_params['open_loop'] = ol_params + controller_params['CC_Mode'] = 2 + + # simulation set up + r = run_FAST_ROSCO() + r.tuning_yaml = parameter_filename + r.wind_case_fcn = cl.simp_step # single step wind input + r.wind_case_fcn = cl.power_curve + r.wind_case_opts = { + 'U': [8], + 'TMax': t_max, + } + r.case_inputs = {} + r.fst_vt = reader.fst_vt + r.controller_params = controller_params + r.save_dir = run_dir + r.rosco_dir = rosco_dir + + r.run_FAST() + + + op = output_processing.output_processing() + op2 = output_processing.output_processing() + + md_out = op.load_fast_out([os.path.join(run_dir,'IEA15MW_cable/power_curve/base/IEA15MW_cable_0.MD.Line1.out')], tmin=0) + local_vars = op2.load_fast_out([os.path.join(run_dir,'IEA15MW_cable/power_curve/base/IEA15MW_cable_0.RO.dbg2')], tmin=0) + + fig, axs = plt.subplots(4,1) + axs[0].plot(local_vars[0]['Time'],local_vars[0]['CC_DesiredL'],label='CC_DesiredL') + axs[1].plot(local_vars[0]['Time'],local_vars[0]['CC_ActuatedL'],label='CC_ActuatedL') + axs[2].plot(local_vars[0]['Time'],local_vars[0]['CC_ActuatedDL'],label='CC_ActuatedDL') + axs[3].plot(md_out[0]['Time'],md_out[0]['Seg20Lst'],label='Seg20Lst') + + [a.legend() for a in axs] + [a.grid() for a in axs] + + if False: + plt.show() + else: + plt.savefig(os.path.join(example_out_dir,'22_cable_control.png')) + + # Check that the last segment of line 1 shrinks by 10 m + np.testing.assert_almost_equal(md_out[0]['Seg20Lst'][-1] - md_out[0]['Seg20Lst'][0], line_ends[0], 2) + + + +if __name__=="__main__": + main() \ No newline at end of file diff --git a/Examples/23_structural_control.py b/Examples/23_structural_control.py new file mode 100644 index 00000000..2a49b0f5 --- /dev/null +++ b/Examples/23_structural_control.py @@ -0,0 +1,88 @@ +''' +----------- 23_structural_control ------------------------ +Run openfast with ROSCO and structural control +----------------------------------------------- + +Set up and run simulation with pitch offsets, check outputs + +''' + +import os, platform +from ROSCO_toolbox.ofTools.case_gen.run_FAST import run_FAST_ROSCO +from ROSCO_toolbox.ofTools.case_gen import CaseLibrary as cl +import numpy as np +from ROSCO_toolbox.ofTools.fast_io.FAST_reader import InputReader_OpenFAST +from ROSCO_toolbox.inputs.validation import load_rosco_yaml + +''' +ROSCO currently supports user-defined hooks for structural control control actuation, if StC_Mode = 1. +The control logic can be determined in Controllers.f90 with the StructrualControl subroutine. +In the DISCON input, users must specify StC_GroupIndex relating to the control ChannelID. +These indices can be found in the ServoDyn summary file (*SrvD.sum) + +In the example below (and hard-coded in ROSCO) a step change of -4e5 N on the first structural controller +is applied at 50 sec. + +The develop branch (as of Mar 3, 2023) of OpenFAST (v3.5.0, upcoming) is required to run this example +''' + + +#directories +this_dir = os.path.dirname(os.path.abspath(__file__)) +rosco_dir = os.path.dirname(this_dir) +example_out_dir = os.path.join(this_dir,'examples_out') +os.makedirs(example_out_dir,exist_ok=True) + +if platform.system() == 'Windows': + lib_name = os.path.realpath(os.path.join(this_dir, '../ROSCO/build/libdiscon.dll')) +elif platform.system() == 'Darwin': + lib_name = os.path.realpath(os.path.join(this_dir, '../ROSCO/build/libdiscon.dylib')) +else: + lib_name = os.path.realpath(os.path.join(this_dir, '../ROSCO/build/libdiscon.so')) + + +def main(): + + # Input yaml and output directory + parameter_filename = os.path.join(rosco_dir,'Tune_Cases/IEA15MW_ballast.yaml') + run_dir = os.path.join(example_out_dir,'23_structural_control') + os.makedirs(run_dir,exist_ok=True) + + # Read initial input file + inps = load_rosco_yaml(parameter_filename) + path_params = inps['path_params'] + + # Change inputs programatically, read first + reader = InputReader_OpenFAST() + reader.FAST_InputFile = path_params['FAST_InputFile'] + reader.FAST_directory = os.path.join(rosco_dir,'Tune_Cases',path_params['FAST_directory']) + # reader.FAST_directory = '/Users/dzalkind/Tools/ROSCO1/Test_Cases/ptfm_control_archive/IEA-15-240-RWT-UMaineSemi_ballast' + reader.execute() + + reader.fst_vt['ServoDyn']['NumSStC'] = 3 + reader.fst_vt['ServoDyn']['SStCfiles'] = ['StC-Force-Col1.dat', 'StC-Force-Col2.dat', 'StC-Force-Col3.dat'] + # Add SStC file inputs + for StC_file in reader.fst_vt['ServoDyn']['SStCfiles']: + reader.fst_vt['SStC'].append(reader.read_StC(StC_file)) + + + # simulation set up + r = run_FAST_ROSCO() + r.tuning_yaml = parameter_filename + r.wind_case_fcn = cl.simp_step # single step wind input + r.wind_case_fcn = cl.power_curve + r.wind_case_opts = { + 'U': [9], + 'T_max': 100, + } + r.case_inputs = {} + r.fst_vt = reader.fst_vt + r.save_dir = run_dir + r.rosco_dir = rosco_dir + + r.run_FAST() + + + +if __name__=="__main__": + main() \ No newline at end of file diff --git a/Examples/example_inputs/minimal_DISCON.IN b/Examples/example_inputs/minimal_DISCON.IN new file mode 100644 index 00000000..21716d03 --- /dev/null +++ b/Examples/example_inputs/minimal_DISCON.IN @@ -0,0 +1,99 @@ +! Controller parameter input file for the NREL-5MW wind turbine +! - File written using ROSCO version 2.7.0 controller tuning logic on 02/27/23 + +!------- DEBUG ------------------------------------------------------------ +0 ! LoggingLevel - (0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)) +0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) + +!------- CONTROLLER FLAGS ------------------------------------------------- +1 ! F_LPFType - (1: first-order low-pass filter, 2: second-order low-pass filter), [rad/s] (currently filters generator speed and pitch control signals +3 ! VS_ControlMode - Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control with constant torque, 3: TSR tracking PI control with constant power} +1 ! PC_ControlMode - Blade pitch control mode {0: No pitch, fix to fine pitch, 1: active PI blade pitch control} +1 ! SS_Mode - Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing} +2 ! WE_Mode - Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Immersion and Invariance Estimator, 2: Extended Kalman Filter} +1 ! PS_Mode - Pitch saturation mode {0: no pitch saturation, 1: implement pitch saturation} + +Extra lines that ROSCO doesn't care about anymore + +!------- FILTERS ---------------------------------------------------------- +1.57080 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [rad/s] +0.62830 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [rad/s]. +0.20944 ! F_WECornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the wind speed estimate [rad/s]. +0.17952 ! F_YawErr - Low pass filter corner frequency for yaw controller [rad/s]. +0.000000 1.000000 ! F_FlCornerFreq - Natural frequency and damping in the second order low pass filter of the tower-top fore-aft motion for floating feedback control [rad/s, -]. +0.01042 ! F_FlHighPassFreq - Natural frequency of first-order high-pass filter for nacelle fore-aft motion [rad/s]. +0.000000 1.000000 ! F_FlpCornerFreq - Corner frequency and damping in the second order low pass filter of the blade root bending moment for flap control [rad/s, -]. + +!------- BLADE PITCH CONTROL ---------------------------------------------- +30 ! PC_GS_n - Amount of gain-scheduling table entries +0.056789 0.084492 0.106018 0.124332 0.140807 0.155903 0.169931 0.183270 0.196062 0.208354 0.220050 0.231503 0.242646 0.253377 0.263967 0.274233 0.284343 0.294292 0.303997 0.313626 0.322957 0.332260 0.341319 0.350368 0.359221 0.368059 0.376700 0.385301 0.393691 0.402050 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. +-0.020655 -0.018159 -0.016134 -0.014459 -0.013049 -0.011846 -0.010809 -0.009904 -0.009108 -0.008403 -0.007774 -0.007209 -0.006698 -0.006235 -0.005813 -0.005427 -0.005072 -0.004745 -0.004442 -0.004162 -0.003901 -0.003657 -0.003430 -0.003217 -0.003017 -0.002829 -0.002652 -0.002484 -0.002326 -0.002176 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.008388 -0.007514 -0.006805 -0.006218 -0.005725 -0.005304 -0.004940 -0.004624 -0.004345 -0.004098 -0.003878 -0.003680 -0.003501 -0.003339 -0.003192 -0.003056 -0.002932 -0.002817 -0.002712 -0.002613 -0.002522 -0.002437 -0.002357 -0.002283 -0.002212 -0.002147 -0.002085 -0.002026 -0.001971 -0.001918 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. +0.000880000000 ! PC_MinPit - Minimum physical pitch limit, [rad]. +0.174500000000 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. +-0.17450000000 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. +122.9096700000 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +0.000880000000 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] +0.017450000000 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] + +!------- INDIVIDUAL PITCH CONTROL ----------------------------------------- +9.120000 11.400000 ! IPC_Vramp - Start and end wind speeds for cut-in ramp function. First entry: IPC inactive, second entry: IPC fully active. [m/s] +2 ! IPC_SatMode - IPC Saturation method (0 - no saturation (except by PC_MinPit), 1 - saturate by PS_BldPitchMin, 2 - saturate sotfly (full IPC cycle) by PC_MinPit, 3 - saturate softly by PS_BldPitchMin) +0.3 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.000e+00 0.000e+00 ! IPC_KP - Proportional gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.000e+00 0.000e+00 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.000000 0.000000 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] + +!------- VS TORQUE CONTROL ------------------------------------------------ +94.40000000000 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [%] +43093.51876000 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.000000 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.87063000 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +0.000000000000 ! VS_MinTq - Minimum generator torque (HSS side), [Nm]. +35.29006000000 ! VS_MinOMSpd - Minimum generator speed [rad/s] +2.185750000000 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [Nm/(rad/s)^2] +5000000.000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.51876000 ! VS_RtTq - Rated torque, [Nm]. +122.9096700000 ! VS_RefSpd - Rated generator speed [rad/s] +1 ! VS_n - Number of generator PI torque controller gains +-657.442080000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-104.507080000 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.64 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. + +!------- SETPOINT SMOOTHER --------------------------------------------- +1.00000 ! SS_VSGain - Variable speed torque controller setpoint smoother gain, [-]. +0.00100 ! SS_PCGain - Collective pitch controller setpoint smoother gain, [-]. + +Extra lines that ROSCO doesn't care about anymore + +!------- WIND SPEED ESTIMATOR --------------------------------------------- +63.000 ! WE_BladeRadius - Blade length (distance from hub center to blade tip), [m] +1 ! WE_CP_n - Amount of parameters in the Cp array +0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +43702538.05700 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +1.225 ! WE_RhoAir - Air density, [kg m^-3] +"Cp_Ct_Cq.NREL5MW.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) (absolute path or relative to this file) +36 26 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +60 ! WE_FOPoles_N - Number of first-order system poles used in EKF +3.0000 3.2897 3.5793 3.8690 4.1586 4.4483 4.7379 5.0276 5.3172 5.6069 5.8966 6.1862 6.4759 6.7655 7.0552 7.3448 7.6345 7.9241 8.2138 8.5034 8.7931 9.0828 9.3724 9.6621 9.9517 10.2414 10.5310 10.8207 11.1103 11.4000 11.8533 12.3067 12.7600 13.2133 13.6667 14.1200 14.5733 15.0267 15.4800 15.9333 16.3867 16.8400 17.2933 17.7467 18.2000 18.6533 19.1067 19.5600 20.0133 20.4667 20.9200 21.3733 21.8267 22.2800 22.7333 23.1867 23.6400 24.0933 24.5467 25.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.01638154 -0.01796321 -0.01954487 -0.02112654 -0.02270820 -0.02428987 -0.02587154 -0.02745320 -0.02903487 -0.03061653 -0.03219820 -0.03377987 -0.03536153 -0.03694320 -0.03852486 -0.04010653 -0.04168820 -0.04326986 -0.04485153 -0.04643319 -0.04801486 -0.04959652 -0.05117819 -0.05275986 -0.05434152 -0.05592319 -0.05758373 -0.05882656 -0.06845507 -0.05992890 0.02094683 0.01327182 0.00285485 -0.00935731 -0.02210773 -0.03573037 -0.04990222 -0.06404904 -0.07899629 -0.09463190 -0.10954192 -0.12525205 -0.14168652 -0.15843395 -0.17415061 -0.19052486 -0.20780146 -0.22581018 -0.24373777 -0.26010871 -0.27706767 -0.29551708 -0.31430599 -0.33428552 -0.35420853 -0.37183729 -0.38936451 -0.40828911 -0.42758878 -0.44818175 ! WE_FOPoles - First order system poles [1/s] + +!------- MINIMUM PITCH SATURATION ------------------------------------------- +60 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) +3.0000 3.2897 3.5793 3.8690 4.1586 4.4483 4.7379 5.0276 5.3172 5.6069 5.8966 6.1862 6.4759 6.7655 7.0552 7.3448 7.6345 7.9241 8.2138 8.5034 8.7931 9.0828 9.3724 9.6621 9.9517 10.2414 10.5310 10.8207 11.1103 11.4000 11.8533 12.3067 12.7600 13.2133 13.6667 14.1200 14.5733 15.0267 15.4800 15.9333 16.3867 16.8400 17.2933 17.7467 18.2000 18.6533 19.1067 19.5600 20.0133 20.4667 20.9200 21.3733 21.8267 22.2800 22.7333 23.1867 23.6400 24.0933 24.5467 25.0000 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.01116187 0.02310060 0.03164156 0.03968639 0.04741131 0.05899071 0.07019329 0.08090119 0.09141661 0.10169361 0.11174124 0.12170066 0.13137494 0.14103377 0.15048120 0.15989580 0.16913227 0.17831010 0.18739638 0.19643591 0.20537011 0.21419674 0.22293719 0.23161365 0.24025975 0.24885012 0.25735704 0.26578040 0.27407178 0.28233051 0.29047594 0.29867838 0.30674517 0.31490089 0.32284411 ! PS_BldPitchMin - Minimum blade pitch angles [rad] + +!------- SHUTDOWN ----------------------------------------------------------- +0.436300000000 ! SD_MaxPit - Maximum blade pitch angle to initiate shutdown, [rad] +0.418880000000 ! SD_CornerFreq - Cutoff Frequency for first order low-pass filter for blade pitch angle, [rad/s] + +!------- Floating ----------------------------------------------------------- +0.000000000000 ! Fl_Kp - Nacelle velocity proportional feedback gain [s] + +Extra lines that ROSCO doesn't care about anymore \ No newline at end of file diff --git a/Examples/example_inputs/minimal_DISCON_err.IN b/Examples/example_inputs/minimal_DISCON_err.IN new file mode 100644 index 00000000..327af71c --- /dev/null +++ b/Examples/example_inputs/minimal_DISCON_err.IN @@ -0,0 +1,106 @@ +! Controller parameter input file for the NREL-5MW wind turbine +! - File written using ROSCO version 2.7.0 controller tuning logic on 02/27/23 + +!------- DEBUG ------------------------------------------------------------ +0 ! LoggingLevel - (0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)) +1 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) + +!------- CONTROLLER FLAGS ------------------------------------------------- +1 ! F_LPFType - (1: first-order low-pass filter, 2: second-order low-pass filter), [rad/s] (currently filters generator speed and pitch control signals +0 ! F_NotchType - Notch on the measured generator speed and/or tower fore-aft motion (for floating) {0: disable, 1: generator speed, 2: tower-top fore-aft motion, 3: generator speed and tower-top fore-aft motion} +1 ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {0: off, 1: 1P reductions, 2: 1P+2P reductions} +3 ! VS_ControlMode - Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control with constant torque, 3: TSR tracking PI control with constant power} +1 ! PC_ControlMode - Blade pitch control mode {0: No pitch, fix to fine pitch, 1: active PI blade pitch control} +0 ! Y_ControlMode - Yaw control mode {0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC} +1 ! SS_Mode - Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing} +0 ! WE_Mode - Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Immersion and Invariance Estimator, 2: Extended Kalman Filter} +0 ! SD_Mode - Shutdown mode {0: no shutdown procedure, 1: pitch to max pitch at shutdown} +0 ! Fl_Mode - Floating specific feedback mode {0: no nacelle velocity feedback, 1: feed back translational velocity, 2: feed back rotational veloicty} +0 ! TD_Mode - Tower damper mode {0: no tower damper, 1: feed back translational nacelle accelleration to pitch angle} +0 ! Flp_Mode - Flap control mode {0: no flap control, 1: steady state flap angle, 2: Proportional flap control, 2: Cyclic (1P) flap control} +0 ! OL_Mode - Open loop control mode {0: no open loop control, 1: open loop control vs. time} +0 ! PA_Mode - Pitch actuator mode {0 - not used, 1 - first order filter, 2 - second order filter} +0 ! PF_Mode - Pitch fault mode {0 - not used, 1 - constant offset on one or more blades} +0 ! ZMQ_Mode - Fuse ZeroMQ interface {0: unused, 1: Yaw Control} +0 ! CC_Mode - Cable control mode [0- unused, 1- User defined, 2- Position control (not yet implemented)] +1 ! StC_Mode - Structural control mode [0- unused, 1- User defined] + +Extra lines that ROSCO doesn't care about anymore + + + + +!------- FILTERS ---------------------------------------------------------- +1.57080 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [rad/s] +0.00000 ! F_LPFDamping - Damping coefficient {used only when F_FilterType = 2} [-] +0.00000 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] +0.000000 0.250000 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] +0.62830 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [rad/s]. +0.20944 ! F_WECornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the wind speed estimate [rad/s]. +0.17952 ! F_YawErr - Low pass filter corner frequency for yaw controller [rad/s]. +0.000000 1.000000 ! F_FlCornerFreq - Natural frequency and damping in the second order low pass filter of the tower-top fore-aft motion for floating feedback control [rad/s, -]. +0.01042 ! F_FlHighPassFreq - Natural frequency of first-order high-pass filter for nacelle fore-aft motion [rad/s]. +0.000000 1.000000 ! F_FlpCornerFreq - Corner frequency and damping in the second order low pass filter of the blade root bending moment for flap control [rad/s, -]. + +!------- BLADE PITCH CONTROL ---------------------------------------------- +30 ! PC_GS_n - Amount of gain-scheduling table entries +0.056789 0.084492 0.106018 0.124332 0.140807 0.155903 0.169931 0.183270 0.196062 0.208354 0.220050 0.231503 0.242646 0.253377 0.263967 0.274233 0.284343 0.294292 0.303997 0.313626 0.322957 0.332260 0.341319 0.350368 0.359221 0.368059 0.376700 0.385301 0.393691 0.402050 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. +-0.020655 -0.018159 -0.016134 -0.014459 -0.013049 -0.011846 -0.010809 -0.009904 -0.009108 -0.008403 -0.007774 -0.007209 -0.006698 -0.006235 -0.005813 -0.005427 -0.005072 -0.004745 -0.004442 -0.004162 -0.003901 -0.003657 -0.003430 -0.003217 -0.003017 -0.002829 -0.002652 -0.002484 -0.002326 -0.002176 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.008388 -0.007514 -0.006805 -0.006218 -0.005725 -0.005304 -0.004940 -0.004624 -0.004345 -0.004098 -0.003878 -0.003680 -0.003501 -0.003339 -0.003192 -0.003056 -0.002932 -0.002817 -0.002712 -0.002613 -0.002522 -0.002437 -0.002357 -0.002283 -0.002212 -0.002147 -0.002085 -0.002026 -0.001971 -0.001918 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. +0.000880000000 ! PC_MinPit - Minimum physical pitch limit, [rad]. +0.174500000000 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. +-0.17450000000 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. +122.9096700000 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +0.000880000000 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] +0.017450000000 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] + +!------- INDIVIDUAL PITCH CONTROL ----------------------------------------- +9.120000 11.400000 ! IPC_Vramp - Start and end wind speeds for cut-in ramp function. First entry: IPC inactive, second entry: IPC fully active. [m/s] +2 ! IPC_SatMode - IPC Saturation method (0 - no saturation (except by PC_MinPit), 1 - saturate by PS_BldPitchMin, 2 - saturate sotfly (full IPC cycle) by PC_MinPit, 3 - saturate softly by PS_BldPitchMin) +0.3 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.000e+00 0.000e+00 ! IPC_KP - Proportional gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.000e+00 0.000e+00 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.000000 0.000000 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] + +!------- VS TORQUE CONTROL ------------------------------------------------ +94.40000000000 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [%] +43093.51876000 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.000000 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +47402.87063000 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +0.000000000000 ! VS_MinTq - Minimum generator torque (HSS side), [Nm]. +35.29006000000 ! VS_MinOMSpd - Minimum generator speed [rad/s] +2.185750000000 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [Nm/(rad/s)^2] +5000000.000000 ! VS_RtPwr - Wind turbine rated power [W] +43093.51876000 ! VS_RtTq - Rated torque, [Nm]. +122.9096700000 ! VS_RefSpd - Rated generator speed [rad/s] +1 ! VS_n - Number of generator PI torque controller gains +-657.442080000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-104.507080000 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +7.64 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. + +!------- SETPOINT SMOOTHER --------------------------------------------- +1.00000 ! SS_VSGain - Variable speed torque controller setpoint smoother gain, [-]. +0.00100 ! SS_PCGain - Collective pitch controller setpoint smoother gain, [-]. + +Extra lines that ROSCO doesn't care about anymore + +!------- WIND SPEED ESTIMATOR --------------------------------------------- +63.000 ! WE_BladeRadius - Blade length (distance from hub center to blade tip), [m] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] + +!------- MINIMUM PITCH SATURATION ------------------------------------------- +60 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) +0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.00088027 0.01116187 0.02310060 0.03164156 0.03968639 0.04741131 0.05899071 0.07019329 0.08090119 0.09141661 0.10169361 0.11174124 0.12170066 0.13137494 0.14103377 0.15048120 0.15989580 0.16913227 0.17831010 0.18739638 0.19643591 0.20537011 0.21419674 0.22293719 0.23161365 0.24025975 0.24885012 0.25735704 0.26578040 0.27407178 0.28233051 0.29047594 0.29867838 0.30674517 0.31490089 0.32284411 ! PS_BldPitchMin - Minimum blade pitch angles [rad] + +!------- SHUTDOWN ----------------------------------------------------------- +0.436300000000 ! SD_MaxPit - Maximum blade pitch angle to initiate shutdown, [rad] +0.418880000000 ! SD_CornerFreq - Cutoff Frequency for first order low-pass filter for blade pitch angle, [rad/s] + +!------- Floating ----------------------------------------------------------- +0.000000000000 ! Fl_Kp - Nacelle velocity proportional feedback gain [s] + +Extra lines that ROSCO doesn't care about anymore \ No newline at end of file diff --git a/Examples/test_examples.py b/Examples/test_examples.py index 89d9e6c9..0bd6840e 100644 --- a/Examples/test_examples.py +++ b/Examples/test_examples.py @@ -19,9 +19,12 @@ '14_open_loop_control', '15_pass_through', '16_external_dll', - '17_zeromq_interface', - '18_pitch_offsets', # NJA: only runs on unix in CI + '17_zeromq_interface', # NJA: only runs on unix in CI + '18_pitch_offsets', '19_update_discon_version', + '20_active_wake_control', + '21_optional_inputs', + '22_cable_control', 'update_rosco_discons', ] diff --git a/ROSCO/CMakeLists.txt b/ROSCO/CMakeLists.txt index b69aa02d..b450a30f 100644 --- a/ROSCO/CMakeLists.txt +++ b/ROSCO/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.6) -project(ROSCO VERSION 2.7.0 LANGUAGES Fortran C) +project(ROSCO VERSION 2.8.0 LANGUAGES Fortran C) set(CMAKE_Fortran_MODULE_DIRECTORY "${CMAKE_BINARY_DIR}/ftnmods") diff --git a/ROSCO/rosco_registry/rosco_types.yaml b/ROSCO/rosco_registry/rosco_types.yaml index 81ad0953..759c9d0a 100644 --- a/ROSCO/rosco_registry/rosco_types.yaml +++ b/ROSCO/rosco_registry/rosco_types.yaml @@ -12,6 +12,13 @@ default_types: size: 0 # Use this if the type IS an array (size:3 --> REAL(8), BldPitch(3)) allocatable: False equals: + complex: &complex + type: complex + description: + dimension: # Use this if a higher-dimensional allocatable array (dimension:(:,:) --> REAL(8), DIMESION(:,:), ALLOCATABLE) + size: 0 # Use this if the type IS an array (size:3 --> REAL(8), BldPitch(3)) + allocatable: False + equals: float: &float type: float description: @@ -69,7 +76,9 @@ ControlParameters: LoggingLevel: <<: *integer description: 0 - write no debug files, 1 - write standard output .dbg-file, 2 - write standard output .dbg-file and complete avrSWAP-array .dbg2-file - + Echo: + <<: *integer + description: 0 - no Echo, 1 - Echo input data to .echo # Filters F_LPFType: <<: *integer @@ -408,6 +417,14 @@ ControlParameters: Ind_YawRate: <<: *integer description: The column in OL_Filename that contains the generator torque in Nm + Ind_CableControl: + <<: *integer + allocatable: True + description: The column in OL_Filename that contains the cable control inputs in m + Ind_StructControl: + <<: *integer + allocatable: True + description: The column in OL_Filename that contains the structural control inputs in various units OL_Breakpoints: <<: *real allocatable: True @@ -416,6 +433,14 @@ ControlParameters: <<: *real allocatable: True description: Open blade pitch timeseries + OL_CableControl: + <<: *real + allocatable: True + dimension: (:,:) + OL_StructControl: + <<: *real + allocatable: True + dimension: (:,:) OL_GenTq: <<: *real allocatable: True @@ -440,6 +465,58 @@ ControlParameters: PA_Damping: <<: *real description: Pitch actuator damping ratio [-, unused if PA_Mode = 1] + + # Active wake control + AWC_Mode: + <<: *integer + description: Active wake control mode [0 - unused, 1 - complex number method, 2 - Coleman transform method] + AWC_NumModes: + <<: *integer + description: AWC- Number of modes to include [-] + AWC_n: + <<: *integer + allocatable: True + description: AWC azimuthal mode [-] + AWC_harmonic: + <<: *integer + allocatable: True + description: AWC AWC Coleman transform harmonic [-] + AWC_freq: + <<: *real + allocatable: True + description: AWC frequency [Hz] + AWC_amp: + <<: *real + allocatable: True + description: AWC amplitude [deg] + AWC_clockangle: + <<: *real + allocatable: True + description: AWC clocking angle [deg] + + # Active wake control + AWC_Mode: + <<: *integer + description: Active wake control mode [0 - unused, 1 - SNL method, 2 - NREL method] + AWC_NumModes: + <<: *integer + description: AWC- Number of modes to include [-] + AWC_n: + <<: *integer + allocatable: True + description: AWC azimuthal mode [-] + AWC_freq: + <<: *real + allocatable: True + description: AWC frequency [Hz] + AWC_amp: + <<: *real + allocatable: True + description: AWC amplitude [deg] + AWC_clockangle: + <<: *real + allocatable: True + description: AWC clocking angle [deg] # Pitch actuator error PF_Mode: @@ -479,6 +556,38 @@ ControlParameters: <<: *real description: Integer for zeromq update frequency + # Cable control + CC_Mode: + <<: *integer + description: Flag for ZeroMQ (0-off, 1-yaw} + + CC_Group_N: + <<: *integer + description: Number of cable control groups + + CC_ActTau: + <<: *real + description: Time constant for line actuator [s] + + CC_GroupIndex: + <<: *integer + description: Cable control group indices + allocatable: True + + # StC Control + StC_Mode: + <<: *integer + description: Flag for StC Control + + StC_Group_N: + <<: *integer + description: Number of cable control groups + + StC_GroupIndex: + <<: *integer + description: Cable control group indices + allocatable: True + # Calculated PC_RtTq99: <<: *real @@ -581,6 +690,46 @@ FilterParameters: <<: *real dimension: (99) description: Second order filter - Previous output 1 + lpfV_a2: + <<: *real + dimension: (99) + description: Second order filter - Denominator coefficient 1 + lpfV_a1: + <<: *real + dimension: (99) + description: Second order filter - Denominator coefficient 1 + lpfV_a0: + <<: *real + dimension: (99) + description: Second order filter - Denominator coefficient 0 + lpfV_b2: + <<: *real + dimension: (99) + description: Second order filter - Numerator coefficient 2 + lpfV_b1: + <<: *real + dimension: (99) + description: Second order filter - Numerator coefficient 1 + lpfV_b0: + <<: *real + dimension: (99) + description: Second order filter - Numerator coefficient 0 + lpfV_InputSignalLast2: + <<: *real + dimension: (99) + description: Second order filter - Previous input 2 + lpfV_OutputSignalLast2: + <<: *real + dimension: (99) + description: Second order filter - Previous output 2 + lpfV_InputSignalLast1: + <<: *real + dimension: (99) + description: Second order filter - Previous input 1 + lpfV_OutputSignalLast1: + <<: *real + dimension: (99) + description: Second order filter - Previous output 1 hpf_InputSignalLast: <<: *real dimension: (99) @@ -822,6 +971,24 @@ LocalVariables: IPC_AxisYaw_2P: <<: *real description: Integral of quadrature, 2P + axisTilt_1P: + <<: *real + description: Tilt moment, 1P + axisYaw_1P: + <<: *real + description: Yaw moment, 1P + axisYawF_1P: + <<: *real + description: Filtered yaw moment, 1P + axisTilt_2P: + <<: *real + description: Tilt moment, 2P + axisYaw_2P: + <<: *real + description: Yaw moment, 2P + axisYawF_2P: + <<: *real + description: Filtered yaw moment, 2P IPC_KI: <<: *real description: Integral gain for IPC, after ramp [-] @@ -902,6 +1069,72 @@ LocalVariables: <<: *real FA_AccF: <<: *real + PtfmTDX: + <<: *real + description: Platform motion -- Displacement TDX (m)') + PtfmTDY: + <<: *real + description: Platform motion -- Displacement TDY (m)') + PtfmTDZ: + <<: *real + description: Platform motion -- Displacement TDZ (m)') + PtfmRDX: + <<: *real + description: Platform motion -- Displacement RDX (rad)') + PtfmRDY: + <<: *real + description: Platform motion -- Displacement RDY (rad)') + PtfmRDZ: + <<: *real + description: Platform motion -- Displacement RDZ (rad)') + PtfmTVX: + <<: *real + description: Platform motion -- Velocity TVX (m/s)') + PtfmTVY: + <<: *real + description: Platform motion -- Velocity TVY (m/s)') + PtfmTVZ: + <<: *real + description: Platform motion -- Velocity TVZ (m/s)') + PtfmRVX: + <<: *real + description: Platform motion -- Velocity RVX (rad/s)') + PtfmRVY: + <<: *real + description: Platform motion -- Velocity RVY (rad/s)') + PtfmRVZ: + <<: *real + description: Platform motion -- Velocity RVZ (rad/s)') + PtfmTAX: + <<: *real + description: Platform motion -- Acceleration TAX (m/s^2)') + PtfmTAY: + <<: *real + description: Platform motion -- Acceleration TAY (m/s^2)') + PtfmTAZ: + <<: *real + description: Platform motion -- Acceleration TAZ (m/s^2)') + PtfmRAX: + <<: *real + description: Platform motion -- Acceleration RAX (rad/s^2)') + PtfmRAY: + <<: *real + description: Platform motion -- Acceleration RAY (rad/s^2)') + PtfmRAZ: + <<: *real + description: Platform motion -- Acceleration RAZ (rad/s^2)') + CC_DesiredL: + <<: *real + size: 12 + CC_ActuatedL: + <<: *real + size: 12 + CC_ActuatedDL: + <<: *real + size: 12 + StC_Input: + <<: *real + size: 12 Flp_Angle: <<: *real description: Flap Angle (rad) @@ -921,6 +1154,10 @@ LocalVariables: restart: <<: *logical description: Restart flag + AWC_complexangle: + <<: *complex + description: Complex angle for each blade, sum of modes? + size: 3 WE: <<: *derived_type id: WE @@ -945,6 +1182,9 @@ ObjectInstances: instSecLPF: <<: *integer description: Second order low-pass filter instance + instSecLPFV: + <<: *integer + description: Second order low-pass filter instance instHPF: <<: *integer description: High-pass filter instance diff --git a/ROSCO/rosco_registry/write_registry.py b/ROSCO/rosco_registry/write_registry.py index 09c855b3..2f31b400 100644 --- a/ROSCO/rosco_registry/write_registry.py +++ b/ROSCO/rosco_registry/write_registry.py @@ -163,7 +163,7 @@ def write_roscoio(yfile): file.write(' Close ( Un )\n') file.write(' ENDIF\n') file.write(' ! Read Parameter files\n') - file.write(' CALL ReadControlParameterFileSub(CntrPar, zmqVar, LocalVar%ACC_INFILE, LocalVar%ACC_INFILE_SIZE, ErrVar)\n') + file.write(' CALL ReadControlParameterFileSub(CntrPar, zmqVar, LocalVar%ACC_INFILE, LocalVar%ACC_INFILE_SIZE, RootName, ErrVar)\n') file.write(' IF (CntrPar%WE_Mode > 0) THEN\n') file.write(' CALL READCpFile(CntrPar, PerfData, ErrVar)\n') file.write(' ENDIF\n') @@ -183,7 +183,7 @@ def write_roscoio(yfile): file.write(' INTEGER(IntKi), INTENT(IN) :: size_avcOUTNAME\n') file.write(' INTEGER(IntKi) :: I , nDebugOuts, nLocalVars ! Generic index.\n') file.write(' CHARACTER(1), PARAMETER :: Tab = CHAR(9) ! The tab character.\n') - file.write(' CHARACTER(29), PARAMETER :: FmtDat = "(F20.5,TR5,99(ES20.5E2,TR5:))" ! The format of the debugging data\n') + file.write(' CHARACTER(100) :: FmtDat ! The format of the debugging data\n') file.write(' INTEGER(IntKi), SAVE :: UnDb ! I/O unit for the debugging information\n') file.write(' INTEGER(IntKi), SAVE :: UnDb2 ! I/O unit for the debugging information, avrSWAP\n') file.write(' INTEGER(IntKi), SAVE :: UnDb3 ! I/O unit for the debugging information, avrSWAP\n') @@ -191,6 +191,13 @@ def write_roscoio(yfile): file.write(' CHARACTER(size_avcOUTNAME-1), INTENT(IN) :: RootName ! a Fortran version of the input C string (not considered an array here) [subtract 1 for the C null-character]\n') file.write(' CHARACTER(200) :: Version ! git version of ROSCO\n') file.write(' CHARACTER(15), ALLOCATABLE :: DebugOutStrings(:), DebugOutUnits(:)\n') + file.write('\n') + file.write(' ! Avr output writing\n') + file.write(' INTEGER(IntKi), SAVE, DIMENSION(:), ALLOCATABLE :: avrIndices\n') + file.write(' INTEGER(IntKi) :: avrBaseLength = 85\n') + file.write(' INTEGER(IntKi) :: Ind\n') + file.write(' CHARACTER(100) :: avrFmt\n') + file.write('\n') file.write(' REAL(DbKi), ALLOCATABLE :: DebugOutData(:)\n \n') file.write(' CHARACTER(15), ALLOCATABLE :: LocalVarOutStrings(:)\n') file.write(' REAL(DbKi), ALLOCATABLE :: LocalVarOutData(:)\n \n') @@ -237,13 +244,18 @@ def write_roscoio(yfile): # -- Always prints blade(1) for multi-bladed inputss (e.g. BldPitch(1)) lv_strings = [] for lv_idx, localvar in enumerate(reg['LocalVariables']): - if reg['LocalVariables'][localvar]['type'] in ['integer', 'real']: + if reg['LocalVariables'][localvar]['type'] in ['integer', 'real', 'complex']: lv_strings.append(localvar) - file.write(' nLocalVars = {}\n'.format(len(lv_strings))) + + n_lv_outputs = len(lv_strings) + file.write(' nLocalVars = {}\n'.format(n_lv_outputs)) file.write(' Allocate(LocalVarOutData(nLocalVars))\n') file.write(' Allocate(LocalVarOutStrings(nLocalVars))\n') + + # Loop through LocalVariables for lv_idx, localvar in enumerate(lv_strings): - if reg['LocalVariables'][localvar]['size'] > 0: + # If an array, only show first + if reg['LocalVariables'][localvar]['size'] > 0 or reg['LocalVariables'][localvar]['allocatable']: file.write(' LocalVarOutData({}) = LocalVar%{}(1)\n'.format(lv_idx+1, localvar)) else: file.write(' LocalVarOutData({}) = LocalVar%{}\n'.format(lv_idx+1, localvar)) @@ -277,19 +289,45 @@ def write_roscoio(yfile): file.write(" CALL GetNewUnit(UnDb2, ErrVar)\n") file.write(" OPEN(unit=UnDb2, FILE=TRIM(RootName)//'.RO.dbg2')\n") file.write(" WRITE(UnDb2, *) 'Generated on '//CurDate()//' at '//CurTime()//' using ROSCO-'//TRIM(rosco_version)\n") - file.write(" WRITE(UnDb2, '(99(a20,TR5:))') 'Time', LocalVarOutStrings\n") - file.write(" WRITE(UnDb2, '(99(a20,TR5:))')\n") + file.write(f" WRITE(UnDb2, '({n_lv_outputs+1}(a20,TR5:))') 'Time', LocalVarOutStrings\n") + file.write(f" WRITE(UnDb2, '({n_lv_outputs+1}(a20,TR5:))')\n") file.write(" END IF\n") file.write("\n") # avrSWAP debug file.write(" IF (CntrPar%LoggingLevel > 2) THEN\n") + file.write(" ! Set avrIndices, start with basic indices\n") + file.write(" Allocate(avrIndices(avrBaseLength))\n") + file.write(" DO Ind = 1, avrBaseLength\n") + file.write(" avrIndices(Ind) = Ind\n") + file.write(" END DO\n") + file.write("\n") + file.write(" ! Cable control indices\n") + file.write(" IF (CntrPar%CC_Mode > 0) THEN\n") + file.write(" DO Ind = 1, SIZE(CntrPar%CC_GroupIndex)\n") + file.write(" Call AddToList(avrIndices,CntrPar%CC_GroupIndex(Ind))\n") + file.write(" Call AddToList(avrIndices,CntrPar%CC_GroupIndex(Ind)+1)\n") + file.write(" END DO\n") + file.write(" END IF\n") + file.write("\n") + file.write(" ! Structural control indices\n") + file.write(" IF (CntrPar%StC_Mode > 0) THEN\n") + file.write(" DO Ind = 1, SIZE(CntrPar%StC_GroupIndex)\n") + file.write(" Call AddToList(avrIndices,CntrPar%StC_GroupIndex(Ind))\n") + file.write(" END DO\n") + file.write(" END IF\n") + file.write("\n") + file.write(" ! Format string\n") + file.write(" avrFmt = '(A21,'//TRIM(Int2LStr(SIZE(avrIndices)))//'(TR12," + '"' + "'//'" + "AvrSWAP(" + '",I4,"' + ')"' + "))'\n") + # file.write(" WRITE(UnDb3,'"+'(A,85("'+"'//Tab//'"+'AvrSWAP("'+',I2,")"'+"))') 'LocalVar%Time ', (i,i=1, 85)\n") + file.write("\n") file.write(" CALL GetNewUnit(UnDb3, ErrVar)\n") file.write(" OPEN(unit=UnDb3, FILE=TRIM(RootName)//'.RO.dbg3')\n") file.write(" WRITE(UnDb3,'(/////)')\n") - file.write(" WRITE(UnDb3,'"+'(A,85("'+"'//Tab//'"+'AvrSWAP("'+',I2,")"'+"))') 'LocalVar%Time ', (i,i=1, 85)\n") - file.write(" WRITE(UnDb3,'"+'(A,85("'+"'//Tab//'"+'(-)"'+"))') '(s)'"+'\n') + file.write(" WRITE(UnDb3,avrFmt) 'LocalVar%Time ', (avrIndices)\n") + file.write(" WRITE(UnDb3,'(A21,'//TRIM(Int2LStr(SIZE(avrIndices)))//'(TR22," + '"(-)"' + "))') '(s)'\n") file.write(" END IF\n") file.write(" END IF\n") + file.write("\n") file.write(" ! Print simulation status, every 10 seconds\n") file.write(" IF (MODULO(LocalVar%Time, 10.0_DbKi) == 0) THEN\n") file.write(" WRITE(*, 100) LocalVar%GenSpeedF*RPS2RPM, LocalVar%BlPitch(1)*R2D, avrSWAP(15)/1000.0, LocalVar%WE_Vw\n") @@ -311,16 +349,17 @@ def write_roscoio(yfile): file.write(" END DO\n") file.write(" \n") file.write(" ! Write debug files\n") + file.write(f' FmtDat = "(F20.5,TR5,{n_lv_outputs}(ES20.5E2,TR5:))" ! The format of the debugging data\n') file.write(" IF(CntrPar%LoggingLevel > 0) THEN\n") - file.write(" WRITE (UnDb, FmtDat) LocalVar%Time, DebugOutData\n") + file.write(" WRITE (UnDb, TRIM(FmtDat)) LocalVar%Time, DebugOutData\n") file.write(" END IF\n") file.write("\n") file.write(" IF(CntrPar%LoggingLevel > 1) THEN\n") - file.write(" WRITE (UnDb2, FmtDat) LocalVar%Time, LocalVarOutData\n") + file.write(" WRITE (UnDb2, TRIM(FmtDat)) LocalVar%Time, LocalVarOutData\n") file.write(" END IF\n") file.write("\n") file.write(" IF(CntrPar%LoggingLevel > 2) THEN\n") - file.write(" WRITE (UnDb3, FmtDat) LocalVar%Time, avrSWAP(1: 85)\n") + file.write(" WRITE (UnDb3, TRIM(FmtDat)) LocalVar%Time, avrSWAP(avrIndices)\n") file.write(" END IF\n") file.write("\n") file.write("END SUBROUTINE Debug\n") @@ -353,6 +392,15 @@ def read_type(param): f90type += ', DIMENSION(:), ALLOCATABLE' elif param['dimension']: f90type += ', DIMENSION{}'.format(param['dimension']) + elif param['type'] == 'complex': + f90type = 'COMPLEX(DbKi)' + if param['allocatable']: + if param['dimension']: + f90type += ', DIMENSION{}, ALLOCATABLE'.format(param['dimension']) + else: + f90type += ', DIMENSION(:), ALLOCATABLE' + elif param['dimension']: + f90type += ', DIMENSION{}'.format(param['dimension']) elif param['type'] == 'float': f90type = 'REAL(ReKi)' if param['allocatable']: diff --git a/ROSCO/src/Constants.f90 b/ROSCO/src/Constants.f90 index 0da3ac94..b85eefaa 100644 --- a/ROSCO/src/Constants.f90 +++ b/ROSCO/src/Constants.f90 @@ -14,7 +14,7 @@ MODULE Constants USE, INTRINSIC :: ISO_C_Binding - Character(*), PARAMETER :: rosco_version = 'v2.7.0' ! ROSCO version + Character(*), PARAMETER :: rosco_version = 'v2.8.0' ! ROSCO version INTEGER, PARAMETER :: DbKi = C_DOUBLE !< Default kind for double floating-point numbers INTEGER, PARAMETER :: ReKi = C_FLOAT !< Default kind for single floating-point numbers INTEGER, PARAMETER :: IntKi = C_INT !< Default kind for integer numbers @@ -35,4 +35,6 @@ MODULE Constants INTEGER(IntKi), PARAMETER :: ErrID_Fatal = 4 !< ErrStat parameter indicating "fatal error"; simulation should end INTEGER, PARAMETER :: BITS_IN_ADDR = C_INTPTR_T*8 !< The number of bits in an address (32-bit or 64-bit). + CHARACTER(1), PARAMETER :: Tab = CHAR( 9 ) + END MODULE Constants diff --git a/ROSCO/src/ControllerBlocks.f90 b/ROSCO/src/ControllerBlocks.f90 index 3e453052..390be8d0 100644 --- a/ROSCO/src/ControllerBlocks.f90 +++ b/ROSCO/src/ControllerBlocks.f90 @@ -201,7 +201,7 @@ SUBROUTINE WindSpeedEstimator(LocalVar, CntrPar, objInst, PerfData, DebugVar, Er ! Saturate inputs to WSE IF (LocalVar%RotSpeedF < 0.25 * CntrPar%VS_MinOMSpd / CntrPar%WE_GearboxRatio) THEN - WE_Inp_Speed = 0.25 * CntrPar%VS_MinOMSpd / CntrPar%WE_GearboxRatio + WE_Inp_Speed = 0.25 * CntrPar%VS_MinOMSpd / CntrPar%WE_GearboxRatio + EPSILON(1.0_DbKi) ! If this is 0, could cause problems... ELSE WE_Inp_Speed = LocalVar%RotSpeedF END IF diff --git a/ROSCO/src/Controllers.f90 b/ROSCO/src/Controllers.f90 index fd7a15f4..221dd16b 100644 --- a/ROSCO/src/Controllers.f90 +++ b/ROSCO/src/Controllers.f90 @@ -102,7 +102,7 @@ SUBROUTINE PitchControl(avrSWAP, CntrPar, LocalVar, objInst, DebugVar, ErrVar) ! Combine and saturate all individual pitch commands in software DO K = 1,LocalVar%NumBl ! Loop through all blades, add IPC contribution and limit pitch rate LocalVar%PitCom(K) = LocalVar%PC_PitComT + LocalVar%FA_PitCom(K) - LocalVar%PitCom(K) = saturate(LocalVar%PitCom(K), LocalVar%PC_MinPit, CntrPar%PC_MaxPit) ! Saturate the command using the pitch satauration limits + LocalVar%PitCom(K) = saturate(LocalVar%PitCom(K), LocalVar%PC_MinPit, CntrPar%PC_MaxPit) ! Saturate the command using the pitch saturation limits LocalVar%PitCom(K) = LocalVar%PitCom(K) + LocalVar%IPC_PitComF(K) ! Add IPC ! Hard IPC saturation by peak shaving limit @@ -124,6 +124,11 @@ SUBROUTINE PitchControl(avrSWAP, CntrPar, LocalVar, objInst, DebugVar, ErrVar) ENDIF ENDIF + ! Active wake control + IF (CntrPar%AWC_Mode > 0) THEN + CALL ActiveWakeControl(CntrPar, LocalVar, DebugVar) + ENDIF + ! Place pitch actuator here, so it can be used with or without open-loop DO K = 1,LocalVar%NumBl ! Loop through all blades, add IPC contribution and limit pitch rate IF (CntrPar%PA_Mode > 0) THEN @@ -155,10 +160,10 @@ SUBROUTINE PitchControl(avrSWAP, CntrPar, LocalVar, objInst, DebugVar, ErrVar) ! Command the pitch demanded from the last ! call to the controller (See Appendix A of Bladed User's Guide): - avrSWAP(42) = LocalVar%PitComAct(1) ! Use the command angles of all blades if using individual pitch - avrSWAP(43) = LocalVar%PitComAct(2) ! " - avrSWAP(44) = LocalVar%PitComAct(3) ! " - avrSWAP(45) = LocalVar%PitComAct(1) ! Use the command angle of blade 1 if using collective pitch + avrSWAP(42) = LocalVar%PitComAct(1) ! Use the command angles of all blades if using individual pitch + avrSWAP(43) = LocalVar%PitComAct(2) ! " + avrSWAP(44) = LocalVar%PitComAct(3) ! " + avrSWAP(45) = LocalVar%PitComAct(1) ! Use the command angle of blade 1 if using collective pitch ! Add RoutineName to error message IF (ErrVar%aviFAIL < 0) THEN @@ -391,8 +396,6 @@ SUBROUTINE IPC(CntrPar, LocalVar, objInst, DebugVar, ErrVar) ! Local variables REAL(DbKi) :: PitComIPC(3), PitComIPCF(3), PitComIPC_1P(3), PitComIPC_2P(3) INTEGER(IntKi) :: i, K ! Integer used to loop through gains and turbine blades - REAL(DbKi) :: axisTilt_1P, axisYaw_1P, axisYawF_1P ! Direct axis and quadrature axis outputted by Coleman transform, 1P - REAL(DbKi) :: axisTilt_2P, axisYaw_2P, axisYawF_2P ! Direct axis and quadrature axis outputted by Coleman transform, 1P REAL(DbKi) :: axisYawIPC_1P ! IPC contribution with yaw-by-IPC component REAL(DbKi) :: Y_MErr, Y_MErrF, Y_MErrF_IPC ! Unfiltered and filtered yaw alignment error [rad] @@ -400,8 +403,8 @@ SUBROUTINE IPC(CntrPar, LocalVar, objInst, DebugVar, ErrVar) ! Body ! Pass rootMOOPs through the Coleman transform to get the tilt and yaw moment axis - CALL ColemanTransform(LocalVar%rootMOOPF, LocalVar%Azimuth, NP_1, axisTilt_1P, axisYaw_1P) - CALL ColemanTransform(LocalVar%rootMOOPF, LocalVar%Azimuth, NP_2, axisTilt_2P, axisYaw_2P) + CALL ColemanTransform(LocalVar%rootMOOPF, LocalVar%Azimuth, NP_1, LocalVar%axisTilt_1P, LocalVar%axisYaw_1P) + CALL ColemanTransform(LocalVar%rootMOOPF, LocalVar%Azimuth, NP_2, LocalVar%axisTilt_2P, LocalVar%axisYaw_2P) ! High-pass filter the MBC yaw component and filter yaw alignment error, and compute the yaw-by-IPC contribution IF (CntrPar%Y_ControlMode == 2) THEN @@ -409,7 +412,7 @@ SUBROUTINE IPC(CntrPar, LocalVar, objInst, DebugVar, ErrVar) Y_MErrF = LPFilter(Y_MErr, LocalVar%DT, CntrPar%F_YawErr, LocalVar%FP, LocalVar%iStatus, LocalVar%restart, objInst%instSecLPF) Y_MErrF_IPC = PIController(Y_MErrF, CntrPar%Y_IPC_KP, CntrPar%Y_IPC_KI, -CntrPar%Y_IPC_IntSat, CntrPar%Y_IPC_IntSat, LocalVar%DT, 0.0_DbKi, LocalVar%piP, LocalVar%restart, objInst%instPI) ELSE - axisYawF_1P = axisYaw_1P + LocalVar%axisYawF_1P = LocalVar%axisYaw_1P Y_MErrF = 0.0 Y_MErrF_IPC = 0.0 END IF @@ -432,20 +435,20 @@ SUBROUTINE IPC(CntrPar, LocalVar, objInst, DebugVar, ErrVar) ENDIF ! Integrate the signal and multiply with the IPC gain - IF ((CntrPar%IPC_ControlMode >= 1) .AND. (CntrPar%Y_ControlMode /= 2)) THEN - LocalVar%IPC_axisTilt_1P = PIController(axisTilt_1P, LocalVar%IPC_KP(1), LocalVar%IPC_KI(1), -LocalVar%IPC_IntSat, LocalVar%IPC_IntSat, LocalVar%DT, 0.0_DbKi, LocalVar%piP, LocalVar%restart, objInst%instPI) - LocalVar%IPC_axisYaw_1P = PIController(axisYawF_1P, LocalVar%IPC_KP(1), LocalVar%IPC_KI(1), -LocalVar%IPC_IntSat, LocalVar%IPC_IntSat, LocalVar%DT, 0.0_DbKi, LocalVar%piP, LocalVar%restart, objInst%instPI) + IF (CntrPar%IPC_ControlMode >= 1 .AND. CntrPar%Y_ControlMode /= 2) THEN + LocalVar%IPC_axisTilt_1P = PIController(LocalVar%axisTilt_1P, LocalVar%IPC_KP(1), LocalVar%IPC_KI(1), -LocalVar%IPC_IntSat, LocalVar%IPC_IntSat, LocalVar%DT, 0.0_DbKi, LocalVar%piP, LocalVar%restart, objInst%instPI) + LocalVar%IPC_axisYaw_1P = PIController(LocalVar%axisYawF_1P, LocalVar%IPC_KP(1), LocalVar%IPC_KI(1), -LocalVar%IPC_IntSat, LocalVar%IPC_IntSat, LocalVar%DT, 0.0_DbKi, LocalVar%piP, LocalVar%restart, objInst%instPI) IF (CntrPar%IPC_ControlMode >= 2) THEN - LocalVar%IPC_axisTilt_2P = PIController(axisTilt_2P, LocalVar%IPC_KP(2), LocalVar%IPC_KI(2), -LocalVar%IPC_IntSat, LocalVar%IPC_IntSat, LocalVar%DT, 0.0_DbKi, LocalVar%piP, LocalVar%restart, objInst%instPI) - LocalVar%IPC_axisYaw_2P = PIController(axisYawF_2P, LocalVar%IPC_KP(2), LocalVar%IPC_KI(2), -LocalVar%IPC_IntSat, LocalVar%IPC_IntSat, LocalVar%DT, 0.0_DbKi, LocalVar%piP, LocalVar%restart, objInst%instPI) + LocalVar%IPC_axisTilt_2P = PIController(LocalVar%axisTilt_2P, LocalVar%IPC_KP(2), LocalVar%IPC_KI(2), -LocalVar%IPC_IntSat, LocalVar%IPC_IntSat, LocalVar%DT, 0.0_DbKi, LocalVar%piP, LocalVar%restart, objInst%instPI) + LocalVar%IPC_axisYaw_2P = PIController(LocalVar%axisYawF_2P, LocalVar%IPC_KP(2), LocalVar%IPC_KI(2), -LocalVar%IPC_IntSat, LocalVar%IPC_IntSat, LocalVar%DT, 0.0_DbKi, LocalVar%piP, LocalVar%restart, objInst%instPI) END IF ELSE LocalVar%IPC_axisTilt_1P = 0.0 LocalVar%IPC_axisYaw_1P = 0.0 LocalVar%IPC_axisTilt_2P = 0.0 LocalVar%IPC_axisYaw_2P = 0.0 - END IF + ENDIF ! Add the yaw-by-IPC contribution axisYawIPC_1P = LocalVar%IPC_axisYaw_1P + Y_MErrF_IPC @@ -468,13 +471,6 @@ SUBROUTINE IPC(CntrPar, LocalVar, objInst, DebugVar, ErrVar) LocalVar%IPC_PitComF(K) = PitComIPCF(K) END DO - ! debugging - DebugVar%axisTilt_1P = axisTilt_1P - DebugVar%axisYaw_1P = axisYaw_1P - DebugVar%axisTilt_2P = axisTilt_2P - DebugVar%axisYaw_2P = axisYaw_2P - - ! Add RoutineName to error message IF (ErrVar%aviFAIL < 0) THEN @@ -601,4 +597,196 @@ SUBROUTINE FlapControl(avrSWAP, CntrPar, LocalVar, objInst) RETURN ENDIF END SUBROUTINE FlapControl + + +!------------------------------------------------------------------------------------------------------------------------------- + SUBROUTINE ActiveWakeControl(CntrPar, LocalVar, DebugVar) + ! Active wake controller + ! AWC_Mode = 0, No active wake control + ! AWC_Mode = 1, SNL active wake control + ! AWC_Mode = 2, Coleman Transform-based active wake control + USE ROSCO_Types, ONLY : ControlParameters, LocalVariables, DebugVariables, ObjectInstances + + TYPE(ControlParameters), INTENT(INOUT) :: CntrPar + TYPE(DebugVariables), INTENT(INOUT) :: DebugVar + TYPE(LocalVariables), INTENT(INOUT) :: LocalVar + + ! Local vars + REAL(DbKi), PARAMETER :: phi1 = 0.0 ! Phase difference from first to first blade + REAL(DbKi), PARAMETER :: phi2 = 2.0/3.0*PI ! Phase difference from first to second blade + REAL(DbKi), PARAMETER :: phi3 = 4.0/3.0*PI ! Phase difference from first to third blade + REAL(DbKi), DIMENSION(3) :: AWC_angle + COMPLEX(DbKi), DIMENSION(3) :: AWC_complexangle + COMPLEX(DbKi) :: complexI = (0.0, 1.0) + INTEGER(IntKi) :: Imode, K ! Index used for looping through AWC modes, blades + REAL(DbKi) :: clockang ! Clock angle for AWC pitching + REAL(DbKi) :: omega ! angular frequency for AWC pitching in Hz + REAL(DbKi) :: amp ! amplitude for AWC pitching in degrees + REAL(DbKi), DIMENSION(2) :: AWC_TiltYaw = [0.0, 0.0] ! AWC Tilt and yaw pitch signal + + + ! Compute the AWC pitch settings + IF (CntrPar%AWC_Mode == 1) THEN + + LocalVar%AWC_complexangle = 0.0D0 + + DO Imode = 1,CntrPar%AWC_NumModes + clockang = CntrPar%AWC_clockangle(Imode)*PI/180.0_DbKi + omega = CntrPar%AWC_freq(Imode)*PI*2.0_DbKi + AWC_angle(1) = omega * LocalVar%Time - CntrPar%AWC_n(Imode) * (LocalVar%Azimuth + phi1 + clockang) + AWC_angle(2) = omega * LocalVar%Time - CntrPar%AWC_n(Imode) * (LocalVar%Azimuth + phi2 + clockang) + AWC_angle(3) = omega * LocalVar%Time - CntrPar%AWC_n(Imode) * (LocalVar%Azimuth + phi3 + clockang) + ! Add the forcing contribution to LocalVar%AWC_complexangle + amp = CntrPar%AWC_amp(Imode)*PI/180.0_DbKi + DO K = 1,LocalVar%NumBl ! Loop through all blades + LocalVar%AWC_complexangle(K) = LocalVar%AWC_complexangle(K) + amp * EXP(complexI * (AWC_angle(K))) + END DO + END DO + + DO K = 1,LocalVar%NumBl ! Loop through all blades, apply AWC_angle + LocalVar%PitCom(K) = LocalVar%PitCom(K) + REAL(LocalVar%AWC_complexangle(K)) + END DO + + ELSEIF (CntrPar%AWC_Mode == 2) THEN + + DO Imode = 1,CntrPar%AWC_NumModes + DebugVar%axisTilt_1P = AWC_TiltYaw(1) + AWC_TiltYaw = [0.0, 0.0] + AWC_TiltYaw(Imode) = PI/180*CntrPar%AWC_amp(Imode)*cos(LocalVar%Time*2*PI*CntrPar%AWC_freq(Imode) + CntrPar%AWC_clockangle(Imode)*PI/180) + IF (CntrPar%AWC_NumModes == 1) THEN + AWC_TiltYaw(2) = PI/180*CntrPar%AWC_amp(1)*cos(LocalVar%Time*2*PI*CntrPar%AWC_freq(1) + 2*CntrPar%AWC_clockangle(1)*PI/180) + ENDIF + CALL ColemanTransformInverse(AWC_TiltYaw(1), AWC_TiltYaw(2), LocalVar%Azimuth, CntrPar%AWC_harmonic(Imode), 0.0, AWC_angle) + + DO K = 1,LocalVar%NumBl ! Loop through all blades, apply AWC_angle + LocalVar%PitCom(K) = LocalVar%PitCom(K) + AWC_angle(K) + END DO + END DO + DebugVar%axisYaw_1P = AWC_TiltYaw(2) + DebugVar%axisTilt_2P = AWC_angle(1) + + ENDIF + + END SUBROUTINE ActiveWakeControl + +!------------------------------------------------------------------------------------------------------------------------------- + SUBROUTINE CableControl(avrSWAP, CntrPar, LocalVar, objInst, ErrVar) + ! Cable controller + ! CC_Mode = 0, No cable control, this code not executed + ! CC_Mode = 1, User-defined cable control + ! CC_Mode = 2, Position control, not yet implemented + ! + ! Note that LocalVar%CC_Actuated*(), and CC_Desired() has a fixed max size of 12, which can be increased in rosco_types.yaml + ! + USE ROSCO_Types, ONLY : ControlParameters, LocalVariables, ObjectInstances, ErrorVariables + + REAL(ReKi), INTENT(INOUT) :: avrSWAP(*) ! The swap array, used to pass data to, and receive data from, the DLL controller. + + TYPE(ControlParameters), INTENT(INOUT) :: CntrPar + TYPE(LocalVariables), INTENT(INOUT) :: LocalVar + TYPE(ObjectInstances), INTENT(INOUT) :: objInst + TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar + + ! Internal Variables + Integer(IntKi) :: I_GROUP + + + IF (CntrPar%CC_Mode == 1) THEN + ! User defined control + + IF (LocalVar%Time > 500) THEN + ! Shorten first group by 4 m + LocalVar%CC_DesiredL(1) = -14.51 + LocalVar%CC_DesiredL(2) = 1.58 + LocalVar%CC_DesiredL(3) = -10.332 + + + END IF + + ELSEIF (CntrPar%CC_Mode == 2) THEN + ! Open loop control + ! DO I_GROUP = 1, CntrPar%CC_Group_N + ! LocalVar%CC_DesiredL(I_GROUP) = interp1d(x,y,eq,ErrVar) + + DO I_GROUP = 1,CntrPar%CC_Group_N + IF (CntrPar%Ind_CableControl(I_GROUP) > 0) THEN + LocalVar%CC_DesiredL(I_GROUP) = interp1d(CntrPar%OL_Breakpoints, & + CntrPar%OL_CableControl(I_GROUP,:), & + LocalVar%Time,ErrVar) + ENDIF + ENDDO + + + + END IF + + ! Convert desired to actuated line length and delta length for all groups + + DO I_GROUP = 1, CntrPar%CC_Group_N + + ! Get Actuated deltaL + LocalVar%CC_ActuatedDL(I_GROUP) = SecLPFilter_Vel(LocalVar%CC_DesiredL(I_GROUP),LocalVar%DT,2*PI/CntrPar%CC_ActTau,1.0, & + LocalVar%FP,LocalVar%iStatus,LocalVar%restart,objInst%instSecLPFV) + + ! Integrate + LocalVar%CC_ActuatedL(I_GROUP) = PIController(LocalVar%CC_ActuatedDL(I_GROUP),0.0_DbKi,1.0_DbKi, & + -1000.0_DbKi,1000.0_DbKi,LocalVar%DT,LocalVar%CC_ActuatedDL(1), & + LocalVar%piP, LocalVar%restart, objInst%instPI) + + END DO + + ! Assign to avrSWAP + DO I_GROUP = 1, CntrPar%CC_Group_N + + avrSWAP(CntrPar%CC_GroupIndex(I_GROUP)) = LocalVar%CC_ActuatedL(I_GROUP) + avrSWAP(CntrPar%CC_GroupIndex(I_GROUP)+1) = LocalVar%CC_ActuatedDL(I_GROUP) + + END DO + + END SUBROUTINE CableControl + +!------------------------------------------------------------------------------------------------------------------------------- +SUBROUTINE StructuralControl(avrSWAP, CntrPar, LocalVar, objInst) + ! Cable controller + ! StC_Mode = 0, No cable control, this code not executed + ! StC_Mode = 1, User-defined cable control + ! StC_Mode = 2, Ballast-like control, not yet implemented + ! + ! Note that LocalVar%StC_Input() has a fixed max size of 12, which can be increased in rosco_types.yaml + ! + USE ROSCO_Types, ONLY : ControlParameters, LocalVariables, ObjectInstances + + REAL(ReKi), INTENT(INOUT) :: avrSWAP(*) ! The swap array, used to pass data to, and receive data from, the DLL controller. + + TYPE(ControlParameters), INTENT(INOUT) :: CntrPar + TYPE(LocalVariables), INTENT(INOUT) :: LocalVar + TYPE(ObjectInstances), INTENT(INOUT) :: objInst + + ! Internal Variables + Integer(IntKi) :: I_GROUP + + + IF (CntrPar%StC_Mode == 1) THEN + ! User defined control + + IF (LocalVar%Time > 500) THEN + ! Step change in input of -4500 N + LocalVar%StC_Input(1) = -1.234e+06 + LocalVar%StC_Input(2) = 2.053e+06 + LocalVar%StC_Input(3) = -7.795e+05 + + END IF + + + + END IF + + + ! Assign to avrSWAP + DO I_GROUP = 1, CntrPar%StC_Group_N + avrSWAP(CntrPar%StC_GroupIndex(I_GROUP)) = LocalVar%StC_Input(I_GROUP) + END DO + + END SUBROUTINE StructuralControl +!------------------------------------------------------------------------------------------------------------------------------- END MODULE Controllers diff --git a/ROSCO/src/DISCON.F90 b/ROSCO/src/DISCON.F90 index e27b06b8..3b0f7291 100644 --- a/ROSCO/src/DISCON.F90 +++ b/ROSCO/src/DISCON.F90 @@ -82,10 +82,10 @@ SUBROUTINE DISCON(avrSWAP, aviFAIL, accINFILE, avcOUTNAME, avcMSG) BIND (C, NAME CALL ReadAvrSWAP(avrSWAP, LocalVar, CntrPar) ! Set Control Parameters -CALL SetParameters(avrSWAP, accINFILE, SIZE(avcMSG), CntrPar, LocalVar, objInst, PerfData, zmqVar, ErrVar) +CALL SetParameters(avrSWAP, accINFILE, SIZE(avcMSG), CntrPar, LocalVar, objInst, PerfData, zmqVar, RootName, ErrVar) ! Call external controller, if desired -IF (CntrPar%Ext_Mode > 0) THEN +IF (CntrPar%Ext_Mode > 0 .AND. ErrVar%aviFAIL >= 0) THEN CALL ExtController(avrSWAP, CntrPar, LocalVar, ExtDLL, ErrVar) ! Data from external dll is in ExtDLL%avrSWAP, it's unused in the following code END IF @@ -116,6 +116,16 @@ SUBROUTINE DISCON(avrSWAP, aviFAIL, accINFILE, avcOUTNAME, avcMSG) BIND (C, NAME IF (CntrPar%Flp_Mode > 0) THEN CALL FlapControl(avrSWAP, CntrPar, LocalVar, objInst) END IF + + ! Cable control + IF (CntrPar%CC_Mode > 0) THEN + CALL CableControl(avrSWAP,CntrPar,LocalVar, objInst, ErrVar) + END IF + + ! Structural control + IF (CntrPar%StC_Mode > 0) THEN + CALL StructuralControl(avrSWAP,CntrPar,LocalVar, objInst) + END IF IF ( CntrPar%LoggingLevel > 0 ) THEN CALL Debug(LocalVar, CntrPar, DebugVar, ErrVar, avrSWAP, RootName, SIZE(avcOUTNAME)) diff --git a/ROSCO/src/Filters.f90 b/ROSCO/src/Filters.f90 index a108dfda..2a5ee24b 100644 --- a/ROSCO/src/Filters.f90 +++ b/ROSCO/src/Filters.f90 @@ -119,6 +119,58 @@ REAL(DbKi) FUNCTION SecLPFilter(InputSignal, DT, CornerFreq, Damp, FP, iStatus, inst = inst + 1 END FUNCTION SecLPFilter + +!------------------------------------------------------------------------------------------------------------------------------- + REAL(DbKi) FUNCTION SecLPFilter_Vel(InputSignal, DT, CornerFreq, Damp, FP, iStatus, reset, inst, InitialValue) + ! Discrete time Low-Pass Filter (output is velocity) of the form: + ! Continuous Time Form: H(s) = s CornerFreq^2/(s^2 + 2*CornerFreq*Damp*s + CornerFreq^2) + ! Discrete Time From: H(z) = (b2*z^2 + b1*z + b0) / (a2*z^2 + a1*z + a0) + USE ROSCO_Types, ONLY : FilterParameters + TYPE(FilterParameters), INTENT(INOUT) :: FP + REAL(DbKi), INTENT(IN) :: InputSignal + REAL(DbKi), INTENT(IN) :: DT ! time step [s] + REAL(DbKi), INTENT(IN) :: CornerFreq ! corner frequency [rad/s] + REAL(DbKi), INTENT(IN) :: Damp ! Dampening constant + INTEGER(IntKi), INTENT(IN) :: iStatus ! A status flag set by the simulation as follows: 0 if this is the first call, 1 for all subsequent time steps, -1 if this is the final call at the end of the simulation. + INTEGER(IntKi), INTENT(INOUT) :: inst ! Instance number. Every instance of this function needs to have an unique instance number to ensure instances don't influence each other. + LOGICAL(4), INTENT(IN) :: reset ! Reset the filter to the input signal + REAL(DbKi), OPTIONAL, INTENT(IN) :: InitialValue ! Value to set when reset + + REAL(DbKi) :: InitialValue_ ! Value to set when reset + + ! Defaults + InitialValue_ = InputSignal + IF (PRESENT(InitialValue)) InitialValue_ = InitialValue + + ! Initialization + IF ((iStatus == 0) .OR. reset ) THEN + FP%lpfV_OutputSignalLast1(inst) = InitialValue_ + FP%lpfV_OutputSignalLast2(inst) = InitialValue_ + FP%lpfV_InputSignalLast1(inst) = InitialValue_ + FP%lpfV_InputSignalLast2(inst) = InitialValue_ + + ! Coefficients + FP%lpfV_a2(inst) = DT**2.0*CornerFreq**2.0 + 4.0 + 4.0*Damp*CornerFreq*DT + FP%lpfV_a1(inst) = 2.0*DT**2.0*CornerFreq**2.0 - 8.0 + FP%lpfV_a0(inst) = DT**2.0*CornerFreq**2.0 + 4.0 - 4.0*Damp*CornerFreq*DT + FP%lpfV_b2(inst) = 2.0*DT*CornerFreq**2.0 + FP%lpfV_b1(inst) = 0.0 + FP%lpfV_b0(inst) = -2.0*DT*CornerFreq**2.0 + ENDIF + + ! Filter + SecLPFilter_Vel = 1.0/FP%lpfV_a2(inst) * (FP%lpfV_b2(inst)*InputSignal + FP%lpfV_b1(inst)*FP%lpfV_InputSignalLast1(inst) + FP%lpfV_b0(inst)*FP%lpfV_InputSignalLast2(inst) - FP%lpfV_a1(inst)*FP%lpfV_OutputSignalLast1(inst) - FP%lpfV_a0(inst)*FP%lpfV_OutputSignalLast2(inst)) + + ! Save signals for next time step + FP%lpfV_InputSignalLast2(inst) = FP%lpfV_InputSignalLast1(inst) + FP%lpfV_InputSignalLast1(inst) = InputSignal + FP%lpfV_OutputSignalLast2(inst) = FP%lpfV_OutputSignalLast1(inst) + FP%lpfV_OutputSignalLast1(inst) = SecLPFilter_Vel + + inst = inst + 1 + + END FUNCTION SecLPFilter_Vel + !------------------------------------------------------------------------------------------------------------------------------- REAL(DbKi) FUNCTION HPFilter( InputSignal, DT, CornerFreq, FP, iStatus, reset, inst, InitialValue) ! Discrete time High-Pass Filter @@ -316,7 +368,11 @@ SUBROUTINE PreFilterMeasuredSignals(CntrPar, LocalVar, DebugVar, objInst, ErrVar LocalVar%FA_AccF = NotchFilter(LocalVar%FA_AccF, LocalVar%DT, CntrPar%F_NotchCornerFreq, CntrPar%F_NotchBetaNumDen(1), CntrPar%F_NotchBetaNumDen(2), LocalVar%FP, LocalVar%iStatus, LocalVar%restart, objInst%instNotch) ! Fixed Damping ENDIF ENDIF - LocalVar%FA_AccHPF = HPFilter(LocalVar%FA_Acc, LocalVar%DT, CntrPar%FA_HPFCornerFreq, LocalVar%FP, LocalVar%iStatus, LocalVar%restart, objInst%instHPF) + + ! FA acc for ForeAft damping, condition matches whether it's used in Controllers.f90 + IF ((CntrPar%TD_Mode > 0) .OR. (CntrPar%Y_ControlMode == 2)) THEN + LocalVar%FA_AccHPF = HPFilter(LocalVar%FA_Acc, LocalVar%DT, CntrPar%FA_HPFCornerFreq, LocalVar%FP, LocalVar%iStatus, LocalVar%restart, objInst%instHPF) + ENDIF ! Filter Wind Speed Estimator Signal LocalVar%We_Vw_F = LPFilter(LocalVar%WE_Vw, LocalVar%DT,CntrPar%F_WECornerFreq, LocalVar%FP, LocalVar%iStatus, LocalVar%restart, objInst%instLPF) ! 30 second time constant diff --git a/ROSCO/src/Functions.f90 b/ROSCO/src/Functions.f90 index 3e0e225e..4f4a936e 100644 --- a/ROSCO/src/Functions.f90 +++ b/ROSCO/src/Functions.f90 @@ -600,69 +600,4 @@ END FUNCTION sigma -!------------------------------------------------------------------------------------------------------------------------------- - ! Copied from NWTC_IO.f90 -!> This function returns a character string encoded with today's date in the form dd-mmm-ccyy. -FUNCTION CurDate( ) - - ! Function declaration. - - CHARACTER(11) :: CurDate !< 'dd-mmm-yyyy' string with the current date - - - ! Local declarations. - - CHARACTER(8) :: CDate ! String to hold the returned value from the DATE_AND_TIME subroutine call. - - - - ! Call the system date function. - - CALL DATE_AND_TIME ( CDate ) - - - ! Parse out the day. - - CurDate(1:3) = CDate(7:8)//'-' - - - ! Parse out the month. - - SELECT CASE ( CDate(5:6) ) - CASE ( '01' ) - CurDate(4:6) = 'Jan' - CASE ( '02' ) - CurDate(4:6) = 'Feb' - CASE ( '03' ) - CurDate(4:6) = 'Mar' - CASE ( '04' ) - CurDate(4:6) = 'Apr' - CASE ( '05' ) - CurDate(4:6) = 'May' - CASE ( '06' ) - CurDate(4:6) = 'Jun' - CASE ( '07' ) - CurDate(4:6) = 'Jul' - CASE ( '08' ) - CurDate(4:6) = 'Aug' - CASE ( '09' ) - CurDate(4:6) = 'Sep' - CASE ( '10' ) - CurDate(4:6) = 'Oct' - CASE ( '11' ) - CurDate(4:6) = 'Nov' - CASE ( '12' ) - CurDate(4:6) = 'Dec' - END SELECT - - - ! Parse out the year. - - CurDate(7:11) = '-'//CDate(1:4) - - - RETURN - END FUNCTION CurDate - - END MODULE Functions diff --git a/ROSCO/src/ROSCO_Helpers.f90 b/ROSCO/src/ROSCO_Helpers.f90 index c030cc84..13f9d2d6 100644 --- a/ROSCO/src/ROSCO_Helpers.f90 +++ b/ROSCO/src/ROSCO_Helpers.f90 @@ -28,14 +28,22 @@ MODULE ROSCO_Helpers MODULE PROCEDURE ParseInput_Str ! Parses a character string from a string. MODULE PROCEDURE ParseInput_Dbl ! Parses a double-precision REAL from a string. MODULE PROCEDURE ParseInput_Int ! Parses an INTEGER from a string. + MODULE PROCEDURE ParseInput_Int_Opt ! Parses an INTEGER from a string. Optional input. + MODULE PROCEDURE ParseInput_Dbl_Opt ! Parses an double-precision REAL from a string. Optional input. + MODULE PROCEDURE ParseInput_Str_Opt ! Parses an character string from a string. Optional input. ! MODULE PROCEDURE ParseInput_Log ! Parses an LOGICAL from a string. END INTERFACE - INTERFACE ParseAry ! Parse an array of numbers from a string. + INTERFACE ParseAry ! Parse an array of numbers from a string. MODULE PROCEDURE ParseDbAry ! Parse an array of double-precision REAL values. MODULE PROCEDURE ParseInAry ! Parse an array of whole numbers. + MODULE PROCEDURE ParseInAry_Opt ! Parse an array of whole numbers. Optional inputs. + MODULE PROCEDURE ParseDbAry_Opt ! Parse an array of double-precision REAL values. Optional inputs. END INTERFACE + INTEGER(IntKi), PARAMETER :: MaxLineLength = 2048 ! characters + INTEGER(IntKi), PARAMETER :: MaxParamLength = 200 ! characters, file paths can be long + CONTAINS !======================================================================= @@ -43,13 +51,13 @@ MODULE ROSCO_Helpers subroutine ParseInput_Int(Un, CurLine, VarName, FileName, Variable, ErrVar, CheckName) USE ROSCO_Types, ONLY : ErrorVariables - CHARACTER(1024) :: Line + CHARACTER(MaxLineLength) :: Line INTEGER(IntKi), INTENT(IN ) :: Un ! Input file unit - CHARACTER(*), INTENT(IN ) :: VarName ! Input file unit - CHARACTER(*), INTENT(IN ) :: FileName ! Input file unit + CHARACTER(*), INTENT(IN ) :: VarName ! Input file unit + CHARACTER(*), INTENT(IN ) :: FileName ! Input file unit INTEGER(IntKi), INTENT(INOUT) :: CurLine ! Current line of input - TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar ! Current line of input - CHARACTER(20) :: Words (2) ! The two "words" parsed from the line + TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar ! Current line of input + CHARACTER(MaxParamLength) :: Words (2) ! The two "words" parsed from the line INTEGER(IntKi), INTENT(INOUT) :: Variable ! Variable INTEGER(IntKi) :: ErrStatLcl ! Error status local to this routine. @@ -102,6 +110,250 @@ subroutine ParseInput_Int(Un, CurLine, VarName, FileName, Variable, ErrVar, Chec END subroutine ParseInput_Int + !======================================================================= + ! Parse integer input: read line, check that variable name is in line, handle errors + subroutine ParseInput_Int_Opt(FileLines, VarName, Variable, FileName, ErrVar, AllowDefault, UnEc) + USE ROSCO_Types, ONLY : ErrorVariables + + CHARACTER(*), INTENT(IN ), DIMENSION(:) :: FileLines ! Input file unit + CHARACTER(*), INTENT(IN ) :: VarName ! Input file unit + CHARACTER(*), INTENT(IN ) :: FileName ! Input file unit + TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar ! Current line of input + INTEGER(IntKi), INTENT(INOUT) :: Variable ! Variable + Integer(IntKi), OPTIONAL, INTENT(IN ) :: UnEc ! Variable + + + ! Flag (usually control mode) specifying whether default is allowed, 0 - yes, nonzero - no + LOGICAL, OPTIONAL, INTENT(IN ) :: AllowDefault + + INTEGER(IntKi) :: CurLine ! Current line of input + CHARACTER(MaxParamLength) :: Words (2) ! The two "words" parsed from the line + CHARACTER(MaxParamLength) :: VarNameUC + CHARACTER(MaxLineLength) :: Line + INTEGER(IntKi) :: ErrStatLcl ! Error status local to this routine. + INTEGER(IntKi) :: I, VarLineIndex ! Line indexer + LOGICAL :: AllowDefault_, FoundLine + CHARACTER(*), PARAMETER :: RoutineName = 'ParseInput_Int_Opt' + + + ! Figure out if we allow default + AllowDefault_ = .TRUE. + if (PRESENT(AllowDefault)) AllowDefault_ = AllowDefault + + ! If we've already failed, don't read anything + IF (ErrVar%aviFAIL >= 0) THEN + + CALL FindLine(FileLines, VarName, FoundLine, Line, CurLine) + + ! Separate line again + CALL GetWords ( Line, Words, 2 ) + + ! PRINT *, "Line: ", Line + + ! Print warning with default + IF (.NOT. FoundLine) THEN + IF (.NOT. AllowDefault_) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':Missing or default values are not allowed for '//TRIM( VarName )//'. Please check control modes.' + RETURN + ENDIF + + Variable = 0 ! Default of integer inputs is 0 for now + PRINT *, "ROSCO Warning: Did not find "//TRIM( VarName )//" in input file. Using default value of ", Variable + ENDIF + + ! Debugging: show what's being read, turn into Echo later + IF (DEBUG_PARSING) THEN + print *, 'Read: '//TRIM(Words(1))//' and '//TRIM(Words(2)),' on line ', CurLine + END IF + + ! IF We haven't failed already + IF (ErrVar%aviFAIL >= 0 .AND. FoundLine) THEN + + ! Read the variable + READ (Words(1),*,IOSTAT=ErrStatLcl) Variable + IF ( ErrStatLcl /= 0 ) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = NewLine//' >> A fatal error occurred when parsing data from "' & + //TRIM( FileName )//'".'//NewLine// & + ' >> The variable "'//TRIM( Words(2) )//'" was not assigned valid INTEGER value on line #' & + //TRIM( Int2LStr( CurLine ) )//'.'//NewLine//& + ' >> The text being parsed was :'//NewLine//' "'//TRIM( Line )//'"' + ENDIF + + ENDIF + + IF ( PRESENT(UnEc)) THEN + IF ( UnEc > 0 ) WRITE (UnEc,*) CurLine, Tab, VarName, Tab, Variable + END IF + + END IF + + END subroutine ParseInput_Int_Opt + + !======================================================================= + ! Parse integer input: read line, check that variable name is in line, handle errors + subroutine ParseInput_Dbl_Opt(FileLines, VarName, Variable, FileName, ErrVar, AllowDefault, UnEc) + USE ROSCO_Types, ONLY : ErrorVariables + + CHARACTER(*), INTENT(IN ), DIMENSION(:) :: FileLines ! Input file unit + CHARACTER(*), INTENT(IN ) :: VarName ! Input file unit + CHARACTER(*), INTENT(IN ) :: FileName ! Input file unit + TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar ! Current line of input + REAL(DbKi), INTENT(INOUT) :: Variable ! Variable + Integer(IntKi), OPTIONAL, INTENT(IN ) :: UnEc ! Variable + + + ! Flag (usually control mode) specifying whether default is allowed, 0 - yes, nonzero - no + LOGICAL, OPTIONAL, INTENT(IN ) :: AllowDefault + + INTEGER(IntKi) :: CurLine ! Current line of input + CHARACTER(MaxParamLength) :: Words (2) ! The two "words" parsed from the line + CHARACTER(MaxParamLength) :: VarNameUC + CHARACTER(MaxLineLength) :: Line + INTEGER(IntKi) :: ErrStatLcl ! Error status local to this routine. + INTEGER(IntKi) :: I, VarLineIndex ! Line indexer + LOGICAL :: AllowDefault_, FoundLine + CHARACTER(*), PARAMETER :: RoutineName = 'ParseInput_Dbl_Opt' + + + ! Figure out if we allow default + AllowDefault_ = .TRUE. + if (PRESENT(AllowDefault)) AllowDefault_ = AllowDefault + + ! If we've already failed, don't read anything + IF (ErrVar%aviFAIL >= 0) THEN + + CALL FindLine(FileLines, VarName, FoundLine, Line, CurLine) + + + ! Separate line again + CALL GetWords ( Line, Words, 2 ) + + ! PRINT *, "Line: ", Line + + ! Print warning with default + IF (.NOT. FoundLine) THEN + IF (.NOT. AllowDefault_) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':Missing or default values are not allowed for '//TRIM( VarName )//'. Please check control modes.' + RETURN + ENDIF + + Variable = 0 ! Default of integer inputs is 0 for now + PRINT *, "ROSCO Warning: Did not find "//TRIM( VarName )//" in input file. Using default value of ", Variable + ENDIF + + ! Debugging: show what's being read, turn into Echo later + IF (DEBUG_PARSING) THEN + print *, 'Read: '//TRIM(Words(1))//' and '//TRIM(Words(2)),' on line ', CurLine + END IF + + ! IF We haven't failed already + IF (ErrVar%aviFAIL >= 0 .AND. FoundLine) THEN + + ! Read the variable + READ (Words(1),*,IOSTAT=ErrStatLcl) Variable + IF ( ErrStatLcl /= 0 ) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = NewLine//' >> A fatal error occurred when parsing data from "' & + //TRIM( FileName )//'".'//NewLine// & + ' >> The variable "'//TRIM( Words(2) )//'" was not assigned valid INTEGER value on line #' & + //TRIM( Int2LStr( CurLine ) )//'.'//NewLine//& + ' >> The text being parsed was :'//NewLine//' "'//TRIM( Line )//'"' + ENDIF + + ENDIF + + IF ( PRESENT(UnEc)) THEN + IF ( UnEc > 0 ) WRITE (UnEc,*) CurLine, Tab, VarName, Tab, Variable + END IF + + END IF + + END subroutine ParseInput_Dbl_Opt + + !======================================================================= + ! Parse integer input: read line, check that variable name is in line, handle errors + subroutine ParseInput_Str_Opt(FileLines, VarName, Variable, FileName, ErrVar, AllowDefault, UnEc) + USE ROSCO_Types, ONLY : ErrorVariables + + CHARACTER(*), INTENT(IN ), DIMENSION(:) :: FileLines ! Input file unit + CHARACTER(*), INTENT(IN ) :: VarName ! Input file unit + CHARACTER(*), INTENT(IN ) :: FileName ! Input file unit + TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar ! Current line of input + CHARACTER(*), INTENT(INOUT) :: Variable ! Variable + Integer(IntKi), OPTIONAL, INTENT(IN ) :: UnEc ! Variable + + ! Flag (usually control mode) specifying whether default is allowed, 0 - yes, nonzero - no + LOGICAL, OPTIONAL, INTENT(IN ) :: AllowDefault + + INTEGER(IntKi) :: CurLine ! Current line of input + CHARACTER(MaxParamLength) :: Words (2) ! The two "words" parsed from the line + CHARACTER(MaxParamLength) :: VarNameUC + CHARACTER(MaxLineLength) :: Line + INTEGER(IntKi) :: ErrStatLcl ! Error status local to this routine. + INTEGER(IntKi) :: I, VarLineIndex ! Line indexer + LOGICAL :: AllowDefault_, FoundLine + CHARACTER(*), PARAMETER :: RoutineName = 'ParseInput_Str_Opt' + + + ! Figure out if we allow default + AllowDefault_ = .TRUE. + if (PRESENT(AllowDefault)) AllowDefault_ = AllowDefault + + ! If we've already failed, don't read anything + IF (ErrVar%aviFAIL >= 0) THEN + + CALL FindLine(FileLines, VarName, FoundLine, Line, CurLine) + + + ! Separate line again + CALL GetWords ( Line, Words, 2 ) + + ! PRINT *, "Line: ", TRIM(Line) + + ! Print warning with default + IF (.NOT. FoundLine) THEN + IF (.NOT. AllowDefault_) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':Missing or default values are not allowed for '//TRIM( VarName )//'. Please check control modes.' + RETURN + ENDIF + + Variable = 'unused' ! Default of string input is unused for now + PRINT *, "ROSCO Warning: Did not find "//TRIM( VarName )//" in input file. Using default value of ", TRIM(Variable) + ENDIF + + ! Debugging: show what's being read, turn into Echo later + IF (DEBUG_PARSING) THEN + print *, 'Read: '//TRIM(Words(1))//' and '//TRIM(Words(2)),' on line ', CurLine + END IF + + IF (ErrVar%aviFAIL >= 0 .AND. FoundLine) THEN + + ! Read the variable + READ (Words(1),'(A)',IOSTAT=ErrStatLcl) Variable + IF ( ErrStatLcl /= 0 ) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = NewLine//' >> A fatal error occurred when parsing data from "' & + //TRIM( FileName )//'".'//NewLine// & + ' >> The variable "'//TRIM( Words(2) )//'" was not assigned valid INTEGER value on line #' & + //TRIM( Int2LStr( CurLine ) )//'.'//NewLine//& + ' >> The text being parsed was :'//NewLine//' "'//TRIM( Line )//'"' + ENDIF + + ENDIF + + IF ( PRESENT(UnEc)) THEN + IF ( UnEc > 0 ) WRITE (UnEc,*) CurLine, Tab, VarName, Tab, Variable + END IF + + END IF + + END subroutine ParseInput_Str_Opt + + !======================================================================= ! Parse double input, this is a copy of ParseInput_Int and a change in the variable definitions subroutine ParseInput_Dbl(Un, CurLine, VarName, FileName, Variable, ErrVar, CheckName) @@ -234,7 +486,7 @@ END subroutine ParseInput_Str !> This subroutine parses the specified line of text for AryLen REAL values. !! Generate an error message if the value is the wrong type. !! Use ParseAry (nwtc_io::parseary) instead of directly calling a specific routine in the generic interface. - SUBROUTINE ParseDbAry ( Un, LineNum, AryName, Ary, AryLen, FileName, ErrVar, CheckName ) + SUBROUTINE ParseDbAry ( Un, LineNum, ParamName, Ary, AryLen, FileName, ErrVar, CheckName ) USE ROSCO_Types, ONLY : ErrorVariables @@ -248,7 +500,7 @@ SUBROUTINE ParseDbAry ( Un, LineNum, AryName, Ary, AryLen, FileName, ErrVar, Che CHARACTER(*), INTENT(IN) :: FileName !< The name of the file being parsed. - CHARACTER(*), INTENT(IN ) :: AryName !< The array name we are trying to fill. + CHARACTER(*), INTENT(IN ) :: ParamName !< The array name we are trying to fill. TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar ! Current line of input @@ -280,10 +532,10 @@ SUBROUTINE ParseDbAry ( Un, LineNum, AryName, Ary, AryLen, FileName, ErrVar, Che IF ( ErrStatLcl /= 0 ) THEN IF ( ALLOCATED(Ary) ) THEN ErrVar%aviFAIL = -1 - ErrVar%ErrMsg = RoutineName//':Error allocating memory for the '//TRIM( AryName )//' array; array was already allocated.' + ErrVar%ErrMsg = RoutineName//':Error allocating memory for the '//TRIM( ParamName )//' array; array was already allocated.' ELSE ErrVar%aviFAIL = -1 - ErrVar%ErrMsg = RoutineName//':Error allocating memory for '//TRIM(Int2LStr( AryLen ))//' characters in the '//TRIM( AryName )//' array.' + ErrVar%ErrMsg = RoutineName//':Error allocating memory for '//TRIM(Int2LStr( AryLen ))//' characters in the '//TRIM( ParamName )//' array.' END IF END IF @@ -313,7 +565,7 @@ SUBROUTINE ParseDbAry ( Un, LineNum, AryName, Ary, AryLen, FileName, ErrVar, Che ! Check that Variable Name is at the end of Words, will also check length of array IF (CheckName_) THEN - CALL ChkParseData ( Words_Ary(AryLen:AryLen+1), AryName, FileName, LineNum, ErrVar ) + CALL ChkParseData ( Words_Ary(AryLen:AryLen+1), ParamName, FileName, LineNum, ErrVar ) END IF ! Read array @@ -322,17 +574,13 @@ SUBROUTINE ParseDbAry ( Un, LineNum, AryName, Ary, AryLen, FileName, ErrVar, Che ErrVar%aviFAIL = -1 ErrVar%ErrMsg = RoutineName//':A fatal error occurred when parsing data from "' & //TRIM( FileName )//'".'//NewLine// & - ' >> The "'//TRIM( AryName )//'" array was not assigned valid REAL values on line #' & + ' >> The "'//TRIM( ParamName )//'" array was not assigned valid REAL values on line #' & //TRIM( Int2LStr( LineNum ) )//'.'//NewLine//' >> The text being parsed was :'//NewLine & //' "'//TRIM( Line )//'"' RETURN CALL Cleanup() ENDIF - ! IF ( PRESENT(UnEc) ) THEN - ! IF ( UnEc > 0 ) WRITE (UnEc,'(A)') TRIM( FileInfo%Lines(LineNum) ) - ! END IF - LineNum = LineNum + 1 CALL Cleanup() ENDIF @@ -361,7 +609,7 @@ END SUBROUTINE ParseDbAry !> This subroutine parses the specified line of text for AryLen INTEGER values. !! Generate an error message if the value is the wrong type. !! Use ParseAry (nwtc_io::parseary) instead of directly calling a specific routine in the generic interface. - SUBROUTINE ParseInAry ( Un, LineNum, AryName, Ary, AryLen, FileName, ErrVar, CheckName ) + SUBROUTINE ParseInAry ( Un, LineNum, ParamName, Ary, AryLen, FileName, ErrVar, CheckName ) USE ROSCO_Types, ONLY : ErrorVariables @@ -375,7 +623,7 @@ SUBROUTINE ParseInAry ( Un, LineNum, AryName, Ary, AryLen, FileName, ErrVar, Che CHARACTER(*), INTENT(IN) :: FileName !< The name of the file being parsed. - CHARACTER(*), INTENT(IN ) :: AryName !< The array name we are trying to fill. + CHARACTER(*), INTENT(IN ) :: ParamName !< The array name we are trying to fill. TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar ! Current line of input @@ -407,10 +655,10 @@ SUBROUTINE ParseInAry ( Un, LineNum, AryName, Ary, AryLen, FileName, ErrVar, Che IF ( ErrStatLcl /= 0 ) THEN IF ( ALLOCATED(Ary) ) THEN ErrVar%aviFAIL = -1 - ErrVar%ErrMsg = RoutineName//':Error allocating memory for the '//TRIM( AryName )//' array; array was already allocated.' + ErrVar%ErrMsg = RoutineName//':Error allocating memory for the '//TRIM( ParamName )//' array; array was already allocated.' ELSE ErrVar%aviFAIL = -1 - ErrVar%ErrMsg = RoutineName//':Error allocating memory for '//TRIM(Int2LStr( AryLen ))//' characters in the '//TRIM( AryName )//' array.' + ErrVar%ErrMsg = RoutineName//':Error allocating memory for '//TRIM(Int2LStr( AryLen ))//' characters in the '//TRIM( ParamName )//' array.' END IF END IF @@ -440,7 +688,7 @@ SUBROUTINE ParseInAry ( Un, LineNum, AryName, Ary, AryLen, FileName, ErrVar, Che ! Check that Variable Name is at the end of Words, will also check length of array IF (CheckName_) THEN - CALL ChkParseData ( Words_Ary(AryLen:AryLen+1), AryName, FileName, LineNum, ErrVar ) + CALL ChkParseData ( Words_Ary(AryLen:AryLen+1), ParamName, FileName, LineNum, ErrVar ) END IF ! Read array @@ -449,7 +697,7 @@ SUBROUTINE ParseInAry ( Un, LineNum, AryName, Ary, AryLen, FileName, ErrVar, Che ErrVar%aviFAIL = -1 ErrVar%ErrMsg = RoutineName//':A fatal error occurred when parsing data from "' & //TRIM( FileName )//'".'//NewLine// & - ' >> The "'//TRIM( AryName )//'" array was not assigned valid REAL values on line #' & + ' >> The "'//TRIM( ParamName )//'" array was not assigned valid REAL values on line #' & //TRIM( Int2LStr( LineNum ) )//'.'//NewLine//' >> The text being parsed was :'//NewLine & //' "'//TRIM( Line )//'"' RETURN @@ -485,6 +733,289 @@ END SUBROUTINE Cleanup END SUBROUTINE ParseInAry !======================================================================= + +!======================================================================= +!> This subroutine parses the specified line of text for AryLen INTEGER values. +!! Generate an error message if the value is the wrong type. +!! Use ParseAry (nwtc_io::parseary) instead of directly calling a specific routine in the generic interface. + SUBROUTINE ParseInAry_Opt( FileLines, ParamName, Ary, AryLen, FileName, ErrVar, AllowDefault, UnEc ) + + USE ROSCO_Types, ONLY : ErrorVariables + + ! Arguments declarations. + CHARACTER(*), INTENT(IN ), DIMENSION(:) :: FileLines ! Input file unit + INTEGER, INTENT(IN ) :: AryLen !< The length of the array to parse. + INTEGER(IntKi), ALLOCATABLE, INTENT(INOUT) :: Ary(:) !< The array to receive the input values. + CHARACTER(*), INTENT(IN) :: FileName !< The name of the file being parsed. + CHARACTER(*), INTENT(IN) :: ParamName !< The array name we are trying to fill. + TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar ! Current line of input + Integer(IntKi), OPTIONAL, INTENT(IN ) :: UnEc ! Variable + LOGICAL, OPTIONAL, INTENT(IN ) :: AllowDefault + + ! Local declarations. + INTEGER(IntKi) :: FinalAryLen !< Final array length, non-input + INTEGER(IntKi) :: LineNum !< The number of the line to parse. + CHARACTER(MaxLineLength) :: Line + INTEGER(IntKi) :: ErrStatLcl ! Error status local to this routine. + INTEGER(IntKi) :: i + + CHARACTER(MaxParamLength), ALLOCATABLE :: Words_Ary (:) ! The array "words" parsed from the line. + CHARACTER(MaxLineLength) :: Debug_String + CHARACTER(*), PARAMETER :: RoutineName = 'ParseInAry_Opt' + CHARACTER(MaxParamLength) :: ParamNameUC + LOGICAL :: AllowDefault_, FoundLine + + ! Figure out if we allow default + AllowDefault_ = .TRUE. + if (PRESENT(AllowDefault)) AllowDefault_ = AllowDefault + + ! If we've already failed, don't read anything + IF (ErrVar%aviFAIL >= 0) THEN + + CALL FindLine(FileLines, ParamName, FoundLine, Line, LineNum, AryLen) + + ! PRINT *, "Line: ", TRIM(Line) + + ! Minimum array length + IF (AryLen < 1) THEN + FinalAryLen = 1 + ELSE + FinalAryLen = AryLen + ENDIF + + ! Allocate array and handle errors + ALLOCATE ( Ary(FinalAryLen) , STAT=ErrStatLcl ) + IF ( ErrStatLcl /= 0 ) THEN + IF ( ALLOCATED(Ary) ) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':Error allocating memory for the '//TRIM( ParamName )//' array; array was already allocated.' + ELSE + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':Error allocating memory for '//TRIM(Int2LStr( AryLen ))//' characters in the '//TRIM( ParamName )//' array.' + END IF + END IF + + ! Print warning with default + IF (.NOT. FoundLine) THEN + IF (.NOT. AllowDefault_) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':Missing or default values are not allowed for '//TRIM( ParamName )//'. Please check control modes and array length.' + RETURN + ENDIF + + Ary = 0 ! Default of allocatable arrays is 0 for now + PRINT *, "ROSCO Warning: Did not find correct size "//TRIM( ParamName )//" in input file. Using default value of [", Ary, "]" + ENDIF + + IF (FoundLine) THEN + + ! Allocate words array + ALLOCATE ( Words_Ary( AryLen + 1 ) , STAT=ErrStatLcl ) + IF ( ErrStatLcl /= 0 ) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':Fatal error allocating memory for the Words array.' + CALL Cleanup() + RETURN + ENDIF + + ! Separate line string into AryLen + 1 words, should include variable name + CALL GetWords ( Line, Words_Ary, AryLen + 1 ) + + ! Debug Output + IF (DEBUG_PARSING) THEN + Debug_String = '' + DO i = 1,AryLen+1 + Debug_String = TRIM(Debug_String)//TRIM(Words_Ary(i)) + IF (i < AryLen + 1) THEN + Debug_String = TRIM(Debug_String)//',' + END IF + END DO + print *, 'Read: '//TRIM(Debug_String)//' on line ', LineNum + END IF + + ! Read array + READ (Line,*,IOSTAT=ErrStatLcl) Ary + IF ( ErrStatLcl /= 0 ) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':A fatal error occurred when parsing data from "' & + //TRIM( FileName )//'".'//NewLine// & + ' >> The "'//TRIM( ParamName )//'" array was not assigned valid REAL values on line #' & + //TRIM( Int2LStr( LineNum ) )//'.'//NewLine//' >> The text being parsed was :'//NewLine & + //' "'//TRIM( Line )//'"' + RETURN + CALL Cleanup() + ENDIF + + ENDIF + + IF ( PRESENT(UnEc)) THEN + IF ( UnEc > 0 ) WRITE (UnEc,*) LineNum, Tab, ParamName, Tab, Ary + END IF + + CALL Cleanup() + ENDIF + + RETURN + + !======================================================================= + CONTAINS + !======================================================================= + SUBROUTINE Cleanup ( ) + + ! This subroutine cleans up the parent routine before exiting. + + ! Deallocate the Words array if it had been allocated. + + IF ( ALLOCATED( Words_Ary ) ) DEALLOCATE( Words_Ary ) + + + RETURN + + END SUBROUTINE Cleanup + +END SUBROUTINE ParseInAry_Opt + +!======================================================================= +!> This subroutine parses the specified line of text for AryLen INTEGER values. +!! Generate an error message if the value is the wrong type. +!! Use ParseAry (nwtc_io::parseary) instead of directly calling a specific routine in the generic interface. + SUBROUTINE ParseDbAry_Opt ( FileLines, ParamName, Ary, AryLen, FileName, ErrVar, AllowDefault, UnEc ) + + USE ROSCO_Types, ONLY : ErrorVariables + + ! Arguments declarations. + CHARACTER(*), INTENT(IN ), DIMENSION(:) :: FileLines ! Input file unit + INTEGER, INTENT(IN) :: AryLen !< The length of the array to parse. + REAL(DbKi), ALLOCATABLE, INTENT(INOUT) :: Ary(:) !< The array to receive the input values. + CHARACTER(*), INTENT(IN) :: FileName !< The name of the file being parsed. + CHARACTER(*), INTENT(IN) :: ParamName !< The array name we are trying to fill. + TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar ! Current line of input + LOGICAL, OPTIONAL, INTENT(IN ) :: AllowDefault + Integer(IntKi), OPTIONAL, INTENT(IN ) :: UnEc ! Variable + + ! Local declarations. + INTEGER(IntKi) :: LineNum !< The number of the line to parse. + INTEGER(IntKi) :: FinalAryLen !< Final array length, non-input + CHARACTER(MaxLineLength) :: Line + INTEGER(IntKi) :: ErrStatLcl ! Error status local to this routine. + INTEGER(IntKi) :: i + + CHARACTER(MaxParamLength), ALLOCATABLE :: Words_Ary (:) ! The array "words" parsed from the line. + CHARACTER(MaxLineLength) :: Debug_String + CHARACTER(*), PARAMETER :: RoutineName = 'ParseDbAry_Opt' + CHARACTER(MaxParamLength) :: ParamNameUC, FileLineUC + LOGICAL :: AllowDefault_, FoundLine + + ! Figure out if we allow default + AllowDefault_ = .TRUE. + if (PRESENT(AllowDefault)) AllowDefault_ = AllowDefault + + ! If we've already failed, don't read anything + IF (ErrVar%aviFAIL >= 0) THEN + + CALL FindLine(FileLines, ParamName, FoundLine, Line, LineNum, AryLen) + + ! Minimum array length + IF (AryLen < 1) THEN + FinalAryLen = 1 + ELSE + FinalAryLen = AryLen + ENDIF + + ! Allocate array and handle errors + ALLOCATE ( Ary(FinalAryLen) , STAT=ErrStatLcl ) + IF ( ErrStatLcl /= 0 ) THEN + IF ( ALLOCATED(Ary) ) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':Error allocating memory for the '//TRIM( ParamName )//' array; array was already allocated.' + ELSE + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':Error allocating memory for '//TRIM(Int2LStr( AryLen ))//' characters in the '//TRIM( ParamName )//' array.' + END IF + END IF + + ! Print warning with default + IF (.NOT. FoundLine) THEN + IF (.NOT. AllowDefault_) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':Missing or default values are not allowed for '//TRIM( ParamName )//'. Please check control modes and array length.' + RETURN + ENDIF + + Ary = 0 ! Default of allocatable arrays is 0 for now + PRINT *, "ROSCO Warning: Did not find correct size"//TRIM( ParamName )//" in input file. Using default value of [", Ary, "]" + ENDIF + + IF (FoundLine) THEN + + ! Allocate words array + ALLOCATE ( Words_Ary( AryLen + 1 ) , STAT=ErrStatLcl ) + IF ( ErrStatLcl /= 0 ) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':Fatal error allocating memory for the Words array.' + CALL Cleanup() + RETURN + ENDIF + + ! Separate line string into AryLen + 1 words, should include variable name + CALL GetWords ( Line, Words_Ary, AryLen + 1 ) + + ! Debug Output + IF (DEBUG_PARSING) THEN + Debug_String = '' + DO i = 1,AryLen+1 + Debug_String = TRIM(Debug_String)//TRIM(Words_Ary(i)) + IF (i < AryLen + 1) THEN + Debug_String = TRIM(Debug_String)//',' + END IF + END DO + print *, 'Read: '//TRIM(Debug_String)//' on line ', LineNum + END IF + + ! Read array + READ (Line,*,IOSTAT=ErrStatLcl) Ary + IF ( ErrStatLcl /= 0 ) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = RoutineName//':A fatal error occurred when parsing data from "' & + //TRIM( FileName )//'".'//NewLine// & + ' >> The "'//TRIM( ParamName )//'" array was not assigned valid REAL values on line #' & + //TRIM( Int2LStr( LineNum ) )//'.'//NewLine//' >> The text being parsed was :'//NewLine & + //' "'//TRIM( Line )//'"' + RETURN + CALL Cleanup() + ENDIF + + ENDIF + + IF ( PRESENT(UnEc)) THEN + IF ( UnEc > 0 ) WRITE (UnEc,*) LineNum, Tab, ParamName, Tab, Ary + END IF + + CALL Cleanup() + ENDIF + + RETURN + + !======================================================================= + CONTAINS + !======================================================================= + SUBROUTINE Cleanup ( ) + + ! This subroutine cleans up the parent routine before exiting. + + ! Deallocate the Words array if it had been allocated. + + IF ( ALLOCATED( Words_Ary ) ) DEALLOCATE( Words_Ary ) + + + RETURN + + END SUBROUTINE Cleanup + +END SUBROUTINE ParseDbAry_Opt + +!======================================================================= + !> This subroutine checks the data to be parsed to make sure it finds !! the expected variable name and an associated value. SUBROUTINE ChkParseData ( Words, ExpVarName, FileName, FileLineNum, ErrVar ) @@ -546,6 +1077,57 @@ SUBROUTINE ChkParseData ( Words, ExpVarName, FileName, FileLineNum, ErrVar ) END SUBROUTINE ChkParseData +SUBROUTINE FindLine(FileLines, ParamName, FoundLine, Line, LineNum, AryLen) + CHARACTER(*), INTENT(IN ), DIMENSION(:) :: FileLines ! Input file unit + CHARACTER(*), INTENT(IN) :: ParamName !< The array name we are trying to fill. + INTEGER(IntKi), INTENT(OUT) :: LineNum !< The number of the line to parse. + LOGICAL, INTENT(OUT) :: FoundLine + INTEGER(IntKi), OPTIONAL, INTENT(IN ) :: AryLen + CHARACTER(MaxLineLength), INTENT(OUT) :: Line + + + CHARACTER(MaxParamLength), ALLOCATABLE :: Words(:) ! The two "words" parsed from the line + + CHARACTER(MaxParamLength) :: ParamNameUC, FileLineUC + INTEGER(IntKi) :: I, WordInd + + IF (.NOT. PRESENT(AryLen)) THEN + WordInd = 2 + ELSE + WordInd = AryLen + 1 + ENDIF + + ALLOCATE(Words(WordInd)) ! TODO: check error + + ! Make name uppercase + ParamNameUC = ParamName + CALL Conv2UC(ParamNameUC) + + ! Search for line in FileLines + FoundLine = .FALSE. + LineNum = 0 + DO I = 1,SIZE(FileLines) + + ! Separate line string into 2 words + CALL GetWords ( FileLines(I), Words, WordInd ) + + ! Make FileLines uppercase + FileLineUC = Words(WordInd) + CALL Conv2UC(FileLineUC) + + ! WRITE(500,*) Words + + ! PRINT *, TRIM(ParamNameUC), '==', TRIM(FileLineUC), '=', TRIM(FileLineUC)==TRIM(ParamNameUC) + + IF (FileLineUC == ParamNameUC) THEN + Line = FileLines(I) + LineNum = I + FoundLine = .TRUE. + END IF + END DO + +END subroutine FindLine + !======================================================================= subroutine ReadEmptyLine(Un,CurLine) INTEGER(IntKi), INTENT(IN ) :: Un ! Input file unit @@ -1037,5 +1619,101 @@ FUNCTION Int2LStr ( Num ) RETURN END FUNCTION Int2LStr +!======================================================================= + + subroutine AddToList(list, element) + ! Credit to: https://stackoverflow.com/questions/28048508/how-to-add-new-element-to-dynamical-array-in-fortran-90 + ! This is set up for integers, will need to make interface for other types + IMPLICIT NONE + + integer :: i, isize + Integer(IntKi), intent(in) :: element + Integer(IntKi), dimension(:), allocatable, intent(inout) :: list + Integer(IntKi), dimension(:), allocatable :: clist + + + if(allocated(list)) then + isize = size(list) + allocate(clist(isize+1)) + do i=1,isize + clist(i) = list(i) + end do + clist(isize+1) = element + + deallocate(list) + call move_alloc(clist, list) + + else + allocate(list(1)) + list(1) = element + end if + + + end subroutine AddToList + + !------------------------------------------------------------------------------------------------------------------------------- + ! Copied from NWTC_IO.f90 + !> This function returns a character string encoded with today's date in the form dd-mmm-ccyy. + FUNCTION CurDate( ) + + ! Function declaration. + + CHARACTER(11) :: CurDate !< 'dd-mmm-yyyy' string with the current date + + + ! Local declarations. + + CHARACTER(8) :: CDate ! String to hold the returned value from the DATE_AND_TIME subroutine call. + + + + ! Call the system date function. + + CALL DATE_AND_TIME ( CDate ) + + + ! Parse out the day. + + CurDate(1:3) = CDate(7:8)//'-' + + + ! Parse out the month. + + SELECT CASE ( CDate(5:6) ) + CASE ( '01' ) + CurDate(4:6) = 'Jan' + CASE ( '02' ) + CurDate(4:6) = 'Feb' + CASE ( '03' ) + CurDate(4:6) = 'Mar' + CASE ( '04' ) + CurDate(4:6) = 'Apr' + CASE ( '05' ) + CurDate(4:6) = 'May' + CASE ( '06' ) + CurDate(4:6) = 'Jun' + CASE ( '07' ) + CurDate(4:6) = 'Jul' + CASE ( '08' ) + CurDate(4:6) = 'Aug' + CASE ( '09' ) + CurDate(4:6) = 'Sep' + CASE ( '10' ) + CurDate(4:6) = 'Oct' + CASE ( '11' ) + CurDate(4:6) = 'Nov' + CASE ( '12' ) + CurDate(4:6) = 'Dec' + END SELECT + + + ! Parse out the year. + + CurDate(7:11) = '-'//CDate(1:4) + + + RETURN + END FUNCTION CurDate + END MODULE ROSCO_Helpers \ No newline at end of file diff --git a/ROSCO/src/ROSCO_IO.f90 b/ROSCO/src/ROSCO_IO.f90 index d465d512..fc05e7b1 100644 --- a/ROSCO/src/ROSCO_IO.f90 +++ b/ROSCO/src/ROSCO_IO.f90 @@ -1,5 +1,5 @@ ! ROSCO IO -! This file is automatically generated by write_registry.py using ROSCO v2.7.0 +! This file is automatically generated by write_registry.py using ROSCO v2.8.0 ! For any modification to the registry, please edit the rosco_types.yaml accordingly MODULE ROSCO_IO @@ -90,6 +90,12 @@ SUBROUTINE WriteRestartFile(LocalVar, CntrPar, ErrVar, objInst, RootName, size_a WRITE( Un, IOSTAT=ErrStat) LocalVar%IPC_AxisYaw_1P WRITE( Un, IOSTAT=ErrStat) LocalVar%IPC_AxisTilt_2P WRITE( Un, IOSTAT=ErrStat) LocalVar%IPC_AxisYaw_2P + WRITE( Un, IOSTAT=ErrStat) LocalVar%axisTilt_1P + WRITE( Un, IOSTAT=ErrStat) LocalVar%axisYaw_1P + WRITE( Un, IOSTAT=ErrStat) LocalVar%axisYawF_1P + WRITE( Un, IOSTAT=ErrStat) LocalVar%axisTilt_2P + WRITE( Un, IOSTAT=ErrStat) LocalVar%axisYaw_2P + WRITE( Un, IOSTAT=ErrStat) LocalVar%axisYawF_2P WRITE( Un, IOSTAT=ErrStat) LocalVar%IPC_KI(1) WRITE( Un, IOSTAT=ErrStat) LocalVar%IPC_KI(2) WRITE( Un, IOSTAT=ErrStat) LocalVar%IPC_KP(1) @@ -122,6 +128,72 @@ SUBROUTINE WriteRestartFile(LocalVar, CntrPar, ErrVar, objInst, RootName, size_a WRITE( Un, IOSTAT=ErrStat) LocalVar%Fl_PitCom WRITE( Un, IOSTAT=ErrStat) LocalVar%NACIMU_FA_AccF WRITE( Un, IOSTAT=ErrStat) LocalVar%FA_AccF + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmTDX + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmTDY + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmTDZ + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmRDX + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmRDY + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmRDZ + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmTVX + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmTVY + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmTVZ + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmRVX + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmRVY + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmRVZ + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmTAX + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmTAY + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmTAZ + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmRAX + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmRAY + WRITE( Un, IOSTAT=ErrStat) LocalVar%PtfmRAZ + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(1) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(2) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(3) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(4) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(5) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(6) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(7) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(8) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(9) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(10) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(11) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(12) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(1) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(2) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(3) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(4) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(5) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(6) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(7) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(8) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(9) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(10) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(11) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(12) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(1) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(2) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(3) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(4) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(5) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(6) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(7) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(8) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(9) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(10) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(11) + WRITE( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(12) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(1) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(2) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(3) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(4) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(5) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(6) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(7) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(8) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(9) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(10) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(11) + WRITE( Un, IOSTAT=ErrStat) LocalVar%StC_Input(12) WRITE( Un, IOSTAT=ErrStat) LocalVar%Flp_Angle(1) WRITE( Un, IOSTAT=ErrStat) LocalVar%Flp_Angle(2) WRITE( Un, IOSTAT=ErrStat) LocalVar%Flp_Angle(3) @@ -131,6 +203,9 @@ SUBROUTINE WriteRestartFile(LocalVar, CntrPar, ErrVar, objInst, RootName, size_a WRITE( Un, IOSTAT=ErrStat) LocalVar%ACC_INFILE_SIZE WRITE( Un, IOSTAT=ErrStat) LocalVar%ACC_INFILE WRITE( Un, IOSTAT=ErrStat) LocalVar%restart + WRITE( Un, IOSTAT=ErrStat) LocalVar%AWC_complexangle(1) + WRITE( Un, IOSTAT=ErrStat) LocalVar%AWC_complexangle(2) + WRITE( Un, IOSTAT=ErrStat) LocalVar%AWC_complexangle(3) WRITE( Un, IOSTAT=ErrStat) LocalVar%WE%om_r WRITE( Un, IOSTAT=ErrStat) LocalVar%WE%v_t WRITE( Un, IOSTAT=ErrStat) LocalVar%WE%v_m @@ -154,6 +229,16 @@ SUBROUTINE WriteRestartFile(LocalVar, CntrPar, ErrVar, objInst, RootName, size_a WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpf2_OutputSignalLast2 WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpf2_InputSignalLast1 WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpf2_OutputSignalLast1 + WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_a2 + WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_a1 + WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_a0 + WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_b2 + WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_b1 + WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_b0 + WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_InputSignalLast2 + WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_OutputSignalLast2 + WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_InputSignalLast1 + WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_OutputSignalLast1 WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%hpf_InputSignalLast WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%hpf_OutputSignalLast WRITE( Un, IOSTAT=ErrStat) LocalVar%FP%nfs_OutputSignalLast1 @@ -181,6 +266,7 @@ SUBROUTINE WriteRestartFile(LocalVar, CntrPar, ErrVar, objInst, RootName, size_a WRITE( Un, IOSTAT=ErrStat) LocalVar%rlP%LastSignal WRITE( Un, IOSTAT=ErrStat) objInst%instLPF WRITE( Un, IOSTAT=ErrStat) objInst%instSecLPF + WRITE( Un, IOSTAT=ErrStat) objInst%instSecLPFV WRITE( Un, IOSTAT=ErrStat) objInst%instHPF WRITE( Un, IOSTAT=ErrStat) objInst%instNotchSlopes WRITE( Un, IOSTAT=ErrStat) objInst%instNotch @@ -273,6 +359,12 @@ SUBROUTINE ReadRestartFile(avrSWAP, LocalVar, CntrPar, objInst, PerfData, RootNa READ( Un, IOSTAT=ErrStat) LocalVar%IPC_AxisYaw_1P READ( Un, IOSTAT=ErrStat) LocalVar%IPC_AxisTilt_2P READ( Un, IOSTAT=ErrStat) LocalVar%IPC_AxisYaw_2P + READ( Un, IOSTAT=ErrStat) LocalVar%axisTilt_1P + READ( Un, IOSTAT=ErrStat) LocalVar%axisYaw_1P + READ( Un, IOSTAT=ErrStat) LocalVar%axisYawF_1P + READ( Un, IOSTAT=ErrStat) LocalVar%axisTilt_2P + READ( Un, IOSTAT=ErrStat) LocalVar%axisYaw_2P + READ( Un, IOSTAT=ErrStat) LocalVar%axisYawF_2P READ( Un, IOSTAT=ErrStat) LocalVar%IPC_KI(1) READ( Un, IOSTAT=ErrStat) LocalVar%IPC_KI(2) READ( Un, IOSTAT=ErrStat) LocalVar%IPC_KP(1) @@ -305,6 +397,72 @@ SUBROUTINE ReadRestartFile(avrSWAP, LocalVar, CntrPar, objInst, PerfData, RootNa READ( Un, IOSTAT=ErrStat) LocalVar%Fl_PitCom READ( Un, IOSTAT=ErrStat) LocalVar%NACIMU_FA_AccF READ( Un, IOSTAT=ErrStat) LocalVar%FA_AccF + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmTDX + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmTDY + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmTDZ + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmRDX + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmRDY + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmRDZ + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmTVX + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmTVY + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmTVZ + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmRVX + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmRVY + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmRVZ + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmTAX + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmTAY + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmTAZ + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmRAX + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmRAY + READ( Un, IOSTAT=ErrStat) LocalVar%PtfmRAZ + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(1) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(2) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(3) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(4) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(5) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(6) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(7) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(8) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(9) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(10) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(11) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_DesiredL(12) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(1) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(2) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(3) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(4) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(5) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(6) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(7) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(8) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(9) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(10) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(11) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedL(12) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(1) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(2) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(3) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(4) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(5) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(6) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(7) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(8) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(9) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(10) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(11) + READ( Un, IOSTAT=ErrStat) LocalVar%CC_ActuatedDL(12) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(1) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(2) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(3) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(4) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(5) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(6) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(7) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(8) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(9) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(10) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(11) + READ( Un, IOSTAT=ErrStat) LocalVar%StC_Input(12) READ( Un, IOSTAT=ErrStat) LocalVar%Flp_Angle(1) READ( Un, IOSTAT=ErrStat) LocalVar%Flp_Angle(2) READ( Un, IOSTAT=ErrStat) LocalVar%Flp_Angle(3) @@ -315,6 +473,9 @@ SUBROUTINE ReadRestartFile(avrSWAP, LocalVar, CntrPar, objInst, PerfData, RootNa ALLOCATE(LocalVar%ACC_INFILE(LocalVar%ACC_INFILE_SIZE)) READ( Un, IOSTAT=ErrStat) LocalVar%ACC_INFILE READ( Un, IOSTAT=ErrStat) LocalVar%restart + READ( Un, IOSTAT=ErrStat) LocalVar%AWC_complexangle(1) + READ( Un, IOSTAT=ErrStat) LocalVar%AWC_complexangle(2) + READ( Un, IOSTAT=ErrStat) LocalVar%AWC_complexangle(3) READ( Un, IOSTAT=ErrStat) LocalVar%WE%om_r READ( Un, IOSTAT=ErrStat) LocalVar%WE%v_t READ( Un, IOSTAT=ErrStat) LocalVar%WE%v_m @@ -338,6 +499,16 @@ SUBROUTINE ReadRestartFile(avrSWAP, LocalVar, CntrPar, objInst, PerfData, RootNa READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpf2_OutputSignalLast2 READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpf2_InputSignalLast1 READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpf2_OutputSignalLast1 + READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_a2 + READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_a1 + READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_a0 + READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_b2 + READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_b1 + READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_b0 + READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_InputSignalLast2 + READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_OutputSignalLast2 + READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_InputSignalLast1 + READ( Un, IOSTAT=ErrStat) LocalVar%FP%lpfV_OutputSignalLast1 READ( Un, IOSTAT=ErrStat) LocalVar%FP%hpf_InputSignalLast READ( Un, IOSTAT=ErrStat) LocalVar%FP%hpf_OutputSignalLast READ( Un, IOSTAT=ErrStat) LocalVar%FP%nfs_OutputSignalLast1 @@ -365,6 +536,7 @@ SUBROUTINE ReadRestartFile(avrSWAP, LocalVar, CntrPar, objInst, PerfData, RootNa READ( Un, IOSTAT=ErrStat) LocalVar%rlP%LastSignal READ( Un, IOSTAT=ErrStat) objInst%instLPF READ( Un, IOSTAT=ErrStat) objInst%instSecLPF + READ( Un, IOSTAT=ErrStat) objInst%instSecLPFV READ( Un, IOSTAT=ErrStat) objInst%instHPF READ( Un, IOSTAT=ErrStat) objInst%instNotchSlopes READ( Un, IOSTAT=ErrStat) objInst%instNotch @@ -373,7 +545,7 @@ SUBROUTINE ReadRestartFile(avrSWAP, LocalVar, CntrPar, objInst, PerfData, RootNa Close ( Un ) ENDIF ! Read Parameter files - CALL ReadControlParameterFileSub(CntrPar, zmqVar, LocalVar%ACC_INFILE, LocalVar%ACC_INFILE_SIZE, ErrVar) + CALL ReadControlParameterFileSub(CntrPar, zmqVar, LocalVar%ACC_INFILE, LocalVar%ACC_INFILE_SIZE, RootName, ErrVar) IF (CntrPar%WE_Mode > 0) THEN CALL READCpFile(CntrPar, PerfData, ErrVar) ENDIF @@ -391,7 +563,7 @@ SUBROUTINE Debug(LocalVar, CntrPar, DebugVar, ErrVar, avrSWAP, RootName, size_av INTEGER(IntKi), INTENT(IN) :: size_avcOUTNAME INTEGER(IntKi) :: I , nDebugOuts, nLocalVars ! Generic index. CHARACTER(1), PARAMETER :: Tab = CHAR(9) ! The tab character. - CHARACTER(29), PARAMETER :: FmtDat = "(F20.5,TR5,99(ES20.5E2,TR5:))" ! The format of the debugging data + CHARACTER(100) :: FmtDat ! The format of the debugging data INTEGER(IntKi), SAVE :: UnDb ! I/O unit for the debugging information INTEGER(IntKi), SAVE :: UnDb2 ! I/O unit for the debugging information, avrSWAP INTEGER(IntKi), SAVE :: UnDb3 ! I/O unit for the debugging information, avrSWAP @@ -399,6 +571,13 @@ SUBROUTINE Debug(LocalVar, CntrPar, DebugVar, ErrVar, avrSWAP, RootName, size_av CHARACTER(size_avcOUTNAME-1), INTENT(IN) :: RootName ! a Fortran version of the input C string (not considered an array here) [subtract 1 for the C null-character] CHARACTER(200) :: Version ! git version of ROSCO CHARACTER(15), ALLOCATABLE :: DebugOutStrings(:), DebugOutUnits(:) + + ! Avr output writing + INTEGER(IntKi), SAVE, DIMENSION(:), ALLOCATABLE :: avrIndices + INTEGER(IntKi) :: avrBaseLength = 85 + INTEGER(IntKi) :: Ind + CHARACTER(100) :: avrFmt + REAL(DbKi), ALLOCATABLE :: DebugOutData(:) CHARACTER(15), ALLOCATABLE :: LocalVarOutStrings(:) @@ -442,7 +621,7 @@ SUBROUTINE Debug(LocalVar, CntrPar, DebugVar, ErrVar, avrSWAP, RootName, size_av '[rad/s]', '[rad/s]', '[m/s]', '[rad]', '[rad]', & '[N/A]', '[N/A]', '[N/A]', '[N/A]', '[rad/s]', & '[deg]', '[deg]', '[deg]', '[N/A]'] - nLocalVars = 71 + nLocalVars = 100 Allocate(LocalVarOutData(nLocalVars)) Allocate(LocalVarOutStrings(nLocalVars)) LocalVarOutData(1) = LocalVar%iStatus @@ -488,34 +667,63 @@ SUBROUTINE Debug(LocalVar, CntrPar, DebugVar, ErrVar, avrSWAP, RootName, size_av LocalVarOutData(41) = LocalVar%IPC_AxisYaw_1P LocalVarOutData(42) = LocalVar%IPC_AxisTilt_2P LocalVarOutData(43) = LocalVar%IPC_AxisYaw_2P - LocalVarOutData(44) = LocalVar%IPC_KI(1) - LocalVarOutData(45) = LocalVar%IPC_KP(1) - LocalVarOutData(46) = LocalVar%IPC_IntSat - LocalVarOutData(47) = LocalVar%PC_State - LocalVarOutData(48) = LocalVar%PitCom(1) - LocalVarOutData(49) = LocalVar%PitComAct(1) - LocalVarOutData(50) = LocalVar%SS_DelOmegaF - LocalVarOutData(51) = LocalVar%TestType - LocalVarOutData(52) = LocalVar%VS_MaxTq - LocalVarOutData(53) = LocalVar%VS_LastGenTrq - LocalVarOutData(54) = LocalVar%VS_LastGenPwr - LocalVarOutData(55) = LocalVar%VS_MechGenPwr - LocalVarOutData(56) = LocalVar%VS_SpdErrAr - LocalVarOutData(57) = LocalVar%VS_SpdErrBr - LocalVarOutData(58) = LocalVar%VS_SpdErr - LocalVarOutData(59) = LocalVar%VS_State - LocalVarOutData(60) = LocalVar%VS_Rgn3Pitch - LocalVarOutData(61) = LocalVar%WE_Vw - LocalVarOutData(62) = LocalVar%WE_Vw_F - LocalVarOutData(63) = LocalVar%WE_VwI - LocalVarOutData(64) = LocalVar%WE_VwIdot - LocalVarOutData(65) = LocalVar%VS_LastGenTrqF - LocalVarOutData(66) = LocalVar%Fl_PitCom - LocalVarOutData(67) = LocalVar%NACIMU_FA_AccF - LocalVarOutData(68) = LocalVar%FA_AccF - LocalVarOutData(69) = LocalVar%Flp_Angle(1) - LocalVarOutData(70) = LocalVar%RootMyb_Last(1) - LocalVarOutData(71) = LocalVar%ACC_INFILE_SIZE + LocalVarOutData(44) = LocalVar%axisTilt_1P + LocalVarOutData(45) = LocalVar%axisYaw_1P + LocalVarOutData(46) = LocalVar%axisYawF_1P + LocalVarOutData(47) = LocalVar%axisTilt_2P + LocalVarOutData(48) = LocalVar%axisYaw_2P + LocalVarOutData(49) = LocalVar%axisYawF_2P + LocalVarOutData(50) = LocalVar%IPC_KI(1) + LocalVarOutData(51) = LocalVar%IPC_KP(1) + LocalVarOutData(52) = LocalVar%IPC_IntSat + LocalVarOutData(53) = LocalVar%PC_State + LocalVarOutData(54) = LocalVar%PitCom(1) + LocalVarOutData(55) = LocalVar%PitComAct(1) + LocalVarOutData(56) = LocalVar%SS_DelOmegaF + LocalVarOutData(57) = LocalVar%TestType + LocalVarOutData(58) = LocalVar%VS_MaxTq + LocalVarOutData(59) = LocalVar%VS_LastGenTrq + LocalVarOutData(60) = LocalVar%VS_LastGenPwr + LocalVarOutData(61) = LocalVar%VS_MechGenPwr + LocalVarOutData(62) = LocalVar%VS_SpdErrAr + LocalVarOutData(63) = LocalVar%VS_SpdErrBr + LocalVarOutData(64) = LocalVar%VS_SpdErr + LocalVarOutData(65) = LocalVar%VS_State + LocalVarOutData(66) = LocalVar%VS_Rgn3Pitch + LocalVarOutData(67) = LocalVar%WE_Vw + LocalVarOutData(68) = LocalVar%WE_Vw_F + LocalVarOutData(69) = LocalVar%WE_VwI + LocalVarOutData(70) = LocalVar%WE_VwIdot + LocalVarOutData(71) = LocalVar%VS_LastGenTrqF + LocalVarOutData(72) = LocalVar%Fl_PitCom + LocalVarOutData(73) = LocalVar%NACIMU_FA_AccF + LocalVarOutData(74) = LocalVar%FA_AccF + LocalVarOutData(75) = LocalVar%PtfmTDX + LocalVarOutData(76) = LocalVar%PtfmTDY + LocalVarOutData(77) = LocalVar%PtfmTDZ + LocalVarOutData(78) = LocalVar%PtfmRDX + LocalVarOutData(79) = LocalVar%PtfmRDY + LocalVarOutData(80) = LocalVar%PtfmRDZ + LocalVarOutData(81) = LocalVar%PtfmTVX + LocalVarOutData(82) = LocalVar%PtfmTVY + LocalVarOutData(83) = LocalVar%PtfmTVZ + LocalVarOutData(84) = LocalVar%PtfmRVX + LocalVarOutData(85) = LocalVar%PtfmRVY + LocalVarOutData(86) = LocalVar%PtfmRVZ + LocalVarOutData(87) = LocalVar%PtfmTAX + LocalVarOutData(88) = LocalVar%PtfmTAY + LocalVarOutData(89) = LocalVar%PtfmTAZ + LocalVarOutData(90) = LocalVar%PtfmRAX + LocalVarOutData(91) = LocalVar%PtfmRAY + LocalVarOutData(92) = LocalVar%PtfmRAZ + LocalVarOutData(93) = LocalVar%CC_DesiredL(1) + LocalVarOutData(94) = LocalVar%CC_ActuatedL(1) + LocalVarOutData(95) = LocalVar%CC_ActuatedDL(1) + LocalVarOutData(96) = LocalVar%StC_Input(1) + LocalVarOutData(97) = LocalVar%Flp_Angle(1) + LocalVarOutData(98) = LocalVar%RootMyb_Last(1) + LocalVarOutData(99) = LocalVar%ACC_INFILE_SIZE + LocalVarOutData(100) = LocalVar%AWC_complexangle(1) LocalVarOutStrings = [CHARACTER(15) :: 'iStatus', 'Time', 'DT', 'VS_GenPwr', 'GenSpeed', & 'RotSpeed', 'NacHeading', 'NacVane', 'HorWindV', 'rootMOOP', & 'rootMOOPF', 'BlPitch', 'BlPitchCMeas', 'Azimuth', 'NumBl', & @@ -524,13 +732,19 @@ SUBROUTINE Debug(LocalVar, CntrPar, DebugVar, ErrVar, avrSWAP, RootName, size_av 'GenBrTq', 'IPC_PitComF', 'PC_KP', 'PC_KI', 'PC_KD', & 'PC_TF', 'PC_MaxPit', 'PC_MinPit', 'PC_PitComT', 'PC_PitComT_Last', & 'PC_PitComTF', 'PC_PitComT_IPC', 'PC_PwrErr', 'PC_SpdErr', 'IPC_AxisTilt_1P', & - 'IPC_AxisYaw_1P', 'IPC_AxisTilt_2P', 'IPC_AxisYaw_2P', 'IPC_KI', 'IPC_KP', & - 'IPC_IntSat', 'PC_State', 'PitCom', 'PitComAct', 'SS_DelOmegaF', & - 'TestType', 'VS_MaxTq', 'VS_LastGenTrq', 'VS_LastGenPwr', 'VS_MechGenPwr', & - 'VS_SpdErrAr', 'VS_SpdErrBr', 'VS_SpdErr', 'VS_State', 'VS_Rgn3Pitch', & - 'WE_Vw', 'WE_Vw_F', 'WE_VwI', 'WE_VwIdot', 'VS_LastGenTrqF', & - 'Fl_PitCom', 'NACIMU_FA_AccF', 'FA_AccF', 'Flp_Angle', 'RootMyb_Last', & - 'ACC_INFILE_SIZE'] + 'IPC_AxisYaw_1P', 'IPC_AxisTilt_2P', 'IPC_AxisYaw_2P', 'axisTilt_1P', 'axisYaw_1P', & + 'axisYawF_1P', 'axisTilt_2P', 'axisYaw_2P', 'axisYawF_2P', 'IPC_KI', & + 'IPC_KP', 'IPC_IntSat', 'PC_State', 'PitCom', 'PitComAct', & + 'SS_DelOmegaF', 'TestType', 'VS_MaxTq', 'VS_LastGenTrq', 'VS_LastGenPwr', & + 'VS_MechGenPwr', 'VS_SpdErrAr', 'VS_SpdErrBr', 'VS_SpdErr', 'VS_State', & + 'VS_Rgn3Pitch', 'WE_Vw', 'WE_Vw_F', 'WE_VwI', 'WE_VwIdot', & + 'VS_LastGenTrqF', 'Fl_PitCom', 'NACIMU_FA_AccF', 'FA_AccF', 'PtfmTDX', & + 'PtfmTDY', 'PtfmTDZ', 'PtfmRDX', 'PtfmRDY', 'PtfmRDZ', & + 'PtfmTVX', 'PtfmTVY', 'PtfmTVZ', 'PtfmRVX', 'PtfmRVY', & + 'PtfmRVZ', 'PtfmTAX', 'PtfmTAY', 'PtfmTAZ', 'PtfmRAX', & + 'PtfmRAY', 'PtfmRAZ', 'CC_DesiredL', 'CC_ActuatedL', 'CC_ActuatedDL', & + 'StC_Input', 'Flp_Angle', 'RootMyb_Last', 'ACC_INFILE_SIZE', 'AWC_complexangle' & + ] ! Initialize debug file IF ((LocalVar%iStatus == 0) .OR. (LocalVar%iStatus == -9)) THEN ! .TRUE. if we're on the first call to the DLL IF (CntrPar%LoggingLevel > 0) THEN @@ -545,18 +759,43 @@ SUBROUTINE Debug(LocalVar, CntrPar, DebugVar, ErrVar, avrSWAP, RootName, size_av CALL GetNewUnit(UnDb2, ErrVar) OPEN(unit=UnDb2, FILE=TRIM(RootName)//'.RO.dbg2') WRITE(UnDb2, *) 'Generated on '//CurDate()//' at '//CurTime()//' using ROSCO-'//TRIM(rosco_version) - WRITE(UnDb2, '(99(a20,TR5:))') 'Time', LocalVarOutStrings - WRITE(UnDb2, '(99(a20,TR5:))') + WRITE(UnDb2, '(101(a20,TR5:))') 'Time', LocalVarOutStrings + WRITE(UnDb2, '(101(a20,TR5:))') END IF IF (CntrPar%LoggingLevel > 2) THEN + ! Set avrIndices, start with basic indices + Allocate(avrIndices(avrBaseLength)) + DO Ind = 1, avrBaseLength + avrIndices(Ind) = Ind + END DO + + ! Cable control indices + IF (CntrPar%CC_Mode > 0) THEN + DO Ind = 1, SIZE(CntrPar%CC_GroupIndex) + Call AddToList(avrIndices,CntrPar%CC_GroupIndex(Ind)) + Call AddToList(avrIndices,CntrPar%CC_GroupIndex(Ind)+1) + END DO + END IF + + ! Structural control indices + IF (CntrPar%StC_Mode > 0) THEN + DO Ind = 1, SIZE(CntrPar%StC_GroupIndex) + Call AddToList(avrIndices,CntrPar%StC_GroupIndex(Ind)) + END DO + END IF + + ! Format string + avrFmt = '(A21,'//TRIM(Int2LStr(SIZE(avrIndices)))//'(TR12,"'//'AvrSWAP(",I4,")"))' + CALL GetNewUnit(UnDb3, ErrVar) OPEN(unit=UnDb3, FILE=TRIM(RootName)//'.RO.dbg3') WRITE(UnDb3,'(/////)') - WRITE(UnDb3,'(A,85("'//Tab//'AvrSWAP(",I2,")"))') 'LocalVar%Time ', (i,i=1, 85) - WRITE(UnDb3,'(A,85("'//Tab//'(-)"))') '(s)' + WRITE(UnDb3,avrFmt) 'LocalVar%Time ', (avrIndices) + WRITE(UnDb3,'(A21,'//TRIM(Int2LStr(SIZE(avrIndices)))//'(TR22,"(-)"))') '(s)' END IF END IF + ! Print simulation status, every 10 seconds IF (MODULO(LocalVar%Time, 10.0_DbKi) == 0) THEN WRITE(*, 100) LocalVar%GenSpeedF*RPS2RPM, LocalVar%BlPitch(1)*R2D, avrSWAP(15)/1000.0, LocalVar%WE_Vw @@ -578,16 +817,17 @@ SUBROUTINE Debug(LocalVar, CntrPar, DebugVar, ErrVar, avrSWAP, RootName, size_av END DO ! Write debug files + FmtDat = "(F20.5,TR5,100(ES20.5E2,TR5:))" ! The format of the debugging data IF(CntrPar%LoggingLevel > 0) THEN - WRITE (UnDb, FmtDat) LocalVar%Time, DebugOutData + WRITE (UnDb, TRIM(FmtDat)) LocalVar%Time, DebugOutData END IF IF(CntrPar%LoggingLevel > 1) THEN - WRITE (UnDb2, FmtDat) LocalVar%Time, LocalVarOutData + WRITE (UnDb2, TRIM(FmtDat)) LocalVar%Time, LocalVarOutData END IF IF(CntrPar%LoggingLevel > 2) THEN - WRITE (UnDb3, FmtDat) LocalVar%Time, avrSWAP(1: 85) + WRITE (UnDb3, TRIM(FmtDat)) LocalVar%Time, avrSWAP(avrIndices) END IF END SUBROUTINE Debug diff --git a/ROSCO/src/ROSCO_Types.f90 b/ROSCO/src/ROSCO_Types.f90 index 2c4143bc..ec19d6b8 100644 --- a/ROSCO/src/ROSCO_Types.f90 +++ b/ROSCO/src/ROSCO_Types.f90 @@ -1,5 +1,5 @@ ! ROSCO Registry -! This file is automatically generated by write_registry.py using ROSCO v2.7.0 +! This file is automatically generated by write_registry.py using ROSCO v2.8.0 ! For any modification to the registry, please edit the rosco_types.yaml accordingly MODULE ROSCO_Types @@ -9,6 +9,7 @@ MODULE ROSCO_Types TYPE, PUBLIC :: ControlParameters INTEGER(IntKi) :: LoggingLevel ! 0 - write no debug files, 1 - write standard output .dbg-file, 2 - write standard output .dbg-file and complete avrSWAP-array .dbg2-file + INTEGER(IntKi) :: Echo ! 0 - no Echo, 1 - Echo input data to .echo INTEGER(IntKi) :: F_LPFType ! Low pass filter on the rotor and generator speed {1 - first-order low-pass filter, 2 - second-order low-pass filter}, [rad/s] INTEGER(IntKi) :: F_NotchType ! Notch on the measured generator speed {0 - disable, 1 - enable} REAL(DbKi) :: F_LPFCornerFreq ! Corner frequency (-3dB point) in the first-order low-pass filter, [rad/s] @@ -106,14 +107,25 @@ MODULE ROSCO_Types INTEGER(IntKi) :: Ind_BldPitch ! The column in OL_Filename that contains the blade pitch input in rad INTEGER(IntKi) :: Ind_GenTq ! The column in OL_Filename that contains the generator torque in Nm INTEGER(IntKi) :: Ind_YawRate ! The column in OL_Filename that contains the generator torque in Nm + INTEGER(IntKi), DIMENSION(:), ALLOCATABLE :: Ind_CableControl ! The column in OL_Filename that contains the cable control inputs in m + INTEGER(IntKi), DIMENSION(:), ALLOCATABLE :: Ind_StructControl ! The column in OL_Filename that contains the structural control inputs in various units REAL(DbKi), DIMENSION(:), ALLOCATABLE :: OL_Breakpoints ! Open loop breakpoints in timeseries REAL(DbKi), DIMENSION(:), ALLOCATABLE :: OL_BldPitch ! Open blade pitch timeseries + REAL(DbKi), DIMENSION(:,:), ALLOCATABLE :: OL_CableControl ! None + REAL(DbKi), DIMENSION(:,:), ALLOCATABLE :: OL_StructControl ! None REAL(DbKi), DIMENSION(:), ALLOCATABLE :: OL_GenTq ! Open generator torque timeseries REAL(DbKi), DIMENSION(:), ALLOCATABLE :: OL_YawRate ! Open yaw rate timeseries REAL(DbKi), DIMENSION(:,:), ALLOCATABLE :: OL_Channels ! Open loop channels in timeseries INTEGER(IntKi) :: PA_Mode ! Pitch actuator mode {0 - not used, 1 - first order filter, 2 - second order filter} REAL(DbKi) :: PA_CornerFreq ! Pitch actuator bandwidth/cut-off frequency [rad/s] REAL(DbKi) :: PA_Damping ! Pitch actuator damping ratio [-, unused if PA_Mode = 1] + INTEGER(IntKi) :: AWC_Mode ! Active wake control mode [0 - unused, 1 - SNL method, 2 - NREL method] + INTEGER(IntKi) :: AWC_NumModes ! AWC- Number of modes to include [-] + INTEGER(IntKi), DIMENSION(:), ALLOCATABLE :: AWC_n ! AWC azimuthal mode [-] + INTEGER(IntKi), DIMENSION(:), ALLOCATABLE :: AWC_harmonic ! AWC AWC Coleman transform harmonic [-] + REAL(DbKi), DIMENSION(:), ALLOCATABLE :: AWC_freq ! AWC frequency [Hz] + REAL(DbKi), DIMENSION(:), ALLOCATABLE :: AWC_amp ! AWC amplitude [deg] + REAL(DbKi), DIMENSION(:), ALLOCATABLE :: AWC_clockangle ! AWC clocking angle [deg] INTEGER(IntKi) :: PF_Mode ! Pitch actuator fault mode {0 - not used, 1 - offsets on one or more blades} REAL(DbKi), DIMENSION(:), ALLOCATABLE :: PF_Offsets ! Pitch actuator fault offsets for blade 1-3 [rad/s] INTEGER(IntKi) :: Ext_Mode ! External control mode (0 - not used, 1 - call external control library) @@ -123,6 +135,13 @@ MODULE ROSCO_Types INTEGER(IntKi) :: ZMQ_Mode ! Flag for ZeroMQ (0-off, 1-yaw} CHARACTER(256) :: ZMQ_CommAddress ! Comm Address to zeroMQ client REAL(DbKi) :: ZMQ_UpdatePeriod ! Integer for zeromq update frequency + INTEGER(IntKi) :: CC_Mode ! Flag for ZeroMQ (0-off, 1-yaw} + INTEGER(IntKi) :: CC_Group_N ! Number of cable control groups + REAL(DbKi) :: CC_ActTau ! Time constant for line actuator [s] + INTEGER(IntKi), DIMENSION(:), ALLOCATABLE :: CC_GroupIndex ! Cable control group indices + INTEGER(IntKi) :: StC_Mode ! Flag for StC Control + INTEGER(IntKi) :: StC_Group_N ! Number of cable control groups + INTEGER(IntKi), DIMENSION(:), ALLOCATABLE :: StC_GroupIndex ! Cable control group indices REAL(DbKi) :: PC_RtTq99 ! 99% of the rated torque value, using for switching between pitch and torque control, [Nm]. REAL(DbKi) :: VS_MaxOMTq ! Maximum torque at the end of the below-rated region 2, [Nm] REAL(DbKi) :: VS_MinOMTq ! Minimum torque at the beginning of the below-rated region 2, [Nm] @@ -155,6 +174,16 @@ MODULE ROSCO_Types REAL(DbKi), DIMENSION(99) :: lpf2_OutputSignalLast2 ! Second order filter - Previous output 2 REAL(DbKi), DIMENSION(99) :: lpf2_InputSignalLast1 ! Second order filter - Previous input 1 REAL(DbKi), DIMENSION(99) :: lpf2_OutputSignalLast1 ! Second order filter - Previous output 1 + REAL(DbKi), DIMENSION(99) :: lpfV_a2 ! Second order filter - Denominator coefficient 1 + REAL(DbKi), DIMENSION(99) :: lpfV_a1 ! Second order filter - Denominator coefficient 1 + REAL(DbKi), DIMENSION(99) :: lpfV_a0 ! Second order filter - Denominator coefficient 0 + REAL(DbKi), DIMENSION(99) :: lpfV_b2 ! Second order filter - Numerator coefficient 2 + REAL(DbKi), DIMENSION(99) :: lpfV_b1 ! Second order filter - Numerator coefficient 1 + REAL(DbKi), DIMENSION(99) :: lpfV_b0 ! Second order filter - Numerator coefficient 0 + REAL(DbKi), DIMENSION(99) :: lpfV_InputSignalLast2 ! Second order filter - Previous input 2 + REAL(DbKi), DIMENSION(99) :: lpfV_OutputSignalLast2 ! Second order filter - Previous output 2 + REAL(DbKi), DIMENSION(99) :: lpfV_InputSignalLast1 ! Second order filter - Previous input 1 + REAL(DbKi), DIMENSION(99) :: lpfV_OutputSignalLast1 ! Second order filter - Previous output 1 REAL(DbKi), DIMENSION(99) :: hpf_InputSignalLast ! High pass filter - Previous output 1 REAL(DbKi), DIMENSION(99) :: hpf_OutputSignalLast ! High pass filter - Previous output 1 REAL(DbKi), DIMENSION(99) :: nfs_OutputSignalLast1 ! Notch filter slopes previous output 1 @@ -232,6 +261,12 @@ MODULE ROSCO_Types REAL(DbKi) :: IPC_AxisYaw_1P ! Integral of quadrature, 1P REAL(DbKi) :: IPC_AxisTilt_2P ! Integral of the direct axis, 2P REAL(DbKi) :: IPC_AxisYaw_2P ! Integral of quadrature, 2P + REAL(DbKi) :: axisTilt_1P ! Tilt moment, 1P + REAL(DbKi) :: axisYaw_1P ! Yaw moment, 1P + REAL(DbKi) :: axisYawF_1P ! Filtered yaw moment, 1P + REAL(DbKi) :: axisTilt_2P ! Tilt moment, 2P + REAL(DbKi) :: axisYaw_2P ! Yaw moment, 2P + REAL(DbKi) :: axisYawF_2P ! Filtered yaw moment, 2P REAL(DbKi) :: IPC_KI(2) ! Integral gain for IPC, after ramp [-] REAL(DbKi) :: IPC_KP(2) ! Proportional gain for IPC, after ramp [-] REAL(DbKi) :: IPC_IntSat ! Integrator saturation (maximum signal amplitude contrbution to pitch from IPC) @@ -258,11 +293,34 @@ MODULE ROSCO_Types REAL(DbKi) :: Fl_PitCom ! Shutdown, .FALSE. if inactive, .TRUE. if active REAL(DbKi) :: NACIMU_FA_AccF ! None REAL(DbKi) :: FA_AccF ! None + REAL(DbKi) :: PtfmTDX ! Platform motion -- Displacement TDX (m)') + REAL(DbKi) :: PtfmTDY ! Platform motion -- Displacement TDY (m)') + REAL(DbKi) :: PtfmTDZ ! Platform motion -- Displacement TDZ (m)') + REAL(DbKi) :: PtfmRDX ! Platform motion -- Displacement RDX (rad)') + REAL(DbKi) :: PtfmRDY ! Platform motion -- Displacement RDY (rad)') + REAL(DbKi) :: PtfmRDZ ! Platform motion -- Displacement RDZ (rad)') + REAL(DbKi) :: PtfmTVX ! Platform motion -- Velocity TVX (m/s)') + REAL(DbKi) :: PtfmTVY ! Platform motion -- Velocity TVY (m/s)') + REAL(DbKi) :: PtfmTVZ ! Platform motion -- Velocity TVZ (m/s)') + REAL(DbKi) :: PtfmRVX ! Platform motion -- Velocity RVX (rad/s)') + REAL(DbKi) :: PtfmRVY ! Platform motion -- Velocity RVY (rad/s)') + REAL(DbKi) :: PtfmRVZ ! Platform motion -- Velocity RVZ (rad/s)') + REAL(DbKi) :: PtfmTAX ! Platform motion -- Acceleration TAX (m/s^2)') + REAL(DbKi) :: PtfmTAY ! Platform motion -- Acceleration TAY (m/s^2)') + REAL(DbKi) :: PtfmTAZ ! Platform motion -- Acceleration TAZ (m/s^2)') + REAL(DbKi) :: PtfmRAX ! Platform motion -- Acceleration RAX (rad/s^2)') + REAL(DbKi) :: PtfmRAY ! Platform motion -- Acceleration RAY (rad/s^2)') + REAL(DbKi) :: PtfmRAZ ! Platform motion -- Acceleration RAZ (rad/s^2)') + REAL(DbKi) :: CC_DesiredL(12) ! None + REAL(DbKi) :: CC_ActuatedL(12) ! None + REAL(DbKi) :: CC_ActuatedDL(12) ! None + REAL(DbKi) :: StC_Input(12) ! None REAL(DbKi) :: Flp_Angle(3) ! Flap Angle (rad) REAL(DbKi) :: RootMyb_Last(3) ! Last blade root bending moment (Nm) INTEGER(IntKi) :: ACC_INFILE_SIZE ! Length of parameter input filename CHARACTER, DIMENSION(:), ALLOCATABLE :: ACC_INFILE ! Parameter input filename LOGICAL :: restart ! Restart flag + COMPLEX(DbKi) :: AWC_complexangle(3) ! Complex angle for each blade, sum of modes? TYPE(WE) :: WE ! Wind speed estimator parameters derived type TYPE(FilterParameters) :: FP ! Filter parameters derived type TYPE(piParams) :: piP ! PI parameters derived type @@ -272,6 +330,7 @@ MODULE ROSCO_Types TYPE, PUBLIC :: ObjectInstances INTEGER(IntKi) :: instLPF ! Low-pass filter instance INTEGER(IntKi) :: instSecLPF ! Second order low-pass filter instance + INTEGER(IntKi) :: instSecLPFV ! Second order low-pass filter instance INTEGER(IntKi) :: instHPF ! High-pass filter instance INTEGER(IntKi) :: instNotchSlopes ! Notch filter slopes instance INTEGER(IntKi) :: instNotch ! Notch filter instance diff --git a/ROSCO/src/ReadSetParameters.f90 b/ROSCO/src/ReadSetParameters.f90 index 9ba9e80c..23a5bde7 100644 --- a/ROSCO/src/ReadSetParameters.f90 +++ b/ROSCO/src/ReadSetParameters.f90 @@ -19,7 +19,6 @@ MODULE ReadSetParameters USE Functions USE SysSubs USE ROSCO_Helpers - IMPLICIT NONE @@ -34,7 +33,7 @@ SUBROUTINE ReadAvrSWAP(avrSWAP, LocalVar, CntrPar) TYPE(ControlParameters), INTENT(IN) :: CntrPar ! Allocate Variables: - INTEGER(IntKi) :: K ! Index used for looping through blades. + INTEGER(IntKi) :: K ! Index used for looping through blades. ! Load variables from calling program (See Appendix A of Bladed User's Guide): LocalVar%iStatus = NINT(avrSWAP(1)) @@ -56,6 +55,32 @@ SUBROUTINE ReadAvrSWAP(avrSWAP, LocalVar, CntrPar) LocalVar%Azimuth = avrSWAP(60) LocalVar%NumBl = NINT(avrSWAP(61)) + ! Platform signals + LocalVar%PtfmTDX = avrSWAP(1001) + LocalVar%PtfmTDY = avrSWAP(1002) + LocalVar%PtfmTDZ = avrSWAP(1003) + LocalVar%PtfmRDX = avrSWAP(1004) + LocalVar%PtfmRDY = avrSWAP(1005) + LocalVar%PtfmRDZ = avrSWAP(1006) + LocalVar%PtfmTVX = avrSWAP(1007) + LocalVar%PtfmTVY = avrSWAP(1008) + LocalVar%PtfmTVZ = avrSWAP(1009) + LocalVar%PtfmRVX = avrSWAP(1010) + LocalVar%PtfmRVY = avrSWAP(1011) + LocalVar%PtfmRVZ = avrSWAP(1012) + LocalVar%PtfmTAX = avrSWAP(1013) + LocalVar%PtfmTAY = avrSWAP(1014) + LocalVar%PtfmTAZ = avrSWAP(1015) + LocalVar%PtfmRAX = avrSWAP(1016) + LocalVar%PtfmRAY = avrSWAP(1017) + LocalVar%PtfmRAZ = avrSWAP(1018) + + ! GenTemp = avrSWAP(1026) + + ! WRITE(1000,*) LocalVar%GenSpeed*RPS2RPM, GenTemp + + + ! --- NJA: usually feedback back the previous pitch command helps for numerical stability, sometimes it does not... IF (LocalVar%iStatus == 0) THEN LocalVar%BlPitch(1) = avrSWAP(4) @@ -88,7 +113,7 @@ SUBROUTINE ReadAvrSWAP(avrSWAP, LocalVar, CntrPar) END SUBROUTINE ReadAvrSWAP ! ----------------------------------------------------------------------------------- ! Define parameters for control actions - SUBROUTINE SetParameters(avrSWAP, accINFILE, size_avcMSG, CntrPar, LocalVar, objInst, PerfData, zmqVar, ErrVar) + SUBROUTINE SetParameters(avrSWAP, accINFILE, size_avcMSG, CntrPar, LocalVar, objInst, PerfData, zmqVar, RootName, ErrVar) USE ROSCO_Types, ONLY : ControlParameters, LocalVariables, ObjectInstances, PerformanceData, ErrorVariables, ZMQ_Variables @@ -102,9 +127,15 @@ SUBROUTINE SetParameters(avrSWAP, accINFILE, size_avcMSG, CntrPar, LocalVar, obj TYPE(PerformanceData), INTENT(INOUT) :: PerfData TYPE(ZMQ_Variables), INTENT(INOUT) :: zmqVar TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar + CHARACTER(NINT(avrSWAP(50))-1), INTENT(IN) :: RootName - INTEGER(IntKi) :: K ! Index used for looping through blades. + INTEGER(IntKi) :: K, I, I_OL ! Index used for looping through blades. + CHARACTER(1024) :: OL_String ! Open description loop string + INTEGER(IntKi) :: OL_Count ! Number of open loop channels + + INTEGER(IntKi) :: N_OL_Cables + INTEGER(IntKi) :: N_OL_StCs CHARACTER(*), PARAMETER :: RoutineName = 'SetParameters' @@ -119,6 +150,7 @@ SUBROUTINE SetParameters(avrSWAP, accINFILE, size_avcMSG, CntrPar, LocalVar, obj ! Initialize all filter instance counters at 1 objInst%instLPF = 1 objInst%instSecLPF = 1 + objInst%instSecLPFV = 1 objInst%instHPF = 1 objInst%instNotchSlopes = 1 objInst%instNotch = 1 @@ -134,7 +166,7 @@ SUBROUTINE SetParameters(avrSWAP, accINFILE, size_avcMSG, CntrPar, LocalVar, obj avrSWAP(56) = 0.0 ! Torque override: 0=yes avrSWAP(65) = 0.0 ! Number of variables returned for logging avrSWAP(72) = 0.0 ! Generator start-up resistance - avrSWAP(79) = 0.0 ! Request for loads: 0=none + avrSWAP(79) = 4.0 ! Request for loads: 0=none avrSWAP(80) = 0.0 ! Variable slip current status avrSWAP(81) = 0.0 ! Variable slip current demand @@ -157,7 +189,7 @@ SUBROUTINE SetParameters(avrSWAP, accINFILE, size_avcMSG, CntrPar, LocalVar, obj LocalVar%ACC_INFILE = accINFILE ! Read Control Parameter File - CALL ReadControlParameterFileSub(CntrPar, zmqVar, accINFILE, NINT(avrSWAP(50)),ErrVar) + CALL ReadControlParameterFileSub(CntrPar, zmqVar, accINFILE, NINT(avrSWAP(50)), RootName, ErrVar) ! If there's been an file reading error, don't continue ! Add RoutineName to error message IF (ErrVar%aviFAIL < 0) THEN @@ -191,6 +223,97 @@ SUBROUTINE SetParameters(avrSWAP, accINFILE, size_avcMSG, CntrPar, LocalVar, obj ! Check validity of input parameters: CALL CheckInputs(LocalVar, CntrPar, avrSWAP, ErrVar, size_avcMSG) + ! Initialize variables + LocalVar%CC_DesiredL = 0 + LocalVar%CC_ActuatedL = 0 + LocalVar%CC_ActuatedDL = 0 + LocalVar%StC_Input = 0 + + ! Initialize open loop control + ! Read open loop input, if desired + IF (CntrPar%OL_Mode == 1) THEN + OL_String = '' ! Display string + OL_Count = 1 + IF (CntrPar%Ind_BldPitch > 0) THEN + OL_String = TRIM(OL_String)//' BldPitch ' + OL_Count = OL_Count + 1 + ENDIF + + IF (CntrPar%Ind_GenTq > 0) THEN + OL_String = TRIM(OL_String)//' GenTq ' + OL_Count = OL_Count + 1 + ENDIF + + IF (CntrPar%Ind_YawRate > 0) THEN + OL_String = TRIM(OL_String)//' YawRate ' + OL_Count = OL_Count + 1 + ENDIF + + N_OL_Cables = 0 + IF (ANY(CntrPar%Ind_CableControl > 0)) THEN + DO I = 1,SIZE(CntrPar%Ind_CableControl) + IF (CntrPar%Ind_CableControl(I) > 0) THEN + OL_String = TRIM(OL_String)//' Cable'//TRIM(Int2LStr(I))//' ' + OL_Count = OL_Count + 1 + N_OL_Cables = N_OL_Cables + 1 + ENDIF + ENDDO + ENDIF + + N_OL_StCs = 0 + IF (ANY(CntrPar%Ind_StructControl > 0)) THEN + DO I = 1,SIZE(CntrPar%Ind_StructControl) + IF (CntrPar%Ind_StructControl(I) > 0) THEN + OL_String = TRIM(OL_String)//' StC'//TRIM(Int2LStr(I))//' ' + OL_Count = OL_Count + 1 + N_OL_StCs = N_OL_StCs + 1 + ENDIF + ENDDO + ENDIF + + + PRINT *, 'ROSCO: Implementing open loop control for'//TRIM(OL_String) + CALL Read_OL_Input(CntrPar%OL_Filename,110_IntKi,OL_Count,CntrPar%OL_Channels, ErrVar) + + CntrPar%OL_Breakpoints = CntrPar%OL_Channels(:,CntrPar%Ind_Breakpoint) + + IF (CntrPar%Ind_BldPitch > 0) THEN + CntrPar%OL_BldPitch = CntrPar%OL_Channels(:,CntrPar%Ind_BldPitch) + ENDIF + + IF (CntrPar%Ind_GenTq > 0) THEN + CntrPar%OL_GenTq = CntrPar%OL_Channels(:,CntrPar%Ind_GenTq) + ENDIF + + IF (CntrPar%Ind_YawRate > 0) THEN + CntrPar%OL_YawRate = CntrPar%OL_Channels(:,CntrPar%Ind_YawRate) + ENDIF + + IF (ANY(CntrPar%Ind_CableControl > 0)) THEN + ALLOCATE(CntrPar%OL_CableControl(N_OL_Cables,SIZE(CntrPar%OL_Channels,DIM=1))) + I_OL = 1 + DO I = 1,SIZE(CntrPar%Ind_CableControl) + IF (CntrPar%Ind_CableControl(I) > 0) THEN + CntrPar%OL_CableControl(I_OL,:) = CntrPar%OL_Channels(:,CntrPar%Ind_CableControl(I)) + I_OL = I_OL + 1 + ENDIF + ENDDO + ENDIF + + IF (ANY(CntrPar%Ind_StructControl > 0)) THEN + ALLOCATE(CntrPar%OL_StructControl(N_OL_StCs,SIZE(CntrPar%OL_Channels,DIM=1))) + I_OL = 1 + DO I = 1,SIZE(CntrPar%Ind_StructControl) + IF (CntrPar%Ind_StructControl(I) > 0) THEN + CntrPar%OL_StructControl(I_OL,:) = CntrPar%OL_Channels(:,CntrPar%Ind_StructControl(I)) + I_OL = I_OL + 1 + ENDIF + ENDDO + ENDIF + + END IF + + ! Add RoutineName to error message IF (ErrVar%aviFAIL < 0) THEN ErrVar%ErrMsg = RoutineName//':'//TRIM(ErrVar%ErrMsg) @@ -201,11 +324,12 @@ SUBROUTINE SetParameters(avrSWAP, accINFILE, size_avcMSG, CntrPar, LocalVar, obj zmqVar%ZMQ_Flag = .TRUE. ENDIF + ENDIF END SUBROUTINE SetParameters ! ----------------------------------------------------------------------------------- ! Read all constant control parameters from DISCON.IN parameter file - SUBROUTINE ReadControlParameterFileSub(CntrPar, zmqVar, accINFILE, accINFILE_size,ErrVar)!, accINFILE_size) + SUBROUTINE ReadControlParameterFileSub(CntrPar, zmqVar, accINFILE, accINFILE_size, RootName, ErrVar)!, accINFILE_size) USE, INTRINSIC :: ISO_C_Binding USE ROSCO_Types, ONLY : ControlParameters, ErrorVariables, ZMQ_Variables @@ -214,267 +338,270 @@ SUBROUTINE ReadControlParameterFileSub(CntrPar, zmqVar, accINFILE, accINFILE_siz TYPE(ControlParameters), INTENT(INOUT) :: CntrPar ! Control parameter type TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar ! Control parameter type TYPE(ZMQ_Variables), INTENT(INOUT) :: zmqVar ! Control parameter type + CHARACTER(accINFILE_size), INTENT(IN) :: RootName + INTEGER(IntKi) :: UnControllerParameters ! Unit number to open file - INTEGER(IntKi) :: CurLine - ! INTEGER(IntKi), PARAMETER :: UnControllerParameters = 89 ! Unit number to open file - - CHARACTER(1024) :: OL_String ! Open description loop string - INTEGER(IntKi) :: OL_Count ! Number of open loop channels CHARACTER(1024) :: PriPath ! Path name of the primary DISCON file - + CHARACTER(2048) :: TmpLine ! Path name of the primary DISCON file + INTEGER(IntKi) :: NumLines, IOS, I_LINE, ErrStat + INTEGER(IntKi) :: UnEc + CHARACTER(128) :: EchoFilename ! Input checkpoint file + CHARACTER(MaxLineLength), DIMENSION(:), ALLOCATABLE :: FileLines + CHARACTER(*), PARAMETER :: RoutineName = 'ReadControlParameterFileSub' - CurLine = 1 - ! Get primary path of DISCON.IN file (accINFILE(1) here) CALL GetPath( accINFILE(1), PriPath ) ! Input files will be relative to the path where the primary input file is located. CALL GetNewUnit(UnControllerParameters, ErrVar) OPEN(unit=UnControllerParameters, file=accINFILE(1), status='old', action='read') - - !----------------------- HEADER ------------------------ - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ReadEmptyLine(UnControllerParameters,CurLine) - !----------------------- DEBUG -------------------------- - CALL ReadEmptyLine(UnControllerParameters,CurLine) + ! Read all lines, first get the number of lines + NumLines = 0 + IOS = 0 + DO WHILE (IOS == 0) ! read the rest of the file (until an error occurs) + NumLines = NumLines + 1 + READ(UnControllerParameters,'(A)',IOSTAT=IOS) TmpLine + END DO !WHILE + + ALLOCATE(FileLines(NumLines)) + REWIND( UnControllerParameters ) - CALL ParseInput(UnControllerParameters,CurLine,'LoggingLevel',accINFILE(1),CntrPar%LoggingLevel,ErrVar) + DO I_LINE = 1,NumLines + READ(UnControllerParameters,'(A)',IOSTAT=IOS) FileLines(I_LINE) + END DO - CALL ReadEmptyLine(UnControllerParameters,CurLine) + !----------------------- DEBUG -------------------------- + CALL ParseInput(FileLines,'LoggingLevel', CntrPar%LoggingLevel, accINFILE(1), ErrVar) + CALL ParseInput(FileLines,'Echo', CntrPar%Echo, accINFILE(1), ErrVar) + IF (ErrVar%aviFAIL < 0) RETURN + + ! Set up echo file + UnEc = 0 + IF (CntrPar%Echo > 0) THEN + EchoFilename = TRIM(RootName)//'.RO.echo' + CALL GetNewUnit(UnEc, ErrVar) + OPEN(unit=UnEc, FILE=TRIM(EchoFilename), IOSTAT=ErrStat, ACTION='WRITE' ) + IF ( ErrStat /= 0 ) THEN + ErrVar%ErrMsg = 'Cannot open file '//TRIM( EchoFilename )//'. Another program may have locked it for writing.' + ErrVar%aviFAIL = 1 + ELSE + WRITE( UnEc, *) 'ROSCO ECHO file' + WRITE( UnEc, *) 'Generated on '//CurDate()//' at '//CurTime()//' using ROSCO-'//TRIM(rosco_version) + WRITE( UnEc, *) NEW_LINE('A') + WRITE( UnEc, *) 'Line Number',Tab,'Parameter',Tab,'Value' + WRITE( UnEc, *) '-----------------------------------------' + ENDIF + ENDIF !----------------- CONTROLLER FLAGS --------------------- - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'F_LPFType',accINFILE(1),CntrPar%F_LPFType,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'F_NotchType',accINFILE(1),CntrPar%F_NotchType,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'IPC_ControlMode',accINFILE(1),CntrPar%IPC_ControlMode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'VS_ControlMode',accINFILE(1),CntrPar%VS_ControlMode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PC_ControlMode',accINFILE(1),CntrPar%PC_ControlMode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Y_ControlMode',accINFILE(1),CntrPar%Y_ControlMode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'SS_Mode',accINFILE(1),CntrPar%SS_Mode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'WE_Mode',accINFILE(1),CntrPar%WE_Mode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PS_Mode',accINFILE(1),CntrPar%PS_Mode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'SD_Mode',accINFILE(1),CntrPar%SD_Mode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'FL_Mode',accINFILE(1),CntrPar%FL_Mode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'TD_Mode',accINFILE(1),CntrPar%TD_Mode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Flp_Mode',accINFILE(1),CntrPar%Flp_Mode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'OL_Mode',accINFILE(1),CntrPar%OL_Mode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PA_Mode',accINFILE(1),CntrPar%PA_Mode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PF_Mode',accINFILE(1),CntrPar%PF_Mode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Ext_Mode',accINFILE(1),CntrPar%Ext_Mode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'ZMQ_Mode',accINFILE(1), CntrPar%ZMQ_Mode,ErrVar) - - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines,'F_LPFType', CntrPar%F_LPFType, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'F_NotchType', CntrPar%F_NotchType, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'IPC_ControlMode', CntrPar%IPC_ControlMode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'VS_ControlMode', CntrPar%VS_ControlMode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'PC_ControlMode', CntrPar%PC_ControlMode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'Y_ControlMode', CntrPar%Y_ControlMode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'SS_Mode', CntrPar%SS_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'WE_Mode', CntrPar%WE_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'PS_Mode', CntrPar%PS_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'SD_Mode', CntrPar%SD_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'FL_Mode', CntrPar%FL_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'TD_Mode', CntrPar%TD_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'Flp_Mode', CntrPar%Flp_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'OL_Mode', CntrPar%OL_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'PA_Mode', CntrPar%PA_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'PF_Mode', CntrPar%PF_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'AWC_Mode', CntrPar%AWC_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'Ext_Mode', CntrPar%Ext_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'ZMQ_Mode', CntrPar%ZMQ_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'CC_Mode', CntrPar%CC_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines,'StC_Mode', CntrPar%StC_Mode, accINFILE(1), ErrVar, UnEc=UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !----------------- FILTER CONSTANTS --------------------- - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'F_LPFCornerFreq',accINFILE(1),CntrPar%F_LPFCornerFreq,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'F_LPFDamping',accINFILE(1),CntrPar%F_LPFDamping,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'F_NotchCornerFreq',accINFILE(1),CntrPar%F_NotchCornerFreq,ErrVar) - CALL ParseAry(UnControllerParameters, CurLine, 'F_NotchBetaNumDen', CntrPar%F_NotchBetaNumDen, 2, accINFILE(1), ErrVar ) - CALL ParseInput(UnControllerParameters,CurLine,'F_SSCornerFreq',accINFILE(1),CntrPar%F_SSCornerFreq,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'F_WECornerFreq',accINFILE(1),CntrPar%F_WECornerFreq,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'F_YawErr',accINFILE(1),CntrPar%F_YawErr, ErrVar) - CALL ParseAry(UnControllerParameters, CurLine, 'F_FlCornerFreq', CntrPar%F_FlCornerFreq, 2, accINFILE(1), ErrVar ) - CALL ParseInput(UnControllerParameters,CurLine,'F_FlHighPassFreq',accINFILE(1),CntrPar%F_FlHighPassFreq,ErrVar) - CALL ParseAry(UnControllerParameters, CurLine, 'F_FlpCornerFreq', CntrPar%F_FlpCornerFreq, 2, accINFILE(1), ErrVar ) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'F_LPFCornerFreq', CntrPar%F_LPFCornerFreq, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseInput(FileLines, 'F_LPFDamping', CntrPar%F_LPFDamping, accINFILE(1), ErrVar, CntrPar%F_LPFType == 1, UnEc) + CALL ParseInput(FileLines, 'F_NotchCornerFreq', CntrPar%F_NotchCornerFreq, accINFILE(1), ErrVar, CntrPar%F_NotchType == 0, UnEc) + CALL ParseAry( FileLines, 'F_NotchBetaNumDen', CntrPar%F_NotchBetaNumDen, 2, accINFILE(1), ErrVar, CntrPar%F_NotchType == 0, UnEc) + CALL ParseInput(FileLines, 'F_SSCornerFreq', CntrPar%F_SSCornerFreq, accINFILE(1), ErrVar, CntrPar%SS_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'F_WECornerFreq', CntrPar%F_WECornerFreq, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseInput(FileLines, 'F_YawErr', CntrPar%F_YawErr, accINFILE(1), ErrVar, CntrPar%Y_ControlMode == 0, UnEc) + CALL ParseAry( FileLines, 'F_FlCornerFreq', CntrPar%F_FlCornerFreq, 2, accINFILE(1), ErrVar, CntrPar%FL_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'F_FlHighPassFreq', CntrPar%F_FlHighPassFreq, accINFILE(1), ErrVar, CntrPar%FL_Mode == 0, UnEc) + CALL ParseAry( FileLines, 'F_FlpCornerFreq', CntrPar%F_FlpCornerFreq, 2, accINFILE(1), ErrVar, CntrPar%Flp_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !----------- BLADE PITCH CONTROLLER CONSTANTS ----------- - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'PC_GS_n',accINFILE(1),CntrPar%PC_GS_n,ErrVar) - CALL ParseAry(UnControllerParameters, CurLine, 'PC_GS_angles', CntrPar%PC_GS_angles, CntrPar%PC_GS_n, accINFILE(1), ErrVar ) - CALL ParseAry(UnControllerParameters, CurLine, 'PC_GS_KP', CntrPar%PC_GS_KP, CntrPar%PC_GS_n, accINFILE(1), ErrVar ) - CALL ParseAry(UnControllerParameters, CurLine, 'PC_GS_KI', CntrPar%PC_GS_KI, CntrPar%PC_GS_n, accINFILE(1), ErrVar ) - CALL ParseAry(UnControllerParameters, CurLine, 'PC_GS_KD', CntrPar%PC_GS_KD, CntrPar%PC_GS_n, accINFILE(1), ErrVar ) - CALL ParseAry(UnControllerParameters, CurLine, 'PC_GS_TF', CntrPar%PC_GS_TF, CntrPar%PC_GS_n, accINFILE(1), ErrVar ) - CALL ParseInput(UnControllerParameters,CurLine,'PC_MaxPit',accINFILE(1),CntrPar%PC_MaxPit,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PC_MinPit',accINFILE(1),CntrPar%PC_MinPit,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PC_MaxRat',accINFILE(1),CntrPar%PC_MaxRat,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PC_MinRat',accINFILE(1),CntrPar%PC_MinRat,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PC_RefSpd',accINFILE(1),CntrPar%PC_RefSpd,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PC_FinePit',accINFILE(1),CntrPar%PC_FinePit,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PC_Switch',accINFILE(1),CntrPar%PC_Switch,ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'PC_GS_n', CntrPar%PC_GS_n, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseAry( FileLines, 'PC_GS_angles', CntrPar%PC_GS_angles, CntrPar%PC_GS_n, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseAry( FileLines, 'PC_GS_KP', CntrPar%PC_GS_KP, CntrPar%PC_GS_n, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseAry( FileLines, 'PC_GS_KI', CntrPar%PC_GS_KI, CntrPar%PC_GS_n, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseAry( FileLines, 'PC_GS_KD', CntrPar%PC_GS_KD, CntrPar%PC_GS_n, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseAry( FileLines, 'PC_GS_TF', CntrPar%PC_GS_TF, CntrPar%PC_GS_n, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'PC_MaxPit', CntrPar%PC_MaxPit, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'PC_MinPit', CntrPar%PC_MinPit, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'PC_MaxRat', CntrPar%PC_MaxRat, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'PC_MinRat', CntrPar%PC_MinRat, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'PC_RefSpd', CntrPar%PC_RefSpd, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'PC_FinePit', CntrPar%PC_FinePit, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'PC_Switch', CntrPar%PC_Switch, accINFILE(1), ErrVar, CntrPar%PC_ControlMode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------------------- IPC CONSTANTS ----------------------- - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseAry(UnControllerParameters, CurLine, 'IPC_Vramp', CntrPar%IPC_Vramp, 2, accINFILE(1), ErrVar ) - CALL ParseInput(UnControllerParameters,CurLine,'IPC_SatMode',accINFILE(1),CntrPar%IPC_SatMode,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'IPC_IntSat',accINFILE(1),CntrPar%IPC_IntSat,ErrVar) - CALL ParseAry(UnControllerParameters, CurLine, 'IPC_KP', CntrPar%IPC_KP, 2, accINFILE(1), ErrVar ) - CALL ParseAry(UnControllerParameters, CurLine, 'IPC_KI', CntrPar%IPC_KI, 2, accINFILE(1), ErrVar ) - CALL ParseAry(UnControllerParameters, CurLine, 'IPC_aziOffset', CntrPar%IPC_aziOffset, 2, accINFILE(1), ErrVar ) - CALL ParseInput(UnControllerParameters,CurLine,'IPC_CornerFreqAct',accINFILE(1),CntrPar%IPC_CornerFreqAct,ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseAry( FileLines, 'IPC_Vramp', CntrPar%IPC_Vramp, 2, accINFILE(1), ErrVar, CntrPar%IPC_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'IPC_SatMode', CntrPar%IPC_SatMode, accINFILE(1), ErrVar, CntrPar%IPC_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'IPC_IntSat', CntrPar%IPC_IntSat, accINFILE(1), ErrVar, CntrPar%IPC_ControlMode == 0, UnEc) + CALL ParseAry( FileLines, 'IPC_KP', CntrPar%IPC_KP, 2, accINFILE(1), ErrVar, CntrPar%IPC_ControlMode == 0, UnEc) + CALL ParseAry( FileLines, 'IPC_KI', CntrPar%IPC_KI, 2, accINFILE(1), ErrVar, CntrPar%IPC_ControlMode == 0, UnEc) + CALL ParseAry( FileLines, 'IPC_aziOffset', CntrPar%IPC_aziOffset, 2, accINFILE(1), ErrVar, CntrPar%IPC_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'IPC_CornerFreqAct',CntrPar%IPC_CornerFreqAct, accINFILE(1), ErrVar, CntrPar%IPC_ControlMode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------------ VS TORQUE CONTROL CONSTANTS ---------------- - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'VS_GenEff',accINFILE(1),CntrPar%VS_GenEff,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'VS_ArSatTq',accINFILE(1),CntrPar%VS_ArSatTq,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'VS_MaxRat',accINFILE(1),CntrPar%VS_MaxRat,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'VS_MaxTq',accINFILE(1),CntrPar%VS_MaxTq,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'VS_MinTq',accINFILE(1),CntrPar%VS_MinTq,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'VS_MinOMSpd',accINFILE(1),CntrPar%VS_MinOMSpd,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'VS_Rgn2K',accINFILE(1),CntrPar%VS_Rgn2K,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'VS_RtPwr',accINFILE(1),CntrPar%VS_RtPwr,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'VS_RtTq',accINFILE(1),CntrPar%VS_RtTq,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'VS_RefSpd',accINFILE(1),CntrPar%VS_RefSpd,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'VS_n',accINFILE(1),CntrPar%VS_n,ErrVar) - CALL ParseAry(UnControllerParameters, CurLine, 'VS_KP', CntrPar%VS_KP, CntrPar%VS_n, accINFILE(1), ErrVar ) - CALL ParseAry(UnControllerParameters, CurLine, 'VS_KI', CntrPar%VS_KI, CntrPar%VS_n, accINFILE(1), ErrVar ) - CALL ParseInput(UnControllerParameters,CurLine,'VS_TSRopt',accINFILE(1),CntrPar%VS_TSRopt,ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'VS_GenEff', CntrPar%VS_GenEff, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseInput(FileLines, 'VS_ArSatTq', CntrPar%VS_ArSatTq, accINFILE(1), ErrVar, CntrPar%VS_ControlMode > 1, UnEc) + CALL ParseInput(FileLines, 'VS_MaxRat', CntrPar%VS_MaxRat, accINFILE(1), ErrVar, CntrPar%VS_ControlMode > 1, UnEc) + CALL ParseInput(FileLines, 'VS_MaxTq', CntrPar%VS_MaxTq, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseInput(FileLines, 'VS_MinTq', CntrPar%VS_MinTq, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseInput(FileLines, 'VS_MinOMSpd', CntrPar%VS_MinOMSpd, accINFILE(1), ErrVar) ! Default 0 is fin, UnEce + CALL ParseInput(FileLines, 'VS_Rgn2K', CntrPar%VS_Rgn2K, accINFILE(1), ErrVar, CntrPar%VS_ControlMode > 1, UnEc) + CALL ParseInput(FileLines, 'VS_RtPwr', CntrPar%VS_RtPwr, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseInput(FileLines, 'VS_RtTq', CntrPar%VS_RtTq, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseInput(FileLines, 'VS_RefSpd', CntrPar%VS_RefSpd, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseInput(FileLines, 'VS_n', CntrPar%VS_n, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseAry( FileLines, 'VS_KP', CntrPar%VS_KP, CntrPar%VS_n, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseAry( FileLines, 'VS_KI', CntrPar%VS_KI, CntrPar%VS_n, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseInput(FileLines, 'VS_TSRopt', CntrPar%VS_TSRopt, accINFILE(1), ErrVar, CntrPar%VS_ControlMode < 2, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------- Setpoint Smoother -------------------------------- - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'SS_VSGain',accINFILE(1),CntrPar%SS_VSGain,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'SS_PCGain',accINFILE(1),CntrPar%SS_PCGain,ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'SS_VSGain', CntrPar%SS_VSGain, accINFILE(1), ErrVar, CntrPar%SS_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'SS_PCGain', CntrPar%SS_PCGain, accINFILE(1), ErrVar, CntrPar%SS_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------------ WIND SPEED ESTIMATOR CONTANTS -------------- - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'WE_BladeRadius',accINFILE(1),CntrPar%WE_BladeRadius,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'WE_CP_n',accINFILE(1),CntrPar%WE_CP_n,ErrVar) - CALL ParseAry(UnControllerParameters, CurLine, 'WE_CP', CntrPar%WE_CP, CntrPar%WE_CP_n, accINFILE(1), ErrVar, .FALSE. ) - CALL ParseInput(UnControllerParameters,CurLine,'WE_Gamma',accINFILE(1),CntrPar%WE_Gamma,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'WE_GearboxRatio',accINFILE(1),CntrPar%WE_GearboxRatio,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'WE_Jtot',accINFILE(1),CntrPar%WE_Jtot,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'WE_RhoAir',accINFILE(1),CntrPar%WE_RhoAir,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PerfFileName',accINFILE(1),CntrPar%PerfFileName,ErrVar) - CALL ParseAry(UnControllerParameters, CurLine, 'PerfTableSize', CntrPar%PerfTableSize, 2, accINFILE(1), ErrVar ) - CALL ParseInput(UnControllerParameters,CurLine,'WE_FOPoles_N',accINFILE(1),CntrPar%WE_FOPoles_N,ErrVar) - CALL ParseAry(UnControllerParameters, CurLine, 'WE_FOPoles_v', CntrPar%WE_FOPoles_v, CntrPar%WE_FOPoles_N, accINFILE(1), ErrVar ) - CALL ParseAry(UnControllerParameters, CurLine, 'WE_FOPoles', CntrPar%WE_FOPoles, CntrPar%WE_FOPoles_N, accINFILE(1), ErrVar ) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'WE_BladeRadius', CntrPar%WE_BladeRadius, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseInput(FileLines, 'WE_Gamma', CntrPar%WE_Gamma, accINFILE(1), ErrVar, CntrPar%WE_Mode .NE. 1, UnEc) + CALL ParseInput(FileLines, 'WE_GearboxRatio', CntrPar%WE_GearboxRatio, accINFILE(1), ErrVar, .FALSE., UnEc) + CALL ParseInput(FileLines, 'WE_Jtot', CntrPar%WE_Jtot, accINFILE(1), ErrVar, CntrPar%WE_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'WE_RhoAir', CntrPar%WE_RhoAir, accINFILE(1), ErrVar, CntrPar%WE_Mode .NE. 2, UnEc) + CALL ParseInput(FileLines, 'PerfFileName', CntrPar%PerfFileName, accINFILE(1), ErrVar, CntrPar%WE_Mode == 0, UnEc ) + CALL ParseAry( FileLines, 'PerfTableSize', CntrPar%PerfTableSize, 2, accINFILE(1), ErrVar, CntrPar%WE_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'WE_FOPoles_N', CntrPar%WE_FOPoles_N, accINFILE(1), ErrVar, CntrPar%WE_Mode .NE. 2, UnEc) + CALL ParseAry(FileLines, 'WE_FOPoles_v', CntrPar%WE_FOPoles_v, CntrPar%WE_FOPoles_N, accINFILE(1), ErrVar, CntrPar%WE_Mode .NE. 2, UnEc) + CALL ParseAry(FileLines, 'WE_FOPoles', CntrPar%WE_FOPoles, CntrPar%WE_FOPoles_N, accINFILE(1), ErrVar, CntrPar%WE_Mode .NE. 2, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN + + ! Retired WSE inputs: not used anywhere in code + ! CALL ParseInput(FileLines, 'WE_CP_n',accINFILE(1),CntrPar%WE_CP_n,ErrVar, UnEc) + ! CALL ParseAry( FileLines, 'WE_CP', CntrPar%WE_CP, CntrPar%WE_CP_n, accINFILE(1), ErrVar, .FALSE. , UnEc) !-------------- YAW CONTROLLER CONSTANTS ----------------- - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'Y_uSwitch',accINFILE(1),CntrPar%Y_uSwitch,ErrVar) - CALL ParseAry(UnControllerParameters, CurLine, 'Y_ErrThresh', CntrPar%Y_ErrThresh, 2, accINFILE(1), ErrVar ) - CALL ParseInput(UnControllerParameters,CurLine,'Y_Rate',accINFILE(1),CntrPar%Y_Rate,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Y_MErrSet',accINFILE(1),CntrPar%Y_MErrSet,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Y_IPC_IntSat',accINFILE(1),CntrPar%Y_IPC_IntSat,ErrVar) - CALL ParseInput(UnControllerParameters, CurLine,'Y_IPC_KP', accINFILE(1), CntrPar%Y_IPC_KP, ErrVar ) - CALL ParseInput(UnControllerParameters, CurLine,'Y_IPC_KI', accINFILE(1), CntrPar%Y_IPC_KI, ErrVar ) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'Y_uSwitch', CntrPar%Y_uSwitch, accINFILE(1), ErrVar, CntrPar%Y_ControlMode == 0, UnEc) + CALL ParseAry( FileLines, 'Y_ErrThresh', CntrPar%Y_ErrThresh, 2, accINFILE(1), ErrVar, CntrPar%Y_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'Y_Rate', CntrPar%Y_Rate, accINFILE(1), ErrVar, CntrPar%Y_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'Y_MErrSet', CntrPar%Y_MErrSet, accINFILE(1), ErrVar, CntrPar%Y_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'Y_IPC_IntSat', CntrPar%Y_IPC_IntSat, accINFILE(1), ErrVar, CntrPar%Y_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'Y_IPC_KP', CntrPar%Y_IPC_KP, accINFILE(1), ErrVar, CntrPar%Y_ControlMode == 0, UnEc) + CALL ParseInput(FileLines, 'Y_IPC_KI', CntrPar%Y_IPC_KI, accINFILE(1), ErrVar, CntrPar%Y_ControlMode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------------ FORE-AFT TOWER DAMPER CONSTANTS ------------ - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'FA_KI',accINFILE(1),CntrPar%FA_KI,ErrVar) - ! Don't check this name until we make an API change - CALL ParseInput(UnControllerParameters,CurLine,'FA_HPFCornerFreq',accINFILE(1),CntrPar%FA_HPFCornerFreq,ErrVar,.FALSE.) - CALL ParseInput(UnControllerParameters,CurLine,'FA_IntSat',accINFILE(1),CntrPar%FA_IntSat,ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'FA_KI', CntrPar%FA_KI, accINFILE(1), ErrVar, .NOT. ((CntrPar%TD_Mode > 0) .OR. (CntrPar%Y_ControlMode == 2)), UnEc) + CALL ParseInput(FileLines, 'FA_HPFCornerFreq', CntrPar%FA_HPFCornerFreq, accINFILE(1), ErrVar, .NOT. ((CntrPar%TD_Mode > 0) .OR. (CntrPar%Y_ControlMode == 2)), UnEc) + CALL ParseInput(FileLines, 'FA_IntSat', CntrPar%FA_IntSat, accINFILE(1), ErrVar, .NOT. ((CntrPar%TD_Mode > 0) .OR. (CntrPar%Y_ControlMode == 2)), UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------------ PEAK SHAVING ------------ - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'PS_BldPitchMin_N',accINFILE(1),CntrPar%PS_BldPitchMin_N,ErrVar) - CALL ParseAry(UnControllerParameters, CurLine, 'PS_WindSpeeds', CntrPar%PS_WindSpeeds, CntrPar%PS_BldPitchMin_N, accINFILE(1), ErrVar ) - CALL ParseAry(UnControllerParameters, CurLine, 'PS_BldPitchMin', CntrPar%PS_BldPitchMin, CntrPar%PS_BldPitchMin_N, accINFILE(1), ErrVar ) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'PS_BldPitchMin_N', CntrPar%PS_BldPitchMin_N, accINFILE(1), ErrVar, CntrPar%PS_Mode == 0, UnEc) + CALL ParseAry( FileLines, 'PS_WindSpeeds', CntrPar%PS_WindSpeeds, CntrPar%PS_BldPitchMin_N, accINFILE(1), ErrVar, CntrPar%PS_Mode == 0, UnEc) + CALL ParseAry( FileLines, 'PS_BldPitchMin', CntrPar%PS_BldPitchMin, CntrPar%PS_BldPitchMin_N, accINFILE(1), ErrVar, CntrPar%PS_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------------ SHUTDOWN ------------ - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'SD_MaxPit',accINFILE(1),CntrPar%SD_MaxPit,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'SD_CornerFreq',accINFILE(1),CntrPar%SD_CornerFreq,ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'SD_MaxPit', CntrPar%SD_MaxPit, accINFILE(1), ErrVar, CntrPar%SD_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'SD_CornerFreq', CntrPar%SD_CornerFreq, accINFILE(1), ErrVar, CntrPar%SD_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------------ FLOATING ------------ - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'Fl_Kp',accINFILE(1),CntrPar%Fl_Kp,ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'Fl_Kp', CntrPar%Fl_Kp, accINFILE(1), ErrVar, CntrPar%FL_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------------ Flaps ------------ - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'Flp_Angle',accINFILE(1),CntrPar%Flp_Angle,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Flp_Kp',accINFILE(1),CntrPar%Flp_Kp,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Flp_Ki',accINFILE(1),CntrPar%Flp_Ki,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Flp_MaxPit',accINFILE(1),CntrPar%Flp_MaxPit,ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'Flp_Angle', CntrPar%Flp_Angle, accINFILE(1), ErrVar, CntrPar%Flp_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'Flp_Kp', CntrPar%Flp_Kp, accINFILE(1), ErrVar, CntrPar%Flp_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'Flp_Ki', CntrPar%Flp_Ki, accINFILE(1), ErrVar, CntrPar%Flp_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'Flp_MaxPit', CntrPar%Flp_MaxPit, accINFILE(1), ErrVar, CntrPar%Flp_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------------ Open loop input ------------ - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'OL_Filename',accINFILE(1),CntrPar%OL_Filename,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Ind_Breakpoint',accINFILE(1),CntrPar%Ind_Breakpoint,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Ind_BldPitch',accINFILE(1),CntrPar%Ind_BldPitch,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Ind_GenTq',accINFILE(1),CntrPar%Ind_GenTq,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'Ind_YawRate',accINFILE(1),CntrPar%Ind_YawRate,ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + ! Indices can be left 0 by default, checked later + CALL ParseInput(FileLines, 'OL_Filename', CntrPar%OL_Filename, accINFILE(1), ErrVar, CntrPar%OL_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'Ind_Breakpoint', CntrPar%Ind_Breakpoint, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines, 'Ind_BldPitch', CntrPar%Ind_BldPitch, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines, 'Ind_GenTq', CntrPar%Ind_GenTq, accINFILE(1), ErrVar, UnEc=UnEc) + CALL ParseInput(FileLines, 'Ind_YawRate', CntrPar%Ind_YawRate, accINFILE(1), ErrVar, UnEc=UnEc) + IF (ErrVar%aviFAIL < 0) RETURN + !------------ Pitch Actuator Inputs ------------ - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'PA_CornerFreq',accINFILE(1),CntrPar%PA_CornerFreq,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'PA_Damping',accINFILE(1),CntrPar%PA_Damping,ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'PA_CornerFreq', CntrPar%PA_CornerFreq, accINFILE(1), ErrVar, CntrPar%PA_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'PA_Damping', CntrPar%PA_Damping, accINFILE(1), ErrVar, CntrPar%PA_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------------ Pitch Actuator Faults ------------ - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseAry(UnControllerParameters, CurLine,'PF_Offsets', CntrPar%PF_Offsets, 3, accINFILE(1), ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) - + CALL ParseAry(FileLines, 'PF_Offsets', CntrPar%PF_Offsets, 3, accINFILE(1), ErrVar, CntrPar%PF_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN + + !------------ AWC input ------------ + CALL ParseInput(FileLines, 'AWC_NumModes', CntrPar%AWC_NumModes, accINFILE(1), ErrVar, CntrPar%AWC_Mode == 0, UnEc) + CALL ParseAry( FileLines, 'AWC_n', CntrPar%AWC_n, CntrPar%AWC_NumModes, accINFILE(1), ErrVar, CntrPar%AWC_Mode /= 1, UnEc) + CALL ParseAry( FileLines, 'AWC_harmonic', CntrPar%AWC_harmonic, CntrPar%AWC_NumModes, accINFILE(1), ErrVar, CntrPar%AWC_Mode < 2, UnEc) + CALL ParseAry( FileLines, 'AWC_freq', CntrPar%AWC_freq, CntrPar%AWC_NumModes, accINFILE(1), ErrVar, CntrPar%AWC_Mode == 0, UnEc) + CALL ParseAry( FileLines, 'AWC_amp', CntrPar%AWC_amp, CntrPar%AWC_NumModes, accINFILE(1), ErrVar, CntrPar%AWC_Mode == 0, UnEc) + CALL ParseAry( FileLines, 'AWC_clockangle', CntrPar%AWC_clockangle, CntrPar%AWC_NumModes, accINFILE(1), ErrVar, CntrPar%AWC_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN + !------------ External control interface ------------ - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'DLL_FileName',accINFILE(1),CntrPar%DLL_FileName,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'DLL_InFile',accINFILE(1),CntrPar%DLL_InFile,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'DLL_ProcName',accINFILE(1),CntrPar%DLL_ProcName,ErrVar) - CALL ReadEmptyLine(UnControllerParameters,CurLine) + CALL ParseInput(FileLines, 'DLL_FileName', CntrPar%DLL_FileName, accINFILE(1), ErrVar, CntrPar%Ext_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'DLL_InFile', CntrPar%DLL_InFile, accINFILE(1), ErrVar, CntrPar%Ext_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'DLL_ProcName', CntrPar%DLL_ProcName, accINFILE(1), ErrVar, CntrPar%Ext_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN !------------ ZeroMQ ------------ - CALL ReadEmptyLine(UnControllerParameters,CurLine) - CALL ParseInput(UnControllerParameters,CurLine,'ZMQ_CommAddress',accINFILE(1), CntrPar%ZMQ_CommAddress,ErrVar) - CALL ParseInput(UnControllerParameters,CurLine,'ZMQ_UpdatePeriod',accINFILE(1), CntrPar%ZMQ_UpdatePeriod,ErrVar) + CALL ParseInput(FileLines, 'ZMQ_CommAddress', CntrPar%ZMQ_CommAddress, accINFILE(1), ErrVar, CntrPar%ZMQ_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'ZMQ_UpdatePeriod', CntrPar%ZMQ_UpdatePeriod, accINFILE(1), ErrVar, CntrPar%ZMQ_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN - ! Fix Paths (add relative paths if called from another dir) - IF (PathIsRelative(CntrPar%PerfFileName)) CntrPar%PerfFileName = TRIM(PriPath)//TRIM(CntrPar%PerfFileName) - IF (PathIsRelative(CntrPar%OL_Filename)) CntrPar%OL_Filename = TRIM(PriPath)//TRIM(CntrPar%OL_Filename) - - ! Read open loop input, if desired - IF (CntrPar%OL_Mode == 1) THEN - OL_String = '' ! Display string - OL_Count = 1 - IF (CntrPar%Ind_BldPitch > 0) THEN - OL_String = TRIM(OL_String)//' BldPitch ' - OL_Count = OL_Count + 1 - ENDIF + !------------- Cable Control ----- + CALL ParseInput(FileLines, 'CC_Group_N', CntrPar%CC_Group_N, accINFILE(1), ErrVar, CntrPar%CC_Mode == 0, UnEc) + CALL ParseAry( FileLines, 'CC_GroupIndex', CntrPar%CC_GroupIndex, CntrPar%CC_Group_N, accINFILE(1), ErrVar, CntrPar%CC_Mode == 0, UnEc) + CALL ParseInput(FileLines, 'CC_ActTau', CntrPar%CC_ActTau, accINFILE(1), ErrVar, CntrPar%CC_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN - IF (CntrPar%Ind_GenTq > 0) THEN - OL_String = TRIM(OL_String)//' GenTq ' - OL_Count = OL_Count + 1 - ENDIF + !------------- StC Control ----- + CALL ParseInput(FileLines, 'StC_Group_N', CntrPar%StC_Group_N, accINFILE(1), ErrVar, CntrPar%StC_Mode == 0, UnEc) + CALL ParseAry( FileLines, 'StC_GroupIndex', CntrPar%StC_GroupIndex, CntrPar%StC_Group_N, accINFILE(1), ErrVar, CntrPar%StC_Mode == 0, UnEc) + IF (ErrVar%aviFAIL < 0) RETURN - IF (CntrPar%Ind_YawRate > 0) THEN - OL_String = TRIM(OL_String)//' YawRate ' - OL_Count = OL_Count + 1 - ENDIF + ! Open loop cable, structural control, needs number of groups + CALL ParseAry( FileLines, 'Ind_CableControl', CntrPar%Ind_CableControl, CntrPar%CC_Group_N, accINFILE(1), ErrVar, CntrPar%CC_Mode .NE. 2, UnEc=UnEc) + CALL ParseAry( FileLines, 'Ind_StructControl', CntrPar%Ind_StructControl, CntrPar%StC_Group_N, accINFILE(1), ErrVar, CntrPar%StC_Mode .NE. 2, UnEc=UnEc) + IF (ErrVar%aviFAIL < 0) RETURN - PRINT *, 'ROSCO: Implementing open loop control for'//TRIM(OL_String) - CALL Read_OL_Input(CntrPar%OL_Filename,110_IntKi,OL_Count,CntrPar%OL_Channels, ErrVar) + IF (UnEc > 0) CLOSE(UnEc) ! Close echo file - CntrPar%OL_Breakpoints = CntrPar%OL_Channels(:,CntrPar%Ind_Breakpoint) - - IF (CntrPar%Ind_BldPitch > 0) THEN - CntrPar%OL_BldPitch = CntrPar%OL_Channels(:,CntrPar%Ind_BldPitch) - ENDIF - - IF (CntrPar%Ind_GenTq > 0) THEN - CntrPar%OL_GenTq = CntrPar%OL_Channels(:,CntrPar%Ind_GenTq) - ENDIF - - IF (CntrPar%Ind_YawRate > 0) THEN - CntrPar%OL_YawRate = CntrPar%OL_Channels(:,CntrPar%Ind_YawRate) - ENDIF - END IF + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! Fix Paths (add relative paths if called from another dir, UnEc) + IF (PathIsRelative(CntrPar%PerfFileName)) CntrPar%PerfFileName = TRIM(PriPath)//TRIM(CntrPar%PerfFileName) + IF (PathIsRelative(CntrPar%OL_Filename)) CntrPar%OL_Filename = TRIM(PriPath)//TRIM(CntrPar%OL_Filename) + ! Convert yaw rate to deg/s CntrPar%Y_Rate = CntrPar%Y_Rate * R2D - ! Debugging outputs (echo someday) - ! write(400,*) CntrPar%OL_YawRate - ! END OF INPUT FILE ! Close Input File @@ -488,6 +615,7 @@ SUBROUTINE ReadControlParameterFileSub(CntrPar, zmqVar, accINFILE, accINFILE_siz !------------------- HOUSEKEEPING ----------------------- CntrPar%PerfFileName = TRIM(CntrPar%PerfFileName) + ! Add RoutineName to error message IF (ErrVar%aviFAIL < 0) THEN @@ -575,10 +703,14 @@ SUBROUTINE CheckInputs(LocalVar, CntrPar, avrSWAP, ErrVar, size_avcMSG) TYPE(LocalVariables), INTENT(IN ) :: LocalVar TYPE(ErrorVariables), INTENT(INOUT) :: ErrVar INTEGER(IntKi), INTENT(IN ) :: size_avcMSG + INTEGER(IntKi) :: Imode ! Index used for looping through AWC modes REAL(ReKi), INTENT(IN ) :: avrSWAP(*) ! The swap array, used to pass data to, and receive data from, the DLL controller. CHARACTER(*), PARAMETER :: RoutineName = 'CheckInputs' ! Local + + INTEGER(IntKi) :: I + INTEGER(IntKi), ALLOCATABLE :: All_OL_Indices(:) !.............................................................................................................................. ! Check validity of input parameters: @@ -725,12 +857,6 @@ SUBROUTINE CheckInputs(LocalVar, CntrPar, avrSWAP, ErrVar, size_avcMSG) ErrVar%ErrMsg = 'F_WECornerFreq must be greater than zero.' ENDIF - ! F_FlHighPassFreq - IF (CntrPar%F_FlHighPassFreq <= 0.0) THEN - ErrVar%aviFAIL = -1 - ErrVar%ErrMsg = 'F_FlHighPassFreq must be greater than zero.' - ENDIF - IF (CntrPar%Fl_Mode > 0) THEN ! F_FlCornerFreq(1) (frequency) IF (CntrPar%F_FlCornerFreq(1) <= 0.0) THEN @@ -743,6 +869,12 @@ SUBROUTINE CheckInputs(LocalVar, CntrPar, avrSWAP, ErrVar, size_avcMSG) ErrVar%aviFAIL = -1 ErrVar%ErrMsg = 'F_FlCornerFreq(2) must be greater than zero.' ENDIF + + ! F_FlHighPassFreq + IF (CntrPar%F_FlHighPassFreq <= 0.0) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'F_FlHighPassFreq must be greater than zero.' + ENDIF ENDIF IF (CntrPar%Flp_Mode > 0) THEN @@ -943,9 +1075,8 @@ SUBROUTINE CheckInputs(LocalVar, CntrPar, avrSWAP, ErrVar, size_avcMSG) ENDIF ! WE_FOPoles_v - IF (.NOT. NonDecreasing(CntrPar%WE_FOPoles_v)) THEN + IF (CntrPar%WE_Mode == 2 .AND. .NOT. NonDecreasing(CntrPar%WE_FOPoles_v)) THEN ErrVar%aviFAIL = -1 - write(400,*) CntrPar%WE_FOPoles_v ErrVar%ErrMsg = 'WE_FOPoles_v must be non-decreasing.' ENDIF @@ -991,12 +1122,52 @@ SUBROUTINE CheckInputs(LocalVar, CntrPar, avrSWAP, ErrVar, size_avcMSG) ENDIF ! --- Open loop control --- - IF (((CntrPar%Ind_Breakpoint) < 0) .OR. & - (CntrPar%Ind_BldPitch < 0) .OR. & - (CntrPar%Ind_GenTq < 0) .OR. & - (CntrPar%Ind_YawRate < 0)) THEN - ErrVar%aviFAIL = -1 - ErrVar%ErrMsg = 'All open loop control indices must be greater than zero' + IF (CntrPar%OL_Mode > 0) THEN + ! Get all open loop indices + ALLOCATE(All_OL_Indices(3)) ! Will need to increase to 5 when IPC + All_OL_Indices = (/CntrPar%Ind_BldPitch, & + CntrPar%Ind_GenTq, & + CntrPar%Ind_YawRate/) + + DO I = 1,SIZE(CntrPar%Ind_CableControl) + Call AddToList(All_OL_Indices, CntrPar%Ind_CableControl(I)) + ENDDO + + DO I = 1,SIZE(CntrPar%Ind_StructControl) + Call AddToList(All_OL_Indices, CntrPar%Ind_StructControl(I)) + ENDDO + + IF (ANY(All_OL_Indices < 0)) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'All open loop control indices must be greater than zero' + ENDIF + + IF (CntrPar%Ind_Breakpoint < 1) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'Ind_Breakpoint must be non-zero if OL_Mode is non-zero' + ENDIF + + IF (ALL(All_OL_Indices < 1)) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'At least one open loop input channel must be non-zero' + ENDIF + + IF (ANY(CntrPar%Ind_CableControl > 0) .AND. CntrPar%CC_Mode .NE. 2) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'CC_Mode must be 2 if using open loop cable control via Ind_CableControl' + ENDIF + + IF (ANY(CntrPar%Ind_StructControl > 0) .AND. CntrPar%StC_Mode .NE. 2) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'CC_Mode must be 2 if using open loop struct control via Ind_StructControl' + ENDIF + + + ENDIF + + ! ---- AWC vs. IPC + IF (CntrPar%AWC_Mode > 0 .AND. CntrPar%IPC_ControlMode > 0) THEN + PRINT *, "ROSCO WARNING: Individual pitch control and active wake control are both enabled. Performance may be compromised." ENDIF ! --- Pitch Actuator --- @@ -1014,6 +1185,88 @@ SUBROUTINE CheckInputs(LocalVar, CntrPar, avrSWAP, ErrVar, size_avcMSG) ErrVar%ErrMsg = 'PA_Damping must be greater than 0' END IF END IF + + ! --- Active Wake Control --- + IF (CntrPar%AWC_Mode > 0) THEN + IF (CntrPar%AWC_NumModes < 0) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'AWC_NumModes must be a positive integer if AWC_Mode = 1' + END IF + DO Imode = 1,CntrPar%AWC_NumModes + IF (CntrPar%AWC_freq(Imode) < 0.0) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'AWC_freq cannot be less than 0' + END IF + IF (CntrPar%AWC_amp(Imode) < 0.0) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'AWC_amp cannot be less than 0' + END IF + END DO + IF (CntrPar%AWC_Mode == 1) THEN + DO Imode = 1,CntrPar%AWC_NumModes + IF ((CntrPar%AWC_clockangle(Imode) > 360.0) .OR. (CntrPar%AWC_clockangle(Imode) < 0.0)) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'AWC_clockangle must be between 0 and 360 in AWC_Mode = 1' + END IF + END DO + END IF + + IF (CntrPar%AWC_Mode == 2) THEN + IF ((CntrPar%AWC_NumModes > 2) .OR. (CntrPar%AWC_NumModes < 1)) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'AWC_NumModes must be either 1 or 2 if AWC_Mode = 2' + END IF + DO Imode = 1,CntrPar%AWC_NumModes + IF ((CntrPar%AWC_clockangle(Imode) > 360.0) .OR. (CntrPar%AWC_clockangle(Imode) < -360.0)) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'AWC_clockangle must be between -360 and 360 in AWC_Mode = 2' + END IF + IF (CntrPar%AWC_harmonic(Imode) < 0) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'AWC_harmonic must be a positive integer' + END IF + END DO + END IF + END IF + + IF ((CntrPar%CC_Mode < 0) .OR. (CntrPar%CC_Mode > 2)) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'CC_Mode must be 0 or 1' + END IF + + IF (CntrPar%CC_Mode > 0) THEN + IF (CntrPar%CC_ActTau .LE. 0) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'CC_ActTau must be greater than 0.' + END IF + + DO I = 1,CntrPar%CC_Group_N + IF (CntrPar%CC_GroupIndex(I) < 2601) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'CC_GroupIndices must be greater than 2601.' !< Starting index for the cable control + END IF + END DO + END IF + + IF (CntrPar%StC_Mode > 0) THEN + DO I = 1,CntrPar%StC_Group_N + IF (CntrPar%StC_GroupIndex(I) < 2801) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'StC_GroupIndices must be greater than 2801.' !< Starting index for the cable control + END IF + END DO + END IF + + ! Check that open loop control active if using open loop cable/struct control + IF (CntrPar%CC_Mode == 2 .AND. CntrPar%OL_Mode .NE. 1) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'OL_Mode must be 1 if using CC_Mode = 2 (open loop)' + END IF + + IF (CntrPar%StC_Mode == 2 .AND. CntrPar%OL_Mode .NE. 1) THEN + ErrVar%aviFAIL = -1 + ErrVar%ErrMsg = 'OL_Mode must be 1 if using StC_Mode = 2 (open loop)' + END IF diff --git a/ROSCO_testing/ROSCO_testing.py b/ROSCO_testing/ROSCO_testing.py index 55c5d60f..7ddfea70 100644 --- a/ROSCO_testing/ROSCO_testing.py +++ b/ROSCO_testing/ROSCO_testing.py @@ -17,7 +17,6 @@ import glob import multiprocessing as mp -import ROSCO_toolbox.ofTools.fast_io.read_fast_input as fast_io from ROSCO_toolbox.ofTools.fast_io.FAST_reader import InputReader_OpenFAST from ROSCO_toolbox.ofTools.case_gen.CaseGen_IEC import CaseGen_IEC from ROSCO_toolbox.ofTools.case_gen.runFAST_pywrapper import runFAST_pywrapper_batch @@ -297,6 +296,7 @@ def ROSCO_Test_heavy(self, more_case_inputs={}, U=[]): iec.D = fastRead.fst_vt['ElastoDyn']['TipRad']*2. iec.z_hub = fastRead.fst_vt['InflowWind']['RefHt'] iec.TMax = self.TMax + iec.TStart = 300 iec.dlc_inputs = {} iec.dlc_inputs['DLC'] = [1.3, 1.4] @@ -339,7 +339,7 @@ def ROSCO_Test_heavy(self, more_case_inputs={}, U=[]): case_inputs[('ServoDyn', 'DLL_FileName')] = {'vals': [self.rosco_path], 'group': 0} case_inputs[("AeroDyn15", "WakeMod")] = {'vals': [1], 'group': 0} - case_inputs[("AeroDyn15", "AFAeroMod")] = {'vals': [2], 'group': 0} + case_inputs[("AeroDyn15", "AFAeroMod")] = {'vals': [1], 'group': 0} case_inputs[("AeroDyn15", "TwrPotent")] = {'vals': [0], 'group': 0} case_inputs[("AeroDyn15", "TwrShadow")] = {'vals': ['False'], 'group': 0} case_inputs[("AeroDyn15", "TwrAero")] = {'vals': ['False'], 'group': 0} @@ -544,6 +544,8 @@ def print_results(self,outfiles): if __name__=='__main__': rt = ROSCO_testing() + this_dir = os.path.dirname(__file__) + ## =================== INITIALIZATION =================== # Setup simulation parameters @@ -552,14 +554,14 @@ def print_results(self,outfiles): rt.Turbsim_exe = 'turbsim' # Turbsim executable path # path to compiled ROSCO controller if platform.system() == 'Windows': - rt.rosco_path = os.path.join(os.getcwd(), '../ROSCO/build/libdiscon.dll') + rt.rosco_path = os.path.join(this_dir, '../ROSCO/build/libdiscon.dll') elif platform.system() == 'Darwin': - rt.rosco_path = os.path.join(os.getcwd(), '../ROSCO/build/libdiscon.dylib') + rt.rosco_path = os.path.join(this_dir, '../ROSCO/build/libdiscon.dylib') else: - rt.rosco_path = os.path.join(os.getcwd(), '../ROSCO/build/libdiscon.so') + rt.rosco_path = os.path.join(this_dir, '../ROSCO/build/libdiscon.so') rt.debug_level = 2 # debug level. 0 - no outputs, 1 - minimal outputs, 2 - all outputs rt.overwrite = True # overwite fast sims? - rt.cores = 4 # number of cores if multiprocessings + rt.cores = 1 # number of cores if multiprocessings rt.mpi_run = False # run using mpi rt.mpi_comm_map_down = [] # core mapping for MPI rt.outfile_fmt = 2 # 1 = .txt, 2 = binary, 3 = both @@ -567,7 +569,7 @@ def print_results(self,outfiles): # Setup turbine rt.Turbine_Class = 'I' rt.Turbulence_Class = 'B' - rt.FAST_directory = os.path.join(os.getcwd(), '../Test_Cases/IEA-15-240-RWT-UMaineSemi') + rt.FAST_directory = os.path.join(this_dir, '../Test_Cases/IEA-15-240-RWT-UMaineSemi') rt.FAST_InputFile = 'IEA-15-240-RWT-UMaineSemi.fst' # Additional inputs @@ -583,7 +585,7 @@ def print_results(self,outfiles): case_inputs[('DISCON_in', 'WE_Mode')] = {'vals': [2], 'group': 0} # Wind Speeds - U = [5, 9, 12, 15] + U = [5] # Run test rt.ROSCO_Test_lite(more_case_inputs=case_inputs, U=U) diff --git a/ROSCO_toolbox/__init__.py b/ROSCO_toolbox/__init__.py index 092377ed..e200b2d2 100644 --- a/ROSCO_toolbox/__init__.py +++ b/ROSCO_toolbox/__init__.py @@ -3,4 +3,4 @@ __author__ = """Nikhar J. Abbas and Daniel S. Zalkind""" __email__ = 'daniel.zalkind@nrel.gov' -__version__ = '2.7.0' +__version__ = '2.8.0' diff --git a/ROSCO_toolbox/control_interface.py b/ROSCO_toolbox/control_interface.py index b3ad2777..4d17dba2 100644 --- a/ROSCO_toolbox/control_interface.py +++ b/ROSCO_toolbox/control_interface.py @@ -82,6 +82,8 @@ def init_discon(self): self.avrSWAP[32] = 0 * np.deg2rad(1) self.avrSWAP[33] = 0 * np.deg2rad(1) + self.avrSWAP[27] = 1 # IPC + # Torque initial condition self.avrSWAP[22] = 0 diff --git a/ROSCO_toolbox/controller.py b/ROSCO_toolbox/controller.py index f7cae56a..c5896517 100644 --- a/ROSCO_toolbox/controller.py +++ b/ROSCO_toolbox/controller.py @@ -63,10 +63,13 @@ def __init__(self, controller_params): self.Fl_Mode = controller_params['Fl_Mode'] self.TD_Mode = controller_params['TD_Mode'] self.Flp_Mode = controller_params['Flp_Mode'] - self.PA_Mode = controller_params['PA_Mode'] - self.PF_Mode = controller_params['PF_Mode'] + self.PA_Mode = controller_params['PA_Mode'] + self.PF_Mode = controller_params['PF_Mode'] + self.AWC_Mode = controller_params['AWC_Mode'] self.Ext_Mode = controller_params['Ext_Mode'] self.ZMQ_Mode = controller_params['ZMQ_Mode'] + self.CC_Mode = controller_params['CC_Mode'] + self.StC_Mode = controller_params['StC_Mode'] # Necessary parameters self.U_pc = list_check(controller_params['U_pc'], return_bool=False) @@ -139,6 +142,8 @@ def __init__(self, controller_params): self.OL_Mode = int(controller_params['open_loop']['flag']) self.OL_Filename = controller_params['open_loop']['filename'] self.OL_Ind_Breakpoint = self.OL_Ind_BldPitch = self.OL_Ind_GenTq = self.OL_Ind_YawRate = 0 + self.OL_Ind_CableControl = [0] + self.OL_Ind_StructControl = [0] if self.OL_Mode: ol_params = controller_params['open_loop'] @@ -146,6 +151,8 @@ def __init__(self, controller_params): self.OL_Ind_BldPitch = ol_params['OL_Ind_BldPitch'] self.OL_Ind_GenTq = ol_params['OL_Ind_GenTq'] self.OL_Ind_YawRate = ol_params['OL_Ind_YawRate'] + self.OL_Ind_CableControl = ol_params['OL_Ind_CableControl'] + self.OL_Ind_StructControl = ol_params['OL_Ind_StructControl'] # Check that file exists because we won't write it if not os.path.exists(self.OL_Filename): @@ -665,7 +672,7 @@ def __init__(self, **kwargs): self.ol_timeseries = {} self.ol_timeseries['time'] = np.arange(0,self.t_max,self.dt) - self.allowed_controls = ['blade_pitch','generator_torque','nacelle_yaw','nacelle_yaw_rate'] + self.allowed_controls = ['blade_pitch','generator_torque','nacelle_yaw','nacelle_yaw_rate','cable_control','struct_control'] def const_timeseries(self,control,value): @@ -684,7 +691,8 @@ def interp_timeseries(self,control,breakpoints,values,method='sigma'): if len(breakpoints) != len(values): raise Exception('Open loop breakpoints and values do not have the same length') - if control not in self.allowed_controls: + # Check if control in allowed controls, cable_control_* is in cable_control + if not any([ac in control for ac in self.allowed_controls]): raise Exception(f'Open loop control of {control} is not allowed') else: @@ -749,8 +757,11 @@ def write_input(self,ol_filename): ol_timeseries = self.ol_timeseries + # Init indices OL_Ind_Breakpoint = 1 OL_Ind_BldPitch = OL_Ind_GenTq = OL_Ind_YawRate = 0 + OL_Ind_CableControl = [] + OL_Ind_StructControl = [] self.OL_Ind_Breakpoint = 1 ol_index_counter = 2 # start input index at 2 @@ -782,6 +793,32 @@ def write_input(self,ol_filename): if 'nacelle_yaw' in ol_timeseries and 'nacelle_yaw_rate' not in ol_timeseries: raise Exception('nacelle_yaw is in ol_timeseries and nacelle_yaw_rate is not. ROSCO can only command yaw rate. Use compute_yaw_rate() to convert.') + # Cable control + is_cable_chan = np.array(['cable_control' in ol_chan for ol_chan in ol_timeseries.keys()]) + if any(is_cable_chan): + # if any channels are cable_control_* + n_cable_chan = np.sum(is_cable_chan) + cable_chan_names = np.array(list(ol_timeseries.keys()))[is_cable_chan] + + # Let's assume they are 1-indexed and all there, otherwise a key error will be thrown + for cable_chan in cable_chan_names: + ol_control_array = np.c_[ol_control_array,ol_timeseries[cable_chan]] + OL_Ind_CableControl.append(ol_index_counter) + ol_index_counter += 1 + + # Struct control + is_struct_chan = ['struct_control' in ol_chan for ol_chan in ol_timeseries.keys()] + if any(is_struct_chan): + # if any channels are struct_control_* + n_struct_chan = np.sum(np.array(is_struct_chan)) + + # Let's assume they are 1-indexed and all there, otherwise a key error will be thrown + for i_chan in range(1,n_struct_chan+1): + ol_control_array = np.c_[ol_control_array,ol_timeseries[f'struct_control_{i_chan}']] + OL_Ind_StructControl.append(ol_index_counter) + ol_index_counter += 1 + + # Open file if not os.path.exists(os.path.dirname(os.path.abspath(ol_filename))): os.makedirs(os.path.dirname(os.path.abspath(ol_filename))) @@ -802,6 +839,20 @@ def write_input(self,ol_filename): header_line += '\t\tYawRate' unit_line += '\t\t(rad/s)' + if OL_Ind_CableControl: + for i_chan in range(1,n_cable_chan+1): + header_line += f'\t\tCable{i_chan}' + unit_line += '\t\t(m)' + else: + OL_Ind_CableControl = [0] + + if OL_Ind_StructControl: + for i_chan in range(1,n_struct_chan+1): + header_line += f'\t\tStruct{i_chan}' + unit_line += '\t\t(m)' + else: + OL_Ind_StructControl = [0] + header_line += '\n' unit_line += '\n' @@ -821,6 +872,8 @@ def write_input(self,ol_filename): open_loop['OL_Ind_BldPitch'] = OL_Ind_BldPitch open_loop['OL_Ind_GenTq'] = OL_Ind_GenTq open_loop['OL_Ind_YawRate'] = OL_Ind_YawRate + open_loop['OL_Ind_CableControl'] = OL_Ind_CableControl + open_loop['OL_Ind_StructControl'] = OL_Ind_StructControl return open_loop diff --git a/ROSCO_toolbox/inputs/toolbox_schema.yaml b/ROSCO_toolbox/inputs/toolbox_schema.yaml index 432785df..80a5486d 100644 --- a/ROSCO_toolbox/inputs/toolbox_schema.yaml +++ b/ROSCO_toolbox/inputs/toolbox_schema.yaml @@ -99,7 +99,7 @@ properties: type: number description: 0- write no debug files, 1- write standard output .dbg-file, 2- write standard output .dbg-file and complete avrSWAP-array .dbg2-file minimum: 0 - maximum: 2 + maximum: 3 default: 1 F_LPFType: type: number @@ -203,12 +203,30 @@ properties: maximum: 1 default: 0 description: Pitch fault mode {0 - not used, 1 - constant offset on one or more blades} + AWC_Mode: + type: number + minimum: 0 + maximum: 2 + default: 0 + description: Active wake control mode {0 - not used, 1 - SNL method, 2 - NREL method} Ext_Mode: type: number minimum: 0 maximum: 1 default: 0 - description: External control mode {{0 - not used, 1 - call external dynamic library}} + description: External control mode [0 - not used, 1 - call external dynamic library] + CC_Mode: + type: number + minimum: 0 + maximum: 2 + default: 0 + description: Cable control mode [0- unused, 1- User defined, 2- Open loop control] + StC_Mode: + type: number + minimum: 0 + maximum: 2 + default: 0 + description: Structural control mode [0- unused, 1- User defined, 2- Open loop control] U_pc: type: array description: List of wind speeds to schedule pitch control zeta and omega @@ -468,6 +486,10 @@ properties: LoggingLevel: type: number description: (0- write no debug files, 1- write standard output .dbg-file, 2- write standard output .dbg-file and complete avrSWAP-array .dbg2-file) + Echo: + type: number + description: 0 - no Echo, 1 - Echo input data to .echo + default: 0 F_LPFType: type: number description: 1- first-order low-pass filter, 2- second-order low-pass filter (currently filters generator speed and pitch control signals @@ -846,6 +868,18 @@ properties: Ind_YawRate: type: number description: The column in OL_Filename that contains the generator torque in Nm + Ind_CableControl: + type: array + items: + type: number + description: The column in OL_Filename that contains the cable control inputs in m + # default: [0] # No default because it's defined in controller and DISCON_Dict + Ind_StructControl: + type: array + items: + type: number + description: The column in OL_Filename that contains the structural control inputs in various units + # default: [0] # No default because it's defined in controller and DISCON_Dict DLL_FileName: type: string description: Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format @@ -864,6 +898,75 @@ properties: type: number description: Pitch angle offsets for each blade (array with length of 3) units: rad + default: [0,0,0] + CC_Group_N: + type: number + description: Number of cable control groups + default: 0 + CC_GroupIndex: + type: array + items: + type: number + description: First index for cable control group, should correspond to deltaL + default: [0] + CC_ActTau: + type: number + description: Time constant for line actuator [s] + default: 20 + StC_Group_N: + type: number + description: Number of cable control groups + default: 0 + StC_GroupIndex: + type: array + items: + type: number + description: First index for structural control group, options specified in ServoDyn summary output + default: [0] + AWC_Mode: + type: number + minimum: 0 + maximum: 2 + default: 0 + description: Active wake control mode {0 - not used, 1 - complex number method, 2 - Coleman transformation method} + AWC_NumModes: + type: number + description: Number of AWC modes + units: rad + default: 1 + AWC_n: + type: array + items: + type: number + description: AWC azimuthal number (only used in complex number method) + default: [1] + AWC_harmonic: + type: array + items: + type: integer + description: AWC Coleman transform harmonic (only used in Coleman transform method) + default: [1] + AWC_freq: + type: array + items: + type: number + description: AWC frequency [Hz] + units: Hz + default: [0.05] + AWC_amp: + type: array + items: + type: number + description: AWC amplitude [deg] + units: deg + default: [1.0] + AWC_clockangle: + type: array + items: + type: number + description: AWC clock angle [deg] + units: deg + default: [0] linmodel_tuning: type: object diff --git a/ROSCO_toolbox/ofTools/case_gen/CaseGen_IEC.py b/ROSCO_toolbox/ofTools/case_gen/CaseGen_IEC.py index 408cb189..d8cdb4ec 100644 --- a/ROSCO_toolbox/ofTools/case_gen/CaseGen_IEC.py +++ b/ROSCO_toolbox/ofTools/case_gen/CaseGen_IEC.py @@ -151,6 +151,9 @@ def execute(self, case_inputs={}): iecwind_ex.setup() _, V_e50, V_e1, V_50, V_1 = iecwind_ex.EWM(0.) + if dlc == 1.4: + case_inputs_i[("AeroDyn15","AFAeroMod")]= {'vals':[1], 'group':0} + if dlc == 5.1: case_inputs_i[("ServoDyn","TPitManS1")] = {'vals':[self.TStart], 'group':0} diff --git a/ROSCO_toolbox/ofTools/case_gen/CaseLibrary.py b/ROSCO_toolbox/ofTools/case_gen/CaseLibrary.py index aa4d1ce4..e6aef0bf 100644 --- a/ROSCO_toolbox/ofTools/case_gen/CaseLibrary.py +++ b/ROSCO_toolbox/ofTools/case_gen/CaseLibrary.py @@ -127,7 +127,7 @@ def power_curve(**wind_case_opts): # Constant wind speed, multiple wind speeds, define below # Runtime - T_max = 400. + T_max = wind_case_opts.get('TMax',400.) if 'U' in wind_case_opts: U = wind_case_opts['U'] @@ -363,6 +363,42 @@ def user_hh(**wind_case_opts): case_inputs[("InflowWind","Filename_Uni")] = {'vals':wind_case_opts['wind_filenames'], 'group':1} return case_inputs + +def ramp(**wind_case_opts): + U_start = wind_case_opts.get('U_start',8.) + U_end = wind_case_opts.get('U_end',15.) + t_start = wind_case_opts.get('t_start',100.) + t_end = wind_case_opts.get('t_end',400.) + vert_shear = wind_case_opts.get('vert_shear',.2) + both_dir = wind_case_opts.get('both_dir',False) # ramp up and down + + # Make Default step wind object + hh_wind = HH_WindFile() + hh_wind.t_max = t_end + hh_wind.filename = os.path.join(wind_case_opts['run_dir'],'ramp.hh') + + # Step Wind Setup + if both_dir: + hh_wind.time = [0, t_start, (t_start + t_end) / 2, t_end] + hh_wind.wind_speed = [U_start, U_start, U_end, U_start] + else: + hh_wind.time = [0, t_start, t_end] + hh_wind.wind_speed = [U_start, U_start, U_end] + + hh_wind.vert_shear = [vert_shear] * len(hh_wind.time) + + hh_wind.resample() + hh_wind.write() + + case_inputs = base_op_case() + case_inputs[("Fst","TMax")] = {'vals':[t_end], 'group':0} + case_inputs[("InflowWind","WindType")] = {'vals':[2], 'group':0} + case_inputs[("InflowWind","Filename_Uni")] = {'vals':[hh_wind.filename], 'group':0} + + return case_inputs + + + ############################################################################################## # @@ -432,9 +468,9 @@ def sweep_pitch_act(start_group, **control_sweep_opts): def sweep_ipc_gains(start_group, **control_sweep_opts): case_inputs_control = {} - kis = np.linspace(0,1,6).tolist() + kis = np.linspace(0,1,8).tolist() # kis = [0.,0.6,1.2,1.8,2.4,3.] - KIs = [[ki * 6e-9,0.] for ki in kis] + KIs = [[ki * 12e-9,0.] for ki in kis] case_inputs_control[('DISCON_in','IPC_ControlMode')] = {'vals': [1], 'group': 0} # case_inputs_control[('DISCON_in','IPC_KI')] = {'vals': [[0.,0.],[1e-8,0.]], 'group': start_group} case_inputs_control[('DISCON_in','IPC_KI')] = {'vals': KIs, 'group': start_group} diff --git a/ROSCO_toolbox/ofTools/case_gen/HH_WindFile.py b/ROSCO_toolbox/ofTools/case_gen/HH_WindFile.py index a74205ce..54ed2ff5 100644 --- a/ROSCO_toolbox/ofTools/case_gen/HH_WindFile.py +++ b/ROSCO_toolbox/ofTools/case_gen/HH_WindFile.py @@ -44,16 +44,38 @@ def __init__(self,**kwargs): super(HH_WindFile, self).__init__() + def resample(self): + # Using time index, check if constant, otherwise throw a warning + if len(set(self.wind_dir)) != 1: # all same + print('ROSCO Warning: all wind_dir elements not equal in resample') + if len(set(self.vert_speed)) != 1: # all same + print('ROSCO Warning: all vert_speed elements not equal in resample') + if len(set(self.horiz_shear)) != 1: # all same + print('ROSCO Warning: all horiz_shear elements not equal in resample') + if len(set(self.vert_shear)) != 1: # all same + print('ROSCO Warning: all vert_shear elements not equal in resample') + if len(set(self.linv_shear)) != 1: # all same + print('ROSCO Warning: all linv_shear elements not equal in resample') + if len(set(self.gust_speed)) != 1: # all same + print('ROSCO Warning: all gust_speed elements not equal in resample') + + self.wind_dir = len(self.time) * [self.wind_dir[0]] + self.vert_speed = len(self.time) * [self.vert_speed[0]] + self.horiz_shear = len(self.time) * [self.horiz_shear[0]] + self.vert_shear = len(self.time) * [self.vert_shear[0]] + self.linv_shear = len(self.time) * [self.linv_shear[0]] + self.gust_speed = len(self.time) * [self.gust_speed[0]] + def write(self): if not os.path.isdir(os.path.dirname(self.filename)): os.makedirs(os.path.dirname(self.filename)) with open(self.filename,'w') as f: f.write('!\tTime\tWind Speed\tWind Dir\tVert. Spd.\tHoriz. Shr.\t Vert. Shr.\t LinV. Shr.\tGust Speed\n') - for t, ws, wd, vs, hs, vs, ls, gs in zip(self.time,self.wind_speed,self.wind_dir,self.vert_speed, \ + for t, ws, wd, vsp, hs, vsh, ls, gs in zip(self.time,self.wind_speed,self.wind_dir,self.vert_speed, \ self.horiz_shear, self.vert_shear, self.linv_shear, self.gust_speed): f.write('{:6.6f}\t{:6.6f}\t{:6.6f}\t{:6.6f}\t{:6.6f}\t{:6.6f}\t{:6.6f}\t{:6.6f}\n'.format( - t,ws,wd,vs,hs,vs,ls,gs)) + t,ws,wd,vsp,hs,vsh,ls,gs)) def plot(self): diff --git a/ROSCO_toolbox/ofTools/case_gen/run_FAST.py b/ROSCO_toolbox/ofTools/case_gen/run_FAST.py index c5b33519..acff382f 100644 --- a/ROSCO_toolbox/ofTools/case_gen/run_FAST.py +++ b/ROSCO_toolbox/ofTools/case_gen/run_FAST.py @@ -7,7 +7,7 @@ """ -from ROSCO_toolbox.ofTools.case_gen.runFAST_pywrapper import runFAST_pywrapper, runFAST_pywrapper_batch +from ROSCO_toolbox.ofTools.case_gen.runFAST_pywrapper import runFAST_pywrapper_batch from ROSCO_toolbox.ofTools.case_gen.CaseGen_IEC import CaseGen_IEC from ROSCO_toolbox.ofTools.case_gen.CaseGen_General import CaseGen_General from ROSCO_toolbox.ofTools.case_gen import CaseLibrary as cl @@ -36,6 +36,8 @@ def __init__(self): self.n_cores = 1 self.base_name = '' self.controller_params = {} + self.fst_vt = {} + self.openfast_exe = 'openfast' # Directories self.tune_case_dir = '' @@ -170,8 +172,8 @@ def run_FAST(self): fastBatch.FAST_runDirectory = run_dir fastBatch.case_list = case_list fastBatch.case_name_list = case_name_list - fastBatch.debug_level = 2 - fastBatch.FAST_exe = 'openfast' + fastBatch.fst_vt = self.fst_vt + fastBatch.FAST_exe = self.openfast_exe if MPI: fastBatch.run_mpi(comm_map_down) diff --git a/ROSCO_toolbox/ofTools/fast_io/FAST_reader.py b/ROSCO_toolbox/ofTools/fast_io/FAST_reader.py index 2f809f3b..fe4fc0b5 100644 --- a/ROSCO_toolbox/ofTools/fast_io/FAST_reader.py +++ b/ROSCO_toolbox/ofTools/fast_io/FAST_reader.py @@ -26,6 +26,26 @@ def fix_path(name): new = os.path.join(new, name[i]) return new +def read_array(f,len,array_type=str): + strings = re.split(',| ',f.readline().strip()) + while '' in strings: # remove empties + strings.remove('') + + arr = strings[:len] # select len strings + + if array_type==str: + arr = [ar.replace('"','') for ar in arr] # remove quotes and commas + elif array_type==float: + arr = [float_read(ar) for ar in arr] + elif array_type==int: + arr = [int_read(ar) for ar in arr] + elif array_type==bool: + arr = [bool_read(ar) for ar in arr] + else: + raise Exception(f"read_array with type {str(array_type)} not currently supported") + + return arr + def bool_read(text): # convert true/false strings to boolean if 'default' in text.lower(): @@ -777,8 +797,21 @@ def read_AeroDyn15(self): f.readline() self.fst_vt['AeroDyn15']['UAMod'] = int(f.readline().split()[0]) self.fst_vt['AeroDyn15']['FLookup'] = bool_read(f.readline().split()[0]) - # self.fst_vt['AeroDyn15']['UAStartRad'] = float_read(f.readline().split()[0]) - # self.fst_vt['AeroDyn15']['UAEndRad'] = float_read(f.readline().split()[0]) + + file_pos = f.tell() + line = f.readline() + if 'UAStartRad' in line: + self.fst_vt['AeroDyn15']['UAStartRad'] = float_read(line.split()[0]) + else: + f.seek(file_pos) + + file_pos = f.tell() + line = f.readline() + if 'UAEndRad' in line: + self.fst_vt['AeroDyn15']['UAEndRad'] = float_read(line.split()[0]) + else: + f.seek(file_pos) + # Airfoil Information f.readline() @@ -1327,13 +1360,13 @@ def read_ServoDyn(self): # Structural Control f.readline() self.fst_vt['ServoDyn']['NumBStC'] = int(f.readline().split()[0]) - self.fst_vt['ServoDyn']['BStCfiles'] = f.readline().split()[0][1:-1] + self.fst_vt['ServoDyn']['BStCfiles'] = read_array(f,self.fst_vt['ServoDyn']['NumBStC'],str) self.fst_vt['ServoDyn']['NumNStC'] = int(f.readline().split()[0]) - self.fst_vt['ServoDyn']['NStCfiles'] = f.readline().split()[0][1:-1] + self.fst_vt['ServoDyn']['NStCfiles'] = read_array(f,self.fst_vt['ServoDyn']['NumNStC'],str) self.fst_vt['ServoDyn']['NumTStC'] = int(f.readline().split()[0]) - self.fst_vt['ServoDyn']['TStCfiles'] = f.readline().split()[0][1:-1] + self.fst_vt['ServoDyn']['TStCfiles'] = read_array(f,self.fst_vt['ServoDyn']['NumTStC'],str) self.fst_vt['ServoDyn']['NumSStC'] = int(f.readline().split()[0]) - self.fst_vt['ServoDyn']['SStCfiles'] = f.readline().split()[0][1:-1] + self.fst_vt['ServoDyn']['SStCfiles'] = read_array(f,self.fst_vt['ServoDyn']['NumSStC'],str) # Initialize Struct Control trees self.fst_vt['BStC'] = [] * self.fst_vt['ServoDyn']['NumBStC'] @@ -1406,6 +1439,121 @@ def read_ServoDyn(self): f.close() + def read_StC(self,filename): + ''' + return StC vt so it can be appended to fst_vt['XStC'] list + ''' + StC_vt = {} + + with open(os.path.join(self.FAST_directory, filename)) as f: + + f.readline() + f.readline() + f.readline() + StC_vt['Echo'] = bool_read(f.readline().split()[0]) # Echo - Echo input data to .ech (flag) + f.readline() # StC DEGREES OF FREEDOM + StC_vt['StC_DOF_MODE'] = int_read(f.readline().split()[0]) # 4 StC_DOF_MODE - DOF mode (switch) {0: No StC or TLCD DOF; 1: StC_X_DOF, StC_Y_DOF, and/or StC_Z_DOF (three independent StC DOFs); 2: StC_XY_DOF (Omni-Directional StC); 3: TLCD; 4: Prescribed force/moment time series} + StC_vt['StC_X_DOF'] = bool_read(f.readline().split()[0]) # false StC_X_DOF - DOF on or off for StC X (flag) [Used only when StC_DOF_MODE=1] + StC_vt['StC_Y_DOF'] = bool_read(f.readline().split()[0]) # false StC_Y_DOF - DOF on or off for StC Y (flag) [Used only when StC_DOF_MODE=1] + StC_vt['StC_Z_DOF'] = bool_read(f.readline().split()[0]) # false StC_Z_DOF - DOF on or off for StC Z (flag) [Used only when StC_DOF_MODE=1] + f.readline() # StC LOCATION + StC_vt['StC_P_X'] = float_read(f.readline().split()[0]) # -51.75 StC_P_X - At rest X position of StC (m) + StC_vt['StC_P_Y'] = float_read(f.readline().split()[0]) # 0 StC_P_Y - At rest Y position of StC (m) + StC_vt['StC_P_Z'] = float_read(f.readline().split()[0]) # -10 StC_P_Z - At rest Z position of StC (m) + f.readline() # StC INITIAL CONDITIONS + StC_vt['StC_X_DSP'] = float_read(f.readline().split()[0]) # 0 StC_X_DSP - StC X initial displacement (m) [relative to at rest position] + StC_vt['StC_Y_DSP'] = float_read(f.readline().split()[0]) # 0 StC_Y_DSP - StC Y initial displacement (m) [relative to at rest position] + StC_vt['StC_Z_DSP'] = float_read(f.readline().split()[0]) # 0 StC_Z_DSP - StC Z initial displacement (m) [relative to at rest position; used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + StC_vt['StC_Z_PreLd'] = f.readline().split()[0] # "none" StC_Z_PreLd - StC Z prefloat_read(f.readline().split()[0]) #-load (N) {"gravity" to offset for gravity load; "none" or 0 to turn off} [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + f.readline() # StC CONFIGURATION + StC_vt['StC_X_NSP'] = float_read(f.readline().split()[0]) # 0 StC_X_NSP - Negative stop position (minimum X mass displacement) (m) + StC_vt['StC_X_PSP'] = float_read(f.readline().split()[0]) # 0 StC_X_PSP - Positive stop position (maximum X mass displacement) (m) + StC_vt['StC_Y_PSP'] = float_read(f.readline().split()[0]) # 0 StC_Y_PSP - Positive stop position (maximum Y mass displacement) (m) + StC_vt['StC_Y_NSP'] = float_read(f.readline().split()[0]) # 0 StC_Y_NSP - Negative stop position (minimum Y mass displacement) (m) + StC_vt['StC_Z_PSP'] = float_read(f.readline().split()[0]) # 0 StC_Z_PSP - Positive stop position (maximum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + StC_vt['StC_Z_NSP'] = float_read(f.readline().split()[0]) # 0 StC_Z_NSP - Negative stop position (minimum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + f.readline() # StC MASS, STIFFNESS, & DAMPING + StC_vt['StC_X_M'] = float_read(f.readline().split()[0]) # 0 StC_X_M - StC X mass (kg) [must equal StC_Y_M for StC_DOF_MODE = 2] + StC_vt['StC_Y_M'] = float_read(f.readline().split()[0]) # 50 StC_Y_M - StC Y mass (kg) [must equal StC_X_M for StC_DOF_MODE = 2] + StC_vt['StC_Z_M'] = float_read(f.readline().split()[0]) # 0 StC_Z_M - StC Z mass (kg) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + StC_vt['StC_XY_M'] = float_read(f.readline().split()[0]) # 0 StC_XY_M - StC XY mass (kg) [used only when StC_DOF_MODE=2] + StC_vt['StC_X_K'] = float_read(f.readline().split()[0]) # 2300 StC_X_K - StC X stiffness (N/m) + StC_vt['StC_Y_K'] = float_read(f.readline().split()[0]) # 2300 StC_Y_K - StC Y stiffness (N/m) + StC_vt['StC_Z_K'] = float_read(f.readline().split()[0]) # 0 StC_Z_K - StC Z stiffness (N/m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + StC_vt['StC_X_C'] = float_read(f.readline().split()[0]) # 35 StC_X_C - StC X damping (N/(m/s)) + StC_vt['StC_Y_C'] = float_read(f.readline().split()[0]) #float_read(f.readline().split()[0]) # 35 StC_Y_C - StC Y damping (N/(m/s)) + StC_vt['StC_Z_C'] = float_read(f.readline().split()[0]) # 0 StC_Z_C - StC Z damping (N/(m/s)) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + StC_vt['StC_X_KS'] = float_read(f.readline().split()[0]) # 0 StC_X_KS - Stop spring X stiffness (N/m) + StC_vt['StC_Y_KS'] = float_read(f.readline().split()[0]) # 0 StC_Y_KS - Stop spring Y stiffness (N/m) + StC_vt['StC_Z_KS'] = float_read(f.readline().split()[0]) # 0 StC_Z_KS - Stop spring Z stiffness (N/m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + StC_vt['StC_X_CS'] = float_read(f.readline().split()[0]) # 0 StC_X_CS - Stop spring X damping (N/(m/s)) + StC_vt['StC_Y_CS'] = float_read(f.readline().split()[0]) # 0 StC_Y_CS - Stop spring Y damping (N/(m/s)) + StC_vt['StC_Z_CS'] = float_read(f.readline().split()[0]) # 0 StC_Z_CS - Stop spring Z damping (N/(m/s)) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + f.readline() # StC USER-DEFINED SPRING FORCES + StC_vt['Use_F_TBL'] = bool_read(f.readline().split()[0]) # False Use_F_TBL - Use spring force from user-defined table (flag) + StC_vt['NKInpSt'] = int_read(f.readline().split()[0]) # 17 NKInpSt - Number of spring force input stations + + StC_vt['SpringForceTable'] = {} + table = StC_vt['SpringForceTable'] + table['X'] = [None] * StC_vt['NKInpSt'] + table['F_X'] = [None] * StC_vt['NKInpSt'] + table['Y'] = [None] * StC_vt['NKInpSt'] + table['F_Y'] = [None] * StC_vt['NKInpSt'] + table['Z'] = [None] * StC_vt['NKInpSt'] + table['F_Z'] = [None] * StC_vt['NKInpSt'] + + f.readline() + # if StC_vt['Use_F_TBL']: + f.readline() + f.readline() + for i in range(StC_vt['NKInpSt']): + ln = f.readline().split() + table['X'][i] = float(ln[0]) + table['F_X'][i] = float(ln[1]) + table['Y'][i] = float(ln[2]) + table['F_Y'][i] = float(ln[3]) + table['Z'][i] = float(ln[4]) + table['F_Z'][i] = float(ln[5]) + # else: + # # Skip until next section + # data_line = f.readline().strip().split() + # while data_line[0][:3] != '---': + # data_line = f.readline().strip().split() + + # StructCtrl CONTROL, skip this readline() because it already happened + f.readline() + StC_vt['StC_CMODE'] = int_read(f.readline().split()[0]) # 5 StC_CMODE - Control mode (switch) {0:none; 1: Semi-Active Control Mode; 4: Active Control Mode through Simulink (not available); 5: Active Control Mode through Bladed interface} + StC_vt['StC_CChan'] = int_read(f.readline().split()[0]) # 0 StC_CChan - Control channel group (1:10) for stiffness and damping (StC_[XYZ]_K, StC_[XYZ]_C, and StC_[XYZ]_Brake) (specify additional channels for blade instances of StC active control -- one channel per blade) [used only when StC_DOF_MODE=1 or 2, and StC_CMODE=4 or 5] + StC_vt['StC_SA_MODE'] = int_read(f.readline().split()[0]) # 1 StC_SA_MODE - Semi-Active control mode {1: velocity-based ground hook control; 2: Inverse velocity-based ground hook control; 3: displacement-based ground hook control 4: Phase difference Algorithm with Friction Force 5: Phase difference Algorithm with Damping Force} (-) + StC_vt['StC_X_C_LOW'] = float_read(f.readline().split()[0]) # 0 StC_X_C_LOW - StC X low damping for ground hook control + StC_vt['StC_X_C_HIGH'] = float_read(f.readline().split()[0]) # 0 StC_X_C_HIGH - StC X high damping for ground hook control + StC_vt['StC_Y_C_HIGH'] = float_read(f.readline().split()[0]) # 0 StC_Y_C_HIGH - StC Y high damping for ground hook control + StC_vt['StC_Y_C_LOW'] = float_read(f.readline().split()[0]) # 0 StC_Y_C_LOW - StC Y low damping for ground hook control + StC_vt['StC_Z_C_HIGH'] = float_read(f.readline().split()[0]) # 0 StC_Z_C_HIGH - StC Z high damping for ground hook control [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + StC_vt['StC_Z_C_LOW'] = float_read(f.readline().split()[0]) # 0 StC_Z_C_LOW - StC Z low damping for ground hook control [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + StC_vt['StC_X_C_BRAKE'] = float_read(f.readline().split()[0]) # 0 StC_X_C_BRAKE - StC X high damping for braking the StC (Don't use it now. should be zero) + StC_vt['StC_Y_C_BRAKE'] = float_read(f.readline().split()[0]) # 0 StC_Y_C_BRAKE - StC Y high damping for braking the StC (Don't use it now. should be zero) + StC_vt['StC_Z_C_BRAKE'] = float_read(f.readline().split()[0]) # 0 StC_Z_C_BRAKE - StC Z high damping for braking the StC (Don't use it now. should be zero) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + f.readline() # TLCD + StC_vt['L_X'] = float_read(f.readline().split()[0]) # 7.9325 L_X - X TLCD total length (m) + StC_vt['B_X'] = float_read(f.readline().split()[0]) # 6.5929 B_X - X TLCD horizontal length (m) + StC_vt['area_X'] = float_read(f.readline().split()[0]) # 2.0217 area_X - X TLCD cross-sectional area of vertical column (m^2) + StC_vt['area_ratio_X'] = float_read(f.readline().split()[0]) # 0.913 area_ratio_X - X TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-) + StC_vt['headLossCoeff_X'] = float_read(f.readline().split()[0]) # 2.5265 headLossCoeff_X - X TLCD head loss coeff (-) + StC_vt['rho_X'] = float_read(f.readline().split()[0]) # 1000 rho_X - X TLCD liquid density (kg/m^3) + StC_vt['L_Y'] = float_read(f.readline().split()[0]) # 3.5767 L_Y - Y TLCD total length (m) + StC_vt['B_Y'] = float_read(f.readline().split()[0]) # 2.1788 B_Y - Y TLCD horizontal length (m) + StC_vt['area_Y'] = float_read(f.readline().split()[0]) # 1.2252 area_Y - Y TLCD cross-sectional area of vertical column (m^2) + StC_vt['area_ratio_Y'] = float_read(f.readline().split()[0]) # 2.7232 area_ratio_Y - Y TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-) + StC_vt['headLossCoeff_Y'] = float_read(f.readline().split()[0]) # 0.6433 headLossCoeff_Y - Y TLCD head loss coeff (-) + StC_vt['rho_Y'] = float_read(f.readline().split()[0]) # 1000 rho_Y - Y TLCD liquid density (kg/m^3) + f.readline() # PRESCRIBED TIME SERIES + StC_vt['PrescribedForcesCoord'] = int_read(f.readline().split()[0]) # 2 PrescribedForcesCoord- Prescribed forces are in global or local coordinates (switch) {1: global; 2: local} + StC_vt['PrescribedForcesFile'] = f.readline().split()[0] # "Bld-TimeForceSeries.dat" PrescribedForcesFile - Time series force and moment (7 columns of time, FX, FY, FZ, MX, MY, MZ) + f.readline() + + return StC_vt + def read_DISCON_in(self): # Read the Bladed style Interface controller input file, intended for ROSCO https://github.com/NREL/ROSCO_toolbox @@ -2213,6 +2361,29 @@ def read_MoorDyn(self, moordyn_file): self.fst_vt['MoorDyn']['Outputs'].append(str(data_line[6])) data_line = f.readline().strip().split() + # read optional control inputs, there are other optional MoorDyn sections/inputs + self.fst_vt['MoorDyn']['ChannelID'] = [] + self.fst_vt['MoorDyn']['Lines_Control'] = [] + if 'CONTROL' in [dl.upper() for dl in data_line]: + f.readline() + f.readline() + data_line = f.readline().strip().split() + while data_line[0][:3] != '---': # OpenFAST searches for ---, so we'll do the same + self.fst_vt['MoorDyn']['ChannelID'].append(int(data_line[0])) + # Line(s) is a list of mooring lines, spaces are allowed between commas + control_lines = [] + for lines in data_line[1:]: + for line in lines.split(','): + control_lines.append(line.strip(',')) + + # Spaces show up in control_lines as '', remove them all + while '' in control_lines: + control_lines.remove('') + + self.fst_vt['MoorDyn']['Lines_Control'].append(control_lines) + data_line = f.readline().strip().split() + + # Solver options, there are a few more optional MoorDyn inputs that can be added line 'CONTROL' self.fst_vt['MoorDyn']['dtM'] = float_read(f.readline().split()[0]) self.fst_vt['MoorDyn']['kbot'] = float_read(f.readline().split()[0]) self.fst_vt['MoorDyn']['cbot'] = float_read(f.readline().split()[0]) @@ -2251,7 +2422,15 @@ def execute(self): if self.fst_vt['Fst']['CompServo'] == 1: self.read_ServoDyn() - # Would read StCs here + # Read StC Files + for StC_file in self.fst_vt['ServoDyn']['BStCfiles']: + self.fst_vt['BStC'].append(self.read_StC(StC_file)) + for StC_file in self.fst_vt['ServoDyn']['NStCfiles']: + self.fst_vt['NStC'].append(self.read_StC(StC_file)) + for StC_file in self.fst_vt['ServoDyn']['TStCfiles']: + self.fst_vt['TStC'].append(self.read_StC(StC_file)) + for StC_file in self.fst_vt['ServoDyn']['SStCfiles']: + self.fst_vt['SStC'].append(self.read_StC(StC_file)) if ROSCO: self.read_DISCON_in() hd_file = os.path.normpath(os.path.join(self.FAST_directory, self.fst_vt['Fst']['HydroFile'])) diff --git a/ROSCO_toolbox/ofTools/fast_io/FAST_writer.py b/ROSCO_toolbox/ofTools/fast_io/FAST_writer.py index 852b3594..8dd91db3 100644 --- a/ROSCO_toolbox/ofTools/fast_io/FAST_writer.py +++ b/ROSCO_toolbox/ofTools/fast_io/FAST_writer.py @@ -1263,13 +1263,13 @@ def write_ServoDyn(self): f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['AfC_Phase'], 'AfC_phase', '- Phase relative to the blade azimuth (0 is vertical) for for cosine cycling of flap signal (deg) [used only with AfCmode==1]\n')) f.write('---------------------- STRUCTURAL CONTROL ---------------------------------------\n') f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['NumBStC'], 'NumBStC', '- Number of blade structural controllers (integer)\n')) - f.write('{!s:<22} {:<11} {:}'.format('"' + ''.join(self.fst_vt['ServoDyn']['BStCfiles']) + '"', 'BStCfiles', '- Name of the file for blade tuned mass damper (quoted string) [unused when CompNTMD is false]\n')) + f.write('{!s:<22} {:<11} {:}'.format('"' + '" "'.join(self.fst_vt['ServoDyn']['BStCfiles']) + '"', 'BStCfiles', '- Name of the file for blade tuned mass damper (quoted string) [unused when CompNTMD is false]\n')) f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['NumNStC'], 'NumNStC', '- Number of nacelle structural controllers (integer)\n')) - f.write('{!s:<22} {:<11} {:}'.format('"' + ''.join(self.fst_vt['ServoDyn']['NStCfiles']) + '"', 'NStCfiles', '- Name of the file for nacelle tuned mass damper (quoted string) [unused when CompNTMD is false]\n')) + f.write('{!s:<22} {:<11} {:}'.format('"' + '" "'.join(self.fst_vt['ServoDyn']['NStCfiles']) + '"', 'NStCfiles', '- Name of the file for nacelle tuned mass damper (quoted string) [unused when CompNTMD is false]\n')) f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['NumTStC'], 'NumTStC', '- Number of tower structural controllers (integer)\n')) - f.write('{!s:<22} {:<11} {:}'.format('"' + ''.join(self.fst_vt['ServoDyn']['TStCfiles']) + '"', 'TStCfiles', '- Name of the file for tower tuned mass damper (quoted string) [unused when CompNTMD is false]\n')) + f.write('{!s:<22} {:<11} {:}'.format('"' + '" "'.join(self.fst_vt['ServoDyn']['TStCfiles']) + '"', 'TStCfiles', '- Name of the file for tower tuned mass damper (quoted string) [unused when CompNTMD is false]\n')) f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['NumSStC'], 'NumSStC', '- Number of sbustructure structural controllers (integer)\n')) - f.write('{!s:<22} {:<11} {:}'.format('"' + ''.join(self.fst_vt['ServoDyn']['SStCfiles']) + '"', 'SStCfiles', '- Name of the file for sbustructure tuned mass damper (quoted string) [unused when CompNTMD is false]\n')) + f.write('{!s:<22} {:<11} {:}'.format('"' + '" "'.join(self.fst_vt['ServoDyn']['SStCfiles']) + '"', 'SStCfiles', '- Name of the file for sbustructure tuned mass damper (quoted string) [unused when CompNTMD is false]\n')) f.write('---------------------- CABLE CONTROL ---------------------------------------- \n') f.write('{:<22} {:<11} {:}'.format(self.fst_vt['ServoDyn']['CCmode'], 'CCmode', '- Cable control mode {0- none, 4- user-defined from Simulink/Labview, 5- user-defineAfC_phased from Bladed-style DLL}\n')) f.write('---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface]\n') @@ -1977,6 +1977,17 @@ def write_MoorDyn(self): ln.append('{:^11d}'.format(self.fst_vt['MoorDyn']['NumSegs'][i])) ln.append('{:^11}'.format(self.fst_vt['MoorDyn']['Outputs'][i])) f.write(" ".join(ln) + '\n') + + if self.fst_vt['MoorDyn']['ChannelID']: # There are control inputs + f.write('---------------------- CONTROL ---------------------------------------\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['ChannelID', 'Line(s)']])+'\n') + f.write(" ".join(['{:^11s}'.format(i) for i in ['()', '(,)']])+'\n') + for i_line in range(len(self.fst_vt['MoorDyn']['ChannelID'])): + ln = [] + ln.append('{:^11d}'.format(self.fst_vt['MoorDyn']['ChannelID'][i_line])) + ln.append(','.join(self.fst_vt['MoorDyn']['Lines_Control'][i_line])) + f.write(" ".join(ln) + '\n') + f.write('---------------------- SOLVER OPTIONS ---------------------------------------\n') f.write('{:<22} {:<11} {:}'.format(self.fst_vt['MoorDyn']['dtM'], 'dtM', '- time step to use in mooring integration (s)\n')) f.write('{:<22} {:<11} {:}'.format(self.fst_vt['MoorDyn']['kbot'], 'kbot', '- bottom stiffness (Pa/m)\n')) diff --git a/ROSCO_toolbox/ofTools/fast_io/output_processing.py b/ROSCO_toolbox/ofTools/fast_io/output_processing.py index 266a9da2..ef3684b1 100644 --- a/ROSCO_toolbox/ofTools/fast_io/output_processing.py +++ b/ROSCO_toolbox/ofTools/fast_io/output_processing.py @@ -15,6 +15,7 @@ from matplotlib import transforms from itertools import takewhile import struct +import multiprocessing as mp from ROSCO_toolbox.ofTools.util import spectral @@ -39,7 +40,7 @@ def __init__(self, filenames=[], cases=None, tmin=None, tmax=None, verbose=False if len(filenames) > 0: self.load_fast_out(filenames, tmin=tmin, tmax=tmax, verbose=verbose) - def load_fast_out(self, filenames, tmin=None, tmax=None, verbose=False): + def load_fast_out(self, filenames, tmin=None, tmax=None, verbose=False, max_cores=4): """Load a FAST binary or ascii output file Parameters @@ -52,6 +53,8 @@ def load_fast_out(self, filenames, tmin=None, tmax=None, verbose=False): final data to trim output data to verbose : bool, optional Print updates + max_cores: int, optional + Maximum number of cores to use for loading outputs in parallel Returns ------- @@ -60,30 +63,30 @@ def load_fast_out(self, filenames, tmin=None, tmax=None, verbose=False): """ if type(filenames) is str: filenames = [filenames] + + cores = min(len(filenames), max_cores) - # data = [] - # info = [] try: self.fastout except AttributeError: self.fastout = [] - for i, filename in enumerate(filenames): - assert os.path.isfile(filename), "File, %s, does not exists" % filename - with open(filename, 'r') as f: - if verbose: - print('Loading data from {}'.format(filename)) - try: - f.readline() - except UnicodeDecodeError: - data, info = load_binary_output(filename) - else: - data, info = load_ascii_output(filename) - - # Build dictionary - fast_data = dict(zip(info['channels'],data.T)) - fast_data['meta'] = info - fast_data['meta']['filename'] = filename - self.fastout.append(fast_data) + + inputs = [] + for filename in filenames: + inp = {} + inp['filename'] = filename + inp['verbose'] = verbose + inputs.append(inp) + + if cores > 1: + pool = mp.Pool(cores) + self.fastout = pool.map(self._load_fast_data, inputs) + pool.close() + pool.join() + else: + for inp in inputs: + fast_data = self._load_fast_data(inp) + self.fastout.append(fast_data) # Trim outputs if (tmin) or (tmax): @@ -91,6 +94,28 @@ def load_fast_out(self, filenames, tmin=None, tmax=None, verbose=False): # return fastout return self.fastout + + def _load_fast_data(self,input): + # Unpack + filename = input['filename'] + verbose = input['verbose'] + + assert os.path.isfile(filename), "File, %s, does not exists" % filename + with open(filename, 'r') as f: + if verbose: + print('Loading data from {}'.format(filename)) + try: + f.readline() + except UnicodeDecodeError: + data, info = load_binary_output(filename) + else: + data, info = load_ascii_output(filename) + + # Build dictionary + fast_data = dict(zip(info['channels'],data.T)) + fast_data['meta'] = info + fast_data['meta']['filename'] = filename + return fast_data def plot_fast_out(self, fastout=None, cases=None, showplot=True, fignum=None, xlim=None): ''' @@ -581,3 +606,53 @@ def trim_output(fast_data, tmin=None, tmax=None, verbose=False): return fast_data + + +if __name__ == "__main__": + outfiles = [ + '/Users/dzalkind/Tools/ROSCO3/outputs/IPC_tune_1/NREL2p8/turb_bts/sweep_ipc_gains/NREL2p8_0.out', + '/Users/dzalkind/Tools/ROSCO3/outputs/IPC_tune_1/NREL2p8/turb_bts/sweep_ipc_gains/NREL2p8_1.out', + '/Users/dzalkind/Tools/ROSCO3/outputs/IPC_tune_1/NREL2p8/turb_bts/sweep_ipc_gains/NREL2p8_2.out', + '/Users/dzalkind/Tools/ROSCO3/outputs/IPC_tune_1/NREL2p8/turb_bts/sweep_ipc_gains/NREL2p8_3.out' + ] + + plt.rcParams["figure.figsize"] = [9,12] + + ROSCO = False + ROSCO2 = False + + # Define Plot cases + cases = {} + cases['Gen. Speed Sigs.'] = ['Wind1VelX','BldPitch1', 'GenTq', 'GenSpeed','TwrBsMyt','GenPwr','RootMyb1']#,'PtfmPitch','PtfmYaw','NacYaw'] + + op = output_processing() + op_RO = output_processing() + op_RO2 = output_processing() + + fast_out = [] + fast_out = op.load_fast_out(outfiles, tmin=0) + if ROSCO: + # Rosco outfiles + r_outfiles = [out.split('.out')[0] + '.RO.dbg' for out in outfiles] + rosco_out = op_RO.load_fast_out(r_outfiles, tmin=0) + + if ROSCO2: + r_outfiles = [out.split('.out')[0] + '.RO.dbg2' for out in outfiles] + rosco_out2 = op_RO2.load_fast_out(r_outfiles, tmin=0) + + # Combine outputs + if ROSCO: + comb_out = [None] * len(fast_out) + for i, (r_out, f_out) in enumerate(zip(rosco_out,fast_out)): + r_out.update(f_out) + comb_out[i] = r_out + if ROSCO2: + for i, (r_out2, f_out) in enumerate(zip(rosco_out2,comb_out)): + r_out2.update(f_out) + comb_out[i] = r_out2 + else: + comb_out = fast_out + + + # Plot + fig, ax = op.plot_fast_out(comb_out,cases, showplot=True) diff --git a/ROSCO_toolbox/ofTools/fast_io/plot_FAST.ipynb b/ROSCO_toolbox/ofTools/fast_io/plot_FAST.ipynb index 4e64a191..52fe840c 100644 --- a/ROSCO_toolbox/ofTools/fast_io/plot_FAST.ipynb +++ b/ROSCO_toolbox/ofTools/fast_io/plot_FAST.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -50,27 +50,15 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "outfiles = [\n", - "# '/Users/dzalkind/Tools/WEIS-1/outputs/iea15mw/iea15mw_00.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-1/outputs/iea15mw/iea15mw_01.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-1/outputs/iea15mw/iea15mw_02.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-1/outputs/iea15mw/iea15mw_08.outb',\n", - "# '/Users/dzalkind/Tools/ROSCO_toolbox/Examples/examples_out/13_Simulink_Test/OL_Test_1.SFunc.outb',\n", - " '/Users/dzalkind/Projects/FOCAL/IEA15MW_FOCAL/power_curve/base/IEA15MW_FOCAL_07.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-3/results/UMaine-Semi/DISCON/IB_NTM_Raft/iea15mw_1.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-3/results/UMaine-Semi/DISCON/IB_NTM_Raft/iea15mw_2.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-3/results/CT-semi/ntm_long/DISCON-CT-semi/iea15mw_13.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-4/optimizations/both_debug_nowrapper/NREL5MW_OC3_spar_IEC_0.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-4/optimizations/outputs_opt_both_debug/NREL5MW_OC3_spar_IEC_0.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-4/optimizations/outputs_opt_both_debug2/NREL5MW_OC3_spar_IEC_0.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-4/optimizations/outputs_opt_both_debug3/NREL5MW_OC3_spar_IEC_0.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-4/optimizations/outputs_opt_both_debug4/NREL5MW_OC3_spar_IEC_0.outb',\n", - "# '/Users/dzalkind/Tools/WEIS-3/sowfa_debug/rotor_sweep/c_001_sp6_h150_D240_oR2_yaw_base/IEA-15-240-RWT-Monopile.2.T2.out',\n", - "# '/Users/dzalkind/Tools/WEIS-3/results/CT-barge/DISCON-CT-barge_hiBW/simp/step_1.outb',\n", + " # '/Users/dzalkind/Tools/ROSCO3/Examples/examples_out/12_ipc_sim/NREL2p8/ramp/base/NREL2p8_0.out',\n", + " # '/Users/dzalkind/Tools/ROSCO3/Examples/examples_out/12_ipc_sim/NREL2p8/ramp/base/NREL2p8_1.out',\n", + " # '/Users/dzalkind/Tools/ROSCO3/Examples/examples_out/12_ipc_sim/NREL2p8/ramp/base/NREL2p8_2.out',\n", + " '/Users/dzalkind/Tools/ROSCO3/Examples/examples_out/12_ipc_sim/NREL2p8/ramp/base/NREL2p8_3.out',\n", "]\n", "\n", "# outfiles" @@ -78,76 +66,14 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 25, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Wind1VelX is not available as an output channel.\n", - "BldPitch1 is not available as an output channel.\n", - "GenTq is not available as an output channel.\n", - "TwrBsMyt is not available as an output channel.\n", - "GenPwr is not available as an output channel.\n", - "RotThrust is not available as an output channel.\n", - "Fl_Pitcom is not available as an output channel.\n", - "PC_MinPit is not available as an output channel.\n", - "WE_Vw is not available as an output channel.\n", - "RtVAvgxh is not available as an output channel.\n", - "BldPitch1 is not available as an output channel.\n", - "PtfmSurge is not available as an output channel.\n", - "PtfmSway is not available as an output channel.\n", - "PtfmHeave is not available as an output channel.\n", - "PtfmPitch is not available as an output channel.\n", - "PtfmRoll is not available as an output channel.\n", - "PtfmYaw is not available as an output channel.\n", - "RtVAvgxh is not available as an output channel.\n", - "BldPitch1 is not available as an output channel.\n", - "RotThrust is not available as an output channel.\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -158,27 +84,45 @@ ], "source": [ "output_ext = '.out'\n", - "plt.rcParams[\"figure.figsize\"] = [9,7]\n", + "plt.rcParams[\"figure.figsize\"] = [9,12]\n", "\n", "ROSCO = True\n", + "ROSCO2 = True\n", "\n", "# Define Plot cases \n", "cases = {}\n", - "cases['Gen. Speed Sigs.'] = ['Wind1VelX', 'BldPitch1', 'GenTq', 'GenSpeed','TwrBsMyt','GenPwr','RotThrust']#,'PtfmPitch','PtfmYaw','NacYaw']\n", - "# cases['Debug'] = ['IPDefl1','OoPDefl1','Azimuth','RotTorq']#,'PtfmPitch','PtfmYaw','NacYaw']\n", - "cases['Plt. Control Sigs.'] = ['RtVAvgxh', 'BldPitch1', 'Fl_Pitcom', 'PC_MinPit','WE_Vw']\n", - "cases['Platform Motion'] = ['PtfmSurge', 'PtfmSway', 'PtfmHeave', 'PtfmPitch','PtfmRoll','PtfmYaw']\n", - "cases['Rot Thrust'] = ['RtVAvgxh','BldPitch1','RotThrust']\n", + "# cases['Gen. Speed Sigs.'] = ['Wind1VelX', 'BldPitch1', 'GenTq', 'GenSpeed','TwrBsMyt','GenPwr','RootMyb1']#,'PtfmPitch','PtfmYaw','NacYaw']\n", + "cases['Gen. Speed Sigs.'] = ['Wind1VelX','BldPitch1', 'GenTq', 'GenSpeed','TwrBsMyt','GenPwr','RootMyb1']#,'PtfmPitch','PtfmYaw','NacYaw']\n", + "# # cases['Debug'] = ['IPDefl1','OoPDefl1','Azimuth','RotTorq']#,'PtfmPitch','PtfmYaw','NacYaw']\n", + "# cases['Plt. Control Sigs.'] = ['Fl_PitCom', 'PC_MinPit']\n", + "# cases['Platform Motion'] = ['PtfmSurge', 'PtfmSway', 'PtfmHeave', 'PtfmPitch','PtfmRoll','PtfmYaw']\n", + "# # cases['Tower Loads'] = ['TwrBsFxt','TwrBsFyt', 'TwrBsFzt', 'TwrBsMxt', 'TwrBsMyt','TwrBsMzt']\n", + "# # cases['Rot Thrust'] = ['RtVAvgxh','BldPitch1','RotThrust']\n", + "# cases['IPC'] = ['PitCom','PitComAct']\n", + "# # cases['IPC'] = ['PtfmYaw','YawBrMzp','YawBrMyp']\n", + "\n", + "# cases['Gen. Speed Sigs.'] = ['Wind1VelX', 'GenPwr', 'RotSpeed', 'GenSpeed', 'GenTq', 'BldPitch1','B1RootMyr'] #, 'PtfmPitch','PtfmYaw'] #,'PtfmPitch','PtfmYaw','NacYaw']\n", + "# cases['Rot. Pos'] = ['RotSpeed',('BldPitch1','BldPitch2','BldPitch3'),'GenTq','Azimuth']\n", + "# cases['Rotor Position'] = ['AzError','GenTqAz','Azimuth','AzUnwrapped','OL_Azimuth']\n", + "# cases['Aero'] = [\"B1N3Alpha\",\"B1N3Cd\",\"B1N3Cl\"]\n", + "\n", "\n", "op = output_processing.output_processing()\n", + "op_RO = output_processing.output_processing()\n", + "op_RO2 = output_processing.output_processing()\n", + "\n", "\n", - "# Rosco outfiles\n", - "r_outfiles = [out.split('.out')[0] + '.RO.dbg' for out in outfiles]\n", "\n", "fast_out = []\n", "fast_out = op.load_fast_out(outfiles, tmin=0)\n", "if ROSCO:\n", - " rosco_out = op.load_fast_out(r_outfiles, tmin=0)\n", + " # Rosco outfiles\n", + " r_outfiles = [out.split('.out')[0] + '.RO.dbg' for out in outfiles]\n", + " rosco_out = op_RO.load_fast_out(r_outfiles, tmin=0)\n", + " \n", + " if ROSCO2:\n", + " r_outfiles = [out.split('.out')[0] + '.RO.dbg2' for out in outfiles]\n", + " rosco_out2 = op_RO2.load_fast_out(r_outfiles, tmin=0)\n", " \n", "# Combine outputs\n", "if ROSCO:\n", @@ -186,6 +130,10 @@ " for i, (r_out, f_out) in enumerate(zip(rosco_out,fast_out)):\n", " r_out.update(f_out)\n", " comb_out[i] = r_out\n", + " if ROSCO2:\n", + " for i, (r_out2, f_out) in enumerate(zip(rosco_out2,comb_out)):\n", + " r_out2.update(f_out)\n", + " comb_out[i] = r_out2\n", "else:\n", " comb_out = fast_out\n", "\n", @@ -202,7 +150,97 @@ " save_fig_dir = '/Users/dzalkind/Projects/CarbonTrust/Deliverables'\n", " for f in fig:\n", " f.savefig(os.path.join(save_fig_dir,'ts'+str(i_fig)))\n", - " i_fig += 1" + " i_fig += 1\n", + "\n", + "output_ext = '.out'\n", + "plt.rcParams[\"figure.figsize\"] = [9,7]\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([14.97, 15. , 15.02, ..., 90. , 90. , 90. ])" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fast_out[1]['PtfmHeave'].mean()\n", + "\n", + "fast_out[0]['BldPitch1']" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "ind = comb_out[0]['Time'] > 120\n", + "a = np.array([co['RootMyb1'][ind].std() for co in comb_out])\n", + "b = np.array([co['BldPitch1'][ind].std() for co in comb_out])\n", + "\n", + "fig, axs = plt.subplots(2,1)\n", + "axs[0].plot(a)\n", + "axs[1].plot(b)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "360" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "18*20\n" ] }, { @@ -433,93 +471,6 @@ "df" ] }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Time': array([0.00000e+00, 1.30000e-02, 2.50000e-02, ..., 7.99975e+02,\n", - " 7.99987e+02, 8.00000e+02]),\n", - " 'FA_AccF': array([ 0.000e+00, 1.264e-23, -8.574e-23, ..., -9.656e-17, -9.670e-17,\n", - " -9.684e-17]),\n", - " 'FA_AccR': array([-0.000e+00, 7.226e-18, -7.774e-17, ..., -3.648e-17, 2.417e-17,\n", - " 2.873e-17]),\n", - " 'RotSpeed': array([0.6132, 0.6131, 0.613 , ..., 0.5879, 0.5878, 0.5878]),\n", - " 'RotSpeedF': array([0.6132, 0.6132, 0.6132, ..., 0.5932, 0.5932, 0.5931]),\n", - " 'GenSpeed': array([0.6132, 0.6131, 0.613 , ..., 0.5879, 0.5878, 0.5878]),\n", - " 'GenSpeedF': array([0.6132, 0.6132, 0.6132, ..., 0.5932, 0.5932, 0.5931]),\n", - " 'FA_Acc': array([0., 0., 0., ..., 0., 0., 0.]),\n", - " 'Fl_Pitcom': array([-0.000e+00, 1.481e-24, -8.567e-24, ..., 4.151e-13, 4.151e-13,\n", - " 4.151e-13]),\n", - " 'PC_MinPit': array([0., 0., 0., ..., 0., 0., 0.]),\n", - " 'SS_dOmF': array([-0.0007917, -0.0007917, -0.0007901, ..., -0.0004443, -0.0004443,\n", - " -0.0004444]),\n", - " 'WE_Vw': array([8.963, 8.963, 8.963, ..., 7.916, 7.916, 7.916]),\n", - " 'WE_b': array([0.000e+00, 0.000e+00, 2.101e-28, ..., 2.392e-11, 2.392e-11,\n", - " 2.392e-11]),\n", - " 'WE_t': array([13140000., 13140000., 13140000., ..., 11480000., 11470000.,\n", - " 11470000.]),\n", - " 'WE_w': array([0.6132, 0.6132, 0.6132, ..., 0.5932, 0.5932, 0.5931]),\n", - " 'WE_Vm': array([8.963, 8.963, 8.963, ..., 7.981, 7.98 , 7.98 ]),\n", - " 'WE_Vt': array([ 0.000e+00, -2.132e-13, -8.994e-09, ..., -6.438e-02, -6.455e-02,\n", - " -6.472e-02]),\n", - " 'WE_lambda': array([8.21 , 8.209, 8.208, ..., 8.911, 8.911, 8.91 ]),\n", - " 'WE_Cp': array([0.25 , 0.4574, 0.4574, ..., 0.4622, 0.4622, 0.4622]),\n", - " 'meta': {'name': 'iea15mw_0.RO',\n", - " 'description': [' Generated on 22-Jun-2021 at 17:43:27 using ROSCO-v2.1.1-43-g22b65089\\n'],\n", - " 'channels': ['Time',\n", - " 'FA_AccF',\n", - " 'FA_AccR',\n", - " 'RotSpeed',\n", - " 'RotSpeedF',\n", - " 'GenSpeed',\n", - " 'GenSpeedF',\n", - " 'FA_Acc',\n", - " 'Fl_Pitcom',\n", - " 'PC_MinPit',\n", - " 'SS_dOmF',\n", - " 'WE_Vw',\n", - " 'WE_b',\n", - " 'WE_t',\n", - " 'WE_w',\n", - " 'WE_Vm',\n", - " 'WE_Vt',\n", - " 'WE_lambda',\n", - " 'WE_Cp'],\n", - " 'attribute_units': ['sec',\n", - " 'm/s',\n", - " 'rad/s^2',\n", - " 'rad/s',\n", - " 'rad/s',\n", - " 'rad/s',\n", - " 'rad/s',\n", - " 'm/s^2',\n", - " 'rad',\n", - " 'rad',\n", - " 'rad/s',\n", - " 'rad',\n", - " 'deg',\n", - " 'Nm',\n", - " 'rad/s',\n", - " 'm/s',\n", - " 'm/s',\n", - " 'rad/s',\n", - " '-'],\n", - " 'filename': '/Users/dzalkind/Tools/WEIS-3/results/UMaine-Semi/DISCON/IB_NTM_Raft/iea15mw_0.RO.dbg'}}" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "fast_out[3]" - ] - }, { "cell_type": "code", "execution_count": 11, @@ -561,148 +512,6 @@ "\n", "# op" ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [], - "source": [ - "# ret" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "94.73684210526316" - ] - }, - "execution_count": 49, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "1/2e-3\n", - "\n", - "3600/38\n" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1.9752718440907233" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "yaw_fast = fast_out[0]['PtfmYaw']\n", - "amp = np.std(yaw_fast) * np.sqrt(2)\n", - "\n", - "\n", - "per = 3600/38\n", - "\n", - "tt = fast_out[0]['Time']\n", - "\n", - "yaw_sowfa = amp * np.sin(2 * np.pi / per * tt)\n", - "\n", - "\n", - "plt.plot(tt,yaw_fast,tt,yaw_sowfa)\n", - "\n", - "np.min(yaw_fast)\n", - "\n", - "amp" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'/Users/dzalkind/Tools/WEIS-3/pCrunch/HPC_tools/eagle2local_sim_inp.sh /Users/dzalkind/Tools/WEIS-3/results/CT-semi/ntm_long/DISCON-CT-semi/ iea15mw_07'" - ] - }, - "execution_count": 51, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# pull from eagle if necessary\n", - "pull_script = '/Users/dzalkind/Tools/WEIS-3/pCrunch/HPC_tools/eagle2local_sim_inp.sh'\n", - "\n", - "\n", - "basedir = outfiles[0].split('/')[1]\n", - "# if basedir == 'scratch':\n", - " \n", - "temp = outfiles[0].split('/')\n", - "filedir = '/'.join(temp[:-1]) + '/'\n", - "\n", - "namebase = temp[-1].split('.')[0]\n", - "search_str = namebase + '*'\n", - "\n", - "shell_cmd = pull_script + ' ' + filedir + ' ' + namebase\n", - "\n", - "shell_cmd\n", - "# ret = subprocess.call(pull_script,shell=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -721,7 +530,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.8.13" } }, "nbformat": 4, diff --git a/ROSCO_toolbox/ofTools/fast_io/read_fast_input.py b/ROSCO_toolbox/ofTools/fast_io/read_fast_input.py deleted file mode 100644 index c8b76313..00000000 --- a/ROSCO_toolbox/ofTools/fast_io/read_fast_input.py +++ /dev/null @@ -1,1202 +0,0 @@ -''' -Reads OpenFAST input files. - -Most of this script is copied from: -https://github.com/OpenFAST/python-toolbox/blob/dev/pyFAST/input_output/fast_input_file.py -on 11/05/2020 - -''' - -from __future__ import division -from __future__ import unicode_literals -from __future__ import print_function -from __future__ import absolute_import -from io import open -from builtins import range -from builtins import str -from future import standard_library -standard_library.install_aliases() -from .file import File, WrongFormatError, BrokenFormatError -import os -import numpy as np -import re -import pandas as pd - -from ROSCO_toolbox.utilities import read_DISCON - -__all__ = ['FASTInputFile'] - -TABTYPE_NOT_A_TAB = 0 -TABTYPE_NUM_WITH_HEADER = 1 -TABTYPE_NUM_WITH_HEADERCOM = 2 -TABTYPE_NUM_NO_HEADER = 4 -TABTYPE_NUM_BEAMDYN = 5 -TABTYPE_MIX_WITH_HEADER = 6 -TABTYPE_FIL = 3 -TABTYPE_FMT = 9999 # TODO - -# --------------------------------------------------------------------------------} -# --- INPUT FILE -# --------------------------------------------------------------------------------{ -class FASTInputDeck(): - ''' - Read/write an OpenFAST input file deck. Behaves like a dictionary - ''' - def __init__(self, fst_file): - self.Fst = FASTInputFile(fst_file) - self.path = os.path.dirname(os.path.abspath(fst_file)) - - def load(self): - fst_dict = {} - try: - fst_dict['ElastoDyn'] = self.load_ElastoDyn() - except: - "Error loading {}".format(self.Fst['EDFile'].strip('\'').strip('\"')) - - try: - fst_dict['BDBldFile(1)'] = self.load_BDBldFile1() - except: - "Error loading {}".format(self.Fst['BDBldFile(1)'].strip('\'').strip('\"')) - - try: - fst_dict['BDBldFile(2)'] = self.load_BDBldFile2() - except: - "Error loading {}".format(self.Fst['BDBldFile(2)'].strip('\'').strip('\"')) - - try: - fst_dict['BDBldFile(3)'] = self.load_BDBldFile3() - except: - "Error loading {}".format(self.Fst['BDBldFile(3)'].strip('\'').strip('\"')) - - try: - fst_dict['InflowWind'] = self.load_InflowWind() - except: - "Error loading {}".format(self.Fst['InflowFile'].strip('\'').strip('\"')) - - try: - fst_dict['AeroDyn'] = self.load_AeroDyn() - except: - "Error loading {}".format(self.Fst['AeroFile'].strip('\'').strip('\"')) - - try: - fst_dict['ServoDyn'] = self.load_ServoDyn() - try: - fst_dict['DISCON_in'] = self.load_DISCON() - except: - "Error loading {}".format(self.ServoDyn['DLL_InFile'].strip('\'').strip('\"')) - - except: - "Error loading {}".format(self.Fst['ServoFile'].strip('\'').strip('\"')) - - try: - fst_dict['HydroDyn'] = self.load_HydroDyn() - except: - "Error loading {}".format(self.Fst['HydroFile'].strip('\'').strip('\"')) - - try: - fst_dict['SubDyn'] = self.load_SubDyn() - except: - "Error loading {}".format(self.Fst['SubFile'].strip('\'').strip('\"')) - - try: - fst_dict['MoorDyn'] = self.load_MoorDyn() - except: - "Error loading {}".format(self.Fst['MooringFile'].strip('\'').strip('\"')) - - try: - fst_dict['IceDyn'] = self.load_IceDyn() - except: - "Error loading {}".format(self.Fst['IceFile'].strip('\'').strip('\"')) - - - return fst_dict - - def load_ElastoDyn(self): - ED_fullfile = os.path.join(self.path, self.Fst['EDFile'].strip('\'').strip('\"')) - self.ElastoDyn = FASTInputFile(ED_fullfile) - return self.ElastoDyn - - def load_BDBldFile1(self): - BD1_fullfile = os.path.join(self.path, self.Fst['BDBldFile(1)'].strip('\'').strip('\"')) - self.BD1_fullfile = FASTInputFile(BD1_fullfile) - return self.load_BDBldFile1 - - def load_BDBldFile2(self): - BD2_fullfile = os.path.join(self.path, self.Fst['BDBldFile(2)'].strip('\'').strip('\"')) - self.BD2_fullfile = FASTInputFile(BD2_fullfile) - return self.load_BDBldFile2 - - def load_BDBldFile3(self): - BD3_fullfile = os.path.join(self.path, self.Fst['BDBldFile(3)'].strip('\'').strip('\"')) - self.BD3_fullfile = FASTInputFile(BD3_fullfile) - return self.load_BDBldFile3 - - def load_InflowWind(self): - IF_fullfile = os.path.join(self.path, self.Fst['InflowFile'].strip('\'').strip('\"')) - self.InflowWind = FASTInputFile(IF_fullfile) - return self.InflowWind - - def load_AeroDyn(self): - AF_fullfile = os.path.join(self.path, self.Fst['AeroFile'].strip('\'').strip('\"')) - self.AeroDyn = FASTInputFile(AF_fullfile) - return self.AeroDyn - - def load_ServoDyn(self): - SF_fullfile = os.path.join(self.path, self.Fst['ServoFile'].strip('\'').strip('\"')) - self.ServoDyn = FASTInputFile(SF_fullfile) - return self.ServoDyn - - def load_HydroDyn(self): - HF_fullfile = os.path.join(self.path, self.Fst['HydroFile'].strip('\'').strip('\"')) - self.HydroDyn = FASTInputFile(HF_fullfile) - return self.HydroDyn - - def load_SubDyn(self): - SUBF_fullfile = os.path.join(self.path, self.Fst['SubFile'].strip('\'').strip('\"')) - self.SubDyn = FASTInputFile(SUBF_fullfile) - return self.SubDyn - - def load_MoorDyn(self): - MF_fullfile = os.path.join(self.path, self.Fst['MooringFile'].strip('\'').strip('\"')) - self.MoorDyn = FASTInputFile(MF_fullfile) - return self.MoorDyn - - def load_IceDyn(self): - IceF_fullfile = os.path.join(self.path, self.Fst['IceFile'].strip('\'').strip('\"')) - self.IceDyn = FASTInputFile(IceF_fullfile) - return self.IceDyn - - def load_DISCON(self): # (TODO - Move this out of the ROSCO toolbox and into ofTools) - DISCON_fullfile = os.path.join(self.path, self.ServoDyn['DLL_InFile'].strip('\'').strip('\"')) - self.DISCON_in = read_DISCON(DISCON_fullfile) - return self.DISCON_in - -# --------------------------------------------------------------------------------} -# --- INPUT FILE -# --------------------------------------------------------------------------------{ -class FASTInputFile(File): - """ - Read/write an OpenFAST input file. The object behaves like a dictionary. - - Main methods - ------------ - - read, write, toDataFrame, keys - - Main keys - --------- - The keys correspond to the keys used in the file. For instance for a .fst file: 'DT','TMax' - - Examples - -------- - - filename = 'AeroDyn.dat' - f = FASTInputFile(filename) - f['TwrAero'] = True - f['AirDens'] = 1.225 - f.write('AeroDyn_Changed.dat') - - """ - - @staticmethod - def defaultExtensions(): - return ['.dat','.fst','.txt','.fstf'] - - @staticmethod - def formatName(): - return 'FAST input file' - - def __init__(self, filename=None, **kwargs): - super(FASTInputFile, self).__init__(filename=filename,**kwargs) - - def keys(self): - self.labels = [ d['label'] for d in self.data if not d['isComment'] ] - return self.labels - - def getID(self,label): - i=self.getIDSafe(label) - if i<0: - raise KeyError('Variable `'+ label+'` not found in FAST file:'+self.filename) - else: - return i - def getIDs(self,label): - I=[] - # brute force search - for i in range(len(self.data)): - d = self.data[i] - if d['label'].lower()==label.lower(): - I.append(i) - if len(I)<0: - raise KeyError('Variable `'+ label+'` not found in FAST file:'+self.filename) - else: - return I - - def getIDSafe(self,label): - # brute force search - for i in range(len(self.data)): - d = self.data[i] - if d['label'].lower()==label.lower(): - return i - return -1 - - # Making object an iterator - def __iter__(self): - self.iCurrent=-1 - self.iMax=len(self.data)-1 - return self - - def __next__(self): # Python 2: def next(self) - if self.iCurrent > self.iMax: - raise StopIteration - else: - self.iCurrent += 1 - return self.data[self.iCurrent] - - # Making it behave like a dictionary - def __setitem__(self,key,item): - I = self.getIDs(key) - for i in I: - self.data[i]['value'] = item - - def __getitem__(self,key): - i = self.getID(key) - return self.data[i]['value'] - - def __repr__(self): - s ='Fast input file: {}\n'.format(self.filename) - return s+'\n'.join(['{:15s}: {}'.format(d['label'],d['value']) for i,d in enumerate(self.data)]) - - def addKeyVal(self,key,val,descr=None): - d=getDict() - d['label']=key - d['value']=val - if descr is not None: - d['descr']=descr - self.data.append(d) - - def _read(self): - - # TODO members for BeamDyn with mutliple key point ####### TODO PropSetID is Duplicate SubDyn and used in HydroDyn - NUMTAB_FROM_VAL_DETECT = ['HtFract' , 'TwrElev' , 'BlFract' , 'Genspd_TLU' , 'BlSpn' , 'WndSpeed' , 'HvCoefID' , 'AxCoefID' , 'JointID' , 'Dpth' , 'FillNumM' , 'MGDpth' , 'SimplCd' , 'RNodes' , 'kp_xr' , 'mu1' , 'TwrHtFr' , 'TwrRe' , 'RJointID' , 'IJointID' , 'COSMID' , 'CMJointID' , 'WT_X'] - NUMTAB_FROM_VAL_DIM_VAR = ['NTwInpSt' , 'NumTwrNds' , 'NBlInpSt' , 'DLL_NumTrq' , 'NumBlNds' , 'NumCases' , 'NHvCoef' , 'NAxCoef' , 'NJoints' , 'NCoefDpth' , 'NFillGroups' , 'NMGDepths' , 1 , 'BldNodes' , 'kp_total' , 1 , 'NTwrHt' , 'NTwrRe' , 'NReact' , 'NInterf' , 'NCOSMs' , 'NCmass' , 'NumTurbines'] - NUMTAB_FROM_VAL_VARNAME = ['TowProp' , 'TowProp' , 'BldProp' , 'DLLProp' , 'BldAeroNodes' , 'Cases' , 'HvCoefs' , 'AxCoefs' , 'Joints' , 'DpthProp' , 'FillGroups' , 'MGProp' , 'SmplProp' , 'BldAeroNodes' , 'MemberGeom' , 'DampingCoeffs' , 'TowerProp' , 'TowerRe' , 'BaseReactJoints' , 'InterfaceJoints' , 'MemberCosineMatrix' , 'ConcentratedMasses','WindTurbines'] - NUMTAB_FROM_VAL_NHEADER = [2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 1 , 2 , 2 , 1 , 1 , 2 , 2 , 2 , 2 ,2] - NUMTAB_FROM_VAL_TYPE = ['num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'num' , 'mix' , 'num' , 'num' , 'num' , 'num' , 'mix' , 'num' , 'num' , 'num' ,'mix'] - NUMTAB_FROM_VAL_DETECT_L = [s.lower() for s in NUMTAB_FROM_VAL_DETECT] - - # NOTE: MJointID1, used by SubDyn and HydroDyn - NUMTAB_FROM_LAB_DETECT = ['NumAlf' , 'F_X' , 'MemberCd1' , 'MJointID1' , 'NOutLoc' , 'NOutCnt' , 'PropD' , 'YoungE' , 'YoungE' ] - NUMTAB_FROM_LAB_DIM_VAR = ['NumAlf' , 'NKInpSt' , 'NCoefMembers' , 'NMembers' , 'NMOutputs' , 'NMOutputs' , 'NPropSets' , 'NPropSets' , 'NXPropSets' ] - NUMTAB_FROM_LAB_VARNAME = ['AFCoeff' , 'TMDspProp' , 'MemberProp' , 'Members' , 'MemberOuts' , 'MemberOuts' , 'MemberSectionProp' , 'MemberSectionProp' , 'MemberSectionProp2' ] - NUMTAB_FROM_LAB_TYPE = ['num' , 'num' , 'num' , 'mix' , 'num' , 'num' , 'num' , 'num' , 'num' ] - NUMTAB_FROM_LAB_DETECT_L = [s.lower() for s in NUMTAB_FROM_LAB_DETECT] - - FILTAB_FROM_LAB_DETECT = ['FoilNm' ,'AFNames'] - FILTAB_FROM_LAB_DIM_VAR = ['NumFoil','NumAFfiles'] - FILTAB_FROM_LAB_VARNAME = ['FoilNm' ,'AFNames'] - FILTAB_FROM_LAB_DETECT_L = [s.lower() for s in FILTAB_FROM_LAB_DETECT] - - self.data = [] - self.module = None - #with open(self.filename, 'r', errors="surrogateescape") as f: - with open(self.filename, 'r', errors="surrogateescape") as f: - lines=f.read().splitlines() - # IF NEEDED> DO THE FOLLOWING FORMATTING: - #lines = [str(l).encode('utf-8').decode('ascii','ignore') for l in f.read().splitlines()] - - # Fast files start with ! or - - #if lines[0][0]!='!' and lines[0][0]!='-': - # raise Exception('Fast file do not start with ! or -, is it the right format?') - - # Special filetypes - if self.detectAndReadExtPtfmSE(lines): - return - if self.detectAndReadAirfoil(lines): - return - - # Parsing line by line, storing each line into a dictionary - i=0 - nComments = 0 - nWrongLabels = 0 - allowSpaceSeparatedList=False - while i0 \ - or line.upper().find('MESH-BASED OUTPUTS')>0 \ - or line.upper().find('OUTPUT CHANNELS' )>0: - # TODO, lazy implementation so far, MAKE SUB FUNCTION - parts = re.match(r'^\W*\w+', line) - if parts: - firstword = parts.group(0).strip() - else: - raise NotImplementedError - remainer = re.sub(r'^\W*\w+\W*', '', line) - # Parsing outlist, and then we continue at a new "i" (to read END etc.) - OutList,i = parseFASTOutList(lines,i+1) - d = getDict() - d['label'] = firstword - d['descr'] = remainer - d['tabType'] = TABTYPE_FIL # TODO - d['value'] = ['']+OutList - self.data.append(d) - if i>=len(lines): - break - - # --- Here we cheat and force an exit of the input file - # The reason for this is that some files have a lot of things after the END, which will result in the file being intepreted as a wrong format due to too many comments - if i+20: - print('>>>Bld Nodal outputs present') - else: - self.data.append(parseFASTInputLine('END of input file (the word "END" must appear in the first 3 columns of this last OutList line)',i+1)) - self.data.append(parseFASTInputLine('---------------------------------------------------------------------------------------',i+2)) - break - elif line.upper().find('SSOUTLIST' )>0: - # SUBDYN Outlist doesn not follow regular format - self.data.append(parseFASTInputLine(line,i)) - # OUTLIST Exception for BeamDyn - OutList,i = parseFASTOutList(lines,i+1) - # TODO - for o in OutList: - d = getDict() - d['isComment'] = True - d['value']=o - self.data.append(d) - # --- Here we cheat and force an exit of the input file - self.data.append(parseFASTInputLine('END of input file (the word "END" must appear in the first 3 columns of this last OutList line)',i+1)) - self.data.append(parseFASTInputLine('---------------------------------------------------------------------------------------',i+2)) - break - - elif line.upper().find('ADDITIONAL STIFFNESS')>0: - # TODO, lazy implementation so far, MAKE SUB FUNCTION - self.data.append(parseFASTInputLine(line,i)) - i +=1 - KDAdd = [] - for _ in range(19): - KDAdd.append(lines[i]) - i +=1 - d = getDict() - d['label'] = 'KDAdd' # TODO - d['tabType'] = TABTYPE_FIL # TODO - d['value'] = KDAdd - self.data.append(d) - if i>=len(lines): - break - elif line.upper().find('DISTRIBUTED PROPERTIES')>0: - self.data.append(parseFASTInputLine(line,i)); - i+=1; - self.readBeamDynProps(lines,i) - return - - # --- Parsing of standard lines: value(s) key comment - line = lines[i] - d = parseFASTInputLine(line,i,allowSpaceSeparatedList) - - # --- Handling of special files - if d['label'].lower()=='kp_total': - # BeamDyn has weird space speparated list around keypoint definition - allowSpaceSeparatedList=True - elif d['label'].lower()=='numcoords': - # TODO, lazy implementation so far, MAKE SUB FUNCTION - if isStr(d['value']): - if d['value'][0]=='@': - # it's a ref to the airfoil coord file - pass - else: - if not strIsInt(d['value']): - raise WrongFormatError('Wrong value of NumCoords') - if int(d['value'])<=0: - pass - else: - self.data.append(d); i+=1; - # 3 comment lines - self.data.append(parseFASTInputLine(lines[i],i)); i+=1; - self.data.append(parseFASTInputLine(lines[i],i)); i+=1; - self.data.append(parseFASTInputLine(lines[i],i)); i+=1; - splits=cleanAfterChar(cleanLine(lines[i]),'!').split() - # Airfoil ref point - try: - pos=[float(splits[0]), float(splits[1])] - except: - raise WrongFormatError('Wrong format while reading coordinates of airfoil reference') - i+=1 - d = getDict() - d['label'] = 'AirfoilRefPoint' - d['value'] = pos - self.data.append(d) - # 2 comment lines - self.data.append(parseFASTInputLine(lines[i],i)); i+=1; - self.data.append(parseFASTInputLine(lines[i],i)); i+=1; - # Table of coordinats itself - d = getDict() - d['label'] = 'AirfoilCoord' - d['tabDimVar'] = 'NumCoords' - d['tabType'] = TABTYPE_NUM_WITH_HEADERCOM - nTabLines = self[d['tabDimVar']]-1 # SOMEHOW ONE DATA POINT LESS - d['value'], d['tabColumnNames'],_ = parseFASTNumTable(self.filename,lines[i:i+nTabLines+1],nTabLines,i,1) - d['tabUnits'] = ['(-)','(-)'] - self.data.append(d) - break - - - - #print('label>',d['label'],'<',type(d['label'])); - #print('value>',d['value'],'<',type(d['value'])); - #print(isStr(d['value'])) - #if isStr(d['value']): - # print(d['value'].lower() in NUMTAB_FROM_VAL_DETECT_L) - - - # --- Handling of tables - if isStr(d['value']) and d['value'].lower() in NUMTAB_FROM_VAL_DETECT_L: - # Table with numerical values, - ii = NUMTAB_FROM_VAL_DETECT_L.index(d['value'].lower()) - tab_type = NUMTAB_FROM_VAL_TYPE[ii] - if tab_type=='num': - d['tabType'] = TABTYPE_NUM_WITH_HEADER - else: - d['tabType'] = TABTYPE_MIX_WITH_HEADER - d['label'] = NUMTAB_FROM_VAL_VARNAME[ii] - d['tabDimVar'] = NUMTAB_FROM_VAL_DIM_VAR[ii] - nHeaders = NUMTAB_FROM_VAL_NHEADER[ii] - nTabLines=0 - if isinstance(d['tabDimVar'],int): - nTabLines = d['tabDimVar'] - else: - nTabLines = self[d['tabDimVar']] - #print('Reading table {} Dimension {} (based on {})'.format(d['label'],nTabLines,d['tabDimVar'])); - d['value'], d['tabColumnNames'], d['tabUnits'] = parseFASTNumTable(self.filename,lines[i:i+nTabLines+nHeaders],nTabLines,i,nHeaders,tableType=tab_type) - i += nTabLines+nHeaders-1 - - # --- Temporary hack for e.g. SubDyn, that has duplicate table, impossible to detect in the current way... - # So we remove the element form the list one read - del NUMTAB_FROM_VAL_DETECT[ii] - del NUMTAB_FROM_VAL_DIM_VAR[ii] - del NUMTAB_FROM_VAL_VARNAME[ii] - del NUMTAB_FROM_VAL_NHEADER[ii] - del NUMTAB_FROM_VAL_TYPE [ii] - del NUMTAB_FROM_VAL_DETECT_L[ii] - - elif isStr(d['label']) and d['label'].lower() in NUMTAB_FROM_LAB_DETECT_L: - ii = NUMTAB_FROM_LAB_DETECT_L.index(d['label'].lower()) - tab_type = NUMTAB_FROM_LAB_TYPE[ii] - # Special case for airfoil data, the table follows NumAlf, so we add d first - if d['label'].lower()=='numalf': - d['tabType']=TABTYPE_NOT_A_TAB - self.data.append(d) - # Creating a new dictionary for the table - d = {'value':None, 'label':'NumAlf', 'isComment':False, 'descr':'', 'tabType':None} - i += 1 - d['label'] = NUMTAB_FROM_LAB_VARNAME[ii] - d['tabDimVar'] = NUMTAB_FROM_LAB_DIM_VAR[ii] - if d['label'].lower()=='afcoeff' : - d['tabType'] = TABTYPE_NUM_WITH_HEADERCOM - else: - if tab_type=='num': - d['tabType'] = TABTYPE_NUM_WITH_HEADER - else: - d['tabType'] = TABTYPE_MIX_WITH_HEADER - nTabLines = self[d['tabDimVar']] - #print('Reading table {} Dimension {} (based on {})'.format(d['label'],nTabLines,d['tabDimVar'])); - d['value'], d['tabColumnNames'], d['tabUnits'] = parseFASTNumTable(self.filename,lines[i:i+nTabLines+2],nTabLines,i,2,tableType=tab_type) - i += nTabLines+1 - - # --- Temporary hack for e.g. SubDyn, that has duplicate table, impossible to detect in the current way... - # So we remove the element form the list one read - del NUMTAB_FROM_LAB_DETECT[ii] - del NUMTAB_FROM_LAB_DIM_VAR[ii] - del NUMTAB_FROM_LAB_VARNAME[ii] - del NUMTAB_FROM_LAB_TYPE [ii] - del NUMTAB_FROM_LAB_DETECT_L[ii] - - elif isStr(d['label']) and d['label'].lower() in FILTAB_FROM_LAB_DETECT_L: - ii = FILTAB_FROM_LAB_DETECT_L.index(d['label'].lower()) - d['label'] = FILTAB_FROM_LAB_VARNAME[ii] - d['tabDimVar'] = FILTAB_FROM_LAB_DIM_VAR[ii] - d['tabType'] = TABTYPE_FIL - nTabLines = self[d['tabDimVar']] - #print('Reading table {} Dimension {} (based on {})'.format(d['label'],nTabLines,d['tabDimVar'])); - d['value'] = parseFASTFilTable(lines[i:i+nTabLines],nTabLines,i) - i += nTabLines-1 - - - - self.data.append(d) - i += 1 - # --- Safety checks - if d['isComment']: - #print(line) - nComments +=1 - else: - if hasSpecialChars(d['label']): - nWrongLabels +=1 - #print('label>',d['label'],'<',type(d['label']),line); - if i>3: # first few lines may be comments, we allow it - #print('Line',i,'Label:',d['label']) - raise WrongFormatError('Special Character found in Label: `{}`'.format(d['label'])) - if len(d['label'])==0: - nWrongLabels +=1 - if nComments>len(lines)*0.35: - #print('Comment fail',nComments,len(lines),self.filename) - raise WrongFormatError('Most lines were read as comments, probably not a FAST Input File') - if nWrongLabels>len(lines)*0.10: - #print('Label fail',nWrongLabels,len(lines),self.filename) - raise WrongFormatError('Too many lines with wrong labels, probably not a FAST Input File') - - # --- PostReading checks - labels = self.keys() - duplicates = set([x for x in labels if labels.count(x) > 1]) - if len(duplicates)>0: - print('[WARN] Duplicate labels found in file: '+self.filename) - print(' Duplicates: '+', '.join(duplicates)) - print(' It\'s strongly recommended to make them unique! ') -# except WrongFormatError as e: -# raise WrongFormatError('Fast File {}: '.format(self.filename)+'\n'+e.args[0]) -# except Exception as e: -# raise e -# # print(e) -# raise Exception('Fast File {}: '.format(self.filename)+'\n'+e.args[0]) - - - def toString(self): - s='' - # Special file formats, TODO subclass - if self.module=='ExtPtfm': - s+='!Comment\n' - s+='!Comment Flex 5 Format\n' - s+='!Dimension: {}\n'.format(self['nDOF']) - s+='!Time increment in simulation: {}\n'.format(self['dt']) - s+='!Total simulation time in file: {}\n'.format(self['T']) - - s+='\n!Mass Matrix\n' - s+='!Dimension: {}\n'.format(self['nDOF']) - s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in self['MassMatrix']) - - s+='\n\n!Stiffness Matrix\n' - s+='!Dimension: {}\n'.format(self['nDOF']) - s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in self['StiffnessMatrix']) - - s+='\n\n!Damping Matrix\n' - s+='!Dimension: {}\n'.format(self['nDOF']) - s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in self['DampingMatrix']) - - s+='\n\n!Loading and Wave Elevation\n' - s+='!Dimension: 1 time column - {} force columns\n'.format(self['nDOF']) - s+='\n'.join(''.join('{:16.8e}'.format(x) for x in y) for y in self['Loading']) - return s - - def toStringVLD(val,lab,descr): - val='{}'.format(val) - lab='{}'.format(lab) - if len(val)<13: - val='{:13s}'.format(val) - if len(lab)<13: - lab='{:13s}'.format(lab) - return val+' '+lab+' - '+descr.strip().strip('-').strip()+'\n' - - for i in range(len(self.data)): - d=self.data[i] - if d['isComment']: - s+='{}'.format(d['value']) - elif d['tabType']==TABTYPE_NOT_A_TAB: - if isinstance(d['value'], list): - sList=', '.join([str(x) for x in d['value']]) - s+='{} {} {}'.format(sList,d['label'],d['descr']) - else: - s+=toStringVLD(d['value'],d['label'],d['descr']).strip() - elif d['tabType']==TABTYPE_NUM_WITH_HEADER: - s+='{}'.format(' '.join(['{:15s}'.format(s) for s in d['tabColumnNames']])) - #s+=d['descr'] # Not ready for that - if d['tabUnits'] is not None: - s+='\n' - s+='{}'.format(' '.join(['{:15s}'.format(s) for s in d['tabUnits']])) - if np.size(d['value'],0) > 0 : - s+='\n' - s+='\n'.join('\t'.join( ('{:15.0f}'.format(x) if int(x)==x else '{:15.8e}'.format(x) ) for x in y) for y in d['value']) - elif d['tabType']==TABTYPE_MIX_WITH_HEADER: - s+='{}'.format(' '.join(['{:15s}'.format(s) for s in d['tabColumnNames']])) - if d['tabUnits'] is not None: - s+='\n' - s+='{}'.format(' '.join(['{:15s}'.format(s) for s in d['tabUnits']])) - if np.size(d['value'],0) > 0 : - s+='\n' - s+='\n'.join('\t'.join('{}'.format(x) for x in y) for y in d['value']) - elif d['tabType']==TABTYPE_NUM_WITH_HEADERCOM: - s+='! {}\n'.format(' '.join(['{:15s}'.format(s) for s in d['tabColumnNames']])) - s+='! {}\n'.format(' '.join(['{:15s}'.format(s) for s in d['tabUnits']])) - s+='\n'.join('\t'.join('{:15.8e}'.format(x) for x in y) for y in d['value']) - elif d['tabType']==TABTYPE_FIL: - #f.write('{} {} {}\n'.format(d['value'][0],d['tabDetect'],d['descr'])) - s+='{} {} {}\n'.format(d['value'][0],d['label'],d['descr']) # TODO? - s+='\n'.join(fil for fil in d['value'][1:]) - else: - raise Exception('Unknown table type for variable {}',d) - if i0: - # Hack for blade files, we add the modes - x=Val[:,0] - Modes=np.zeros((x.shape[0],3)) - Modes[:,0] = x**2 * self['BldFl1Sh(2)'] \ - + x**3 * self['BldFl1Sh(3)'] \ - + x**4 * self['BldFl1Sh(4)'] \ - + x**5 * self['BldFl1Sh(5)'] \ - + x**6 * self['BldFl1Sh(6)'] - Modes[:,1] = x**2 * self['BldFl2Sh(2)'] \ - + x**3 * self['BldFl2Sh(3)'] \ - + x**4 * self['BldFl2Sh(4)'] \ - + x**5 * self['BldFl2Sh(5)'] \ - + x**6 * self['BldFl2Sh(6)'] - Modes[:,2] = x**2 * self['BldEdgSh(2)'] \ - + x**3 * self['BldEdgSh(3)'] \ - + x**4 * self['BldEdgSh(4)'] \ - + x**5 * self['BldEdgSh(5)'] \ - + x**6 * self['BldEdgSh(6)'] - Val = np.hstack((Val,Modes)) - Cols = Cols + ['ShapeFlap1_[-]','ShapeFlap2_[-]','ShapeEdge1_[-]'] - - elif self.getIDSafe('TwFAM1Sh(2)')>0: - # Hack for tower files, we add the modes - x=Val[:,0] - Modes=np.zeros((x.shape[0],4)) - Modes[:,0] = x**2 * self['TwFAM1Sh(2)'] \ - + x**3 * self['TwFAM1Sh(3)'] \ - + x**4 * self['TwFAM1Sh(4)'] \ - + x**5 * self['TwFAM1Sh(5)'] \ - + x**6 * self['TwFAM1Sh(6)'] - Modes[:,1] = x**2 * self['TwFAM2Sh(2)'] \ - + x**3 * self['TwFAM2Sh(3)'] \ - + x**4 * self['TwFAM2Sh(4)'] \ - + x**5 * self['TwFAM2Sh(5)'] \ - + x**6 * self['TwFAM2Sh(6)'] - Modes[:,2] = x**2 * self['TwSSM1Sh(2)'] \ - + x**3 * self['TwSSM1Sh(3)'] \ - + x**4 * self['TwSSM1Sh(4)'] \ - + x**5 * self['TwSSM1Sh(5)'] \ - + x**6 * self['TwSSM1Sh(6)'] - Modes[:,3] = x**2 * self['TwSSM2Sh(2)'] \ - + x**3 * self['TwSSM2Sh(3)'] \ - + x**4 * self['TwSSM2Sh(4)'] \ - + x**5 * self['TwSSM2Sh(5)'] \ - + x**6 * self['TwSSM2Sh(6)'] - Val = np.hstack((Val,Modes)) - Cols = Cols + ['ShapeForeAft1_[-]','ShapeForeAft2_[-]','ShapeSideSide1_[-]','ShapeSideSide2_[-]'] - - name=d['label'] - dfs[name]=pd.DataFrame(data=Val,columns=Cols) - elif d['tabType'] in [TABTYPE_NUM_BEAMDYN]: - data = d['value'] - Cols =['Span'] - Cols+=['K{}{}'.format(i+1,j+1) for i in range(6) for j in range(6)] - Cols+=['M{}{}'.format(i+1,j+1) for i in range(6) for j in range(6)] - # Putting the main terms first - IAll = range(1+36+36) - IMain= [0] + [i*6+i+1 for i in range(6)] + [i*6+i+37 for i in range(6)] - IOrg = IMain + [i for i in range(1+36+36) if i not in IMain] - Cols = [Cols[i] for i in IOrg] - data = data[:,IOrg] - name=d['label'] - dfs[name]=pd.DataFrame(data=data,columns=Cols) - if len(dfs)==1: - dfs=dfs[list(dfs.keys())[0]] - return dfs - -# --------------------------------------------------------------------------------} -# --- SubReaders /detectors -# --------------------------------------------------------------------------------{ - def detectAndReadExtPtfmSE(self,lines): - def readmat(n,m,lines,iStart): - M=np.zeros((n,m)) - for j in np.arange(n): - i=iStart+j - M[j,:]=np.array(lines[i].split()).astype(float) - return M - if len(lines)<10: - return False - if not (lines[0][0]=='!' and lines[1][0]=='!'): - return False - if lines[1].lower().find('flex')<0: - return - if lines[2].lower().find('!dimension')<0: - return - # --- At this stage we assume it's in the proper format - self.module='ExtPtfm' - nDOFCommon = -1 - i=2; - try: - while i0: - if l[0]=='!': - if l.find('!dimension')==0: - self.addKeyVal('nDOF',int(l.split(':')[1])) - nDOFCommon=self['nDOF'] - elif l.find('!time increment')==0: - self.addKeyVal('dt',np.float_(l.split(':')[1])) - elif l.find('!total simulation time')==0: - self.addKeyVal('T',np.float_(l.split(':')[1])) - else: - raise BrokenFormatError('Unexcepted content found on line {}'.format(i)) - i+=1 - except BrokenFormatError as e: - raise e - except: - raise - - - return True - - - - def detectAndReadAirfoil(self,lines): - if len(lines)<14: - return False - # Reading number of tables - L3 = lines[2].strip().split() - if len(L3)<=0: - return False - if not strIsInt(L3[0]): - return False - nTables=int(L3[0]) - # Reading table ID - L4 = lines[3].strip().split() - if len(L4)<=nTables: - return False - TableID=L4[:nTables] - if nTables==1: - TableID=[''] - # Keywords for file format - KW1=lines[12].strip().split() - KW2=lines[13].strip().split() - if len(KW1)>nTables and len(KW2)>nTables: - if KW1[nTables].lower()=='angle' and KW2[nTables].lower()=='minimum': - d = getDict(); d['isComment'] = True; d['value'] = lines[0]; self.data.append(d); - d = getDict(); d['isComment'] = True; d['value'] = lines[1]; self.data.append(d); - for i in range(2,14): - splits = lines[i].split() - #print(splits) - d = getDict() - d['label'] = ' '.join(splits[1:]) # TODO - d['descr'] = ' '.join(splits[1:]) # TODO - d['value'] = float(splits[0]) - self.data.append(d) - #pass - #for i in range(2,14): - nTabLines=0 - while 14+nTabLines0 : - nTabLines +=1 - #data = np.array([lines[i].strip().split() for i in range(14,len(lines)) if len(lines[i])>0]).astype(np.float_) - #data = np.array([lines[i].strip().split() for i in takewhile(lambda x: len(lines[i].strip())>0, range(14,len(lines)-1))]).astype(np.float_) - data = np.array([lines[i].strip().split() for i in range(14,nTabLines+14)]).astype(np.float_) - #print(data) - d = getDict() - d['label'] = 'Polar' - d['tabDimVar'] = nTabLines - d['tabType'] = TABTYPE_NUM_NO_HEADER - d['value'] = data - if np.size(data,1)==1+nTables*3: - d['tabColumnNames'] = ['Alpha']+[n+l for l in TableID for n in ['Cl','Cd','Cm']] - d['tabUnits'] = ['(deg)']+['(-)' , '(-)' , '(-)']*nTables - elif np.size(data,1)==1+nTables*2: - d['tabColumnNames'] = ['Alpha']+[n+l for l in TableID for n in ['Cl','Cd']] - d['tabUnits'] = ['(deg)']+['(-)' , '(-)']*nTables - else: - d['tabColumnNames'] = ['col{}'.format(j) for j in range(np.size(data,1))] - self.data.append(d) - return True - - def readBeamDynProps(self,lines,iStart): - nStations=self['station_total'] - M=np.zeros((nStations,1+36+36)) - i=iStart; - try: - for j in range(nStations): - M[j,0]=float(lines[i]); i+=1; - LL = lines[i:i+6] - M[j,1:37]=np.array((' '.join(lines[i:i+6])).split()).astype(np.float_) - i+=7 - M[j,37:]=np.array((' '.join(lines[i:i+6])).split()).astype(np.float_) - i+=7 - except: - raise WrongFormatError('An error occured while reading section {}/{}'.format(j+1,nStations)) - d = getDict() - d['label'] = 'BeamProperties' - d['descr'] = '' - d['tabType'] = TABTYPE_NUM_BEAMDYN - d['value'] = M - self.data.append(d) - - -# --------------------------------------------------------------------------------} -# --- Helper functions -# --------------------------------------------------------------------------------{ -def isStr(s): - # Python 2 and 3 compatible - # Two options below - # NOTE: all this avoided since we import str from builtins - # --- Version 2 - # isString = False; - # if(isinstance(s, str)): - # isString = True; - # try: - # if(isinstance(s, basestring)): # todo unicode as well - # isString = True; - # except NameError: - # pass; - # return isString - # --- Version 1 - # try: - # basestring # python 2 - # return isinstance(s, basestring) or isinstance(s,unicode) - # except NameError: - # basestring=str #python 3 - # return isinstance(s, str) - return isinstance(s, str) - -def strIsFloat(s): - #return s.replace('.',',1').isdigit() - try: - float(s) - return True - except: - return False - -def strIsBool(s): - return (s.lower() == 'true') or (s.lower() == 'false') - -def strIsInt(s): - s = str(s) - if s[0] in ('-', '+'): - return s[1:].isdigit() - return s.isdigit() - -def hasSpecialChars(s): - # fast allows for parenthesis - # For now we allow for - but that's because of BeamDyn geometry members - return not re.match("^[\"\'a-zA-Z0-9_()-]*$", s) - -def cleanLine(l): - # makes a string single space separated - l = l.replace('\t',' ') - l = ' '.join(l.split()) - l = l.strip() - return l - -def cleanAfterChar(l,c): - # remove whats after a character - n = l.find(c); - if n>0: - return l[:n] - else: - return l - -def getDict(): - return {'value':None, 'label':'', 'isComment':False, 'descr':'', 'tabType':TABTYPE_NOT_A_TAB} - - -def parseFASTInputLine(line_raw,i,allowSpaceSeparatedList=False): - d = getDict() - #print(line_raw) - try: - # preliminary cleaning (Note: loss of formatting) - line = cleanLine(line_raw) - # Comment - if any(line.startswith(c) for c in ['#','!','--','==']) or len(line)==0: - d['isComment']=True - d['value']=line_raw - return d - - # Detecting lists - List=[]; - iComma=line.find(',') - if iComma>0 and iComma<30: - fakeline=line.replace(' ',',') - fakeline=re.sub(',+',',',fakeline) - csplits=fakeline.split(',') - # Splitting based on comma and looping while it's numbers of booleans - ii=0 - s=csplits[ii] - #print(csplits) - while strIsFloat(s) or strIsBool(s) and ii=len(csplits): - raise WrongFormatError('Wrong number of list values') - s = csplits[ii] - #print('[INFO] Line {}: Found list: '.format(i),List) - # Defining value and remaining splits - if len(List)>=2: - d['value']=List - line_remaining=line - # eating line, removing each values - for iii in range(ii): - sValue=csplits[iii] - ipos=line_remaining.find(sValue) - line_remaining = line_remaining[ipos+len(sValue):] - splits=line_remaining.split() - iNext=0 - else: - # It's not a list, we just use space as separators - splits=line.split(' ') - s=splits[0] - - if strIsInt(s): - d['value']=int(s) - if allowSpaceSeparatedList and len(splits)>1: - if strIsInt(splits[1]): - d['value']=splits[0]+ ' '+splits[1] - elif strIsFloat(s): - d['value']=float(s) - elif strIsBool(s): - d['value']=bool(s) - else: - d['value']=s - iNext=1 - #import pdb ; pdb.set_trace(); - - # Extracting label (TODO, for now only second split) - bOK=False - while (not bOK) and iNext comment assumed'.format(i+1)) - d['isComment']=True - d['value']=line_raw - iNext = len(splits)+1 - - # Recombining description - if len(splits)>=iNext+1: - d['descr']=' '.join(splits[iNext:]) - except WrongFormatError as e: - raise WrongFormatError('Line {}: '.format(i+1)+e.args[0]) - except Exception as e: - raise Exception('Line {}: '.format(i+1)+e.args[0]) - - return d - -def parseFASTOutList(lines,iStart): - OutList=[] - i = iStart - MAX=200 - while iMAX : - raise Exception('More that 200 lines found in outlist') - if i>=len(lines): - print('[WARN] End of file reached while reading Outlist') - #i=min(i+1,len(lines)) - return OutList,iStart+len(OutList) - - -def extractWithinParenthesis(s): - mo = re.search(r'\((.*)\)', s) - if mo: - return mo.group(1) - return '' - -def extractWithinBrackets(s): - mo = re.search(r'\((.*)\)', s) - if mo: - return mo.group(1) - return '' - -def detectUnits(s,nRef): - nPOpen=s.count('(') - nPClos=s.count(')') - nBOpen=s.count('[') - nBClos=s.count(']') - - sep='!#@#!' - if (nPOpen == nPClos) and (nPOpen>=nRef): - #that's pretty good - Units=s.replace('(','').replace(')',sep).split(sep)[:-1] - elif (nBOpen == nBClos) and (nBOpen>=nRef): - Units=s.replace('[','').replace(']',sep).split(sep)[:-1] - else: - Units=s.split() - return Units - - -def parseFASTNumTable(filename,lines,n,iStart,nHeaders=2,tableType='num'): - Tab = None - ColNames = None - Units = None - - if len(lines)!=n+nHeaders: - raise BrokenFormatError('Not enough lines in table: {} lines instead of {}\nFile:{}'.format(len(lines)-nHeaders,n,filename)) - - if nHeaders<1: - raise NotImplementedError('Reading FAST tables with no headers not implemented yet') - - try: - if nHeaders>=1: - # Extract column names - i = 0 - sTmp = cleanLine(lines[i]) - sTmp = cleanAfterChar(sTmp,'[') - if sTmp.startswith('!'): - sTmp=sTmp[1:].strip() - ColNames=sTmp.split() - if nHeaders>=2: - # Extract units - i = 1 - sTmp = cleanLine(lines[i]) - if sTmp.startswith('!'): - sTmp=sTmp[1:].strip() - - Units = detectUnits(sTmp,len(ColNames)) - Units = ['({})'.format(u.strip()) for u in Units] - # Forcing user to match number of units and column names - if len(ColNames) != len(Units): - print(ColNames) - print(Units) - raise Exception('Number of column names different from number of units in table') - - nCols=len(ColNames) - - if tableType=='num': - Tab = np.zeros((n, nCols)) - for i in range(nHeaders,n+nHeaders): - l = lines[i].lower() - v = l.split() - if len(v) > nCols: - print('[WARN] {}: Line {}: number of data different from number of column names'.format(filename, iStart+i+1)) - if len(v) < nCols: - raise Exception('Number of data is lower than number of column names') - # Accounting for TRUE FALSE and converting to float - v = [s.replace('true','1').replace('false','0').replace('noprint','0').replace('print','1') for s in v] - v = [float(s) for s in v[0:nCols]] - if len(v) < nCols: - raise Exception('Number of data is lower than number of column names') - Tab[i-nHeaders,:] = v - elif tableType=='mix': - # a mix table contains a mixed of strings and floats - # For now, we are being a bit more relaxed about the number of columns - Tab = np.zeros((n, nCols)).astype(object) - for i in range(nHeaders,n+nHeaders): - l = lines[i] - v = l.split() - if len(v) != nCols: - print('[WARN] {}: Line {}: Number of data is different than number of column names'.format(filename,iStart+1+i)) - v=v[0:min(len(v),nCols)] - Tab[i-nHeaders,0:len(v)] = v - else: - raise Exception('Unknown table type') - - except Exception as e: - raise BrokenFormatError('Line {}: {}'.format(iStart+i+1,e.args[0])) - return Tab, ColNames, Units - - -def parseFASTFilTable(lines,n,iStart): - Tab = [] - try: - i=0 - if len(lines)!=n: - raise WrongFormatError('Not enough lines in table: {} lines instead of {}'.format(len(lines),n)) - for i in range(n): - l = lines[i].split() - #print(l[0].strip()) - Tab.append(l[0].strip()) - - except Exception as e: - raise Exception('Line {}: '.format(iStart+i+1)+e.args[0]) - return Tab - - -if __name__ == "__main__": - B=FASTInFile('BeamDyn_Blade.dat') - - - diff --git a/ROSCO_toolbox/utilities.py b/ROSCO_toolbox/utilities.py index 04cf98f3..cf7f3218 100644 --- a/ROSCO_toolbox/utilities.py +++ b/ROSCO_toolbox/utilities.py @@ -27,6 +27,7 @@ import numpy as np import subprocess import ROSCO_toolbox +from wisdem.inputs import load_yaml from wisdem.inputs import load_yaml @@ -58,6 +59,27 @@ def write_DISCON(turbine, controller, param_file='DISCON.IN', txt_filename='Cp_C if not rosco_vt: rosco_vt = DISCON_dict(turbine, controller, txt_filename) + # Get input descriptions from input schema + fname_schema = os.path.join(os.path.dirname(__file__),'inputs/toolbox_schema.yaml') + sch = load_yaml(fname_schema) + + # mode descriptions in main controller_params, might not be needed + mode_descriptions = {} + for input, props in sch['properties']['controller_params']['properties'].items(): + if 'description' in props: + mode_descriptions[input] = props['description'] + + input_descriptions = {} + for input, props in sch['properties']['controller_params']['properties']['DISCON']['properties'].items(): + if 'description' in props: + input_descriptions[input] = props['description'] + + # Tidy inputs, if needed + if not hasattr(rosco_vt['CC_GroupIndex'],'__len__'): + rosco_vt['CC_GroupIndex'] = [rosco_vt['CC_GroupIndex']] # make an array + if not hasattr(rosco_vt['StC_GroupIndex'],'__len__'): + rosco_vt['StC_GroupIndex'] = [rosco_vt['StC_GroupIndex']] + print('Writing new controller parameter file parameter file: %s.' % param_file) # Should be obvious what's going on here... file = open(param_file,'w') @@ -65,10 +87,11 @@ def write_DISCON(turbine, controller, param_file='DISCON.IN', txt_filename='Cp_C file.write('! - File written using ROSCO version {} controller tuning logic on {}\n'.format(ROSCO_toolbox.__version__, now.strftime('%m/%d/%y'))) file.write('\n') file.write('!------- DEBUG ------------------------------------------------------------\n') - file.write('{0:<12d} ! LoggingLevel - {{0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)}}\n'.format(int(rosco_vt['LoggingLevel']))) + file.write('{0:<12d} ! LoggingLevel - (0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3))\n'.format(int(rosco_vt['LoggingLevel']))) + file.write('{:<11d} ! Echo - ({})\n'.format(int(rosco_vt['Echo']), input_descriptions['Echo'])) file.write('\n') file.write('!------- CONTROLLER FLAGS -------------------------------------------------\n') - file.write('{0:<12d} ! F_LPFType - {{1: first-order low-pass filter, 2: second-order low-pass filter}}, [rad/s] (currently filters generator speed and pitch control signals\n'.format(int(rosco_vt['F_LPFType']))) + file.write('{0:<12d} ! F_LPFType - (1: first-order low-pass filter, 2: second-order low-pass filter), [rad/s] (currently filters generator speed and pitch control signals\n'.format(int(rosco_vt['F_LPFType']))) file.write('{0:<12d} ! F_NotchType - Notch on the measured generator speed and/or tower fore-aft motion (for floating) {{0: disable, 1: generator speed, 2: tower-top fore-aft motion, 3: generator speed and tower-top fore-aft motion}}\n'.format(int(rosco_vt['F_NotchType']))) file.write('{0:<12d} ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {{0: off, 1: 1P reductions, 2: 1P+2P reductions}}\n'.format(int(rosco_vt['IPC_ControlMode']))) file.write('{0:<12d} ! VS_ControlMode - Generator torque control mode in above rated conditions {{0: constant torque, 1: constant power, 2: TSR tracking PI control with constant torque, 3: TSR tracking PI control with constant power}}\n'.format(int(rosco_vt['VS_ControlMode']))) @@ -84,8 +107,11 @@ def write_DISCON(turbine, controller, param_file='DISCON.IN', txt_filename='Cp_C file.write('{0:<12d} ! OL_Mode - Open loop control mode {{0: no open loop control, 1: open loop control vs. time}}\n'.format(int(rosco_vt['OL_Mode']))) file.write('{0:<12d} ! PA_Mode - Pitch actuator mode {{0 - not used, 1 - first order filter, 2 - second order filter}}\n'.format(int(rosco_vt['PA_Mode']))) file.write('{0:<12d} ! PF_Mode - Pitch fault mode {{0 - not used, 1 - constant offset on one or more blades}}\n'.format(int(rosco_vt['PF_Mode']))) + file.write('{0:<12d} ! AWC_Mode - Active wake control {{0 - not used, 1 - complex number method, 2 - Coleman transform method}}\n'.format(int(rosco_vt['AWC_Mode']))) file.write('{0:<12d} ! Ext_Mode - External control mode {{0 - not used, 1 - call external dynamic library}}\n'.format(int(rosco_vt['Ext_Mode']))) file.write('{0:<12d} ! ZMQ_Mode - Fuse ZeroMQ interface {{0: unused, 1: Yaw Control}}\n'.format(int(rosco_vt['ZMQ_Mode']))) + file.write('{:<12d} ! CC_Mode - {}\n'.format(int(rosco_vt['CC_Mode']),mode_descriptions['CC_Mode'])) + file.write('{:<12d} ! StC_Mode - {}\n'.format(int(rosco_vt['StC_Mode']),mode_descriptions['StC_Mode'])) file.write('\n') file.write('!------- FILTERS ----------------------------------------------------------\n') @@ -200,7 +226,9 @@ def write_DISCON(turbine, controller, param_file='DISCON.IN', txt_filename='Cp_C file.write('{0:<12d} ! Ind_Breakpoint - The column in OL_Filename that contains the breakpoint (time if OL_Mode = 1)\n'.format(int(rosco_vt['Ind_Breakpoint']))) file.write('{0:<12d} ! Ind_BldPitch - The column in OL_Filename that contains the blade pitch input in rad\n'.format(int(rosco_vt['Ind_BldPitch']))) file.write('{0:<12d} ! Ind_GenTq - The column in OL_Filename that contains the generator torque in Nm\n'.format(int(rosco_vt['Ind_GenTq']))) - file.write('{0:<12d} ! Ind_YawRate - The column in OL_Filename that contains the generator torque in Nm\n'.format(int(rosco_vt['Ind_YawRate']))) + file.write('{0:<12d} ! Ind_YawRate - The column in OL_Filename that contains the nacelle yaw rate rad/s\n'.format(int(rosco_vt['Ind_YawRate']))) + file.write('{} ! Ind_CableControl - The column(s) in OL_Filename that contains the cable control inputs in m [Used with CC_Mode = 2, must be the same size as CC_Group_N]\n'.format(write_array(rosco_vt['Ind_CableControl'],'<4d'))) + file.write('{} ! Ind_StructControl - The column(s) in OL_Filename that contains the structural control inputs [Used with StC_Mode = 2, must be the same size as StC_Group_N]\n'.format(write_array(rosco_vt['Ind_StructControl'],'<4d'))) file.write('\n') file.write('!------- Pitch Actuator Model -----------------------------------------------------\n') file.write('{:<014.5f} ! PA_CornerFreq - Pitch actuator bandwidth/cut-off frequency [rad/s]\n'.format(rosco_vt['PA_CornerFreq'])) @@ -209,6 +237,14 @@ def write_DISCON(turbine, controller, param_file='DISCON.IN', txt_filename='Cp_C file.write('!------- Pitch Actuator Faults -----------------------------------------------------\n') file.write('{} ! PF_Offsets - Constant blade pitch offsets for blades 1-3 [rad]\n'.format(''.join('{:<10.8f} '.format(rosco_vt['PF_Offsets'][i]) for i in range(3)))) file.write('\n') + file.write('!------- Active Wake Control -----------------------------------------------------\n') + file.write('{0:<12d} ! AWC_NumModes - Number of user-defined AWC forcing modes \n'.format(int(rosco_vt['AWC_NumModes']))) + file.write('{} ! AWC_n - Azimuthal mode number(s) (i.e., the number and direction of the lobes of the wake structure)\n'.format(write_array(rosco_vt['AWC_n'],'<4d'))) + file.write('{} ! AWC_harmonic - Harmonic(s) to apply in the AWC Inverse Coleman Transformation (only used when AWC_Mode = 2)\n'.format(write_array(rosco_vt['AWC_harmonic'],'<4d'))) + file.write('{} ! AWC_freq - Frequency(s) of forcing mode(s) [Hz]\n'.format(write_array(rosco_vt['AWC_freq'],'<6.4f'))) + file.write('{} ! AWC_amp - Pitch amplitude(s) of individual forcing mode(s) [deg]\n'.format(write_array(rosco_vt['AWC_amp'],'<6.4f'))) + file.write('{} ! AWC_clockangle - Initial angle(s) of forcing mode(s) [deg]\n'.format(write_array(rosco_vt['AWC_clockangle'],'<6.4f'))) + file.write('\n') file.write('!------- External Controller Interface -----------------------------------------------------\n') file.write('"{}" ! DLL_FileName - Name/location of the dynamic library in the Bladed-DLL format\n'.format(rosco_vt['DLL_FileName'])) file.write('"{}" ! DLL_InFile - Name of input file sent to the DLL (-)\n'.format(rosco_vt['DLL_InFile'])) @@ -217,6 +253,16 @@ def write_DISCON(turbine, controller, param_file='DISCON.IN', txt_filename='Cp_C file.write('!------- ZeroMQ Interface ---------------------------------------------------------\n') file.write('"{}" ! ZMQ_CommAddress - Communication address for ZMQ server, (e.g. "tcp://localhost:5555") \n'.format(rosco_vt['ZMQ_CommAddress'])) file.write('{:<11d} ! ZMQ_UpdatePeriod - Call ZeroMQ every [x] seconds, [s]\n'.format(int(rosco_vt['ZMQ_UpdatePeriod']))) + file.write('\n') + file.write('!------- Cable Control ---------------------------------------------------------\n') + file.write('{:<11d} ! CC_Group_N - {}\n'.format(len(rosco_vt['CC_GroupIndex']), input_descriptions['CC_Group_N'])) + file.write('{:^11s} ! CC_GroupIndex - {}\n'.format(write_array(rosco_vt['CC_GroupIndex'],'<6d'), input_descriptions['CC_GroupIndex'])) + file.write('{:<11f} ! CC_ActTau - {}\n'.format(rosco_vt['CC_ActTau'], input_descriptions['CC_ActTau'] )) + file.write('\n') + file.write('!------- Structural Controllers ---------------------------------------------------------\n') + file.write('{:<11d} ! StC_Group_N - {}\n'.format(len(rosco_vt['StC_GroupIndex']), input_descriptions['StC_Group_N'])) + file.write('{:^11s} ! StC_GroupIndex - {}\n'.format(write_array(rosco_vt['StC_GroupIndex'],'<6d'), input_descriptions['StC_GroupIndex'])) + file.close() # Write Open loop input @@ -410,8 +456,11 @@ def DISCON_dict(turbine, controller, txt_filename=None): DISCON_dict['OL_Mode'] = int(controller.OL_Mode) DISCON_dict['PF_Mode'] = int(controller.PF_Mode) DISCON_dict['PA_Mode'] = int(controller.PA_Mode) + DISCON_dict['AWC_Mode'] = int(controller.AWC_Mode) DISCON_dict['Ext_Mode'] = int(controller.Ext_Mode) DISCON_dict['ZMQ_Mode'] = int(controller.ZMQ_Mode) + DISCON_dict['CC_Mode'] = int(controller.CC_Mode) + DISCON_dict['StC_Mode'] = int(controller.StC_Mode) # ------- FILTERS ------- DISCON_dict['F_LPFCornerFreq'] = turbine.bld_edgewise_freq * 1/4 DISCON_dict['F_LPFDamping'] = controller.F_LPFDamping @@ -516,6 +565,8 @@ def DISCON_dict(turbine, controller, txt_filename=None): DISCON_dict['Ind_BldPitch'] = controller.OL_Ind_BldPitch DISCON_dict['Ind_GenTq'] = controller.OL_Ind_GenTq DISCON_dict['Ind_YawRate'] = controller.OL_Ind_YawRate + DISCON_dict['Ind_CableControl'] = controller.OL_Ind_CableControl + DISCON_dict['Ind_StructControl'] = controller.OL_Ind_StructControl # ------- Pitch Actuator ------- DISCON_dict['PA_Mode'] = controller.PA_Mode DISCON_dict['PA_CornerFreq'] = controller.PA_CornerFreq @@ -611,3 +662,14 @@ def list_check(x, return_bool=True): return is_list else: return y + +def write_array(array,format='<.4f'): + + if not hasattr(array,'__len__'): #not an array + array = [array] + + # force int if not + if 'd' in format and type(array[0]) != int: + array = [int(a) for a in array] + + return ''.join(['{:{}} '.format(item,format) for item in array]) diff --git a/Test_Cases/BAR_10/BAR_10_DISCON.IN b/Test_Cases/BAR_10/BAR_10_DISCON.IN index 17875c9c..f750015d 100644 --- a/Test_Cases/BAR_10/BAR_10_DISCON.IN +++ b/Test_Cases/BAR_10/BAR_10_DISCON.IN @@ -1,11 +1,12 @@ ! Controller parameter input file for the BAR_10 wind turbine -! - File written using ROSCO version 2.7.0 controller tuning logic on 02/06/23 +! - File written using ROSCO version 2.8.0 controller tuning logic on 04/10/23 !------- DEBUG ------------------------------------------------------------ -1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} +1 ! LoggingLevel - (0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)) +0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- -2 ! F_LPFType - {1: first-order low-pass filter, 2: second-order low-pass filter}, [rad/s] (currently filters generator speed and pitch control signals +2 ! F_LPFType - (1: first-order low-pass filter, 2: second-order low-pass filter), [rad/s] (currently filters generator speed and pitch control signals 0 ! F_NotchType - Notch on the measured generator speed and/or tower fore-aft motion (for floating) {0: disable, 1: generator speed, 2: tower-top fore-aft motion, 3: generator speed and tower-top fore-aft motion} 0 ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {0: off, 1: 1P reductions, 2: 1P+2P reductions} 2 ! VS_ControlMode - Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control with constant torque, 3: TSR tracking PI control with constant power} @@ -21,8 +22,11 @@ 0 ! OL_Mode - Open loop control mode {0: no open loop control, 1: open loop control vs. time} 0 ! PA_Mode - Pitch actuator mode {0 - not used, 1 - first order filter, 2 - second order filter} 0 ! PF_Mode - Pitch fault mode {0 - not used, 1 - constant offset on one or more blades} +0 ! AWC_Mode - Active wake control {0 - not used, 1 - complex number method, 2 - Coleman transform method} 0 ! Ext_Mode - External control mode {0 - not used, 1 - call external dynamic library} 0 ! ZMQ_Mode - Fuse ZeroMQ interface {0: unused, 1: Yaw Control} +0 ! CC_Mode - Cable control mode [0- unused, 1- User defined, 2- Open loop control] +0 ! StC_Mode - Structural control mode [0- unused, 1- User defined, 2- Open loop control] !------- FILTERS ---------------------------------------------------------- 0.81771 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [rad/s] @@ -131,7 +135,9 @@ 0 ! Ind_Breakpoint - The column in OL_Filename that contains the breakpoint (time if OL_Mode = 1) 0 ! Ind_BldPitch - The column in OL_Filename that contains the blade pitch input in rad 0 ! Ind_GenTq - The column in OL_Filename that contains the generator torque in Nm -0 ! Ind_YawRate - The column in OL_Filename that contains the generator torque in Nm +0 ! Ind_YawRate - The column in OL_Filename that contains the nacelle yaw rate rad/s +0 ! Ind_CableControl - The column(s) in OL_Filename that contains the cable control inputs in m [Used with CC_Mode = 2, must be the same size as CC_Group_N] +0 ! Ind_StructControl - The column(s) in OL_Filename that contains the structural control inputs [Used with StC_Mode = 2, must be the same size as StC_Group_N] !------- Pitch Actuator Model ----------------------------------------------------- 3.140000000000 ! PA_CornerFreq - Pitch actuator bandwidth/cut-off frequency [rad/s] @@ -140,6 +146,14 @@ !------- Pitch Actuator Faults ----------------------------------------------------- 0.00000000 0.00000000 0.00000000 ! PF_Offsets - Constant blade pitch offsets for blades 1-3 [rad] +!------- Active Wake Control ----------------------------------------------------- +1 ! AWC_NumModes - Number of user-defined AWC forcing modes +1 ! AWC_n - Azimuthal mode number(s) (i.e., the number and direction of the lobes of the wake structure) +1 ! AWC_harmonic - Harmonic(s) to apply in the AWC Inverse Coleman Transformation (only used when AWC_Mode = 2) +0.0500 ! AWC_freq - Frequency(s) of forcing mode(s) [Hz] +1.0000 ! AWC_amp - Pitch amplitude(s) of individual forcing mode(s) [deg] +0.0000 ! AWC_clockangle - Initial angle(s) of forcing mode(s) [deg] + !------- External Controller Interface ----------------------------------------------------- "unused" ! DLL_FileName - Name/location of the dynamic library in the Bladed-DLL format "unused" ! DLL_InFile - Name of input file sent to the DLL (-) @@ -148,3 +162,12 @@ !------- ZeroMQ Interface --------------------------------------------------------- "tcp://localhost:5555" ! ZMQ_CommAddress - Communication address for ZMQ server, (e.g. "tcp://localhost:5555") 2 ! ZMQ_UpdatePeriod - Call ZeroMQ every [x] seconds, [s] + +!------- Cable Control --------------------------------------------------------- +1 ! CC_Group_N - Number of cable control groups + 0 ! CC_GroupIndex - First index for cable control group, should correspond to deltaL +20.000000 ! CC_ActTau - Time constant for line actuator [s] + +!------- Structural Controllers --------------------------------------------------------- +1 ! StC_Group_N - Number of cable control groups + 0 ! StC_GroupIndex - First index for structural control group, options specified in ServoDyn summary output diff --git a/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN b/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN index 5f55c5ab..17c96a1e 100644 --- a/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN +++ b/Test_Cases/IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN @@ -1,11 +1,12 @@ ! Controller parameter input file for the IEA-15-240-RWT-UMaineSemi wind turbine -! - File written using ROSCO version 2.7.0 controller tuning logic on 02/06/23 +! - File written using ROSCO version 2.8.0 controller tuning logic on 04/10/23 !------- DEBUG ------------------------------------------------------------ -2 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} +2 ! LoggingLevel - (0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)) +0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- -2 ! F_LPFType - {1: first-order low-pass filter, 2: second-order low-pass filter}, [rad/s] (currently filters generator speed and pitch control signals +2 ! F_LPFType - (1: first-order low-pass filter, 2: second-order low-pass filter), [rad/s] (currently filters generator speed and pitch control signals 2 ! F_NotchType - Notch on the measured generator speed and/or tower fore-aft motion (for floating) {0: disable, 1: generator speed, 2: tower-top fore-aft motion, 3: generator speed and tower-top fore-aft motion} 0 ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {0: off, 1: 1P reductions, 2: 1P+2P reductions} 2 ! VS_ControlMode - Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control with constant torque, 3: TSR tracking PI control with constant power} @@ -21,8 +22,11 @@ 0 ! OL_Mode - Open loop control mode {0: no open loop control, 1: open loop control vs. time} 2 ! PA_Mode - Pitch actuator mode {0 - not used, 1 - first order filter, 2 - second order filter} 0 ! PF_Mode - Pitch fault mode {0 - not used, 1 - constant offset on one or more blades} +0 ! AWC_Mode - Active wake control {0 - not used, 1 - complex number method, 2 - Coleman transform method} 0 ! Ext_Mode - External control mode {0 - not used, 1 - call external dynamic library} 0 ! ZMQ_Mode - Fuse ZeroMQ interface {0: unused, 1: Yaw Control} +0 ! CC_Mode - Cable control mode [0- unused, 1- User defined, 2- Open loop control] +0 ! StC_Mode - Structural control mode [0- unused, 1- User defined, 2- Open loop control] !------- FILTERS ---------------------------------------------------------- 1.00810 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [rad/s] @@ -131,7 +135,9 @@ 0 ! Ind_Breakpoint - The column in OL_Filename that contains the breakpoint (time if OL_Mode = 1) 0 ! Ind_BldPitch - The column in OL_Filename that contains the blade pitch input in rad 0 ! Ind_GenTq - The column in OL_Filename that contains the generator torque in Nm -0 ! Ind_YawRate - The column in OL_Filename that contains the generator torque in Nm +0 ! Ind_YawRate - The column in OL_Filename that contains the nacelle yaw rate rad/s +0 ! Ind_CableControl - The column(s) in OL_Filename that contains the cable control inputs in m [Used with CC_Mode = 2, must be the same size as CC_Group_N] +0 ! Ind_StructControl - The column(s) in OL_Filename that contains the structural control inputs [Used with StC_Mode = 2, must be the same size as StC_Group_N] !------- Pitch Actuator Model ----------------------------------------------------- 1.570800000000 ! PA_CornerFreq - Pitch actuator bandwidth/cut-off frequency [rad/s] @@ -140,6 +146,14 @@ !------- Pitch Actuator Faults ----------------------------------------------------- 0.00000000 0.00000000 0.00000000 ! PF_Offsets - Constant blade pitch offsets for blades 1-3 [rad] +!------- Active Wake Control ----------------------------------------------------- +1 ! AWC_NumModes - Number of user-defined AWC forcing modes +1 ! AWC_n - Azimuthal mode number(s) (i.e., the number and direction of the lobes of the wake structure) +1 ! AWC_harmonic - Harmonic(s) to apply in the AWC Inverse Coleman Transformation (only used when AWC_Mode = 2) +0.0500 ! AWC_freq - Frequency(s) of forcing mode(s) [Hz] +1.0000 ! AWC_amp - Pitch amplitude(s) of individual forcing mode(s) [deg] +0.0000 ! AWC_clockangle - Initial angle(s) of forcing mode(s) [deg] + !------- External Controller Interface ----------------------------------------------------- "unused" ! DLL_FileName - Name/location of the dynamic library in the Bladed-DLL format "unused" ! DLL_InFile - Name of input file sent to the DLL (-) @@ -148,3 +162,12 @@ !------- ZeroMQ Interface --------------------------------------------------------- "tcp://localhost:5555" ! ZMQ_CommAddress - Communication address for ZMQ server, (e.g. "tcp://localhost:5555") 2 ! ZMQ_UpdatePeriod - Call ZeroMQ every [x] seconds, [s] + +!------- Cable Control --------------------------------------------------------- +1 ! CC_Group_N - Number of cable control groups + 0 ! CC_GroupIndex - First index for cable control group, should correspond to deltaL +20.000000 ! CC_ActTau - Time constant for line actuator [s] + +!------- Structural Controllers --------------------------------------------------------- +1 ! StC_Group_N - Number of cable control groups + 0 ! StC_GroupIndex - First index for structural control group, options specified in ServoDyn summary output diff --git a/Test_Cases/IEA-15-240-RWT-UMaineSemi/StC-Force-Col1.dat b/Test_Cases/IEA-15-240-RWT-UMaineSemi/StC-Force-Col1.dat new file mode 100644 index 00000000..5709eb5f --- /dev/null +++ b/Test_Cases/IEA-15-240-RWT-UMaineSemi/StC-Force-Col1.dat @@ -0,0 +1,95 @@ +------- STRUCTURAL CONTROL (StC) INPUT FILE ---------------------------- +Input file for tuned mass damper, module by Matt Lackner, Meghan Glade, and Semyung Park (UMass) +---------------------- SIMULATION CONTROL -------------------------------------- +True Echo - Echo input data to .ech (flag) +---------------------- StC DEGREES OF FREEDOM ---------------------------------- + 5 StC_DOF_MODE - DOF mode (switch) {0: No StC or TLCD DOF; 1: StC_X_DOF, StC_Y_DOF, and/or StC_Z_DOF (three independent StC DOFs); 2: StC_XY_DOF (Omni-Directional StC); 3: TLCD; 4: Prescribed force/moment time series} +false StC_X_DOF - DOF on or off for StC X (flag) [Used only when StC_DOF_MODE=1] +false StC_Y_DOF - DOF on or off for StC Y (flag) [Used only when StC_DOF_MODE=1] +false StC_Z_DOF - DOF on or off for StC Z (flag) [Used only when StC_DOF_MODE=1] +---------------------- StC LOCATION ------------------------------------------- [relative to the reference origin of component attached to] + -51.75 StC_P_X - At rest X position of StC (m) + 0 StC_P_Y - At rest Y position of StC (m) + -10 StC_P_Z - At rest Z position of StC (m) +---------------------- StC INITIAL CONDITIONS --------------------------------- [used only when StC_DOF_MODE=1 or 2] + 0 StC_X_DSP - StC X initial displacement (m) [relative to at rest position] + 0 StC_Y_DSP - StC Y initial displacement (m) [relative to at rest position] + 0 StC_Z_DSP - StC Z initial displacement (m) [relative to at rest position; used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +"none" StC_Z_PreLd - StC Z pre-load (N) {"gravity" to offset for gravity load; "none" or 0 to turn off} [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- StC CONFIGURATION -------------------------------------- [used only when StC_DOF_MODE=1 or 2] + 0 StC_X_PSP - Positive stop position (maximum X mass displacement) (m) + 0 StC_X_NSP - Negative stop position (minimum X mass displacement) (m) + 0 StC_Y_PSP - Positive stop position (maximum Y mass displacement) (m) + 0 StC_Y_NSP - Negative stop position (minimum Y mass displacement) (m) + 0 StC_Z_PSP - Positive stop position (maximum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_Z_NSP - Negative stop position (minimum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- StC MASS, STIFFNESS, & DAMPING ------------------------- [used only when StC_DOF_MODE=1 or 2] + 0 StC_X_M - StC X mass (kg) [must equal StC_Y_M for StC_DOF_MODE = 2] + 1 StC_Y_M - StC Y mass (kg) [must equal StC_X_M for StC_DOF_MODE = 2] + 0 StC_Z_M - StC Z mass (kg) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_XY_M - StC XY mass (kg) [used only when StC_DOF_MODE=2] + 0 StC_X_K - StC X stiffness (N/m) + 0 StC_Y_K - StC Y stiffness (N/m) + 1e8 StC_Z_K - StC Z stiffness (N/m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_C - StC X damping (N/(m/s)) + 0 StC_Y_C - StC Y damping (N/(m/s)) + 100 StC_Z_C - StC Z damping (N/(m/s)) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_KS - Stop spring X stiffness (N/m) + 0 StC_Y_KS - Stop spring Y stiffness (N/m) + 0 StC_Z_KS - Stop spring Z stiffness (N/m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_CS - Stop spring X damping (N/(m/s)) + 0 StC_Y_CS - Stop spring Y damping (N/(m/s)) + 0 StC_Z_CS - Stop spring Z damping (N/(m/s)) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- StC USER-DEFINED SPRING FORCES ------------------------- [used only when StC_DOF_MODE=1 or 2] +False Use_F_TBL - Use spring force from user-defined table (flag) + 17 NKInpSt - Number of spring force input stations +---------------------- StC SPRING FORCES TABLE -------------------------------- [used only when StC_DOF_MODE=1 or 2] + X F_X Y F_Y Z F_Z + (m) (N) (m) (N) (m) (N) +-6.0000000E+00 -4.8000000E+06 -6.0000000E+00 -4.8000000E+06 -6.0000000E+00 -4.8000000E+06 +-5.0000000E+00 -2.4000000E+06 -5.0000000E+00 -2.4000000E+06 -5.0000000E+00 -2.4000000E+06 +-4.5000000E+00 -1.2000000E+06 -4.5000000E+00 -1.2000000E+06 -4.5000000E+00 -1.2000000E+06 +-4.0000000E+00 -6.0000000E+05 -4.0000000E+00 -6.0000000E+05 -4.0000000E+00 -6.0000000E+05 +-3.5000000E+00 -3.0000000E+05 -3.5000000E+00 -3.0000000E+05 -3.5000000E+00 -3.0000000E+05 +-3.0000000E+00 -1.5000000E+05 -3.0000000E+00 -1.5000000E+05 -3.0000000E+00 -1.5000000E+05 +-2.5000000E+00 -1.0000000E+05 -2.5000000E+00 -1.0000000E+05 -2.5000000E+00 -1.0000000E+05 +-2.0000000E+00 -6.5000000E+04 -2.0000000E+00 -6.5000000E+04 -2.0000000E+00 -6.5000000E+04 + 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 2.0000000E+00 6.5000000E+04 2.0000000E+00 6.5000000E+04 2.0000000E+00 6.5000000E+04 + 2.5000000E+00 1.0000000E+05 2.5000000E+00 1.0000000E+05 2.5000000E+00 1.0000000E+05 + 3.0000000E+00 1.5000000E+05 3.0000000E+00 1.5000000E+05 3.0000000E+00 1.5000000E+05 + 3.5000000E+00 3.0000000E+05 3.5000000E+00 3.0000000E+05 3.5000000E+00 3.0000000E+05 + 4.0000000E+00 6.0000000E+05 4.0000000E+00 6.0000000E+05 4.0000000E+00 6.0000000E+05 + 4.5000000E+00 1.2000000E+06 4.5000000E+00 1.2000000E+06 4.5000000E+00 1.2000000E+06 + 5.0000000E+00 2.4000000E+06 5.0000000E+00 2.4000000E+06 5.0000000E+00 2.4000000E+06 + 6.0000000E+00 4.8000000E+06 6.0000000E+00 4.8000000E+06 6.0000000E+00 4.8000000E+06 +---------------------- StructCtrl CONTROL -------------------------------------------- [used only when StC_DOF_MODE=1 or 2] + 5 StC_CMODE - Control mode (switch) {0:none; 1: Semi-Active Control Mode; 4: Active Control Mode through Simulink (not available); 5: Active Control Mode through Bladed interface} + 1 StC_CChan - Control channel group (1:10) for stiffness and damping (StC_[XYZ]_K, StC_[XYZ]_C, and StC_[XYZ]_Brake) (specify additional channels for blade instances of StC active control -- one channel per blade) [used only when StC_DOF_MODE=1 or 2, and StC_CMODE=4 or 5] + 1 StC_SA_MODE - Semi-Active control mode {1: velocity-based ground hook control; 2: Inverse velocity-based ground hook control; 3: displacement-based ground hook control 4: Phase difference Algorithm with Friction Force 5: Phase difference Algorithm with Damping Force} (-) + 0 StC_X_C_HIGH - StC X high damping for ground hook control + 0 StC_X_C_LOW - StC X low damping for ground hook control + 0 StC_Y_C_HIGH - StC Y high damping for ground hook control + 0 StC_Y_C_LOW - StC Y low damping for ground hook control + 0 StC_Z_C_HIGH - StC Z high damping for ground hook control [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_Z_C_LOW - StC Z low damping for ground hook control [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_C_BRAKE - StC X high damping for braking the StC (Don't use it now. should be zero) + 0 StC_Y_C_BRAKE - StC Y high damping for braking the StC (Don't use it now. should be zero) + 0 StC_Z_C_BRAKE - StC Z high damping for braking the StC (Don't use it now. should be zero) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- TLCD --------------------------------------------------- [used only when StC_DOF_MODE=3] + 7.9325 L_X - X TLCD total length (m) + 6.5929 B_X - X TLCD horizontal length (m) + 2.0217 area_X - X TLCD cross-sectional area of vertical column (m^2) + 0.913 area_ratio_X - X TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-) + 2.5265 headLossCoeff_X - X TLCD head loss coeff (-) + 1000 rho_X - X TLCD liquid density (kg/m^3) + 3.5767 L_Y - Y TLCD total length (m) + 2.1788 B_Y - Y TLCD horizontal length (m) + 1.2252 area_Y - Y TLCD cross-sectional area of vertical column (m^2) + 2.7232 area_ratio_Y - Y TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-) + 0.6433 headLossCoeff_Y - Y TLCD head loss coeff (-) + 1000 rho_Y - Y TLCD liquid density (kg/m^3) +---------------------- PRESCRIBED TIME SERIES --------------------------------- [used only when StC_DOF_MODE=4] + 1 PrescribedForcesCoord- Prescribed forces are in global or local coordinates (switch) {1: global; 2: local} +"Bld-TimeForceSeries.dat" PrescribedForcesFile - Time series force and moment (7 columns of time, FX, FY, FZ, MX, MY, MZ) +------------------------------------------------------------------------------- \ No newline at end of file diff --git a/Test_Cases/IEA-15-240-RWT-UMaineSemi/StC-Force-Col2.dat b/Test_Cases/IEA-15-240-RWT-UMaineSemi/StC-Force-Col2.dat new file mode 100644 index 00000000..83e86cf8 --- /dev/null +++ b/Test_Cases/IEA-15-240-RWT-UMaineSemi/StC-Force-Col2.dat @@ -0,0 +1,95 @@ +------- STRUCTURAL CONTROL (StC) INPUT FILE ---------------------------- +Input file for tuned mass damper, module by Matt Lackner, Meghan Glade, and Semyung Park (UMass) +---------------------- SIMULATION CONTROL -------------------------------------- +True Echo - Echo input data to .ech (flag) +---------------------- StC DEGREES OF FREEDOM ---------------------------------- + 5 StC_DOF_MODE - DOF mode (switch) {0: No StC or TLCD DOF; 1: StC_X_DOF, StC_Y_DOF, and/or StC_Z_DOF (three independent StC DOFs); 2: StC_XY_DOF (Omni-Directional StC); 3: TLCD; 4: Prescribed force/moment time series} +false StC_X_DOF - DOF on or off for StC X (flag) [Used only when StC_DOF_MODE=1] +false StC_Y_DOF - DOF on or off for StC Y (flag) [Used only when StC_DOF_MODE=1] +false StC_Z_DOF - DOF on or off for StC Z (flag) [Used only when StC_DOF_MODE=1] +---------------------- StC LOCATION ------------------------------------------- [relative to the reference origin of component attached to] +25.874997 StC_P_X - At rest X position of StC (m) +44.816815 StC_P_Y - At rest Y position of StC (m) + -10 StC_P_Z - At rest Z position of StC (m) +---------------------- StC INITIAL CONDITIONS --------------------------------- [used only when StC_DOF_MODE=1 or 2] + 0 StC_X_DSP - StC X initial displacement (m) [relative to at rest position] + 0 StC_Y_DSP - StC Y initial displacement (m) [relative to at rest position] + 0 StC_Z_DSP - StC Z initial displacement (m) [relative to at rest position; used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +"none" StC_Z_PreLd - StC Z pre-load (N) {"gravity" to offset for gravity load; "none" or 0 to turn off} [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- StC CONFIGURATION -------------------------------------- [used only when StC_DOF_MODE=1 or 2] + 0 StC_X_PSP - Positive stop position (maximum X mass displacement) (m) + 0 StC_X_NSP - Negative stop position (minimum X mass displacement) (m) + 0 StC_Y_PSP - Positive stop position (maximum Y mass displacement) (m) + 0 StC_Y_NSP - Negative stop position (minimum Y mass displacement) (m) + 0 StC_Z_PSP - Positive stop position (maximum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_Z_NSP - Negative stop position (minimum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- StC MASS, STIFFNESS, & DAMPING ------------------------- [used only when StC_DOF_MODE=1 or 2] + 0 StC_X_M - StC X mass (kg) [must equal StC_Y_M for StC_DOF_MODE = 2] + 1 StC_Y_M - StC Y mass (kg) [must equal StC_X_M for StC_DOF_MODE = 2] + 0 StC_Z_M - StC Z mass (kg) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_XY_M - StC XY mass (kg) [used only when StC_DOF_MODE=2] + 0 StC_X_K - StC X stiffness (N/m) + 0 StC_Y_K - StC Y stiffness (N/m) + 1e8 StC_Z_K - StC Z stiffness (N/m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_C - StC X damping (N/(m/s)) + 0 StC_Y_C - StC Y damping (N/(m/s)) + 100 StC_Z_C - StC Z damping (N/(m/s)) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_KS - Stop spring X stiffness (N/m) + 0 StC_Y_KS - Stop spring Y stiffness (N/m) + 0 StC_Z_KS - Stop spring Z stiffness (N/m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_CS - Stop spring X damping (N/(m/s)) + 0 StC_Y_CS - Stop spring Y damping (N/(m/s)) + 0 StC_Z_CS - Stop spring Z damping (N/(m/s)) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- StC USER-DEFINED SPRING FORCES ------------------------- [used only when StC_DOF_MODE=1 or 2] +False Use_F_TBL - Use spring force from user-defined table (flag) + 17 NKInpSt - Number of spring force input stations +---------------------- StC SPRING FORCES TABLE -------------------------------- [used only when StC_DOF_MODE=1 or 2] + X F_X Y F_Y Z F_Z + (m) (N) (m) (N) (m) (N) +-6.0000000E+00 -4.8000000E+06 -6.0000000E+00 -4.8000000E+06 -6.0000000E+00 -4.8000000E+06 +-5.0000000E+00 -2.4000000E+06 -5.0000000E+00 -2.4000000E+06 -5.0000000E+00 -2.4000000E+06 +-4.5000000E+00 -1.2000000E+06 -4.5000000E+00 -1.2000000E+06 -4.5000000E+00 -1.2000000E+06 +-4.0000000E+00 -6.0000000E+05 -4.0000000E+00 -6.0000000E+05 -4.0000000E+00 -6.0000000E+05 +-3.5000000E+00 -3.0000000E+05 -3.5000000E+00 -3.0000000E+05 -3.5000000E+00 -3.0000000E+05 +-3.0000000E+00 -1.5000000E+05 -3.0000000E+00 -1.5000000E+05 -3.0000000E+00 -1.5000000E+05 +-2.5000000E+00 -1.0000000E+05 -2.5000000E+00 -1.0000000E+05 -2.5000000E+00 -1.0000000E+05 +-2.0000000E+00 -6.5000000E+04 -2.0000000E+00 -6.5000000E+04 -2.0000000E+00 -6.5000000E+04 + 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 2.0000000E+00 6.5000000E+04 2.0000000E+00 6.5000000E+04 2.0000000E+00 6.5000000E+04 + 2.5000000E+00 1.0000000E+05 2.5000000E+00 1.0000000E+05 2.5000000E+00 1.0000000E+05 + 3.0000000E+00 1.5000000E+05 3.0000000E+00 1.5000000E+05 3.0000000E+00 1.5000000E+05 + 3.5000000E+00 3.0000000E+05 3.5000000E+00 3.0000000E+05 3.5000000E+00 3.0000000E+05 + 4.0000000E+00 6.0000000E+05 4.0000000E+00 6.0000000E+05 4.0000000E+00 6.0000000E+05 + 4.5000000E+00 1.2000000E+06 4.5000000E+00 1.2000000E+06 4.5000000E+00 1.2000000E+06 + 5.0000000E+00 2.4000000E+06 5.0000000E+00 2.4000000E+06 5.0000000E+00 2.4000000E+06 + 6.0000000E+00 4.8000000E+06 6.0000000E+00 4.8000000E+06 6.0000000E+00 4.8000000E+06 +---------------------- StructCtrl CONTROL -------------------------------------------- [used only when StC_DOF_MODE=1 or 2] + 5 StC_CMODE - Control mode (switch) {0:none; 1: Semi-Active Control Mode; 4: Active Control Mode through Simulink (not available); 5: Active Control Mode through Bladed interface} + 2 StC_CChan - Control channel group (1:10) for stiffness and damping (StC_[XYZ]_K, StC_[XYZ]_C, and StC_[XYZ]_Brake) (specify additional channels for blade instances of StC active control -- one channel per blade) [used only when StC_DOF_MODE=1 or 2, and StC_CMODE=4 or 5] + 1 StC_SA_MODE - Semi-Active control mode {1: velocity-based ground hook control; 2: Inverse velocity-based ground hook control; 3: displacement-based ground hook control 4: Phase difference Algorithm with Friction Force 5: Phase difference Algorithm with Damping Force} (-) + 0 StC_X_C_HIGH - StC X high damping for ground hook control + 0 StC_X_C_LOW - StC X low damping for ground hook control + 0 StC_Y_C_HIGH - StC Y high damping for ground hook control + 0 StC_Y_C_LOW - StC Y low damping for ground hook control + 0 StC_Z_C_HIGH - StC Z high damping for ground hook control [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_Z_C_LOW - StC Z low damping for ground hook control [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_C_BRAKE - StC X high damping for braking the StC (Don't use it now. should be zero) + 0 StC_Y_C_BRAKE - StC Y high damping for braking the StC (Don't use it now. should be zero) + 0 StC_Z_C_BRAKE - StC Z high damping for braking the StC (Don't use it now. should be zero) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- TLCD --------------------------------------------------- [used only when StC_DOF_MODE=3] + 7.9325 L_X - X TLCD total length (m) + 6.5929 B_X - X TLCD horizontal length (m) + 2.0217 area_X - X TLCD cross-sectional area of vertical column (m^2) + 0.913 area_ratio_X - X TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-) + 2.5265 headLossCoeff_X - X TLCD head loss coeff (-) + 1000 rho_X - X TLCD liquid density (kg/m^3) + 3.5767 L_Y - Y TLCD total length (m) + 2.1788 B_Y - Y TLCD horizontal length (m) + 1.2252 area_Y - Y TLCD cross-sectional area of vertical column (m^2) + 2.7232 area_ratio_Y - Y TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-) + 0.6433 headLossCoeff_Y - Y TLCD head loss coeff (-) + 1000 rho_Y - Y TLCD liquid density (kg/m^3) +---------------------- PRESCRIBED TIME SERIES --------------------------------- [used only when StC_DOF_MODE=4] + 1 PrescribedForcesCoord- Prescribed forces are in global or local coordinates (switch) {1: global; 2: local} +"Bld-TimeForceSeries.dat" PrescribedForcesFile - Time series force and moment (7 columns of time, FX, FY, FZ, MX, MY, MZ) +------------------------------------------------------------------------------- \ No newline at end of file diff --git a/Test_Cases/IEA-15-240-RWT-UMaineSemi/StC-Force-Col3.dat b/Test_Cases/IEA-15-240-RWT-UMaineSemi/StC-Force-Col3.dat new file mode 100644 index 00000000..0488dc80 --- /dev/null +++ b/Test_Cases/IEA-15-240-RWT-UMaineSemi/StC-Force-Col3.dat @@ -0,0 +1,95 @@ +------- STRUCTURAL CONTROL (StC) INPUT FILE ---------------------------- +Input file for tuned mass damper, module by Matt Lackner, Meghan Glade, and Semyung Park (UMass) +---------------------- SIMULATION CONTROL -------------------------------------- +True Echo - Echo input data to .ech (flag) +---------------------- StC DEGREES OF FREEDOM ---------------------------------- + 5 StC_DOF_MODE - DOF mode (switch) {0: No StC or TLCD DOF; 1: StC_X_DOF, StC_Y_DOF, and/or StC_Z_DOF (three independent StC DOFs); 2: StC_XY_DOF (Omni-Directional StC); 3: TLCD; 4: Prescribed force/moment time series} +false StC_X_DOF - DOF on or off for StC X (flag) [Used only when StC_DOF_MODE=1] +false StC_Y_DOF - DOF on or off for StC Y (flag) [Used only when StC_DOF_MODE=1] +false StC_Z_DOF - DOF on or off for StC Z (flag) [Used only when StC_DOF_MODE=1] +---------------------- StC LOCATION ------------------------------------------- [relative to the reference origin of component attached to] +25.874997 StC_P_X - At rest X position of StC (m) +-44.816815 StC_P_Y - At rest Y position of StC (m) + -10 StC_P_Z - At rest Z position of StC (m) +---------------------- StC INITIAL CONDITIONS --------------------------------- [used only when StC_DOF_MODE=1 or 2] + 0 StC_X_DSP - StC X initial displacement (m) [relative to at rest position] + 0 StC_Y_DSP - StC Y initial displacement (m) [relative to at rest position] + 0 StC_Z_DSP - StC Z initial displacement (m) [relative to at rest position; used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +"none" StC_Z_PreLd - StC Z pre-load (N) {"gravity" to offset for gravity load; "none" or 0 to turn off} [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- StC CONFIGURATION -------------------------------------- [used only when StC_DOF_MODE=1 or 2] + 0 StC_X_PSP - Positive stop position (maximum X mass displacement) (m) + 0 StC_X_NSP - Negative stop position (minimum X mass displacement) (m) + 0 StC_Y_PSP - Positive stop position (maximum Y mass displacement) (m) + 0 StC_Y_NSP - Negative stop position (minimum Y mass displacement) (m) + 0 StC_Z_PSP - Positive stop position (maximum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_Z_NSP - Negative stop position (minimum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- StC MASS, STIFFNESS, & DAMPING ------------------------- [used only when StC_DOF_MODE=1 or 2] + 0 StC_X_M - StC X mass (kg) [must equal StC_Y_M for StC_DOF_MODE = 2] + 1 StC_Y_M - StC Y mass (kg) [must equal StC_X_M for StC_DOF_MODE = 2] + 0 StC_Z_M - StC Z mass (kg) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_XY_M - StC XY mass (kg) [used only when StC_DOF_MODE=2] + 0 StC_X_K - StC X stiffness (N/m) + 0 StC_Y_K - StC Y stiffness (N/m) + 1e8 StC_Z_K - StC Z stiffness (N/m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_C - StC X damping (N/(m/s)) + 0 StC_Y_C - StC Y damping (N/(m/s)) + 100 StC_Z_C - StC Z damping (N/(m/s)) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_KS - Stop spring X stiffness (N/m) + 0 StC_Y_KS - Stop spring Y stiffness (N/m) + 0 StC_Z_KS - Stop spring Z stiffness (N/m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_CS - Stop spring X damping (N/(m/s)) + 0 StC_Y_CS - Stop spring Y damping (N/(m/s)) + 0 StC_Z_CS - Stop spring Z damping (N/(m/s)) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- StC USER-DEFINED SPRING FORCES ------------------------- [used only when StC_DOF_MODE=1 or 2] +False Use_F_TBL - Use spring force from user-defined table (flag) + 17 NKInpSt - Number of spring force input stations +---------------------- StC SPRING FORCES TABLE -------------------------------- [used only when StC_DOF_MODE=1 or 2] + X F_X Y F_Y Z F_Z + (m) (N) (m) (N) (m) (N) +-6.0000000E+00 -4.8000000E+06 -6.0000000E+00 -4.8000000E+06 -6.0000000E+00 -4.8000000E+06 +-5.0000000E+00 -2.4000000E+06 -5.0000000E+00 -2.4000000E+06 -5.0000000E+00 -2.4000000E+06 +-4.5000000E+00 -1.2000000E+06 -4.5000000E+00 -1.2000000E+06 -4.5000000E+00 -1.2000000E+06 +-4.0000000E+00 -6.0000000E+05 -4.0000000E+00 -6.0000000E+05 -4.0000000E+00 -6.0000000E+05 +-3.5000000E+00 -3.0000000E+05 -3.5000000E+00 -3.0000000E+05 -3.5000000E+00 -3.0000000E+05 +-3.0000000E+00 -1.5000000E+05 -3.0000000E+00 -1.5000000E+05 -3.0000000E+00 -1.5000000E+05 +-2.5000000E+00 -1.0000000E+05 -2.5000000E+00 -1.0000000E+05 -2.5000000E+00 -1.0000000E+05 +-2.0000000E+00 -6.5000000E+04 -2.0000000E+00 -6.5000000E+04 -2.0000000E+00 -6.5000000E+04 + 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 2.0000000E+00 6.5000000E+04 2.0000000E+00 6.5000000E+04 2.0000000E+00 6.5000000E+04 + 2.5000000E+00 1.0000000E+05 2.5000000E+00 1.0000000E+05 2.5000000E+00 1.0000000E+05 + 3.0000000E+00 1.5000000E+05 3.0000000E+00 1.5000000E+05 3.0000000E+00 1.5000000E+05 + 3.5000000E+00 3.0000000E+05 3.5000000E+00 3.0000000E+05 3.5000000E+00 3.0000000E+05 + 4.0000000E+00 6.0000000E+05 4.0000000E+00 6.0000000E+05 4.0000000E+00 6.0000000E+05 + 4.5000000E+00 1.2000000E+06 4.5000000E+00 1.2000000E+06 4.5000000E+00 1.2000000E+06 + 5.0000000E+00 2.4000000E+06 5.0000000E+00 2.4000000E+06 5.0000000E+00 2.4000000E+06 + 6.0000000E+00 4.8000000E+06 6.0000000E+00 4.8000000E+06 6.0000000E+00 4.8000000E+06 +---------------------- StructCtrl CONTROL -------------------------------------------- [used only when StC_DOF_MODE=1 or 2] + 5 StC_CMODE - Control mode (switch) {0:none; 1: Semi-Active Control Mode; 4: Active Control Mode through Simulink (not available); 5: Active Control Mode through Bladed interface} + 3 StC_CChan - Control channel group (1:10) for stiffness and damping (StC_[XYZ]_K, StC_[XYZ]_C, and StC_[XYZ]_Brake) (specify additional channels for blade instances of StC active control -- one channel per blade) [used only when StC_DOF_MODE=1 or 2, and StC_CMODE=4 or 5] + 1 StC_SA_MODE - Semi-Active control mode {1: velocity-based ground hook control; 2: Inverse velocity-based ground hook control; 3: displacement-based ground hook control 4: Phase difference Algorithm with Friction Force 5: Phase difference Algorithm with Damping Force} (-) + 0 StC_X_C_HIGH - StC X high damping for ground hook control + 0 StC_X_C_LOW - StC X low damping for ground hook control + 0 StC_Y_C_HIGH - StC Y high damping for ground hook control + 0 StC_Y_C_LOW - StC Y low damping for ground hook control + 0 StC_Z_C_HIGH - StC Z high damping for ground hook control [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_Z_C_LOW - StC Z low damping for ground hook control [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] + 0 StC_X_C_BRAKE - StC X high damping for braking the StC (Don't use it now. should be zero) + 0 StC_Y_C_BRAKE - StC Y high damping for braking the StC (Don't use it now. should be zero) + 0 StC_Z_C_BRAKE - StC Z high damping for braking the StC (Don't use it now. should be zero) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE] +---------------------- TLCD --------------------------------------------------- [used only when StC_DOF_MODE=3] + 7.9325 L_X - X TLCD total length (m) + 6.5929 B_X - X TLCD horizontal length (m) + 2.0217 area_X - X TLCD cross-sectional area of vertical column (m^2) + 0.913 area_ratio_X - X TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-) + 2.5265 headLossCoeff_X - X TLCD head loss coeff (-) + 1000 rho_X - X TLCD liquid density (kg/m^3) + 3.5767 L_Y - Y TLCD total length (m) + 2.1788 B_Y - Y TLCD horizontal length (m) + 1.2252 area_Y - Y TLCD cross-sectional area of vertical column (m^2) + 2.7232 area_ratio_Y - Y TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-) + 0.6433 headLossCoeff_Y - Y TLCD head loss coeff (-) + 1000 rho_Y - Y TLCD liquid density (kg/m^3) +---------------------- PRESCRIBED TIME SERIES --------------------------------- [used only when StC_DOF_MODE=4] + 1 PrescribedForcesCoord- Prescribed forces are in global or local coordinates (switch) {1: global; 2: local} +"Bld-TimeForceSeries.dat" PrescribedForcesFile - Time series force and moment (7 columns of time, FX, FY, FZ, MX, MY, MZ) +------------------------------------------------------------------------------- \ No newline at end of file diff --git a/Test_Cases/NREL-5MW/DISCON.IN b/Test_Cases/NREL-5MW/DISCON.IN index e3c2ae45..0ddb6aa4 100644 --- a/Test_Cases/NREL-5MW/DISCON.IN +++ b/Test_Cases/NREL-5MW/DISCON.IN @@ -1,11 +1,12 @@ ! Controller parameter input file for the NREL-5MW wind turbine -! - File written using ROSCO version 2.7.0 controller tuning logic on 02/06/23 +! - File written using ROSCO version 2.8.0 controller tuning logic on 04/10/23 !------- DEBUG ------------------------------------------------------------ -1 ! LoggingLevel - {0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)} +1 ! LoggingLevel - (0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)) +0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) !------- CONTROLLER FLAGS ------------------------------------------------- -1 ! F_LPFType - {1: first-order low-pass filter, 2: second-order low-pass filter}, [rad/s] (currently filters generator speed and pitch control signals +1 ! F_LPFType - (1: first-order low-pass filter, 2: second-order low-pass filter), [rad/s] (currently filters generator speed and pitch control signals 0 ! F_NotchType - Notch on the measured generator speed and/or tower fore-aft motion (for floating) {0: disable, 1: generator speed, 2: tower-top fore-aft motion, 3: generator speed and tower-top fore-aft motion} 0 ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {0: off, 1: 1P reductions, 2: 1P+2P reductions} 3 ! VS_ControlMode - Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control with constant torque, 3: TSR tracking PI control with constant power} @@ -21,8 +22,11 @@ 0 ! OL_Mode - Open loop control mode {0: no open loop control, 1: open loop control vs. time} 0 ! PA_Mode - Pitch actuator mode {0 - not used, 1 - first order filter, 2 - second order filter} 0 ! PF_Mode - Pitch fault mode {0 - not used, 1 - constant offset on one or more blades} +0 ! AWC_Mode - Active wake control {0 - not used, 1 - complex number method, 2 - Coleman transform method} 0 ! Ext_Mode - External control mode {0 - not used, 1 - call external dynamic library} 0 ! ZMQ_Mode - Fuse ZeroMQ interface {0: unused, 1: Yaw Control} +0 ! CC_Mode - Cable control mode [0- unused, 1- User defined, 2- Open loop control] +0 ! StC_Mode - Structural control mode [0- unused, 1- User defined, 2- Open loop control] !------- FILTERS ---------------------------------------------------------- 1.57080 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [rad/s] @@ -131,7 +135,9 @@ 0 ! Ind_Breakpoint - The column in OL_Filename that contains the breakpoint (time if OL_Mode = 1) 0 ! Ind_BldPitch - The column in OL_Filename that contains the blade pitch input in rad 0 ! Ind_GenTq - The column in OL_Filename that contains the generator torque in Nm -0 ! Ind_YawRate - The column in OL_Filename that contains the generator torque in Nm +0 ! Ind_YawRate - The column in OL_Filename that contains the nacelle yaw rate rad/s +0 ! Ind_CableControl - The column(s) in OL_Filename that contains the cable control inputs in m [Used with CC_Mode = 2, must be the same size as CC_Group_N] +0 ! Ind_StructControl - The column(s) in OL_Filename that contains the structural control inputs [Used with StC_Mode = 2, must be the same size as StC_Group_N] !------- Pitch Actuator Model ----------------------------------------------------- 3.140000000000 ! PA_CornerFreq - Pitch actuator bandwidth/cut-off frequency [rad/s] @@ -140,6 +146,14 @@ !------- Pitch Actuator Faults ----------------------------------------------------- 0.00000000 0.00000000 0.00000000 ! PF_Offsets - Constant blade pitch offsets for blades 1-3 [rad] +!------- Active Wake Control ----------------------------------------------------- +1 ! AWC_NumModes - Number of user-defined AWC forcing modes +1 ! AWC_n - Azimuthal mode number(s) (i.e., the number and direction of the lobes of the wake structure) +1 ! AWC_harmonic - Harmonic(s) to apply in the AWC Inverse Coleman Transformation (only used when AWC_Mode = 2) +0.0500 ! AWC_freq - Frequency(s) of forcing mode(s) [Hz] +1.0000 ! AWC_amp - Pitch amplitude(s) of individual forcing mode(s) [deg] +0.0000 ! AWC_clockangle - Initial angle(s) of forcing mode(s) [deg] + !------- External Controller Interface ----------------------------------------------------- "unused" ! DLL_FileName - Name/location of the dynamic library in the Bladed-DLL format "unused" ! DLL_InFile - Name of input file sent to the DLL (-) @@ -148,3 +162,12 @@ !------- ZeroMQ Interface --------------------------------------------------------- "tcp://localhost:5555" ! ZMQ_CommAddress - Communication address for ZMQ server, (e.g. "tcp://localhost:5555") 2 ! ZMQ_UpdatePeriod - Call ZeroMQ every [x] seconds, [s] + +!------- Cable Control --------------------------------------------------------- +1 ! CC_Group_N - Number of cable control groups + 0 ! CC_GroupIndex - First index for cable control group, should correspond to deltaL +20.000000 ! CC_ActTau - Time constant for line actuator [s] + +!------- Structural Controllers --------------------------------------------------------- +1 ! StC_Group_N - Number of cable control groups + 0 ! StC_GroupIndex - First index for structural control group, options specified in ServoDyn summary output diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF00_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF00_Coords.txt new file mode 100644 index 00000000..e9309e03 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF00_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.500000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 1.39471767468535e-15 + 9.99492456366675e-01 -2.24148318097192e-02 + 9.97998442938042e-01 -4.47793322876220e-02 + 9.95467925285309e-01 -6.70365581798988e-02 + 9.91981297584349e-01 -8.91473650534134e-02 + 9.87535715129057e-01 -1.11060278052329e-01 + 9.82077318711035e-01 -1.32710580192188e-01 + 9.75645752125599e-01 -1.54053421230182e-01 + 9.68327814997901e-01 -1.75062933826036e-01 + 9.60169311985103e-01 -1.95709072524484e-01 + 9.51019761347344e-01 -2.15876183412258e-01 + 9.41032965384679e-01 -2.35574562290692e-01 + 9.30228135178293e-01 -2.54760790502087e-01 + 9.18600973249388e-01 -2.73373623585437e-01 + 9.06286773024904e-01 -2.91445285668231e-01 + 8.93185468322794e-01 -3.08852284793353e-01 + 8.79429131687551e-01 -3.25629671028512e-01 + 8.65020010482894e-01 -3.41723774803256e-01 + 8.50001183978561e-01 -3.57112177867390e-01 + 8.34409947013148e-01 -3.71770913166281e-01 + 8.18263641617925e-01 -3.85648552858056e-01 + 8.01628456968450e-01 -3.98748400170390e-01 + 7.84595497003635e-01 -4.11125308634395e-01 + 7.67122879759481e-01 -4.22652791316593e-01 + 7.49310431319132e-01 -4.33396610986265e-01 + 7.31192318835036e-01 -4.43343955969101e-01 + 7.12809122212147e-01 -4.52489087671710e-01 + 6.94192882766294e-01 -4.60805480273623e-01 + 6.75356426213553e-01 -4.68221413716844e-01 + 6.56401839622218e-01 -4.74887730613940e-01 + 6.37339053739694e-01 -4.80732155257960e-01 + 6.18216799132259e-01 -4.85797045327747e-01 + 5.99072127289441e-01 -4.90092245328121e-01 + 5.79920098443495e-01 -4.93529601024917e-01 + 5.60830239179689e-01 -4.96308798320980e-01 + 5.41809841204068e-01 -4.98254021026852e-01 + 5.22902255947823e-01 -4.99468302412137e-01 + 5.04138617740840e-01 -4.99969461095629e-01 + 4.85547896236042e-01 -4.99782528766859e-01 + 4.67157180742230e-01 -4.98932207272937e-01 + 4.48992436485026e-01 -4.97429938215178e-01 + 4.31090922803529e-01 -4.95199601187320e-01 + 4.13451809735344e-01 -4.92443613818918e-01 + 3.96103805194879e-01 -4.89121761104649e-01 + 3.79096627499341e-01 -4.85124024486578e-01 + 3.62407327470865e-01 -4.80659331665282e-01 + 3.46066636516655e-01 -4.75685087833417e-01 + 3.30096115507155e-01 -4.70203747355840e-01 + 3.14480352866339e-01 -4.64314583285520e-01 + 2.99254081643518e-01 -4.57980939909463e-01 + 2.84450426976392e-01 -4.51177575409728e-01 + 2.70052866033160e-01 -4.43988939168408e-01 + 2.56066550501318e-01 -4.36445000343028e-01 + 2.42483923277781e-01 -4.28590357469827e-01 + 2.29353790045290e-01 -4.20376016737305e-01 + 2.16603264062538e-01 -4.11943400950387e-01 + 2.04317853658681e-01 -4.03192627249739e-01 + 1.92459446608375e-01 -3.94201135001427e-01 + 1.81000889336564e-01 -3.85028191464174e-01 + 1.69975424985927e-01 -3.75644842886581e-01 + 1.59391096347033e-01 -3.66066250246720e-01 + 1.49207465402409e-01 -3.56350787229031e-01 + 1.39487797355366e-01 -3.46454046169616e-01 + 1.30120240319336e-01 -3.36494792306467e-01 + 1.21215059211584e-01 -3.26386152642893e-01 + 1.12658598266997e-01 -3.16237746353461e-01 + 1.04576031217800e-01 -3.05961432628231e-01 + 9.68117255237024e-02 -2.95688054408038e-01 + 8.94183192669232e-02 -2.85386126810182e-01 + 8.24692613312736e-02 -2.75012912186705e-01 + 7.58031535914957e-02 -2.64686382950272e-01 + 6.95265332165359e-02 -2.54344021225804e-01 + 6.36014773641337e-02 -2.44016481364265e-01 + 5.79875426758039e-02 -2.33733614688635e-01 + 5.27214572831349e-02 -2.23480055785704e-01 + 4.77407756799443e-02 -2.13293199734344e-01 + 4.30911198450984e-02 -2.03156079856565e-01 + 3.87383767680824e-02 -1.93089031734237e-01 + 3.47120078049050e-02 -1.83082592300236e-01 + 3.09831915833964e-02 -1.73156756176345e-01 + 2.73972939643108e-02 -1.63368018994347e-01 + 2.42148186237083e-02 -1.53628642008223e-01 + 2.11591799216729e-02 -1.44034525093811e-01 + 1.84468268040835e-02 -1.34516182856983e-01 + 1.59138335980001e-02 -1.25130288878497e-01 + 1.36131610235361e-02 -1.15857640369663e-01 + 1.14838295959446e-02 -1.06718459753818e-01 + 9.63946848246122e-03 -9.76879552179587e-02 + 7.95426403181202e-03 -8.87933378901162e-02 + 6.48712578142165e-03 -8.00260463587484e-02 + 5.16242415846458e-03 -7.13984274261874e-02 + 3.96141128417998e-03 -6.29131069298763e-02 + 2.94206395570219e-03 -5.45622661453796e-02 + 2.13806552335743e-03 -4.63439971542207e-02 + 1.44971764281537e-03 -3.82678090225701e-02 + 9.19962693446690e-04 -3.03318166757594e-02 + 5.13539051739693e-04 -2.25365794204782e-02 + 2.28620066730956e-04 -1.48836875697269e-02 + 7.90911911777832e-05 -7.37097402213213e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 7.90677652262213e-05 7.36950623430851e-03 + 2.28464565111448e-04 1.48777524287952e-02 + 5.12873373489222e-04 2.25230881526787e-02 + 9.18597455380868e-04 3.03075781606325e-02 + 1.44666023734530e-03 3.82295855300727e-02 + 2.13316604432083e-03 4.62883932406539e-02 + 2.93360033162344e-03 5.44859437589187e-02 + 3.94803817877652e-03 6.28126278437423e-02 + 5.14351598889891e-03 7.12701576675508e-02 + 6.46190285472730e-03 7.98662577301812e-02 + 7.91902151822289e-03 8.85987369572577e-02 + 9.59444803793060e-03 9.74544221488751e-02 + 1.14235102541198e-02 1.06442996258128e-01 + 1.35337735871235e-02 1.15536956454720e-01 + 1.58224157496375e-02 1.24758221029162e-01 + 1.83235379987219e-02 1.34093489066500e-01 + 2.10204849111940e-02 1.43552196795823e-01 + 2.40367775427033e-02 1.53088940216613e-01 + 2.71877316554608e-02 1.62764372071491e-01 + 3.07399015207509e-02 1.72484170230167e-01 + 3.44190712967375e-02 1.82342411230462e-01 + 3.84042462872392e-02 1.92272935169736e-01 + 4.26949602499204e-02 2.02267606430067e-01 + 4.72829519098945e-02 2.12327253752788e-01 + 5.21982679528133e-02 2.22432953038477e-01 + 5.73926065743804e-02 2.32603305860823e-01 + 6.29241217245761e-02 2.42803072101294e-01 + 6.87643637125652e-02 2.53043124634065e-01 + 7.49396649714102e-02 2.63302631639567e-01 + 8.15067225995126e-02 2.73538864194590e-01 + 8.83465340790937e-02 2.83822725719936e-01 + 9.56069618941523e-02 2.94046380437990e-01 + 1.03242517429104e-01 3.04232736766140e-01 + 1.11181349110592e-01 3.14429033366110e-01 + 1.19600191231908e-01 3.24484491634080e-01 + 1.28332959831487e-01 3.34525491878455e-01 + 1.37529624980321e-01 3.44409800526354e-01 + 1.47054393871766e-01 3.54250702832129e-01 + 1.57068458906247e-01 3.63878030450328e-01 + 1.67434000189824e-01 3.73414748310375e-01 + 1.78267900010996e-01 3.82720355055487e-01 + 1.89470766243389e-01 3.91888095042532e-01 + 2.01116356758227e-01 4.00815766784955e-01 + 2.13142982412971e-01 4.09560128320329e-01 + 2.25647591527817e-01 4.17962490202192e-01 + 2.38508303803600e-01 4.26178518900819e-01 + 2.51815542326035e-01 4.34041451446706e-01 + 2.65513873471791e-01 4.41613730534841e-01 + 2.79625890849574e-01 4.48822548308045e-01 + 2.94122344676086e-01 4.55688297738170e-01 + 3.09025395595222e-01 4.62123018507889e-01 + 3.24322980248437e-01 4.68104987140686e-01 + 3.39961508551486e-01 4.73721797521014e-01 + 3.55970212497486e-01 4.78842188217134e-01 + 3.72330405840910e-01 4.83451204703119e-01 + 3.89018592148974e-01 4.87553971207526e-01 + 4.06028086432003e-01 4.91073750593815e-01 + 4.23330061515063e-01 4.94038626508448e-01 + 4.40892507832343e-01 4.96523552581426e-01 + 4.58722088973087e-01 4.98299627767656e-01 + 4.76781800214759e-01 4.99452452619975e-01 + 4.95047752165150e-01 4.99958293491181e-01 + 5.13494417346180e-01 4.99806115294212e-01 + 5.32095125341593e-01 4.98977641113232e-01 + 5.50821128028667e-01 4.97448239777686e-01 + 5.69628317431665e-01 4.95095914136444e-01 + 5.88509798330163e-01 4.92097041935332e-01 + 6.07423091269127e-01 4.88360764967307e-01 + 6.26315879676062e-01 4.83792644100844e-01 + 6.45179027618201e-01 4.78506342917923e-01 + 6.63949992276556e-01 4.72397468589394e-01 + 6.82596771397553e-01 4.65480454296126e-01 + 7.01105667898352e-01 4.57821533331759e-01 + 7.19390458980571e-01 4.49306560335264e-01 + 7.37449386734799e-01 4.40021763716986e-01 + 7.55233287450602e-01 4.29949280199755e-01 + 7.72675183085231e-01 4.19055842892285e-01 + 7.89810876588208e-01 4.07465502995371e-01 + 8.06484809364324e-01 3.95019026978122e-01 + 8.22749466427636e-01 3.81863671783111e-01 + 8.38549437843995e-01 3.67985948498897e-01 + 8.53822843141276e-01 3.53376712171519e-01 + 8.68482698282576e-01 3.38013117891467e-01 + 8.82527277768971e-01 3.21961416297325e-01 + 8.95954036277289e-01 3.05275366473099e-01 + 9.08757285533517e-01 2.87998251390473e-01 + 9.20757624348661e-01 2.70058949061020e-01 + 9.32077214908394e-01 2.51596702608668e-01 + 9.42611287438903e-01 2.32595879244925e-01 + 9.52349414910574e-01 2.13103474747613e-01 + 9.61237529561560e-01 1.93147648123409e-01 + 9.69168871294468e-01 1.72736199342553e-01 + 9.76326703713309e-01 1.51992962994221e-01 + 9.82585730197106e-01 1.30917869381533e-01 + 9.87884002029843e-01 1.09544033639734e-01 + 9.92202667894419e-01 8.79209963846691e-02 + 9.95599172262122e-01 6.61100082160239e-02 + 9.98052102758341e-01 4.41573284776160e-02 + 9.99507690675012e-01 2.21028728366928e-02 + 1.00000000000000e+00 1.39471767468535e-15 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF01_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF01_Coords.txt new file mode 100644 index 00000000..c0c8ddad --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF01_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.489474 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -3.16421772612390e-03 + 9.99110945270443e-01 -2.47105920697162e-02 + 9.97576994375339e-01 -4.67993845022092e-02 + 9.95459944687624e-01 -6.84337167356077e-02 + 9.91976392334682e-01 -9.00657715770117e-02 + 9.87532357694084e-01 -1.11371691742356e-01 + 9.82073007117098e-01 -1.32004290598503e-01 + 9.75632495177376e-01 -1.51997295578341e-01 + 9.68304625227921e-01 -1.71396793768580e-01 + 9.60134319308372e-01 -1.90350472287492e-01 + 9.50973174570070e-01 -2.10503605813256e-01 + 9.40976075096518e-01 -2.30186416006723e-01 + 9.30161994799789e-01 -2.49354345164969e-01 + 9.18526548050635e-01 -2.67946053746076e-01 + 9.06204685559811e-01 -2.85993589913206e-01 + 8.93096814131007e-01 -3.03374276912405e-01 + 8.79335004439212e-01 -3.20123403157046e-01 + 8.64921830314282e-01 -3.36188237142695e-01 + 8.49900429191050e-01 -3.51546887620593e-01 + 8.34308004668356e-01 -3.66174875302933e-01 + 8.18161715887287e-01 -3.80020141794273e-01 + 8.01527591100297e-01 -3.93086268689914e-01 + 7.84496904773810e-01 -4.04786375894643e-01 + 7.67028251214628e-01 -4.15444728414506e-01 + 7.49221098481114e-01 -4.25443666639427e-01 + 7.31109312546861e-01 -4.34681496122239e-01 + 7.12733221739921e-01 -4.43095560497414e-01 + 6.94124804992610e-01 -4.50716083967267e-01 + 6.75296861217813e-01 -4.57507733373021e-01 + 6.56351220288612e-01 -4.63629797162085e-01 + 6.37297642282493e-01 -4.69021650406962e-01 + 6.18184579076336e-01 -4.73661711191075e-01 + 5.99048824748551e-01 -4.77500682555689e-01 + 5.79905140141725e-01 -4.80476298777868e-01 + 5.60822552266790e-01 -4.82821100897016e-01 + 5.41807779672030e-01 -4.84393609336454e-01 + 5.23137860195204e-01 -4.85340334737817e-01 + 5.04895615780131e-01 -4.85677059437076e-01 + 4.86822413494681e-01 -4.85372268979213e-01 + 4.68943246111643e-01 -4.84434587337354e-01 + 4.51281215228627e-01 -4.82849729526095e-01 + 4.33869791962394e-01 -4.80550261086293e-01 + 4.16708291601139e-01 -4.77756903947675e-01 + 3.99821942290793e-01 -4.74438844863898e-01 + 3.83021226581361e-01 -4.70501187606855e-01 + 3.66510028690683e-01 -4.66117838259083e-01 + 3.50339822528374e-01 -4.61229488062895e-01 + 3.34529434920323e-01 -4.55868065561778e-01 + 3.19060580350289e-01 -4.50137865005078e-01 + 3.03961951611492e-01 -4.44019094016567e-01 + 2.89263477671933e-01 -4.37498086693495e-01 + 2.74954691526094e-01 -4.30627011410182e-01 + 2.61045693322669e-01 -4.23408038064864e-01 + 2.47531081353258e-01 -4.15862808513859e-01 + 2.34454873671549e-01 -4.07946420300901e-01 + 2.21749536060482e-01 -3.99796724707317e-01 + 2.09495761009538e-01 -3.91329723402531e-01 + 1.97654805990354e-01 -3.82623286493885e-01 + 1.86194798835722e-01 -3.73767309376824e-01 + 1.75143832165431e-01 -3.64767492631537e-01 + 1.64510931825440e-01 -3.55619768853155e-01 + 1.54264662143747e-01 -3.46336240294808e-01 + 1.44469444171873e-01 -3.36855727877300e-01 + 1.35016546824907e-01 -3.27295058357275e-01 + 1.26007074796798e-01 -3.17588898325485e-01 + 1.17335095261661e-01 -3.07850346569760e-01 + 1.09122191907664e-01 -2.97988397774553e-01 + 1.01228904610188e-01 -2.88095133738336e-01 + 9.37005857644255e-02 -2.78149751233394e-01 + 8.65952060326960e-02 -2.68149983931702e-01 + 7.97470493709899e-02 -2.58245516255184e-01 + 7.32564041991407e-02 -2.48375945846845e-01 + 6.71103398619902e-02 -2.38520800068324e-01 + 6.12956358739206e-02 -2.28273089593854e-01 + 5.58512861647731e-02 -2.18035625337734e-01 + 5.06986492562267e-02 -2.07863675578317e-01 + 4.58459063482147e-02 -1.97741417265822e-01 + 4.12374651654770e-02 -1.87689118226564e-01 + 3.69363886388660e-02 -1.77695953267912e-01 + 3.29623755477581e-02 -1.67780856055308e-01 + 2.91933599630294e-02 -1.58000033452927e-01 + 2.58326584607911e-02 -1.48266339522027e-01 + 2.25688351721396e-02 -1.39011630549253e-01 + 1.95732992520596e-02 -1.30105462233865e-01 + 1.67610738246130e-02 -1.21314096800611e-01 + 1.42583321073789e-02 -1.12582415338248e-01 + 1.19908166431120e-02 -1.03925933593292e-01 + 9.99928542511028e-03 -9.53469054771868e-02 + 8.12764378342123e-03 -8.68845733614765e-02 + 6.50553857600199e-03 -7.85191937270735e-02 + 5.17572423597908e-03 -7.02483867655549e-02 + 3.97140784027181e-03 -6.20650797672678e-02 + 2.94862431147953e-03 -5.39399963412825e-02 + 2.14055966565164e-03 -4.58470093224122e-02 + 1.45003537340197e-03 -3.78838208911683e-02 + 9.20097460438803e-04 -3.00188642323400e-02 + 5.13569518013506e-04 -2.22872670431334e-02 + 2.24854144698289e-04 -1.47090799938054e-02 + 7.16420419797124e-05 -7.28122005805669e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 8.30667337145912e-05 7.28493907761252e-03 + 2.40621206193159e-04 1.47085612205429e-02 + 5.29850643501296e-04 2.22690666161207e-02 + 9.37552646642290e-04 2.99680567436069e-02 + 1.46364423687516e-03 3.78031462162717e-02 + 2.13415396408500e-03 4.57718293152885e-02 + 2.98505302314019e-03 5.38762991811228e-02 + 4.08049090961046e-03 6.21031222356185e-02 + 5.32348409326103e-03 7.04621026477038e-02 + 6.68540525770168e-03 7.89717384981979e-02 + 8.16349050305524e-03 8.76289039370964e-02 + 9.84115364385886e-03 9.63974146736541e-02 + 1.17664515759166e-02 1.05263924316241e-01 + 1.40318228128144e-02 1.14211150659918e-01 + 1.64404096111178e-02 1.23297936682812e-01 + 1.90063994463009e-02 1.32535275404535e-01 + 2.17243347773833e-02 1.41923218754833e-01 + 2.47531082013638e-02 1.51382020977074e-01 + 2.79876147869340e-02 1.60929925146753e-01 + 3.16880968401645e-02 1.70478068315566e-01 + 3.55350251674146e-02 1.80153130476464e-01 + 3.96263775536540e-02 1.89947425730580e-01 + 4.39456143792258e-02 1.99882812309296e-01 + 4.85239794021445e-02 2.09908181416265e-01 + 5.34534137951630e-02 2.19944265641675e-01 + 5.87462885442388e-02 2.29964197658055e-01 + 6.44270496014028e-02 2.39969754830107e-01 + 7.04097222861749e-02 2.50025763168648e-01 + 7.66631835969947e-02 2.60165429986364e-01 + 8.32549959691082e-02 2.70336561512274e-01 + 9.01101313435420e-02 2.80563309640775e-01 + 9.74049202740261e-02 2.90697579494236e-01 + 1.05114698051431e-01 3.00743368754403e-01 + 1.13145220439572e-01 3.10785648613665e-01 + 1.21630315794086e-01 3.20725544551961e-01 + 1.30390853479517e-01 3.30702112547975e-01 + 1.39590645856004e-01 3.40558753101048e-01 + 1.49124870362037e-01 3.50362123732590e-01 + 1.59154982855993e-01 3.59921913101712e-01 + 1.69544432069570e-01 3.69399060590938e-01 + 1.80386709779081e-01 3.78695988921857e-01 + 1.91579763428791e-01 3.87884300501059e-01 + 2.03215759235826e-01 3.96833543919666e-01 + 2.15253430564785e-01 4.05547214951462e-01 + 2.27772014189445e-01 4.13882927583771e-01 + 2.40642603224139e-01 4.22086896802528e-01 + 2.53939036577503e-01 4.30033802762336e-01 + 2.67609972467099e-01 4.37691285847929e-01 + 2.81557875539761e-01 4.44965913565754e-01 + 2.95881178190567e-01 4.51813642422346e-01 + 3.10595953223466e-01 4.58226822092898e-01 + 3.25692615194284e-01 4.64358752082265e-01 + 3.41122510103875e-01 4.70166093755745e-01 + 3.56906920161226e-01 4.75457819601108e-01 + 3.73028060365530e-01 4.80296533840550e-01 + 3.89466547847528e-01 4.84640854961732e-01 + 4.06216915276230e-01 4.88245022885247e-01 + 4.23329613709593e-01 4.91316221321931e-01 + 4.40890014276592e-01 4.94066031076244e-01 + 4.58716932230117e-01 4.96120177384477e-01 + 4.76773550105776e-01 4.97493108926328e-01 + 4.95036075072470e-01 4.98220076856676e-01 + 5.13479009238266e-01 4.98328313435672e-01 + 5.32075794301084e-01 4.97686119534454e-01 + 5.50797707737235e-01 4.96272617324986e-01 + 5.69600641150388e-01 4.94015215318247e-01 + 5.88477721457098e-01 4.91029243067188e-01 + 6.07386635657425e-01 4.87295372664773e-01 + 6.26275242831597e-01 4.82792184672487e-01 + 6.45134391494005e-01 4.77579799714536e-01 + 6.63901695169446e-01 4.71560607238906e-01 + 6.82545269979229e-01 4.64770350611842e-01 + 7.01051428389662e-01 4.57262911241947e-01 + 7.19334097084216e-01 4.48930414817246e-01 + 7.37391465413848e-01 4.39841141799307e-01 + 7.55174481191430e-01 4.29986432588973e-01 + 7.72616437803403e-01 4.19381365239015e-01 + 7.89753200934423e-01 4.08201692944460e-01 + 8.06429273866882e-01 3.96269530921693e-01 + 8.22696674409171e-01 3.83630606068877e-01 + 8.38499958578817e-01 3.70228814924312e-01 + 8.53777444028247e-01 3.56113546193772e-01 + 8.68442280245945e-01 3.41287951489090e-01 + 8.82492540270293e-01 3.25786277344664e-01 + 8.95925498965556e-01 3.09679894523524e-01 + 9.08735247378820e-01 2.93027554712345e-01 + 9.20742332422719e-01 2.75162884784513e-01 + 9.32068464518384e-01 2.56731572981429e-01 + 9.42608539274729e-01 2.37762434632290e-01 + 9.52774207875208e-01 2.18302108340019e-01 + 9.62859775973639e-01 1.98379401591706e-01 + 9.70800878118612e-01 1.77985574843893e-01 + 9.77526560026023e-01 1.57228723263127e-01 + 9.83348702581913e-01 1.35262496314977e-01 + 9.88287866680976e-01 1.12048580600310e-01 + 9.92312239757846e-01 8.89420954512888e-02 + 9.95598399807970e-01 6.64089965678724e-02 + 9.97884993829918e-01 4.40785443080142e-02 + 9.99371468236542e-01 2.18636293439463e-02 + 1.00000000000000e+00 -1.46513661216579e-04 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF02_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF02_Coords.txt new file mode 100644 index 00000000..3d277f48 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF02_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.405419 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -1.94964271094086e-02 + 9.96919760277077e-01 -3.64826077995756e-02 + 9.94667087130123e-01 -5.60719522447348e-02 + 9.94761079761680e-01 -7.41287339133444e-02 + 9.91487644632361e-01 -9.30111065602699e-02 + 9.87177265536021e-01 -1.10830801551200e-01 + 9.81618438289038e-01 -1.25618285586318e-01 + 9.74359531938626e-01 -1.37858592038257e-01 + 9.66196197839873e-01 -1.48011073720888e-01 + 9.57084778530041e-01 -1.57244213613537e-01 + 9.47030628319075e-01 -1.76163809587731e-01 + 9.36255994779871e-01 -1.94451554089259e-01 + 9.24755229326704e-01 -2.12084822033116e-01 + 9.12514414231155e-01 -2.28979937705261e-01 + 8.99641900735580e-01 -2.45152777431143e-01 + 8.86071424135137e-01 -2.60541847813049e-01 + 8.71933069994702e-01 -2.75199084385032e-01 + 8.57249287582935e-01 -2.89132205047948e-01 + 8.42064402212172e-01 -3.02348165923965e-01 + 8.26409062460493e-01 -3.14787448920772e-01 + 8.10288808146397e-01 -3.26359904138149e-01 + 7.93758629967803e-01 -3.37091676397995e-01 + 7.76918356342850e-01 -3.44291222218988e-01 + 7.59756850873003e-01 -3.49997131324565e-01 + 7.42348874985586e-01 -3.55640730349542e-01 + 7.24708863089766e-01 -3.60706166782752e-01 + 7.06860528348044e-01 -3.64855413158321e-01 + 6.88831517526942e-01 -3.68409151382566e-01 + 6.70633473983476e-01 -3.71524443372096e-01 + 6.52350564072767e-01 -3.74401784953206e-01 + 6.33982188894777e-01 -3.77065482741049e-01 + 6.15559054509071e-01 -3.79168407766431e-01 + 5.97101918875316e-01 -3.80350473776001e-01 + 5.78607712056559e-01 -3.80687774167715e-01 + 5.60114269360246e-01 -3.80570858605504e-01 + 5.41594988940669e-01 -3.80067548433720e-01 + 5.24491038376215e-01 -3.79537588218947e-01 + 5.09243386421893e-01 -3.78981564014641e-01 + 4.94142523233296e-01 -3.78083193106923e-01 + 4.79201400260462e-01 -3.76755219694438e-01 + 4.64426672033553e-01 -3.74840429494636e-01 + 4.49830052252528e-01 -3.72341501685922e-01 + 4.35411690443212e-01 -3.69564589340833e-01 + 4.21176828920086e-01 -3.66527761938651e-01 + 4.06104752722998e-01 -3.63217644680091e-01 + 3.91187261313758e-01 -3.59606140139742e-01 + 3.76543272121399e-01 -3.55540172858436e-01 + 3.62174951181275e-01 -3.51199859300841e-01 + 3.48051575371203e-01 -3.46733492501332e-01 + 3.34166838440425e-01 -3.42236418543471e-01 + 3.20531094536529e-01 -3.37752409778483e-01 + 3.07166374335585e-01 -3.33138685551140e-01 + 2.94106366929472e-01 -3.28233453302116e-01 + 2.81356553687748e-01 -3.22927037164433e-01 + 2.68929414080849e-01 -3.17210399237509e-01 + 2.56792257622504e-01 -3.11199667576809e-01 + 2.44988366773819e-01 -3.04908147192347e-01 + 2.33487068586780e-01 -2.98398015474454e-01 + 2.22244174627754e-01 -2.91908544458142e-01 + 2.11259238518723e-01 -2.85624154835144e-01 + 2.00540109534862e-01 -2.79445232131323e-01 + 1.90099108400639e-01 -2.73144271821139e-01 + 1.79974500726159e-01 -2.66577875347765e-01 + 1.69915683501289e-01 -2.59834415460592e-01 + 1.60172080930679e-01 -2.52962962830656e-01 + 1.50692746390245e-01 -2.46077778027207e-01 + 1.41572171628772e-01 -2.39083657564268e-01 + 1.32782528972732e-01 -2.31868964518358e-01 + 1.24316300642292e-01 -2.24479019688654e-01 + 1.16125227242430e-01 -2.17115852851904e-01 + 1.08022185325659e-01 -2.10062937367560e-01 + 1.00068510946488e-01 -2.03253136991591e-01 + 9.24181923986685e-02 -1.96403291468797e-01 + 8.52292314707568e-02 -1.87525621188063e-01 + 7.85442356694309e-02 -1.78452955788562e-01 + 7.21826484759061e-02 -1.69371289606163e-01 + 6.59224769279808e-02 -1.60339488949538e-01 + 5.95888908522178e-02 -1.51375335195636e-01 + 5.34570839330547e-02 -1.42381729136260e-01 + 4.78323253460157e-02 -1.33307333331388e-01 + 4.27773110897719e-02 -1.24183705410093e-01 + 3.81406060607182e-02 -1.14969947782298e-01 + 3.34394858942616e-02 -1.07833476412008e-01 + 2.85905771976062e-02 -1.02443290523446e-01 + 2.39758840800528e-02 -9.70665624082339e-02 + 2.00924464828600e-02 -9.14418911635026e-02 + 1.67774266077405e-02 -8.55577600333846e-02 + 1.37085226488790e-02 -7.95717583471716e-02 + 1.06047400652709e-02 -7.35922291670351e-02 + 7.90398428387208e-03 -6.75352052422909e-02 + 6.19892209075347e-03 -6.13137254015921e-02 + 4.74163822479280e-03 -5.48650139398457e-02 + 3.46348797721600e-03 -4.81553931473352e-02 + 2.35439809271567e-03 -4.11318098186878e-02 + 1.48284350464362e-03 -3.41609786643930e-02 + 9.33668904559450e-04 -2.70825630260840e-02 + 5.16784288069033e-04 -2.00607976197347e-02 + 2.03224808289276e-04 -1.32008980839843e-02 + 2.88583219323030e-05 -6.51695336105137e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 1.06034557788935e-04 6.54242344402049e-03 + 3.10442109886626e-04 1.32200621240131e-02 + 6.27358526355077e-04 2.00270586046359e-02 + 1.04642059582819e-03 2.69584070704927e-02 + 1.56119077029123e-03 3.40044020355773e-02 + 2.20965204677518e-03 4.11549554928511e-02 + 3.41098060660727e-03 4.84144618046186e-02 + 5.03360788709283e-03 5.57589214681263e-02 + 6.61245394229265e-03 6.32348735880216e-02 + 8.28994979066480e-03 7.08911179309667e-02 + 9.96034393771960e-03 7.87021820009504e-02 + 1.17636547160994e-02 8.65345063094756e-02 + 1.43612220190213e-02 9.42922806414463e-02 + 1.76430317064128e-02 1.02026805686471e-01 + 2.08737235707927e-02 1.09949354414078e-01 + 2.39097774660482e-02 1.18163715137690e-01 + 2.68277855724522e-02 1.26610148817642e-01 + 3.00184157320084e-02 1.35071752122783e-01 + 3.38529447168762e-02 1.43382634408088e-01 + 3.85374178015213e-02 1.51512804458775e-01 + 4.35193302635381e-02 1.59709865654183e-01 + 4.83524785822808e-02 1.68285035077358e-01 + 5.28925514814938e-02 1.77785241588636e-01 + 5.74509623742945e-02 1.87519752029641e-01 + 6.25207280441538e-02 1.96995257755178e-01 + 6.84864459272233e-02 2.05895125589205e-01 + 7.51749747555155e-02 2.14483369522917e-01 + 8.21424789239981e-02 2.23186204375288e-01 + 8.89480736036874e-02 2.32391482476344e-01 + 9.57168879662020e-02 2.41977056322773e-01 + 1.02682866347355e-01 2.51651269226778e-01 + 1.10220820704945e-01 2.61011250036727e-01 + 1.18407958380338e-01 2.69947451121491e-01 + 1.26881602570982e-01 2.78784626441245e-01 + 1.35660947758076e-01 2.87754998986677e-01 + 1.44539262453658e-01 2.97066755412224e-01 + 1.53710627262191e-01 3.06476813639894e-01 + 1.63224044690801e-01 3.15759213512801e-01 + 1.73217608842146e-01 3.24616725514123e-01 + 1.83592362834056e-01 3.33425258716891e-01 + 1.94325962262670e-01 3.42337881360872e-01 + 2.05324011045863e-01 3.51288753587316e-01 + 2.16730097076787e-01 3.60001663577674e-01 + 2.28586578632938e-01 3.68187843125944e-01 + 2.40883113525511e-01 3.75812546015869e-01 + 2.53496856322201e-01 3.83600826529355e-01 + 2.66426205569999e-01 3.91650072271809e-01 + 2.79648785252606e-01 3.99396772979447e-01 + 2.92654108132638e-01 4.06655149783746e-01 + 3.05982927892807e-01 4.13055764549372e-01 + 3.19616352211114e-01 4.19007565475870e-01 + 3.33559027388770e-01 4.25557700509835e-01 + 3.47790649521039e-01 4.31983019768178e-01 + 3.62286841731615e-01 4.37810261240227e-01 + 3.77034995262049e-01 4.43528144955168e-01 + 3.92039353236568e-01 4.48820541528545e-01 + 4.07301441870269e-01 4.52540541894158e-01 + 4.23279474819674e-01 4.55820048720622e-01 + 4.40634468309514e-01 4.59564402113604e-01 + 4.58216729640812e-01 4.62715547857050e-01 + 4.76002112543622e-01 4.64915551067932e-01 + 4.93972301744354e-01 4.66495076484244e-01 + 5.12102601808104e-01 4.67675381916421e-01 + 5.30374260454303e-01 4.67718175971608e-01 + 5.48760443148615e-01 4.66664714353419e-01 + 5.67217438731546e-01 4.64745135086648e-01 + 5.85739737161608e-01 4.61729462619936e-01 + 6.04297036727046e-01 4.57963754355715e-01 + 6.22849821404431e-01 4.53804771006538e-01 + 6.41387754588488e-01 4.49034662925732e-01 + 6.59860243895401e-01 4.43612634661173e-01 + 6.78243902722125e-01 4.37681519215445e-01 + 6.96525620003880e-01 4.31223433182484e-01 + 7.14630615751572e-01 4.24172943475969e-01 + 7.32553281453510e-01 4.16497772874745e-01 + 7.50252988657587e-01 4.08237425290133e-01 + 7.67683365695193e-01 3.99660004830094e-01 + 7.84884705771043e-01 3.91177827246511e-01 + 8.01707686882478e-01 3.82511987837697e-01 + 8.18171045140217e-01 3.73184018737277e-01 + 8.34218184325793e-01 3.62939454140551e-01 + 8.49803537682218e-01 3.52119100925938e-01 + 8.64853102337230e-01 3.40870213182952e-01 + 8.79352542615986e-01 3.29069212973395e-01 + 8.93288312520579e-01 3.16847374518213e-01 + 9.06641281797077e-01 3.04310322344821e-01 + 9.19235341950085e-01 2.88747970901776e-01 + 9.31163314413939e-01 2.72527797669352e-01 + 9.42304292794809e-01 2.55835364954767e-01 + 9.55213979558356e-01 2.38692901385650e-01 + 9.72177046241266e-01 2.21180379624901e-01 + 9.80174206699236e-01 2.02148008484942e-01 + 9.84417859316093e-01 1.80623200933622e-01 + 9.87730786501502e-01 1.53965422157644e-01 + 9.90607437911417e-01 1.22548669883815e-01 + 9.92941558866010e-01 9.10997252988497e-02 + 9.95524996439665e-01 6.60081316645982e-02 + 9.96925214206640e-01 4.30168042831882e-02 + 9.98589083226293e-01 2.09101531114029e-02 + 1.00000000000000e+00 -1.10918874127508e-04 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF03_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF03_Coords.txt new file mode 100644 index 00000000..3574f261 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF03_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.300072 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -2.35717905236513e-02 + 9.95894264742224e-01 -3.92526822859504e-02 + 9.92356907783760e-01 -5.58972397758731e-02 + 9.91832649399724e-01 -7.22796935620756e-02 + 9.89065767280758e-01 -8.98751886421859e-02 + 9.85303518885023e-01 -1.06063296906901e-01 + 9.79227294864432e-01 -1.18115211299191e-01 + 9.68317731645526e-01 -1.26727180688080e-01 + 9.56870605029902e-01 -1.32551970200501e-01 + 9.44399782765251e-01 -1.37235805042327e-01 + 9.31376191661979e-01 -1.49921669278151e-01 + 9.18131472990873e-01 -1.62163429513691e-01 + 9.04532462534647e-01 -1.73794296481196e-01 + 8.90513850343901e-01 -1.84548505419301e-01 + 8.76094083221940e-01 -1.94369351614981e-01 + 8.61295443643247e-01 -2.03387259424766e-01 + 8.46228194041534e-01 -2.11697233177751e-01 + 8.30943028446170e-01 -2.19423235960492e-01 + 8.15464579238373e-01 -2.26583810092412e-01 + 7.99805091304501e-01 -2.33034629864386e-01 + 7.83949186991882e-01 -2.38634111936675e-01 + 7.67924901075415e-01 -2.43491491542901e-01 + 7.51827610435101e-01 -2.46922502098554e-01 + 7.35700766231654e-01 -2.49967384402370e-01 + 7.19557581083962e-01 -2.53049973028183e-01 + 7.03374920806515e-01 -2.55675693783315e-01 + 6.87141084317211e-01 -2.57511647636345e-01 + 6.70872708173025e-01 -2.58916159150435e-01 + 6.54584120557027e-01 -2.60070409267096e-01 + 6.38316166451763e-01 -2.61147805145693e-01 + 6.22053812145135e-01 -2.62242468065543e-01 + 6.05795467035195e-01 -2.62984971699304e-01 + 5.89535785963171e-01 -2.62980782780771e-01 + 5.73249959911008e-01 -2.62338277960480e-01 + 5.56924435273058e-01 -2.61412073870956e-01 + 5.40499557828918e-01 -2.60380178738677e-01 + 5.25124338707629e-01 -2.59541047800324e-01 + 5.11278184667223e-01 -2.58859241415762e-01 + 4.97568404605392e-01 -2.58048556490882e-01 + 4.84002314517955e-01 -2.56975419244797e-01 + 4.70578871550198e-01 -2.55452441773426e-01 + 4.57299606722912e-01 -2.53575365177959e-01 + 4.44165059993117e-01 -2.51608626178359e-01 + 4.31171120115011e-01 -2.49565341878899e-01 + 4.17960046660827e-01 -2.47435089625259e-01 + 4.04894573177154e-01 -2.45125131039407e-01 + 3.92025010140446e-01 -2.42462612691433e-01 + 3.79343869682045e-01 -2.39595692647852e-01 + 3.66822492601097e-01 -2.36738334901165e-01 + 3.54437597401984e-01 -2.34084096374542e-01 + 3.42188016976202e-01 -2.31663337492797e-01 + 3.30106565812339e-01 -2.29245864019644e-01 + 3.18228608318416e-01 -2.26607512965020e-01 + 3.06561819529862e-01 -2.23599397180190e-01 + 2.95096087112862e-01 -2.20264450363764e-01 + 2.83822976873035e-01 -2.16705858133672e-01 + 2.72749367112427e-01 -2.12987917599575e-01 + 2.61871015332779e-01 -2.09105223071590e-01 + 2.51166620646972e-01 -2.05257087666955e-01 + 2.40624400846784e-01 -2.01625484971293e-01 + 2.30238432660905e-01 -1.98140713780569e-01 + 2.20026112530791e-01 -1.94584499409339e-01 + 2.09976055390476e-01 -1.90827834894363e-01 + 1.99702136630218e-01 -1.86888650453711e-01 + 1.89635587559752e-01 -1.82831573590219e-01 + 1.79772976644460e-01 -1.78716242047549e-01 + 1.70166626869497e-01 -1.74489311956110e-01 + 1.60857736786573e-01 -1.70006317401921e-01 + 1.51803109355095e-01 -1.65351581130296e-01 + 1.42904673719036e-01 -1.60741881001108e-01 + 1.34016689385335e-01 -1.56400925252111e-01 + 1.25172927433342e-01 -1.52235477594800e-01 + 1.16585145327233e-01 -1.47936269496174e-01 + 1.08455437817872e-01 -1.42606858442656e-01 + 1.00797932241528e-01 -1.36869866343013e-01 + 9.34220406155034e-02 -1.30998286551843e-01 + 8.60634069002927e-02 -1.25203141666258e-01 + 7.85543380199848e-02 -1.19513567026171e-01 + 7.12090438710948e-02 -1.13679449812632e-01 + 6.43781714721257e-02 -1.07497988597386e-01 + 5.81748969271094e-02 -1.00901485941624e-01 + 5.23111625072034e-02 -9.40070595698379e-02 + 4.63848694510659e-02 -8.87274392056592e-02 + 4.02274234777820e-02 -8.49827667220595e-02 + 3.43402499368400e-02 -8.12041215315654e-02 + 2.92122911092120e-02 -7.70335607862094e-02 + 2.46619896023326e-02 -7.24469162604508e-02 + 2.03998728457045e-02 -6.76744757448659e-02 + 1.62083083553108e-02 -6.28569220857654e-02 + 1.24122747710821e-02 -5.78802307117992e-02 + 9.59261999542548e-03 -5.26178555647791e-02 + 7.30477546051285e-03 -4.69809514049654e-02 + 5.24424677887566e-03 -4.11640833368231e-02 + 3.22154066429621e-03 -3.53189852766165e-02 + 1.65180206365193e-03 -2.94779767104117e-02 + 1.00171614777338e-03 -2.35012775997985e-02 + 5.33709082287082e-04 -1.74789869612144e-02 + 1.93102071972421e-04 -1.15157513977575e-02 + 8.83513173800652e-06 -5.67716919165800e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 1.16783719135356e-04 5.69723987547027e-03 + 3.43118960628982e-04 1.15219848562656e-02 + 6.72993148161244e-04 1.74602777849096e-02 + 1.09737183733306e-03 2.34963725200926e-02 + 1.60684348093023e-03 2.96112825450017e-02 + 2.45643493250886e-03 3.57965862211899e-02 + 3.99538452491140e-03 4.20591838228941e-02 + 5.93173609093872e-03 4.83922212075131e-02 + 7.78831860532396e-03 5.48405525131736e-02 + 9.77944638510934e-03 6.14059674486418e-02 + 1.18236157695499e-02 6.80196332226401e-02 + 1.41090606785859e-02 7.45698337168348e-02 + 1.73056541184598e-02 8.10186811443194e-02 + 2.11847229777394e-02 8.74687230723911e-02 + 2.49676864074981e-02 9.40869839667322e-02 + 2.84682042956027e-02 1.00930111245539e-01 + 3.18331846418495e-02 1.07898963211733e-01 + 3.54793253397875e-02 1.14828880543840e-01 + 3.98821847361107e-02 1.21582993745491e-01 + 4.51314595122883e-02 1.28212190706429e-01 + 5.07378731779770e-02 1.34892120261391e-01 + 5.60731260647946e-02 1.41960877640708e-01 + 6.09722950181842e-02 1.50342170540091e-01 + 6.58438293017437e-02 1.58942245558348e-01 + 7.12537393230430e-02 1.67161944148746e-01 + 7.76600623439659e-02 1.74624850622013e-01 + 8.48496220471092e-02 1.81687450473830e-01 + 9.23057704681641e-02 1.88867715176475e-01 + 9.94459240673263e-02 1.96648864845365e-01 + 1.06388932256554e-01 2.04900423667625e-01 + 1.13500915840888e-01 2.13208533649742e-01 + 1.21190173762834e-01 2.21120456132424e-01 + 1.29552662653441e-01 2.28502274929156e-01 + 1.38071878683882e-01 2.35719905821540e-01 + 1.46821747467612e-01 2.43114116431733e-01 + 1.55674346023180e-01 2.50880294859766e-01 + 1.64742508530083e-01 2.58798876919177e-01 + 1.74100620712751e-01 2.66555316753591e-01 + 1.83827637281412e-01 2.73887896215538e-01 + 1.93900930930976e-01 2.81137679364482e-01 + 2.04279807701489e-01 2.88489630315669e-01 + 2.14917904141514e-01 2.95836142276111e-01 + 2.25877633648094e-01 3.02970528418131e-01 + 2.37175240693611e-01 3.09614749723245e-01 + 2.48781997761441e-01 3.15783316315385e-01 + 2.60667851543173e-01 3.22097199193517e-01 + 2.72834283839390e-01 3.28652682218705e-01 + 2.85283064783479e-01 3.34865419367518e-01 + 2.97847251117894e-01 3.40624356479022e-01 + 3.10710643373344e-01 3.45634518095723e-01 + 3.23837985214461e-01 3.50222642863971e-01 + 3.37240583535417e-01 3.55267130987121e-01 + 3.50911402546816e-01 3.60167827153803e-01 + 3.64804696483725e-01 3.64587389850643e-01 + 3.78910279118625e-01 3.69073483105304e-01 + 3.93243450766671e-01 3.73200860402215e-01 + 4.07809010689417e-01 3.75729715812861e-01 + 4.23000375070936e-01 3.77751754255469e-01 + 4.39328786730662e-01 3.80141190316103e-01 + 4.55813610039226e-01 3.82101412277872e-01 + 4.72460251929427e-01 3.83235896264865e-01 + 4.89254536599454e-01 3.83843952964464e-01 + 5.06163834453059e-01 3.84146352307061e-01 + 5.23189394372787e-01 3.83285841342889e-01 + 5.40310058634680e-01 3.81443701603978e-01 + 5.57486522435475e-01 3.79033596004446e-01 + 5.74715352025665e-01 3.75685474236072e-01 + 5.92000372484674e-01 3.71765261705014e-01 + 6.09337554036771e-01 3.67670925407177e-01 + 6.26712711199081e-01 3.63152537787024e-01 + 6.44112689354547e-01 3.58249400169114e-01 + 6.61537902878510e-01 3.53105856660785e-01 + 6.78976015503225e-01 3.47670000178051e-01 + 6.96388219208155e-01 3.41916005228908e-01 + 7.13758174635815e-01 3.35774011869113e-01 + 7.31072071555730e-01 3.29291743909179e-01 + 7.48347054469357e-01 3.22782481179152e-01 + 7.65635234168385e-01 3.16597107059741e-01 + 7.82817938077837e-01 3.10445909406222e-01 + 7.99822649562144e-01 3.03782942002751e-01 + 8.16599499725996e-01 2.96387728717845e-01 + 8.33162654038272e-01 2.88615543528075e-01 + 8.49499238755804e-01 2.80681153424459e-01 + 8.65575980032653e-01 2.72460131547320e-01 + 8.81365101325771e-01 2.64006588773166e-01 + 8.96830625839868e-01 2.55349206752237e-01 + 9.11860293545010e-01 2.45521741551255e-01 + 9.26493285460369e-01 2.35422284498711e-01 + 9.40627758148684e-01 2.25124409413752e-01 + 9.56355816041677e-01 2.14591442921710e-01 + 9.76537617843118e-01 2.04082237971755e-01 + 9.84561014127750e-01 1.89606914519805e-01 + 9.87643053296840e-01 1.67544521992612e-01 + 9.89781643689051e-01 1.41487907300533e-01 + 9.91693019433194e-01 1.13998602352113e-01 + 9.93236086227859e-01 8.40282639292492e-02 + 9.95181038506289e-01 6.17158184066358e-02 + 9.96476028162972e-01 4.13392188133469e-02 + 9.98222919558243e-01 2.12790182529935e-02 + 1.00000000000000e+00 1.60547379486788e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF04_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF04_Coords.txt new file mode 100644 index 00000000..7c0a13b7 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF04_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -2.27521504445117e-02 + 9.95825558916260e-01 -3.85996552852628e-02 + 9.91908351102147e-01 -5.44969196641126e-02 + 9.88416628115054e-01 -7.07599158572808e-02 + 9.85866922904108e-01 -8.82610141031158e-02 + 9.82725730996461e-01 -1.04331474026742e-01 + 9.75943584414250e-01 -1.16192160119479e-01 + 9.60562898886437e-01 -1.24553806205324e-01 + 9.45502094163868e-01 -1.30081821439202e-01 + 9.29689968161834e-01 -1.34454116305964e-01 + 9.13964300425632e-01 -1.38792987259912e-01 + 8.98614488822684e-01 -1.43791084896220e-01 + 8.83335037065323e-01 -1.48845719057247e-01 + 8.67989583131007e-01 -1.53392395893884e-01 + 8.52512977524852e-01 -1.57285196860484e-01 + 8.36980556973450e-01 -1.60814946557067e-01 + 8.21468173261859e-01 -1.64100703909415e-01 + 8.06005351604761e-01 -1.67267075710542e-01 + 7.90569523846495e-01 -1.70238657955313e-01 + 7.75160420278176e-01 -1.72833393586880e-01 + 7.59765591487754e-01 -1.74956177670212e-01 + 7.44400605416898e-01 -1.76801895913143e-01 + 7.29116033776629e-01 -1.78610693133524e-01 + 7.13947989837457e-01 -1.80610582068115e-01 + 6.98879169529179e-01 -1.82683486229382e-01 + 6.83885725014230e-01 -1.84453890742002e-01 + 6.68948266000129e-01 -1.85692240974458e-01 + 6.54077597403275e-01 -1.86675765092582e-01 + 6.39298560836104e-01 -1.87505908577295e-01 + 6.24631617962163e-01 -1.88281679546669e-01 + 6.10073346044509e-01 -1.89102453976540e-01 + 5.95625793495472e-01 -1.89726467074718e-01 + 5.81293508075112e-01 -1.89890541527727e-01 + 5.67078321487802e-01 -1.89672724652735e-01 + 5.52984605219614e-01 -1.89300253242408e-01 + 5.39018740189456e-01 -1.88942147239663e-01 + 5.25163688284825e-01 -1.88679571252767e-01 + 5.11413609207518e-01 -1.88425702489593e-01 + 4.97799177395975e-01 -1.88101973722528e-01 + 4.84327325660904e-01 -1.87580974813977e-01 + 4.70996488304439e-01 -1.86734079403737e-01 + 4.57807499457728e-01 -1.85719999075378e-01 + 4.44760927152842e-01 -1.84696486770858e-01 + 4.31852022455883e-01 -1.83635353168758e-01 + 4.19090901616490e-01 -1.82470445502636e-01 + 4.06491363898788e-01 -1.81170983464115e-01 + 3.94068316367388e-01 -1.79605967544454e-01 + 3.81813043724431e-01 -1.77780857103527e-01 + 3.69699449630328e-01 -1.75956382315867e-01 + 3.57702913407548e-01 -1.74362578401297e-01 + 3.45820758127239e-01 -1.72975266565004e-01 + 3.34085173594801e-01 -1.71599837205798e-01 + 3.22528762317999e-01 -1.70053358838540e-01 + 3.11158458585437e-01 -1.68229483638464e-01 + 2.99960205902575e-01 -1.66205813724721e-01 + 2.88929664556996e-01 -1.64083038925404e-01 + 2.78065429500551e-01 -1.61919157747390e-01 + 2.67372016639914e-01 -1.59640340608867e-01 + 2.56838483482072e-01 -1.57303663087410e-01 + 2.46452895340118e-01 -1.54979944998565e-01 + 2.36204329661831e-01 -1.52707294515853e-01 + 2.26105799104062e-01 -1.50433273332383e-01 + 2.16178334826531e-01 -1.48092285325409e-01 + 2.06440462240654e-01 -1.45637282290730e-01 + 1.96869285515018e-01 -1.43086175320475e-01 + 1.87473435872977e-01 -1.40444127091679e-01 + 1.78262653731453e-01 -1.37710428849814e-01 + 1.69252630220208e-01 -1.34804420084564e-01 + 1.60413244437104e-01 -1.31813387053438e-01 + 1.51703588066681e-01 -1.28882641840022e-01 + 1.43077619868567e-01 -1.26142317505189e-01 + 1.34558223959049e-01 -1.23515015039303e-01 + 1.26236077097364e-01 -1.20786093116937e-01 + 1.18187874855922e-01 -1.17753964310198e-01 + 1.10394900564033e-01 -1.14389083257162e-01 + 1.02776771116232e-01 -1.10926463752281e-01 + 9.52576323187684e-02 -1.07596450900910e-01 + 8.77890248291223e-02 -1.04462641719461e-01 + 8.04931796353551e-02 -1.01301294317992e-01 + 7.35128190911369e-02 -9.78736275580912e-02 + 6.68963895240495e-02 -9.40003856565595e-02 + 6.05009896751561e-02 -8.99475473560910e-02 + 5.41691079982236e-02 -8.60337352895419e-02 + 4.77847233189376e-02 -8.24016920600191e-02 + 4.16000737650022e-02 -7.87323954691971e-02 + 3.58929498807395e-02 -7.46615383996122e-02 + 3.05718156448606e-02 -7.01640817880520e-02 + 2.55841457444921e-02 -6.54750339821926e-02 + 2.08026533112682e-02 -6.07371500023589e-02 + 1.63439586202605e-02 -5.58344930848473e-02 + 1.26739780200523e-02 -5.06379447657982e-02 + 9.64255085974439e-03 -4.50568616338899e-02 + 6.95205676239145e-03 -3.93718854579150e-02 + 4.20584482318000e-03 -3.38153278580581e-02 + 1.88154483510298e-03 -2.82556740113477e-02 + 1.09259224757715e-03 -2.25793808835637e-02 + 5.57027370894427e-04 -1.68301482885243e-02 + 1.92532044605606e-04 -1.11001611628179e-02 + 7.52083255272135e-06 -5.47188430262417e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 1.17486562914811e-04 5.48679985210707e-03 + 3.45293358213107e-04 1.10987098718478e-02 + 6.76028572561267e-04 1.68193159983466e-02 + 1.10074682910982e-03 2.26297904761801e-02 + 1.60992601121548e-03 2.85087154571350e-02 + 2.67599544106549e-03 3.44493853796572e-02 + 4.39289337028668e-03 4.04593247588465e-02 + 6.27509694854768e-03 4.65396355123101e-02 + 8.18501856800657e-03 5.27292560994769e-02 + 1.03189035753580e-02 5.90079710526583e-02 + 1.27370291299606e-02 6.52938850681379e-02 + 1.55557604269686e-02 7.14974882867604e-02 + 1.89758697009180e-02 7.76144942393735e-02 + 2.27125265955629e-02 8.37568225375172e-02 + 2.64205973892604e-02 9.00529677985623e-02 + 3.01282733583995e-02 9.65285394067050e-02 + 3.39926189539913e-02 1.03078210289796e-01 + 3.81573198488582e-02 1.09576659446866e-01 + 4.27861195062449e-02 1.15924379625249e-01 + 4.78311663375292e-02 1.22194138387785e-01 + 5.30764574325103e-02 1.28517196960692e-01 + 5.83111363244493e-02 1.35033938551462e-01 + 6.35760553124462e-02 1.41734309721268e-01 + 6.90274085645503e-02 1.48474163992816e-01 + 7.48336167040122e-02 1.55069663963807e-01 + 8.11611766171277e-02 1.61401120064374e-01 + 8.79191588167710e-02 1.67593332097610e-01 + 9.48826093561019e-02 1.73826214118695e-01 + 1.01844855099363e-01 1.80284855885651e-01 + 1.08870960569728e-01 1.86945163887416e-01 + 1.16112032555569e-01 1.93604681567356e-01 + 1.23730351466839e-01 2.00035948444507e-01 + 1.31824094660795e-01 2.06181698317671e-01 + 1.40296730825128e-01 2.12179485190627e-01 + 1.48993250461499e-01 2.18163657713048e-01 + 1.57819272344995e-01 2.24246096031123e-01 + 1.66852794875010e-01 2.30358166418523e-01 + 1.76155620082319e-01 2.36368608053698e-01 + 1.85787867463952e-01 2.42168413364266e-01 + 1.95750148009566e-01 2.47820613232954e-01 + 2.06011532032752e-01 2.53317180198825e-01 + 2.16542581694721e-01 2.58641479671493e-01 + 2.27367855996913e-01 2.63825228256786e-01 + 2.38481776223131e-01 2.68855474330982e-01 + 2.49861589948929e-01 2.73698630151439e-01 + 2.61511196031386e-01 2.78418546610769e-01 + 2.73444081521194e-01 2.82942196705218e-01 + 2.85666898746156e-01 2.87119018069479e-01 + 2.98200734062047e-01 2.91001132958173e-01 + 3.11032065305424e-01 2.94621877568295e-01 + 3.24124539258925e-01 2.97872294592512e-01 + 3.37489921714358e-01 3.00767227942365e-01 + 3.51122091139916e-01 3.03395484009736e-01 + 3.64973840498426e-01 3.05782280483364e-01 + 3.79035138325125e-01 3.08249753379266e-01 + 3.93322041497236e-01 3.10433221242496e-01 + 4.07839547608925e-01 3.11538517913751e-01 + 4.22602719706730e-01 3.12017813468019e-01 + 4.37571388858179e-01 3.12308843703191e-01 + 4.52705694129202e-01 3.12333639153740e-01 + 4.68022386434649e-01 3.11853160827979e-01 + 4.83493649847560e-01 3.10957551960417e-01 + 4.99066517917555e-01 3.09764580509872e-01 + 5.14753065556197e-01 3.07600736594501e-01 + 5.30536608928272e-01 3.04749547523736e-01 + 5.46385724990049e-01 3.01659366948820e-01 + 5.62295818718890e-01 2.97977515095747e-01 + 5.78294553201899e-01 2.93910589456047e-01 + 5.94402144736603e-01 2.89716319978192e-01 + 6.10601043028817e-01 2.85246570693586e-01 + 6.26909980423233e-01 2.80596756484263e-01 + 6.43345516347184e-01 2.75862073462143e-01 + 6.59894609560225e-01 2.70990265506853e-01 + 6.76549242992279e-01 2.65977472599385e-01 + 6.93285667658481e-01 2.60762532727095e-01 + 7.10113002149428e-01 2.55379870427853e-01 + 7.27101101620968e-01 2.50077155704390e-01 + 7.44309174064674e-01 2.45048240418275e-01 + 7.61658961677203e-01 2.40058424294836e-01 + 7.79018980351826e-01 2.34727092866611e-01 + 7.96358584077290e-01 2.28942034208237e-01 + 8.13753854561790e-01 2.22958342564097e-01 + 8.31270319341910e-01 2.17014377218330e-01 + 8.48885104644356e-01 2.11048726086036e-01 + 8.66584330124259e-01 2.05031932644156e-01 + 8.84350172928721e-01 1.98925268297828e-01 + 9.02193707353903e-01 1.92773917580206e-01 + 9.20157773678337e-01 1.86723259912781e-01 + 9.38246381637406e-01 1.80792430732304e-01 + 9.56399217082597e-01 1.74918496768106e-01 + 9.76798363881330e-01 1.69533670492790e-01 + 9.84828566855567e-01 1.59247090588959e-01 + 9.87839059292136e-01 1.39199540261784e-01 + 9.89905373069722e-01 1.17616603808733e-01 + 9.91757893422502e-01 9.85412138534034e-02 + 9.93252480473954e-01 7.94410871228046e-02 + 9.94743975611726e-01 6.01627278016894e-02 + 9.96445705560557e-01 4.08626126297221e-02 + 9.98198658774545e-01 2.15548416438615e-02 + 1.00000000000000e+00 2.24462872737125e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF05_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF05_Coords.txt new file mode 100644 index 00000000..e390be98 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF05_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -1.79613835013314e-02 + 9.96961558343373e-01 -3.53902489488287e-02 + 9.92023630619313e-01 -4.91929101534255e-02 + 9.84379446083511e-01 -6.00348210114478e-02 + 9.75468141678190e-01 -7.09859658723328e-02 + 9.66631278884337e-01 -8.10763642717688e-02 + 9.55798039282918e-01 -8.89193213483636e-02 + 9.40573198850503e-01 -9.51466796435252e-02 + 9.25558881802059e-01 -9.98612000663832e-02 + 9.10156047961303e-01 -1.03818167988873e-01 + 8.94845249828711e-01 -1.07053770498790e-01 + 8.79788764043181e-01 -1.10793970812780e-01 + 8.64816289515449e-01 -1.14657288651007e-01 + 8.49854909867423e-01 -1.18332319693786e-01 + 8.34868122131193e-01 -1.21755694040649e-01 + 8.19932031659274e-01 -1.25185347068945e-01 + 8.05100969303777e-01 -1.28769954116135e-01 + 7.90321333537330e-01 -1.32315399189505e-01 + 7.75523132904363e-01 -1.35552178535652e-01 + 7.60741767498039e-01 -1.38522987025004e-01 + 7.46023130239504e-01 -1.41378450540013e-01 + 7.31401419294347e-01 -1.44351973608261e-01 + 7.16841539978852e-01 -1.47259170049408e-01 + 7.02302981796658e-01 -1.49894404232336e-01 + 6.87793305289350e-01 -1.52332219473336e-01 + 6.73332858807799e-01 -1.54446440090132e-01 + 6.58925185976507e-01 -1.56177321792256e-01 + 6.44572195057741e-01 -1.57666344545681e-01 + 6.30298458454963e-01 -1.58910640661020e-01 + 6.16114416580374e-01 -1.59951057500702e-01 + 6.02026953030919e-01 -1.60900948878695e-01 + 5.88050398086629e-01 -1.61711857451049e-01 + 5.74189109055960e-01 -1.62294350346538e-01 + 5.60448390812326e-01 -1.62664500132555e-01 + 5.46836999554392e-01 -1.62937231340188e-01 + 5.33367864981090e-01 -1.63248884154172e-01 + 5.19932409233419e-01 -1.63449902911388e-01 + 5.06477442605548e-01 -1.63417485627504e-01 + 4.93144035884787e-01 -1.63328228686621e-01 + 4.79941368474168e-01 -1.63060331436217e-01 + 4.66871737010151e-01 -1.62569827406711e-01 + 4.53934990999079e-01 -1.62070487200764e-01 + 4.41133168558923e-01 -1.61632173585030e-01 + 4.28463654391992e-01 -1.61187532275481e-01 + 4.15933178526276e-01 -1.60548880877149e-01 + 4.03555052687744e-01 -1.59798188531010e-01 + 3.91342756149186e-01 -1.58846604242981e-01 + 3.79289683322135e-01 -1.57540790079054e-01 + 3.67375264219574e-01 -1.56189884356924e-01 + 3.55580233434555e-01 -1.55081224503574e-01 + 3.43903993529589e-01 -1.54105712386970e-01 + 3.32371689603571e-01 -1.53109720354745e-01 + 3.21008399939002e-01 -1.51964778739524e-01 + 3.09818365007830e-01 -1.50611104402699e-01 + 2.98789403182843e-01 -1.49154888767305e-01 + 2.87915260467706e-01 -1.47707797499490e-01 + 2.77192797094198e-01 -1.46295028972452e-01 + 2.66634642137323e-01 -1.44782680901920e-01 + 2.56243230473741e-01 -1.43092118304113e-01 + 2.46011513861498e-01 -1.41179312266907e-01 + 2.35923227561334e-01 -1.39187527359477e-01 + 2.25978716650481e-01 -1.37235092846332e-01 + 2.16205677937271e-01 -1.35310903535781e-01 + 2.06778722942050e-01 -1.33322871209808e-01 + 1.97516042359716e-01 -1.31227497717662e-01 + 1.88427440008692e-01 -1.28991125900883e-01 + 1.79502980110518e-01 -1.26649399614310e-01 + 1.70733325816940e-01 -1.24213566866553e-01 + 1.62098170428490e-01 -1.21762260683871e-01 + 1.53596861253099e-01 -1.19338023194216e-01 + 1.45242024458811e-01 -1.16964714586022e-01 + 1.37059827832412e-01 -1.14553161865558e-01 + 1.29058111671005e-01 -1.12011104818429e-01 + 1.21217330976586e-01 -1.09333580954571e-01 + 1.13490793020045e-01 -1.06582482287198e-01 + 1.05872478787586e-01 -1.03835726838741e-01 + 9.84312049808396e-02 -1.01090373016527e-01 + 9.12178971287871e-02 -9.82756005290104e-02 + 8.42187577306301e-02 -9.53136441369315e-02 + 7.73955759457572e-02 -9.22209615041234e-02 + 7.07054294736601e-02 -8.89789985808886e-02 + 6.41548755011769e-02 -8.56689842703127e-02 + 5.77914057011829e-02 -8.22370633159429e-02 + 5.16081911372133e-02 -7.87250303745277e-02 + 4.56080027670407e-02 -7.51373524837015e-02 + 3.97932691904809e-02 -7.13640514386860e-02 + 3.41289275285710e-02 -6.73803370811387e-02 + 2.88546712589916e-02 -6.31532691299288e-02 + 2.39831240698773e-02 -5.86665495096452e-02 + 1.94527821619992e-02 -5.39591200958821e-02 + 1.53491720497801e-02 -4.90523270599134e-02 + 1.16943357256612e-02 -4.38406284119954e-02 + 8.65365253109135e-03 -3.84459455205228e-02 + 5.92370160379059e-03 -3.30114750896427e-02 + 3.46212829965803e-03 -2.75812253497000e-02 + 1.58454458640205e-03 -2.21027074392882e-02 + 7.35715040582169e-04 -1.65321192119310e-02 + 2.97907005116705e-04 -1.09279875504530e-02 + 5.30676565098627e-05 -5.39101103138609e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 9.16249484271071e-05 5.39472463076042e-03 + 2.97114014867658e-04 1.09125341734703e-02 + 6.07765485359921e-04 1.65347368419011e-02 + 1.01319685944283e-03 2.22398721797630e-02 + 1.57860720361388e-03 2.80048570638302e-02 + 2.85770205402702e-03 3.38268128923488e-02 + 4.60485640943450e-03 3.97136792782237e-02 + 6.36963363495096e-03 4.56791798263678e-02 + 8.27460103313730e-03 5.17469828248211e-02 + 1.04559502964479e-02 5.78621045555090e-02 + 1.30787206403767e-02 6.39307928915866e-02 + 1.62476019915294e-02 6.99136016610049e-02 + 1.97064472281925e-02 7.58656576746356e-02 + 2.32055551437451e-02 8.18956044570781e-02 + 2.67780264071069e-02 8.80520763606948e-02 + 3.05536180174887e-02 9.43034458705317e-02 + 3.46895645314508e-02 1.00552628487572e-01 + 3.91594998227274e-02 1.06753941085293e-01 + 4.38513894815309e-02 1.12886816803394e-01 + 4.86469345513260e-02 1.19031991526595e-01 + 5.35662818491533e-02 1.25246183971636e-01 + 5.86765310389434e-02 1.31515765400035e-01 + 6.41158119407387e-02 1.37430772030919e-01 + 6.98941360883445e-02 1.43254800103538e-01 + 7.59170877123488e-02 1.49053754727573e-01 + 8.21227682881698e-02 1.54888203928039e-01 + 8.85359454387846e-02 1.60747975413262e-01 + 9.51513059583106e-02 1.66598125672197e-01 + 1.01977161405040e-01 1.72421724747484e-01 + 1.09029076244286e-01 1.78602175887026e-01 + 1.16324626112349e-01 1.84952513492490e-01 + 1.23886862179539e-01 1.91028384041450e-01 + 1.31793661272858e-01 1.96904454248269e-01 + 1.40137015144785e-01 2.02603209487098e-01 + 1.48722392856665e-01 2.08131821762515e-01 + 1.57498055037009e-01 2.13566417662387e-01 + 1.66499738307440e-01 2.18924804988545e-01 + 1.75746807567001e-01 2.24209223798866e-01 + 1.85282812844636e-01 2.29419693016131e-01 + 1.95126003842738e-01 2.34424150993428e-01 + 2.05278382458868e-01 2.39064246909332e-01 + 2.15728458898676e-01 2.43395275762812e-01 + 2.26448399402852e-01 2.47609942869563e-01 + 2.37390616140716e-01 2.51915193162418e-01 + 2.48555223136142e-01 2.56240468008173e-01 + 2.59983581489374e-01 2.60218095713622e-01 + 2.71719323509248e-01 2.63616598352372e-01 + 2.83748575426622e-01 2.66632889055311e-01 + 2.96041798832288e-01 2.69453390481384e-01 + 3.08575060192042e-01 2.72409404922417e-01 + 3.21340186072523e-01 2.75012415222477e-01 + 3.34353685398402e-01 2.76492953153595e-01 + 3.47617985877095e-01 2.77530644029356e-01 + 3.61086047806733e-01 2.78478291157024e-01 + 3.74735967198890e-01 2.79421812258223e-01 + 3.88584839416611e-01 2.80075134954841e-01 + 4.02610569745306e-01 2.80158921396025e-01 + 4.16769966222890e-01 2.79426952940989e-01 + 4.31000767416746e-01 2.77780180205803e-01 + 4.45367430099069e-01 2.75892299873811e-01 + 4.59886426162136e-01 2.73764712702610e-01 + 4.74522704612306e-01 2.71235104254327e-01 + 4.89216780464507e-01 2.68272718312492e-01 + 5.03966776199603e-01 2.64447118696879e-01 + 5.18806020666685e-01 2.60200052632834e-01 + 5.33757172542646e-01 2.56033656152525e-01 + 5.48800417061940e-01 2.51670207782890e-01 + 5.63928433117745e-01 2.47052734150705e-01 + 5.79139293361131e-01 2.42196437539003e-01 + 5.94438582209324e-01 2.37156310638374e-01 + 6.09857099330908e-01 2.32081069158076e-01 + 6.25400870520805e-01 2.26991368536271e-01 + 6.41058606965589e-01 2.21852557624183e-01 + 6.56827119257239e-01 2.16670545580237e-01 + 6.72692401163725e-01 2.11435826592181e-01 + 6.88658261530256e-01 2.06153724323127e-01 + 7.04768588597026e-01 2.00939949019601e-01 + 7.21023238876672e-01 1.95698405223399e-01 + 7.37357768356274e-01 1.90224737500501e-01 + 7.53717588941763e-01 1.84447648187462e-01 + 7.70112763502082e-01 1.78479680783297e-01 + 7.86578143910845e-01 1.72394810225689e-01 + 8.03184229023836e-01 1.66738239461448e-01 + 8.19942143394421e-01 1.61342896059017e-01 + 8.36804795974800e-01 1.55942560425342e-01 + 8.53725343344330e-01 1.50402193026770e-01 + 8.70748946763591e-01 1.44842377351049e-01 + 8.87946529574867e-01 1.39474077514211e-01 + 9.05306293149628e-01 1.34235143291426e-01 + 9.22545067587843e-01 1.28920314434417e-01 + 9.40600734347715e-01 1.23754776734464e-01 + 9.53048939484955e-01 1.16864623799960e-01 + 9.63077773676104e-01 1.06395431570647e-01 + 9.72474093255454e-01 9.57868792253965e-02 + 9.81179655916868e-01 8.60931773916215e-02 + 9.88539472463695e-01 7.50338503152747e-02 + 9.93965264664499e-01 5.85418242094117e-02 + 9.96759513501900e-01 4.07113376276323e-02 + 9.98822819206952e-01 2.22334005961241e-02 + 1.00000000000000e+00 3.03882619127306e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF06_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF06_Coords.txt new file mode 100644 index 00000000..9931444e --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF06_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -1.13904183263968e-02 + 9.97616112402170e-01 -3.02925242439361e-02 + 9.92090053782966e-01 -4.09226344496437e-02 + 9.78779505574386e-01 -4.46317953566502e-02 + 9.62630848882990e-01 -4.78657079982365e-02 + 9.48002016685502e-01 -5.14602797602320e-02 + 9.33316247673508e-01 -5.51593031128816e-02 + 9.18496232612161e-01 -5.92254605712216e-02 + 9.03703201804367e-01 -6.31663589833213e-02 + 8.88853928485311e-01 -6.68255900117923e-02 + 8.74049386501296e-01 -7.05161511584427e-02 + 8.59334016743915e-01 -7.43874436875609e-02 + 8.44688974778042e-01 -7.83626507822871e-02 + 8.30107202160351e-01 -8.23961121367229e-02 + 8.15594575089335e-01 -8.65047449737667e-02 + 8.01218061118175e-01 -9.08578559827087e-02 + 7.87017154459310e-01 -9.56014747506557e-02 + 7.72867465331189e-01 -1.00310586221221e-01 + 7.58658127516040e-01 -1.04602689055293e-01 + 7.44454533959962e-01 -1.08689082390743e-01 + 7.30359770774575e-01 -1.12881924651599e-01 + 7.16430384005105e-01 -1.17399987158617e-01 + 7.02548411333571e-01 -1.21769749655608e-01 + 6.88587907939929e-01 -1.25508162707915e-01 + 6.74579309967017e-01 -1.28831256546796e-01 + 6.60588643228054e-01 -1.31814109374650e-01 + 6.46644883677572e-01 -1.34518684272535e-01 + 6.32738136446085e-01 -1.36970560657454e-01 + 6.18888539380060e-01 -1.39099781158483e-01 + 6.05094599842353e-01 -1.40925423892468e-01 + 5.91370497948358e-01 -1.42548078837611e-01 + 5.77742681423787e-01 -1.44039268742623e-01 + 5.64210789942644e-01 -1.45418710112677e-01 + 5.50776369602557e-01 -1.46660362777981e-01 + 5.37444968071300e-01 -1.47785036756530e-01 + 5.24218800582908e-01 -1.48883649416298e-01 + 5.11096793180140e-01 -1.49725747746255e-01 + 4.98077600261809e-01 -1.50190862529385e-01 + 4.85165286248710e-01 -1.50548451423256e-01 + 4.72371838173648e-01 -1.50709025323563e-01 + 4.59704855658886e-01 -1.50660182339889e-01 + 4.47162353937939e-01 -1.50610036032676e-01 + 4.34748236821129e-01 -1.50574316591260e-01 + 4.22462962227877e-01 -1.50466331413989e-01 + 4.10307413565604e-01 -1.50120854962051e-01 + 3.98293549815832e-01 -1.49646376138536e-01 + 3.86431947049557e-01 -1.48985011501092e-01 + 3.74719035040848e-01 -1.47937284203969e-01 + 3.63143253860895e-01 -1.46805960127425e-01 + 3.51694487399415e-01 -1.45836094033469e-01 + 3.40375820106151e-01 -1.44917425523182e-01 + 3.29200242436979e-01 -1.43946965381053e-01 + 3.18179373560524e-01 -1.42835461865229e-01 + 3.07312147043483e-01 -1.41563685586535e-01 + 2.96589198655950e-01 -1.40239218363699e-01 + 2.86000302805324e-01 -1.38971039533067e-01 + 2.75538569884689e-01 -1.37776349074027e-01 + 2.65231088919120e-01 -1.36509074431539e-01 + 2.55105124935306e-01 -1.35017464348563e-01 + 2.45163330716385e-01 -1.33182240433968e-01 + 2.35380065561362e-01 -1.31184297306223e-01 + 2.25731797335499e-01 -1.29236565554543e-01 + 2.16212918345480e-01 -1.27375368900912e-01 + 2.06869737828596e-01 -1.25493378403087e-01 + 1.97692792848475e-01 -1.23508013308052e-01 + 1.88692178275185e-01 -1.21356126184016e-01 + 1.79852140135191e-01 -1.19094041300472e-01 + 1.71155287788632e-01 -1.16810198318667e-01 + 1.62583572203815e-01 -1.14572084308225e-01 + 1.54148627233356e-01 -1.12333771605582e-01 + 1.45882282736195e-01 -1.10017484528559e-01 + 1.37813705509852e-01 -1.07521934723333e-01 + 1.29924389454779e-01 -1.04868618458173e-01 + 1.22160459722846e-01 -1.02232244909791e-01 + 1.14462997638161e-01 -9.97769981877239e-02 + 1.06850950889400e-01 -9.74418050455991e-02 + 9.94456540823707e-02 -9.49708378396853e-02 + 9.23374027952569e-02 -9.21230511653797e-02 + 8.54657300321368e-02 -8.89658600035733e-02 + 7.87212757634630e-02 -8.58036899472230e-02 + 7.20187471524862e-02 -8.28315669774048e-02 + 6.54246409525636e-02 -7.99018939763046e-02 + 5.90704249471530e-02 -7.68099610722217e-02 + 5.30035679474469e-02 -7.34323254403719e-02 + 4.71239339609886e-02 -6.99340905790686e-02 + 4.13031360007540e-02 -6.65329912958667e-02 + 3.55234699482794e-02 -6.32184019501613e-02 + 3.01619829327107e-02 -5.96139288290971e-02 + 2.53031775785438e-02 -5.54778043544704e-02 + 2.08048174587776e-02 -5.10511978893060e-02 + 1.65388584263945e-02 -4.65627010925328e-02 + 1.26090766129194e-02 -4.18918267420981e-02 + 9.43378362085923e-03 -3.69337921085883e-02 + 6.78961770854852e-03 -3.16963231219606e-02 + 4.34237637716249e-03 -2.64747404683854e-02 + 1.85598728281019e-03 -2.13060647449452e-02 + 8.70334950751159e-04 -1.60204557614650e-02 + 3.78614157542381e-04 -1.06258278582999e-02 + 8.34360366869797e-05 -5.24793360453415e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 7.67236867486678e-05 5.23517737179421e-03 + 2.69353450923468e-04 1.05899507024689e-02 + 5.68432823980679e-04 1.60424452959359e-02 + 9.62751245980932e-04 2.15677746016270e-02 + 1.56056154959061e-03 2.71408610938964e-02 + 2.93760353810514e-03 3.27643997804523e-02 + 4.68388731306286e-03 3.84466954603457e-02 + 6.39829873698727e-03 4.42192833035362e-02 + 8.30088094239591e-03 5.00830587126182e-02 + 1.04968991067837e-02 5.59331418219662e-02 + 1.31905356506929e-02 6.16590402853706e-02 + 1.64944927228985e-02 6.72926557763616e-02 + 1.99584847680105e-02 7.29780548965268e-02 + 2.33603947254173e-02 7.88193742129969e-02 + 2.68842534255446e-02 8.47441200649158e-02 + 3.06808954672960e-02 9.06322348821772e-02 + 3.49084527320684e-02 9.63920127695594e-02 + 3.94874921561364e-02 1.02093915910307e-01 + 4.41979239135200e-02 1.07851341351126e-01 + 4.88991643814045e-02 1.13771751479133e-01 + 5.37085410028852e-02 1.19785527662613e-01 + 5.87799300044820e-02 1.25738707322743e-01 + 6.42723709032797e-02 1.31439519919589e-01 + 7.01563729259333e-02 1.37001677458821e-01 + 7.62522111785621e-02 1.42563767678454e-01 + 8.24142000324228e-02 1.48247461470601e-01 + 8.87141756594531e-02 1.54005995560218e-01 + 9.52252089668619e-02 1.59738341000206e-01 + 1.02012827165119e-01 1.65362107222581e-01 + 1.09071839770933e-01 1.71005609066199e-01 + 1.16382532480666e-01 1.76625410480436e-01 + 1.23929157304783e-01 1.82119310647882e-01 + 1.31734456855347e-01 1.87537907766897e-01 + 1.39830632988419e-01 1.92818237288258e-01 + 1.48208290383940e-01 1.97881178099860e-01 + 1.56890640982985e-01 2.02754105050709e-01 + 1.65833248340983e-01 2.07492675263682e-01 + 1.74977872658223e-01 2.12167028768671e-01 + 1.84339215056554e-01 2.16828518735710e-01 + 1.93969002461360e-01 2.21262214470146e-01 + 2.03927738995053e-01 2.25232399682506e-01 + 2.14233998923319e-01 2.28819156679255e-01 + 2.24768775871601e-01 2.32298339432912e-01 + 2.35414724132119e-01 2.35983917716678e-01 + 2.46214765126001e-01 2.39788864290029e-01 + 2.57273968847626e-01 2.43131931500378e-01 + 2.68683262153020e-01 2.45701077047944e-01 + 2.80394161446840e-01 2.47884449864113e-01 + 2.92298014116652e-01 2.49928845873406e-01 + 3.04358015522582e-01 2.52310200009780e-01 + 3.16612004841116e-01 2.54366837382113e-01 + 3.29084707645504e-01 2.54944026733475e-01 + 3.41791574758934e-01 2.55013657780952e-01 + 3.54686633087091e-01 2.55077224740846e-01 + 3.67732287456134e-01 2.55080989890258e-01 + 3.80947927549799e-01 2.54809270763009e-01 + 3.94277125966556e-01 2.54299155434133e-01 + 4.07679990408069e-01 2.52964484309584e-01 + 4.21176069905831e-01 2.50460618119005e-01 + 4.34780235148961e-01 2.47779904156950e-01 + 4.48508915785030e-01 2.45032787159418e-01 + 4.62324554197701e-01 2.41951247240081e-01 + 4.76168679634616e-01 2.38443526187009e-01 + 4.90026518395832e-01 2.34310030235241e-01 + 5.03986607097025e-01 2.29965169629546e-01 + 5.18124607276385e-01 2.25794521855877e-01 + 5.32402710892978e-01 2.21622952392128e-01 + 5.46773333755108e-01 2.17288635068298e-01 + 5.61209497775237e-01 2.12697198172799e-01 + 5.75739948251087e-01 2.07963361115272e-01 + 5.90401181915651e-01 2.03229629742975e-01 + 6.05186266686445e-01 1.98479319175866e-01 + 6.20086166342671e-01 1.93692356863453e-01 + 6.35097907187523e-01 1.88871403344983e-01 + 6.50216806205491e-01 1.84017547463539e-01 + 6.65438113197408e-01 1.79123980133843e-01 + 6.80773250934036e-01 1.74228906733020e-01 + 6.96172960729631e-01 1.69180559493466e-01 + 7.11585661998256e-01 1.63830547989403e-01 + 7.27034942498605e-01 1.58268579741071e-01 + 7.42558721683669e-01 1.52649157462292e-01 + 7.58144383438193e-01 1.46939483520203e-01 + 7.73847783484881e-01 1.41394650866481e-01 + 7.89701647082685e-01 1.36067884587493e-01 + 8.05635711733308e-01 1.30738018396962e-01 + 8.21581445293506e-01 1.25220232868624e-01 + 8.37586124515025e-01 1.19666988037264e-01 + 8.53726898147738e-01 1.14318888381174e-01 + 8.69963585585765e-01 1.09065119635605e-01 + 8.86190226070913e-01 1.03619764994052e-01 + 9.02483979686875e-01 9.80682052774082e-02 + 9.18558853276680e-01 9.26538040770285e-02 + 9.34548045768020e-01 8.73262649268327e-02 + 9.50649300724702e-01 8.23994229326946e-02 + 9.66427399966504e-01 7.70749674918775e-02 + 9.80999886673880e-01 6.90076199367232e-02 + 9.92612066213372e-01 5.56165891750792e-02 + 9.96940327203726e-01 4.00048120288691e-02 + 9.99182455606956e-01 2.29517217456512e-02 + 1.00000000000000e+00 4.20817591936930e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF07_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF07_Coords.txt new file mode 100644 index 00000000..ce777e0d --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF07_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -7.22169847721207e-03 + 9.93657635607014e-01 -9.80951552444892e-03 + 9.85015925953616e-01 -1.30850106016452e-02 + 9.68838039545111e-01 -1.84611077131393e-02 + 9.50612974422184e-01 -2.33823451641766e-02 + 9.34054843802496e-01 -2.68598144161353e-02 + 9.17904876813281e-01 -2.92032016919475e-02 + 9.02410145568755e-01 -3.25195649501926e-02 + 8.86984531818462e-01 -3.63341125283542e-02 + 8.71653146034245e-01 -4.02779399999799e-02 + 8.56421678685942e-01 -4.44297430955853e-02 + 8.41297341579872e-01 -4.88277542480629e-02 + 8.26299922405764e-01 -5.34725994663518e-02 + 8.11418218122957e-01 -5.83063399795375e-02 + 7.96668059771363e-01 -6.33518858746505e-02 + 7.82093073102221e-01 -6.86691608646314e-02 + 7.67715947269790e-01 -7.43397495082482e-02 + 7.53432129505621e-01 -8.00400824090274e-02 + 7.39140921507287e-01 -8.54783114096485e-02 + 7.24887781938029e-01 -9.07927090242104e-02 + 7.10763647733484e-01 -9.62089130617438e-02 + 6.96813846978418e-01 -1.01849003923843e-01 + 6.82926720247006e-01 -1.07345616986875e-01 + 6.68987494011958e-01 -1.12341932591132e-01 + 6.55015055372256e-01 -1.16974857778111e-01 + 6.41069653036586e-01 -1.21324695308618e-01 + 6.27178381576740e-01 -1.25441039708115e-01 + 6.13325927341839e-01 -1.29300851927610e-01 + 5.99526121249635e-01 -1.32836295356277e-01 + 5.85782516774879e-01 -1.36082768510397e-01 + 5.72099418530029e-01 -1.39062285229702e-01 + 5.58500671454668e-01 -1.41826434136283e-01 + 5.44989585070756e-01 -1.44410477552523e-01 + 5.31572041625452e-01 -1.46801987807261e-01 + 5.18249443006677e-01 -1.48965339749430e-01 + 5.05024114284701e-01 -1.51306014609625e-01 + 4.91903544204855e-01 -1.53396356865900e-01 + 4.78886537168064e-01 -1.55029927452596e-01 + 4.65973152938946e-01 -1.56361009079535e-01 + 4.53179119201583e-01 -1.57373248363793e-01 + 4.40511641089995e-01 -1.58032071375895e-01 + 4.27973254627328e-01 -1.58511320266496e-01 + 4.15569568070292e-01 -1.58830392050982e-01 + 4.03305571015855e-01 -1.58908632350926e-01 + 3.91181433267754e-01 -1.58751137788738e-01 + 3.79208355061609e-01 -1.58402513518675e-01 + 3.67395164279636e-01 -1.57823599361342e-01 + 3.55740722338427e-01 -1.56880132251604e-01 + 3.44238533276691e-01 -1.55825370105009e-01 + 3.32890410142460e-01 -1.54776742866931e-01 + 3.21695626476537e-01 -1.53702620246411e-01 + 3.10660511859208e-01 -1.52547932345675e-01 + 2.99792418198384e-01 -1.51236406478805e-01 + 2.89088689354766e-01 -1.49773471325457e-01 + 2.78543651775726e-01 -1.48236644042898e-01 + 2.68149273917489e-01 -1.46704827592144e-01 + 2.57896406226205e-01 -1.45208435280521e-01 + 2.47810593764685e-01 -1.43640086484094e-01 + 2.37924398764870e-01 -1.41871396589496e-01 + 2.28243375505465e-01 -1.39800943847393e-01 + 2.18746002754731e-01 -1.37561331679565e-01 + 2.09407739643021e-01 -1.35323082679671e-01 + 2.00204632082914e-01 -1.33142628436607e-01 + 1.91097767708039e-01 -1.30937919464830e-01 + 1.82170786872752e-01 -1.28640807136328e-01 + 1.73438864168049e-01 -1.26185420973317e-01 + 1.64887367765774e-01 -1.23622391399294e-01 + 1.56497023195920e-01 -1.21049752796620e-01 + 1.48258982483410e-01 -1.18508626502639e-01 + 1.40184001337527e-01 -1.15939910025142e-01 + 1.32310114080237e-01 -1.13239907331215e-01 + 1.24637510518848e-01 -1.10361154607051e-01 + 1.17138359086711e-01 -1.07372231954189e-01 + 1.09808401127193e-01 -1.04399442414758e-01 + 1.02594618944679e-01 -1.01600341650075e-01 + 9.54864171319728e-02 -9.89295946584694e-02 + 8.85996519559139e-02 -9.61035248577797e-02 + 8.20051916775647e-02 -9.28926032526868e-02 + 7.56369542864789e-02 -8.94141742247751e-02 + 6.94224285943848e-02 -8.59586167133803e-02 + 6.33063696107793e-02 -8.27169512241728e-02 + 5.73252083536456e-02 -7.95397742824449e-02 + 5.15865051316583e-02 -7.61848830062020e-02 + 4.61300367417238e-02 -7.25118010504582e-02 + 4.08738115912319e-02 -6.87276051345213e-02 + 3.57389328883182e-02 -6.50758836466640e-02 + 3.07040311089050e-02 -6.15616444241208e-02 + 2.60327010981162e-02 -5.78249541857669e-02 + 2.18044848917305e-02 -5.36151169153552e-02 + 1.79125721708463e-02 -4.91694235722464e-02 + 1.42640650272980e-02 -4.47148049333326e-02 + 1.09301665102860e-02 -4.01661895085117e-02 + 8.21488787888461e-03 -3.53822053138899e-02 + 5.97345205176603e-03 -3.03209729737249e-02 + 3.91406699176672e-03 -2.52857837799812e-02 + 1.81775566819190e-03 -2.03309654023002e-02 + 9.12160954949108e-04 -1.52977122324043e-02 + 4.02582765125064e-04 -1.01721928519313e-02 + 8.81962189848521e-05 -5.04398886153351e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 7.88481242318804e-05 4.71135299425895e-03 + 2.80754052876520e-04 9.46261288508707e-03 + 6.13006828585368e-04 1.43031715472917e-02 + 1.05300322116593e-03 1.92164339057439e-02 + 1.65902417833529e-03 2.41858280981452e-02 + 2.88604628288041e-03 2.92144066457047e-02 + 4.45666746110958e-03 3.43052576770996e-02 + 6.03753907265340e-03 3.94795983867471e-02 + 7.82960449484624e-03 4.47233966620429e-02 + 9.91655407404961e-03 4.99442035624549e-02 + 1.24284772687387e-02 5.50687705625851e-02 + 1.54763292167825e-02 6.01250554953811e-02 + 1.86843960997679e-02 6.52596352562490e-02 + 2.18962093706069e-02 7.05324271196803e-02 + 2.52784929759404e-02 7.58378592538172e-02 + 2.89300636094216e-02 8.10694276026404e-02 + 3.29484021469950e-02 8.61824529289475e-02 + 3.72852782429899e-02 9.12501336825606e-02 + 4.17870700061248e-02 9.63840447729288e-02 + 4.63496453037568e-02 1.01661284055219e-01 + 5.10435239639925e-02 1.07009882208275e-01 + 5.59875070986280e-02 1.12277397844824e-01 + 6.13148588789216e-02 1.17455631946297e-01 + 6.70010356595760e-02 1.22519800002061e-01 + 7.29051769183183e-02 1.27568059236526e-01 + 7.89112995425554e-02 1.32686684152645e-01 + 8.50741136975359e-02 1.37843119031058e-01 + 9.14578688138890e-02 1.42951013415473e-01 + 9.81151304128743e-02 1.47950651124437e-01 + 1.05022936124011e-01 1.52865251715801e-01 + 1.12182877397443e-01 1.57757291795771e-01 + 1.19585877721620e-01 1.62614046073641e-01 + 1.27214720177563e-01 1.67446356419965e-01 + 1.35051758382265e-01 1.72165225608851e-01 + 1.43176044526092e-01 1.76678814786360e-01 + 1.51634312233503e-01 1.80984672889066e-01 + 1.60356678124586e-01 1.85147263518180e-01 + 1.69269127559869e-01 1.89234816532284e-01 + 1.78381320346887e-01 1.93269420198442e-01 + 1.87736592934877e-01 1.97097647600736e-01 + 1.97403400646351e-01 2.00521431354757e-01 + 2.07414560220724e-01 2.03579949812533e-01 + 2.17637947930063e-01 2.06524316560926e-01 + 2.27957250958957e-01 2.09606621172829e-01 + 2.38424311306026e-01 2.12738917135585e-01 + 2.49140241428875e-01 2.15458447992728e-01 + 2.60193207505178e-01 2.17511148705191e-01 + 2.71533533873424e-01 2.19224005878087e-01 + 2.83047744346193e-01 2.20787015818953e-01 + 2.94701890510800e-01 2.22583472274857e-01 + 3.06540852849821e-01 2.24096763539104e-01 + 3.18587112400968e-01 2.24415002618965e-01 + 3.30855654708830e-01 2.24301491408268e-01 + 3.43310579183658e-01 2.24139847149895e-01 + 3.55916656194316e-01 2.23898337931694e-01 + 3.68688998774519e-01 2.23408427293927e-01 + 3.81572695782548e-01 2.22730323737716e-01 + 3.94527023625166e-01 2.21420378888789e-01 + 4.07577420363382e-01 2.19229578580146e-01 + 4.20747484227582e-01 2.16905927479625e-01 + 4.34048855640024e-01 2.14517519518509e-01 + 4.47450165980170e-01 2.11864556981160e-01 + 4.60905424804169e-01 2.08876051783214e-01 + 4.74402418451617e-01 2.05501088301643e-01 + 4.88022240093813e-01 2.01966908762110e-01 + 5.01834194639075e-01 1.98470477662966e-01 + 5.15805558738129e-01 1.94947715634616e-01 + 5.29888183465374e-01 1.91277769157688e-01 + 5.44052932281682e-01 1.87389757043223e-01 + 5.58325058597065e-01 1.83339503703845e-01 + 5.72736421684721e-01 1.79233707897876e-01 + 5.87278008452787e-01 1.75063217405684e-01 + 6.01942226550589e-01 1.70800025984236e-01 + 6.16726346705862e-01 1.66455074142313e-01 + 6.31625058034417e-01 1.61970282233741e-01 + 6.46632291278635e-01 1.57504594571016e-01 + 6.61751041325077e-01 1.53059152834824e-01 + 6.76936236795835e-01 1.48499192638019e-01 + 6.92147476339639e-01 1.43724258513413e-01 + 7.07422281167433e-01 1.38823871106520e-01 + 7.22793007484622e-01 1.33869944353296e-01 + 7.38235455101973e-01 1.28814615957645e-01 + 7.53788409699974e-01 1.23522467900944e-01 + 7.69480657356214e-01 1.18283395144514e-01 + 7.85257633409310e-01 1.13044577909845e-01 + 8.01060519005720e-01 1.07644700685774e-01 + 8.16924009082326e-01 1.02213067786408e-01 + 8.32899942925333e-01 9.69408719881597e-02 + 8.48952317457811e-01 9.17358463767536e-02 + 8.65002071649512e-01 8.63711864178634e-02 + 8.80969831955332e-01 8.09281767032574e-02 + 8.97584200496906e-01 7.56224024173498e-02 + 9.14568727916341e-01 7.04186437860226e-02 + 9.31904847981603e-01 6.55248665698794e-02 + 9.49305251019172e-01 6.03216786607366e-02 + 9.66164153664091e-01 4.90247665870267e-02 + 9.80884725394935e-01 3.29696041722759e-02 + 9.88910360671404e-01 2.19933114134784e-02 + 9.94960172555627e-01 1.27529106155588e-02 + 1.00000000000000e+00 4.45165609285943e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF08_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF08_Coords.txt new file mode 100644 index 00000000..478fc66c --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF08_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -5.11794789304784e-03 + 9.87005763971439e-01 -5.16840068225131e-03 + 9.73038425383534e-01 -5.32849535777342e-03 + 9.56081318146453e-01 -5.65516774424684e-03 + 9.38258725113225e-01 -6.13509187042994e-03 + 9.21098802615238e-01 -7.37719929228484e-03 + 9.04171761208617e-01 -9.67764145296581e-03 + 8.87610187611954e-01 -1.28830910336964e-02 + 8.71194318647985e-01 -1.68426370240972e-02 + 8.54930444958429e-01 -2.12840484397517e-02 + 8.38825194115695e-01 -2.61486444777100e-02 + 8.22890453894495e-01 -3.14203814417820e-02 + 8.07149028562320e-01 -3.70963167232995e-02 + 7.91559160728296e-01 -4.30129343317612e-02 + 7.76134809703913e-01 -4.91784530431020e-02 + 7.60882930217529e-01 -5.55441031998046e-02 + 7.45808391148759e-01 -6.21129397508765e-02 + 7.30872703797860e-01 -6.87753213244312e-02 + 7.16019391262118e-01 -7.53975930760553e-02 + 7.01249601839577e-01 -8.19653842497797e-02 + 6.86602027371248e-01 -8.85381279067066e-02 + 6.72088450727254e-01 -9.51198902776138e-02 + 6.57658826413606e-01 -1.01580704997215e-01 + 6.43273510875851e-01 -1.07825082904111e-01 + 6.28922441703606e-01 -1.13838136909654e-01 + 6.14629543830024e-01 -1.19633865914327e-01 + 6.00402302207097e-01 -1.25204051915514e-01 + 5.86224990574980e-01 -1.30504150242841e-01 + 5.72102688198421e-01 -1.35489694904769e-01 + 5.58056462396552e-01 -1.40219795793820e-01 + 5.44068657963509e-01 -1.44621519921740e-01 + 5.30149292300862e-01 -1.48688195730507e-01 + 5.16309904342871e-01 -1.52448246865224e-01 + 5.02564054060932e-01 -1.55921626814940e-01 + 4.88906214250242e-01 -1.59037421835638e-01 + 4.75341042823127e-01 -1.62423955617231e-01 + 4.61888620093194e-01 -1.65573917902269e-01 + 4.48549276031540e-01 -1.68227765214179e-01 + 4.35323450667154e-01 -1.70397650719714e-01 + 4.22231621477117e-01 -1.72138327387660e-01 + 4.09276701428819e-01 -1.73387571753102e-01 + 3.96470584896236e-01 -1.74281084442316e-01 + 3.83820866691607e-01 -1.74849339228191e-01 + 3.71337084681443e-01 -1.75019751577656e-01 + 3.59023523674681e-01 -1.74968047652900e-01 + 3.46890000105156e-01 -1.74665880146742e-01 + 3.34945069696063e-01 -1.74085229376070e-01 + 3.23189763794252e-01 -1.73173272026349e-01 + 3.11618801432831e-01 -1.72128336356160e-01 + 3.00245771337945e-01 -1.70930259894987e-01 + 2.89061607633421e-01 -1.69632705367369e-01 + 2.78070348777523e-01 -1.68223429598176e-01 + 2.67282084006707e-01 -1.66631651581257e-01 + 2.56695506216341e-01 -1.64880753133419e-01 + 2.46309210866574e-01 -1.63007736992023e-01 + 2.36121268527904e-01 -1.61049692711949e-01 + 2.26122324781829e-01 -1.59049566833247e-01 + 2.16324437766268e-01 -1.56951849123834e-01 + 2.06745907176088e-01 -1.54690861611926e-01 + 1.97389066205685e-01 -1.52226909705892e-01 + 1.88247721921604e-01 -1.49614702715995e-01 + 1.79314005605731e-01 -1.46926220464477e-01 + 1.70566694081349e-01 -1.44223107768427e-01 + 1.61987928073239e-01 -1.41464913845606e-01 + 1.53613637192824e-01 -1.38621916691031e-01 + 1.45465791115612e-01 -1.35641236981406e-01 + 1.37531633873771e-01 -1.32555619747964e-01 + 1.29789500501668e-01 -1.29438714378930e-01 + 1.22244457727610e-01 -1.26295657217261e-01 + 1.14904434138070e-01 -1.23092443693640e-01 + 1.07815146473205e-01 -1.19743795226088e-01 + 1.00932689591638e-01 -1.16291158229989e-01 + 9.42157410411242e-02 -1.12813381113546e-01 + 8.77349155613034e-02 -1.09269854169755e-01 + 8.14482559337302e-02 -1.05747275959770e-01 + 7.53019277572595e-02 -1.02291481938668e-01 + 6.93966080685775e-02 -9.87222833516028e-02 + 6.37676017649456e-02 -9.49332169892506e-02 + 5.83449527155066e-02 -9.10314379469155e-02 + 5.31177088421891e-02 -8.71178387550273e-02 + 4.80761779909361e-02 -8.32564851010753e-02 + 4.32072188935750e-02 -7.94169605594471e-02 + 3.85782245145711e-02 -7.54792072837812e-02 + 3.42154217216861e-02 -7.13768818016279e-02 + 3.00688981057734e-02 -6.72145109220034e-02 + 2.61374641397527e-02 -6.30734442017404e-02 + 2.23928752768931e-02 -5.89691912908124e-02 + 1.89178199388277e-02 -5.47792526393842e-02 + 1.57782895775260e-02 -5.03896663818205e-02 + 1.29264432287037e-02 -4.59030547514804e-02 + 1.03316751650313e-02 -4.14081472593511e-02 + 8.01095482796203e-03 -3.68823744341440e-02 + 6.08150946456878e-03 -3.22776443558319e-02 + 4.52036674400099e-03 -2.75690188527804e-02 + 3.11828349938427e-03 -2.29033385892524e-02 + 1.72653564695298e-03 -1.83027858589327e-02 + 9.36354454312048e-04 -1.37093359958523e-02 + 4.16310542075031e-04 -9.11214382596928e-03 + 9.05200308349797e-05 -4.53311172713394e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 8.23110428241997e-05 3.97993478406906e-03 + 2.98468273940176e-04 7.93603235163689e-03 + 6.81113520909810e-04 1.19732402957132e-02 + 1.19041733235376e-03 1.60895922280325e-02 + 1.80832364157979e-03 2.02825181518579e-02 + 2.76834570722558e-03 2.45519466760042e-02 + 3.99985774071954e-03 2.88929320741292e-02 + 5.33098003226254e-03 3.32996052893721e-02 + 6.90917800997795e-03 3.77505431103084e-02 + 8.77992723995089e-03 4.22046062180702e-02 + 1.09457919494102e-02 4.66556914052094e-02 + 1.35126204924888e-02 5.10795304396620e-02 + 1.62412425116766e-02 5.55670056227592e-02 + 1.90868246244520e-02 6.01139718284135e-02 + 2.21802651667868e-02 6.46464708799812e-02 + 2.55327767469641e-02 6.91387827146383e-02 + 2.91390326059276e-02 7.36166345104199e-02 + 3.30039777104017e-02 7.80809269502797e-02 + 3.70896196513728e-02 8.25444208474574e-02 + 4.13563599588328e-02 8.70143468541920e-02 + 4.57942488220187e-02 9.15057079185578e-02 + 5.04601677621719e-02 9.59562675686702e-02 + 5.54400970779884e-02 1.00346688860753e-01 + 6.07171145906721e-02 1.04660979867235e-01 + 6.62216553378991e-02 1.08935080787161e-01 + 7.18940181674464e-02 1.13200789970514e-01 + 7.77574457722054e-02 1.17447559516479e-01 + 8.38582528706480e-02 1.21612209930337e-01 + 9.02250315657730e-02 1.25670302033989e-01 + 9.68042562433391e-02 1.29880982393018e-01 + 1.03635628099521e-01 1.34244912721725e-01 + 1.10722912321640e-01 1.38498319800975e-01 + 1.18029172437582e-01 1.42690766816319e-01 + 1.25557277062529e-01 1.46757468146931e-01 + 1.33346382566007e-01 1.50646937087769e-01 + 1.41422111706339e-01 1.54348524617411e-01 + 1.49738752822182e-01 1.57926503716025e-01 + 1.58261307252747e-01 1.61412895932014e-01 + 1.67014562834699e-01 1.64759052986503e-01 + 1.75997148265051e-01 1.67949166953076e-01 + 1.85241674734378e-01 1.70882184716457e-01 + 1.94781635865444e-01 1.73518364853247e-01 + 2.04539228304846e-01 1.76027713882885e-01 + 2.14458567307343e-01 1.78522958537949e-01 + 2.24570098428163e-01 1.80925955576210e-01 + 2.34913847146583e-01 1.83050172483361e-01 + 2.45534451193117e-01 1.84760209750302e-01 + 2.56409639618004e-01 1.86197622355102e-01 + 2.67481214281869e-01 1.87445374261523e-01 + 2.78729550445907e-01 1.88701260713293e-01 + 2.90174585689315e-01 1.89727304194648e-01 + 3.01827744802688e-01 1.90098148646786e-01 + 3.13693266853199e-01 1.90148247690122e-01 + 3.25752387770815e-01 1.90049748389473e-01 + 3.37985999295062e-01 1.89850482601187e-01 + 3.50399511022203e-01 1.89420380078704e-01 + 3.62964646417233e-01 1.88761112183883e-01 + 3.75659599317119e-01 1.87699877039682e-01 + 3.88493946311551e-01 1.86138748269845e-01 + 4.01479623369996e-01 1.84435211491590e-01 + 4.14618975626936e-01 1.82594846533824e-01 + 4.27893504473755e-01 1.80517499301112e-01 + 4.41277817165844e-01 1.78160355503343e-01 + 4.54769684184117e-01 1.75569963848603e-01 + 4.68402276532037e-01 1.72797452588699e-01 + 4.82204018250152e-01 1.69896570381480e-01 + 4.96163589481294e-01 1.66904476133250e-01 + 5.10254815759577e-01 1.63749683743645e-01 + 5.24457636672397e-01 1.60385631582868e-01 + 5.38778999812109e-01 1.56819010856189e-01 + 5.53239404956048e-01 1.53135112253065e-01 + 5.67833029385625e-01 1.49336436080728e-01 + 5.82554003323792e-01 1.45391901778675e-01 + 5.97398824215910e-01 1.41321960812472e-01 + 6.12357976569945e-01 1.37030889241381e-01 + 6.27427066223596e-01 1.32799780757966e-01 + 6.42609031829815e-01 1.28608187585689e-01 + 6.57884967455200e-01 1.24319134244053e-01 + 6.73222159445380e-01 1.19854473146893e-01 + 6.88646887911997e-01 1.15297096039949e-01 + 7.04172277874646e-01 1.10673352001207e-01 + 7.19774747820223e-01 1.05929035833374e-01 + 7.35472858003156e-01 1.00901982607120e-01 + 7.51283076871008e-01 9.58585566601091e-02 + 7.67180686513965e-01 9.08137757626553e-02 + 7.83126081044713e-01 8.56561702301634e-02 + 7.99132991302778e-01 8.04660870681737e-02 + 8.15219075008360e-01 7.53413348195255e-02 + 8.31361072829366e-01 7.02307546393778e-02 + 8.47517852331182e-01 6.50201985415269e-02 + 8.63656467507866e-01 5.97821549429307e-02 + 8.80097857298869e-01 5.46370739285706e-02 + 8.96698968133781e-01 4.95450131245877e-02 + 9.13428903265378e-01 4.45899999689061e-02 + 9.30165973653682e-01 3.95022753998810e-02 + 9.46677106385649e-01 3.35856041834030e-02 + 9.62366570300102e-01 2.64891184968628e-02 + 9.75524413777782e-01 1.96392571440591e-02 + 9.87942439431026e-01 1.23546891949117e-02 + 1.00000000000000e+00 4.46208092342662e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF09_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF09_Coords.txt new file mode 100644 index 00000000..ad8befd3 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF09_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -4.48290689425684e-03 + 9.82685147820042e-01 -8.53514315789639e-04 + 9.65074173125769e-01 1.52396515243919e-03 + 9.47131369847641e-01 2.38186310542476e-03 + 9.29079738392991e-01 1.98605407767317e-03 + 9.11136932686656e-01 5.84573053769325e-04 + 8.93331110552002e-01 -1.81559310542060e-03 + 8.75696926836349e-01 -5.03012545181162e-03 + 8.58278441614373e-01 -9.07756072898963e-03 + 8.41065780811555e-01 -1.37558503877734e-02 + 8.24066502389336e-01 -1.89558446797954e-02 + 8.07294332368906e-01 -2.46418157238813e-02 + 7.90771378093859e-01 -3.08020117323259e-02 + 7.74436098064809e-01 -3.72183726376832e-02 + 7.58302300968262e-01 -4.38908526083423e-02 + 7.42347203951615e-01 -5.07231917195430e-02 + 7.26567046543587e-01 -5.76828350641104e-02 + 7.10965565373373e-01 -6.47638335469136e-02 + 6.95519902088750e-01 -7.19078088118299e-02 + 6.80200852515995e-01 -7.90264679400814e-02 + 6.65009538158461e-01 -8.60993846853897e-02 + 6.49932728810378e-01 -9.30770840488921e-02 + 6.34965245124027e-01 -9.99452370375686e-02 + 6.20121473822035e-01 -1.06734816345267e-01 + 6.05369724148523e-01 -1.13358005108072e-01 + 5.90709203181047e-01 -1.19793368271858e-01 + 5.76132232588897e-01 -1.26003318443933e-01 + 5.61623485073142e-01 -1.31936337860336e-01 + 5.47180334826478e-01 -1.37560084850570e-01 + 5.32836011294100e-01 -1.42944693135479e-01 + 5.18557682393933e-01 -1.47974227654401e-01 + 5.04345019178191e-01 -1.52613115006628e-01 + 4.90215407430556e-01 -1.56884809310840e-01 + 4.76188015830545e-01 -1.60825115471635e-01 + 4.62253033665051e-01 -1.64349593909143e-01 + 4.48417515713528e-01 -1.67663331883973e-01 + 4.34710843069829e-01 -1.70667352837079e-01 + 4.21135345763282e-01 -1.73250013095204e-01 + 4.07692539196562e-01 -1.75369441774164e-01 + 3.94406397743186e-01 -1.77099957202116e-01 + 3.81276986557577e-01 -1.78362483813652e-01 + 3.68322783092766e-01 -1.79242115776658e-01 + 3.55553206107463e-01 -1.79749612515479e-01 + 3.42979242027837e-01 -1.79808674233742e-01 + 3.30609148150643e-01 -1.79674534400684e-01 + 3.18449580230503e-01 -1.79275909211052e-01 + 3.06509322655533e-01 -1.78584001099644e-01 + 2.94791175146716e-01 -1.77599602041753e-01 + 2.83289821555050e-01 -1.76476773548797e-01 + 2.72024535692418e-01 -1.75094998486103e-01 + 2.60982410030143e-01 -1.73562091072792e-01 + 2.50165091041909e-01 -1.71897518205597e-01 + 2.39583243413264e-01 -1.70036954342752e-01 + 2.29235853918176e-01 -1.68016721779713e-01 + 2.19124464871966e-01 -1.65842406240233e-01 + 2.09249588884711e-01 -1.63520913043737e-01 + 1.99602392919692e-01 -1.61103792507202e-01 + 1.90186989829693e-01 -1.58574244986568e-01 + 1.81007010664238e-01 -1.55917942725202e-01 + 1.72062553557725e-01 -1.53140009241234e-01 + 1.63359202368110e-01 -1.50235559165085e-01 + 1.54898392347029e-01 -1.47206088517032e-01 + 1.46661235477579e-01 -1.44116632162527e-01 + 1.38647675436818e-01 -1.40957746936569e-01 + 1.30857477642150e-01 -1.37727894684008e-01 + 1.23314150088703e-01 -1.34386012966235e-01 + 1.16005990278055e-01 -1.30951821112718e-01 + 1.08910846474458e-01 -1.27479847786535e-01 + 1.02040340343061e-01 -1.23952846372826e-01 + 9.53986311193279e-02 -1.20357474728516e-01 + 8.90323993394245e-02 -1.16626303852397e-01 + 8.28767305111376e-02 -1.12854160647330e-01 + 7.68844182301344e-02 -1.09120085561990e-01 + 7.11597965516513e-02 -1.05283382260545e-01 + 6.56696750940585e-02 -1.01384532327587e-01 + 6.03433734169027e-02 -9.75228716647275e-02 + 5.52631810751249e-02 -9.35945518645845e-02 + 5.04374628719753e-02 -8.95752445382964e-02 + 4.58017138657216e-02 -8.55532445604049e-02 + 4.13825063739979e-02 -8.15090777857146e-02 + 3.71903771573731e-02 -7.74330944997390e-02 + 3.31831498539127e-02 -7.33695626942466e-02 + 2.94044512619656e-02 -6.92770916723935e-02 + 2.58722600796746e-02 -6.51347604857932e-02 + 2.25572604740764e-02 -6.09795630283635e-02 + 1.94959660050299e-02 -5.67979807916763e-02 + 1.66549185470222e-02 -5.26131319251651e-02 + 1.40190892255552e-02 -4.84378076871468e-02 + 1.16391072588897e-02 -4.42393355742390e-02 + 9.50228788811488e-03 -4.00394598279192e-02 + 7.61750558427819e-03 -3.58461293746517e-02 + 5.96961734277674e-03 -3.16700112648946e-02 + 4.57051426408954e-03 -2.75182493553630e-02 + 3.46220550430262e-03 -2.33803588641517e-02 + 2.49916702260785e-03 -1.93106678103887e-02 + 1.63033961162431e-03 -1.53141667384712e-02 + 9.45407884520976e-04 -1.13883102313619e-02 + 4.21430261701436e-04 -7.52929844595465e-03 + 9.13381590902419e-05 -3.73175381667205e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 8.39329452090013e-05 3.54374461053228e-03 + 3.06764956816802e-04 7.13454764013681e-03 + 7.13012164714768e-04 1.08029006119544e-02 + 1.25477699565490e-03 1.45538137640591e-02 + 1.87824996211846e-03 1.83913428617193e-02 + 2.64208856620242e-03 2.23137326727634e-02 + 3.57895258939452e-03 2.63122664551712e-02 + 4.70335330309463e-03 3.03676984106315e-02 + 6.09496820298392e-03 3.44560592490469e-02 + 7.77012954132717e-03 3.85621978759486e-02 + 9.64425945479125e-03 4.27121086824562e-02 + 1.18165673299811e-02 4.68542778685051e-02 + 1.41500458554206e-02 5.10499179457540e-02 + 1.66757939188311e-02 5.52650509642601e-02 + 1.94944358078314e-02 5.94454470327604e-02 + 2.25601750791306e-02 6.36068555875123e-02 + 2.57991449009508e-02 6.78079383217997e-02 + 2.92507958725958e-02 7.20111307917660e-02 + 3.29560547332662e-02 7.61771155635355e-02 + 3.69223016317185e-02 8.02789497263063e-02 + 4.10868701381863e-02 8.43778345265497e-02 + 4.54636094053712e-02 8.84590735779314e-02 + 5.01015073543740e-02 9.24805126256261e-02 + 5.49864471213822e-02 9.64435890880417e-02 + 6.01030437388835e-02 1.00355103021560e-01 + 6.54365794824045e-02 1.04221338170475e-01 + 7.09866408760679e-02 1.08042054278353e-01 + 7.67848489938729e-02 1.11764924267835e-01 + 8.28419567185367e-02 1.15382031398279e-01 + 8.90827233315631e-02 1.19090347853174e-01 + 9.55745973139600e-02 1.22782565847220e-01 + 1.02331435541202e-01 1.26329878276425e-01 + 1.09301721897512e-01 1.29816008658284e-01 + 1.16503807036038e-01 1.33194917983426e-01 + 1.23946109720764e-01 1.36448961986286e-01 + 1.31637302974835e-01 1.39553652375047e-01 + 1.39550632997968e-01 1.42570826391307e-01 + 1.47682542702398e-01 1.45498302111650e-01 + 1.56069518605229e-01 1.48227377016446e-01 + 1.64675258837698e-01 1.50862919805664e-01 + 1.73503763301154e-01 1.53381044924379e-01 + 1.82588549258338e-01 1.55672292390839e-01 + 1.91896032540898e-01 1.57837375775528e-01 + 2.01419018649528e-01 1.59879697369963e-01 + 2.11170879173786e-01 1.61737676480272e-01 + 2.21142920533604e-01 1.63440457557596e-01 + 2.31344785241530e-01 1.64936734040921e-01 + 2.41776812876277e-01 1.66222595255920e-01 + 2.52425332490408e-01 1.67302947561355e-01 + 2.63282507223669e-01 1.68244340945048e-01 + 2.74348610121382e-01 1.69012303782361e-01 + 2.85626365865730e-01 1.69515492111364e-01 + 2.97112155171042e-01 1.69781263535723e-01 + 3.08800622317762e-01 1.69842332018192e-01 + 3.20686150985499e-01 1.69794894735041e-01 + 3.32766911432096e-01 1.69536965688287e-01 + 3.45035577717233e-01 1.69036525986778e-01 + 3.57485836149525e-01 1.68290434604480e-01 + 3.70115165868763e-01 1.67285953978053e-01 + 3.82926121840238e-01 1.66129716711123e-01 + 3.95913836963527e-01 1.64788643586246e-01 + 4.09070495847257e-01 1.63222025400885e-01 + 4.22386727818900e-01 1.61413466981118e-01 + 4.35868199635534e-01 1.59446587441237e-01 + 4.49510425897221e-01 1.57282538740608e-01 + 4.63310011853810e-01 1.54890791219506e-01 + 4.77272395344154e-01 1.52355017486446e-01 + 4.91388930511577e-01 1.49650569804520e-01 + 5.05646917362174e-01 1.46740875171855e-01 + 5.20039269071302e-01 1.43601845074114e-01 + 5.34577578408399e-01 1.40310816694090e-01 + 5.49258664193118e-01 1.36874027194232e-01 + 5.64078723855862e-01 1.33285076105752e-01 + 5.79033365779676e-01 1.29550827646836e-01 + 5.94111062600388e-01 1.25620789009221e-01 + 6.09309105749297e-01 1.21600186027117e-01 + 6.24630556848364e-01 1.17501437763810e-01 + 6.40076803181406e-01 1.13310521064511e-01 + 6.55621511472488e-01 1.08956689246299e-01 + 6.71282434069662e-01 1.04519499702055e-01 + 6.87058502926135e-01 1.00008908785847e-01 + 7.02927846961763e-01 9.53686490689770e-02 + 7.18895804076489e-01 9.05798419248120e-02 + 7.34971135576913e-01 8.57455415670096e-02 + 7.51152054267092e-01 8.08966931334801e-02 + 7.67413928372726e-01 7.59701046314968e-02 + 7.83757964100345e-01 7.09983525490587e-02 + 8.00181412903085e-01 6.60019195388936e-02 + 8.16674324716874e-01 6.09715410793434e-02 + 8.33223797983461e-01 5.58863227273931e-02 + 8.49836681673719e-01 5.08054192889429e-02 + 8.66528789392319e-01 4.57720870242744e-02 + 8.83272682730090e-01 4.07491338740728e-02 + 9.00052750797641e-01 3.57316517957309e-02 + 9.16852440088815e-01 3.07020031399376e-02 + 9.33648056912371e-01 2.56007231641426e-02 + 9.50397160534152e-01 2.04803293247181e-02 + 9.66974356849030e-01 1.53946239244196e-02 + 9.83503121344171e-01 1.03013893225374e-02 + 1.00000000000000e+00 5.19104209295961e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF10_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF10_Coords.txt new file mode 100644 index 00000000..2306aabb --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF10_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -4.86297327722780e-03 + 9.80511984509124e-01 -9.31133134220648e-04 + 9.60815932067473e-01 1.58783899675626e-03 + 9.41263727013327e-01 2.45977643583330e-03 + 9.21908373952958e-01 2.02318714366812e-03 + 9.02633195879556e-01 5.53907693277352e-04 + 8.83548952910911e-01 -1.92622687280061e-03 + 8.64676068654257e-01 -5.23592974327322e-03 + 8.46074367845829e-01 -9.38251493217475e-03 + 8.27741297597062e-01 -1.41772631793085e-02 + 8.09672007216587e-01 -1.94973257087956e-02 + 7.91873336657596e-01 -2.52977908683563e-02 + 7.74367735549103e-01 -3.15620058422089e-02 + 7.57090038050940e-01 -3.80736794610610e-02 + 7.40059721602248e-01 -4.48406933947372e-02 + 7.23230579889469e-01 -5.17449963666943e-02 + 7.06605015919964e-01 -5.87716939723825e-02 + 6.90194826941935e-01 -6.59021942385170e-02 + 6.73996889494706e-01 -7.30893135249750e-02 + 6.57970960213318e-01 -8.02435270068158e-02 + 6.42102769339429e-01 -8.73411845286708e-02 + 6.26367045194948e-01 -9.43282695074803e-02 + 6.10778899846100e-01 -1.01198731702759e-01 + 5.95374122609830e-01 -1.07986550525514e-01 + 5.80108917172105e-01 -1.14593528787722e-01 + 5.64977322759140e-01 -1.21007184170168e-01 + 5.49963599827458e-01 -1.27184493648524e-01 + 5.35054509500322e-01 -1.33078736790999e-01 + 5.20240239002187e-01 -1.38649489081145e-01 + 5.05557788087488e-01 -1.43964284458764e-01 + 4.90970256041941e-01 -1.48911007050803e-01 + 4.76472728677462e-01 -1.53449856278318e-01 + 4.62084942212174e-01 -1.57602665694934e-01 + 4.47828765294808e-01 -1.61403714230558e-01 + 4.33694515609551e-01 -1.64768180098576e-01 + 4.19692014900672e-01 -1.67312421586961e-01 + 4.05855041232298e-01 -1.69438167354179e-01 + 3.92188826102844e-01 -1.71236764964869e-01 + 3.78696783687713e-01 -1.72680366966462e-01 + 3.65404165992181e-01 -1.73828350111621e-01 + 3.52309960259442e-01 -1.74603832845386e-01 + 3.39434352269169e-01 -1.75046402850823e-01 + 3.26788044378576e-01 -1.75133825786606e-01 + 3.14377288520538e-01 -1.74796806544884e-01 + 3.02214001378326e-01 -1.74281937784550e-01 + 2.90296958909308e-01 -1.73520780939566e-01 + 2.78635485836657e-01 -1.72477429763394e-01 + 2.67233529810193e-01 -1.71175577799686e-01 + 2.56083711507059e-01 -1.69740287783202e-01 + 2.45202102031515e-01 -1.68009517278914e-01 + 2.34579105150908e-01 -1.66103858628628e-01 + 2.24212170859206e-01 -1.64059794305773e-01 + 2.14107895836219e-01 -1.61831060401740e-01 + 2.04263429104938e-01 -1.59459845656682e-01 + 1.94681903392709e-01 -1.56932790054656e-01 + 1.85360827376149e-01 -1.54246702766653e-01 + 1.76292980865286e-01 -1.51449979369351e-01 + 1.67482564557179e-01 -1.48544746675442e-01 + 1.58917391100164e-01 -1.45558949901677e-01 + 1.50597215806486e-01 -1.42512007742927e-01 + 1.42535487762553e-01 -1.39364415484843e-01 + 1.34732399664726e-01 -1.36087431797309e-01 + 1.27168245136680e-01 -1.32747266345250e-01 + 1.19842841419690e-01 -1.29351677052803e-01 + 1.12750494865106e-01 -1.25924352574772e-01 + 1.05909796567034e-01 -1.22436413682471e-01 + 9.93094805058807e-02 -1.18882766273095e-01 + 9.29294502220848e-02 -1.15306400616325e-01 + 8.67798712020860e-02 -1.11683261666515e-01 + 8.08601043456327e-02 -1.08010634641524e-01 + 7.52105971387069e-02 -1.04233041725997e-01 + 6.97707736814900e-02 -1.00453870449379e-01 + 6.44954666632857e-02 -9.67461879884846e-02 + 5.94792621751988e-02 -9.29557913115884e-02 + 5.46968806556035e-02 -8.91053349016699e-02 + 5.00889983595891e-02 -8.52955052036599e-02 + 4.57150288715163e-02 -8.14584893545538e-02 + 4.15643801762247e-02 -7.76015601232226e-02 + 3.75882055097653e-02 -7.37928505464360e-02 + 3.38275455149990e-02 -6.99786331700560e-02 + 3.02887595308436e-02 -6.61394551074094e-02 + 2.69209980985916e-02 -6.23365636550792e-02 + 2.37600762514079e-02 -5.85464923862813e-02 + 2.08209273086278e-02 -5.47566143699477e-02 + 1.80843181668748e-02 -5.09866904767273e-02 + 1.55871667540216e-02 -4.72112704231235e-02 + 1.32930091997276e-02 -4.34579786243884e-02 + 1.11671609158122e-02 -3.97587139427468e-02 + 9.24302286361386e-03 -3.60973970879580e-02 + 7.52099695998262e-03 -3.24775010120743e-02 + 6.02824547033773e-03 -2.88913977885378e-02 + 4.73760869802884e-03 -2.53555749353871e-02 + 3.63179948486746e-03 -2.18830234339889e-02 + 2.76343151147194e-03 -1.84654987945057e-02 + 2.02988502957333e-03 -1.51380631574757e-02 + 1.46813569910251e-03 -1.19064518890580e-02 + 8.92625474122533e-04 -8.77454309044243e-03 + 3.99065689084287e-04 -5.74363785175138e-03 + 8.70943828190601e-05 -2.81422588679827e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 8.02187075687612e-05 3.23896444371914e-03 + 2.92360984112174e-04 6.64836967518462e-03 + 6.77158021962086e-04 1.01332887079749e-02 + 1.19066014968889e-03 1.36987991407504e-02 + 1.78076395507241e-03 1.73491673472808e-02 + 2.40903747756074e-03 2.10824160991588e-02 + 3.12276106703853e-03 2.48895553910672e-02 + 4.07783832276212e-03 2.87525459149076e-02 + 5.29086782469029e-03 3.26492458807703e-02 + 6.76340526224963e-03 3.65661596791223e-02 + 8.38018584402884e-03 4.05288053998209e-02 + 1.02253241413783e-02 4.44891365322827e-02 + 1.22248587000671e-02 4.85018949098202e-02 + 1.44438730234543e-02 5.25327300962284e-02 + 1.69548467514969e-02 5.65334970723320e-02 + 1.96931133190989e-02 6.05207316239289e-02 + 2.25638609500651e-02 6.45491498636593e-02 + 2.56161511220727e-02 6.85831866314810e-02 + 2.89202819428702e-02 7.25851847243638e-02 + 3.25062523751746e-02 7.65285938527960e-02 + 3.62951761898641e-02 8.04726459274233e-02 + 4.02846009364239e-02 8.44024704703390e-02 + 4.45007879918332e-02 8.82780700165274e-02 + 4.89247556185767e-02 9.21060334637697e-02 + 5.35723096647886e-02 9.58897521485476e-02 + 5.84592407255586e-02 9.96298721593641e-02 + 6.35713075613679e-02 1.03329002883886e-01 + 6.89278104673831e-02 1.06940810225108e-01 + 7.45312963741614e-02 1.10457519647787e-01 + 8.03023396546418e-02 1.13808960354886e-01 + 8.63179073064753e-02 1.16806322489047e-01 + 9.25972420849028e-02 1.19687016346367e-01 + 9.90811043339423e-02 1.22544358196588e-01 + 1.05787895955984e-01 1.25340806259942e-01 + 1.12724232239356e-01 1.28073095299648e-01 + 1.19892971306548e-01 1.30703114138229e-01 + 1.27273440293726e-01 1.33288917717216e-01 + 1.34877152315313e-01 1.35805891937509e-01 + 1.42744011141429e-01 1.38116832152479e-01 + 1.50823603558752e-01 1.40392690357772e-01 + 1.59107761029883e-01 1.42661149234078e-01 + 1.67629352696633e-01 1.44772172686264e-01 + 1.76377704606620e-01 1.46774529039623e-01 + 1.85370180781539e-01 1.48614215130669e-01 + 1.94612923349638e-01 1.50247989477911e-01 + 2.04074586490007e-01 1.51818931098813e-01 + 2.13747530977158e-01 1.53313183639193e-01 + 2.23645236800479e-01 1.54647357802947e-01 + 2.33775728681758e-01 1.55792644992903e-01 + 2.44138440260482e-01 1.56752241560042e-01 + 2.54726045330669e-01 1.57590263699543e-01 + 2.65537343044850e-01 1.58361624334313e-01 + 2.76567564773377e-01 1.58942652997736e-01 + 2.87817345414617e-01 1.59319971716534e-01 + 2.99290232425583e-01 1.59589784224439e-01 + 3.10982335287392e-01 1.59671340810000e-01 + 3.22895608718648e-01 1.59537343958620e-01 + 3.35033089062765e-01 1.59236217541811e-01 + 3.47389002674619e-01 1.58767154984173e-01 + 3.59961889407242e-01 1.58139657212231e-01 + 3.72743440456310e-01 1.57309327495217e-01 + 3.85733458057802e-01 1.56248726075227e-01 + 3.98930703138098e-01 1.54975303437308e-01 + 4.12345184105345e-01 1.53551512089131e-01 + 4.25954142961272e-01 1.51935725721345e-01 + 4.39739441903326e-01 1.50056917065730e-01 + 4.53714268006763e-01 1.47990332900825e-01 + 4.67878910856137e-01 1.45763613299970e-01 + 4.82224623597588e-01 1.43333415389031e-01 + 4.96738039338005e-01 1.40653686928458e-01 + 5.11425301120766e-01 1.37802798976480e-01 + 5.26284017534203e-01 1.34778098917954e-01 + 5.41313223595069e-01 1.31616771414899e-01 + 5.56506191866471e-01 1.28282935128933e-01 + 5.71853456832878e-01 1.24814251336103e-01 + 5.87352855179168e-01 1.21054902047869e-01 + 6.03005431727672e-01 1.17060565551195e-01 + 6.18822144334829e-01 1.12966378040271e-01 + 6.34781882100071e-01 1.08702844246632e-01 + 6.50899402129147e-01 1.04349818477932e-01 + 6.67165890781568e-01 9.99118836260051e-02 + 6.83560340804585e-01 9.53341953789793e-02 + 7.00082231463252e-01 9.07664656077491e-02 + 7.16736439213004e-01 8.61324826330526e-02 + 7.33532609513889e-01 8.14583044049984e-02 + 7.50453705328182e-01 7.67128793620926e-02 + 7.67496896127474e-01 7.18988453285231e-02 + 7.84651539969057e-01 6.69901347588158e-02 + 8.01917466461742e-01 6.20117979514114e-02 + 8.19294924371077e-01 5.69943186539853e-02 + 8.36792306469474e-01 5.19801638256853e-02 + 8.54409507470158e-01 4.69691610485990e-02 + 8.72138737961771e-01 4.19401147746978e-02 + 8.89967727577875e-01 3.68416407164412e-02 + 9.07923286973654e-01 3.17741055104095e-02 + 9.26040022335196e-01 2.69066169756247e-02 + 9.44348788456134e-01 2.21078957421789e-02 + 9.62867272385349e-01 1.70474154188180e-02 + 9.81428540150012e-01 1.18282222218164e-02 + 1.00000000000000e+00 6.42193222596370e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF11_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF11_Coords.txt new file mode 100644 index 00000000..cea9e099 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF11_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -5.69525046509396e-03 + 9.78806538918783e-01 -1.52333707624982e-03 + 9.57388982524555e-01 1.12180524962487e-03 + 9.36194732688498e-01 2.02641546982668e-03 + 9.15272729634671e-01 1.50711995585143e-03 + 8.94450817639587e-01 -1.31121257641393e-04 + 8.73855886372089e-01 -2.82614463352886e-03 + 8.53513143501759e-01 -6.40839878682634e-03 + 8.33476839211981e-01 -1.08310870429086e-02 + 8.13756218644144e-01 -1.59345264947230e-02 + 7.94338172931301e-01 -2.15617459883902e-02 + 7.75223162367073e-01 -2.76433664245668e-02 + 7.56430809853826e-01 -3.41498879519738e-02 + 7.37902039055167e-01 -4.08770619092354e-02 + 7.19666804126832e-01 -4.78568465131379e-02 + 7.01658130282083e-01 -5.49136484928595e-02 + 6.83899927259984e-01 -6.20881481267653e-02 + 6.66390228117896e-01 -6.93121843337415e-02 + 6.49139979076653e-01 -7.65617633025002e-02 + 6.32111246018286e-01 -8.37529658171195e-02 + 6.15288445442940e-01 -9.08626791271311e-02 + 5.98643467384132e-01 -9.78302135918077e-02 + 5.82199702299186e-01 -1.04659155113551e-01 + 5.65994720552908e-01 -1.11376506607751e-01 + 5.49978071618322e-01 -1.17862982731167e-01 + 5.34153023591067e-01 -1.24136613279468e-01 + 5.18499703066478e-01 -1.30142303625889e-01 + 5.03010433237196e-01 -1.35847983922864e-01 + 4.87668238679784e-01 -1.41188236613217e-01 + 4.72507803295827e-01 -1.46221700598355e-01 + 4.57497896342093e-01 -1.50852564976543e-01 + 4.42633017601021e-01 -1.55032379104410e-01 + 4.27932599332219e-01 -1.58778956843575e-01 + 4.13418848394650e-01 -1.62120173617977e-01 + 3.99086452753069e-01 -1.64971636857931e-01 + 3.84948831136274e-01 -1.67048827443987e-01 + 3.71039880058497e-01 -1.68671738056494e-01 + 3.57369018629051e-01 -1.69925952664825e-01 + 3.43942688850799e-01 -1.70795813632049e-01 + 3.30784793117660e-01 -1.71334788788157e-01 + 3.17893696334626e-01 -1.71490756553470e-01 + 3.05286580000178e-01 -1.71294197311131e-01 + 2.92974406928141e-01 -1.70717197421300e-01 + 2.80951411412875e-01 -1.69737797343376e-01 + 2.69233585663057e-01 -1.68548716430126e-01 + 2.57805947668032e-01 -1.67130702113460e-01 + 2.46678614080578e-01 -1.65444540916611e-01 + 2.35855708755702e-01 -1.63515711588020e-01 + 2.25324636807488e-01 -1.61458171344871e-01 + 2.15089578214410e-01 -1.59139131505499e-01 + 2.05150257762253e-01 -1.56651810005603e-01 + 1.95498465637821e-01 -1.54032321793723e-01 + 1.86133303884814e-01 -1.51267800061800e-01 + 1.77048514682184e-01 -1.48396307898530e-01 + 1.68247904545403e-01 -1.45397772039655e-01 + 1.59721997054468e-01 -1.42280347630919e-01 + 1.51466704551609e-01 -1.39072008137626e-01 + 1.43490819529254e-01 -1.35772826875173e-01 + 1.35761290420028e-01 -1.32454355349041e-01 + 1.28278100435328e-01 -1.29124976897121e-01 + 1.21061925252952e-01 -1.25731442239843e-01 + 1.14106782713019e-01 -1.22244231683582e-01 + 1.07392996712928e-01 -1.18723433818558e-01 + 1.00921587269965e-01 -1.15182636140660e-01 + 9.46841600395731e-02 -1.11678741751433e-01 + 8.86904020175527e-02 -1.08199712602269e-01 + 8.29295937403109e-02 -1.04690677290643e-01 + 7.73855253774526e-02 -1.01182355772936e-01 + 7.20632038828038e-02 -9.76537898724569e-02 + 6.69567872583836e-02 -9.41087513314784e-02 + 6.20974140669556e-02 -9.05039743293917e-02 + 5.74408846245436e-02 -8.69216814878245e-02 + 5.29472035657151e-02 -8.34211011266652e-02 + 4.86830821705248e-02 -7.98783109729412e-02 + 4.46330074510540e-02 -7.63028087621810e-02 + 4.07611793756051e-02 -7.27687863405534e-02 + 3.71009763948847e-02 -6.92364489374634e-02 + 3.36248359360092e-02 -6.57310546071755e-02 + 3.03041413909075e-02 -6.22959704284829e-02 + 2.71879524688719e-02 -5.88684263115360e-02 + 2.42717576545455e-02 -5.54343443189173e-02 + 2.15027525196933e-02 -5.20540051592585e-02 + 1.89137313912481e-02 -4.87090785971533e-02 + 1.65182266978350e-02 -4.53887621601851e-02 + 1.43049162404917e-02 -4.21042791351809e-02 + 1.23028427731255e-02 -3.88313724591694e-02 + 1.04741934250062e-02 -3.55976591947433e-02 + 8.78311115027676e-03 -3.24338519377945e-02 + 7.24533815833448e-03 -2.93330391673238e-02 + 5.86947854914707e-03 -2.62910386079313e-02 + 4.69611128198702e-03 -2.32928044536227e-02 + 3.68981688144507e-03 -2.03556383168934e-02 + 2.82187228866077e-03 -1.74932823095649e-02 + 2.14089095819824e-03 -1.46985911948591e-02 + 1.57630652997499e-03 -1.19942243149679e-02 + 1.18984777333983e-03 -9.38552769920999e-03 + 7.38439523884420e-04 -6.87678063790083e-03 + 3.33591616922490e-04 -4.47097508153630e-03 + 7.46901189097683e-05 -2.17087537934301e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 6.92412634353660e-05 2.74621576665460e-03 + 2.49543457687775e-04 5.67381024680127e-03 + 5.69195748818264e-04 8.67143602234610e-03 + 9.96695834445714e-04 1.17435040095864e-02 + 1.48928310396865e-03 1.48940750374214e-02 + 1.98849119023728e-03 1.81207435789369e-02 + 2.54959257779418e-03 2.14141902325502e-02 + 3.34181357652084e-03 2.47615483193398e-02 + 4.35138049766192e-03 2.81462543893500e-02 + 5.57852652609682e-03 3.15563440839828e-02 + 6.92222649894473e-03 3.50119837686661e-02 + 8.43795113911303e-03 3.84786497098604e-02 + 1.00930905567546e-02 4.19960985164764e-02 + 1.19621589285143e-02 4.55325565150444e-02 + 1.40852578757622e-02 4.90549107074214e-02 + 1.64039291216290e-02 5.25767354668559e-02 + 1.88398593495795e-02 5.61372533386474e-02 + 2.14333380897448e-02 5.97116148591461e-02 + 2.42465708836148e-02 6.32736158904520e-02 + 2.73128417251185e-02 6.68021029337550e-02 + 3.05634247430033e-02 7.03446938508445e-02 + 3.40012367549624e-02 7.38799559097142e-02 + 3.76412740591324e-02 7.73776756177052e-02 + 4.14526743416006e-02 8.08567034039700e-02 + 4.54648935651470e-02 8.43141185886057e-02 + 4.97138325875744e-02 8.77373418115587e-02 + 5.41781481654145e-02 9.11359855290002e-02 + 5.88644478021621e-02 9.44797733214635e-02 + 6.37759842093246e-02 9.77593136724116e-02 + 6.88488483685858e-02 1.00823224034846e-01 + 7.41507917548021e-02 1.03488541051867e-01 + 7.97016770601785e-02 1.06075588555681e-01 + 8.54487989072580e-02 1.08666353687266e-01 + 9.14085009112059e-02 1.11233062570593e-01 + 9.75916624744935e-02 1.13770253357497e-01 + 1.03999187359272e-01 1.16244616416147e-01 + 1.10612131361174e-01 1.18708964579629e-01 + 1.17449024487558e-01 1.21131135964468e-01 + 1.24546888925588e-01 1.23387153002500e-01 + 1.31860808435011e-01 1.25637788779435e-01 + 1.39382107499695e-01 1.27944947022874e-01 + 1.47138451129947e-01 1.30161879268156e-01 + 1.55130130177100e-01 1.32297385813300e-01 + 1.63380895148427e-01 1.34288717996456e-01 + 1.71895347851209e-01 1.36104388754837e-01 + 1.80641095940374e-01 1.37908869745374e-01 + 1.89607443624250e-01 1.39694681869496e-01 + 1.98815192027444e-01 1.41352012545062e-01 + 2.08277829742442e-01 1.42856034753896e-01 + 2.17998788821085e-01 1.44187980224416e-01 + 2.27971555762112e-01 1.45430091516579e-01 + 2.38195302318094e-01 1.46673887296536e-01 + 2.48670661039287e-01 1.47744688351893e-01 + 2.59395614367826e-01 1.48645867466862e-01 + 2.70380513809449e-01 1.49438453642673e-01 + 2.81625107704732e-01 1.50057622177488e-01 + 2.93131175607184e-01 1.50496964150777e-01 + 3.04908162749787e-01 1.50795041350106e-01 + 3.16953693264067e-01 1.50926867573051e-01 + 3.29263945095546e-01 1.50884243661390e-01 + 3.41831054632093e-01 1.50627191696395e-01 + 3.54660098331472e-01 1.50114926580935e-01 + 3.67749572260908e-01 1.49411069482863e-01 + 3.81111124669245e-01 1.48516691724055e-01 + 3.94719101684341e-01 1.47440799158347e-01 + 4.08554267680281e-01 1.46095627806137e-01 + 4.22629583420339e-01 1.44515583307731e-01 + 4.36948565719152e-01 1.42787868414573e-01 + 4.51504717292113e-01 1.40851047954471e-01 + 4.66284547735849e-01 1.38636208645556e-01 + 4.81291098416158e-01 1.36225156460815e-01 + 4.96521243549536e-01 1.33595494775405e-01 + 5.11977506070676e-01 1.30819756217691e-01 + 5.27648084830866e-01 1.27801959456686e-01 + 5.43529232837187e-01 1.24624712255092e-01 + 5.59617766329048e-01 1.21167360031619e-01 + 5.75910930604750e-01 1.17465675967471e-01 + 5.92420943986219e-01 1.13641307775934e-01 + 6.09129433020705e-01 1.09627607546218e-01 + 6.26048292506993e-01 1.05505710212843e-01 + 6.43163878485665e-01 1.01266416248930e-01 + 6.60456216477355e-01 9.68592270720327e-02 + 6.77923642030845e-01 9.24805992427934e-02 + 6.95566193064319e-01 8.80054199530201e-02 + 7.13393826614235e-01 8.34592506694026e-02 + 7.31389719769680e-01 7.88141754388108e-02 + 7.49549904053857e-01 7.40757159847257e-02 + 7.67859592973647e-01 6.92056573065396e-02 + 7.86320983784494e-01 6.42470162878310e-02 + 8.04932658647533e-01 5.92311705291700e-02 + 8.23696980505892e-01 5.41849164919753e-02 + 8.42611206733270e-01 4.91017607941500e-02 + 8.61674584002276e-01 4.39898310628447e-02 + 8.80870637502453e-01 3.87781149653440e-02 + 9.00229080614011e-01 3.35800045674166e-02 + 9.19795776538293e-01 2.86236343997086e-02 + 9.39609936409794e-01 2.37339679553963e-02 + 9.59701477871013e-01 1.84898366266777e-02 + 9.79845921697258e-01 1.30253668628043e-02 + 1.00000000000000e+00 7.30191104279453e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF12_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF12_Coords.txt new file mode 100644 index 00000000..0559474f --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF12_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -6.59289903496683e-03 + 9.77462574493223e-01 -2.16354893719578e-03 + 9.54655435704073e-01 6.29155968453326e-04 + 9.32021629665813e-01 1.58147595579106e-03 + 9.09641132745904e-01 9.68321497165801e-04 + 8.87387976484538e-01 -8.61665541778709e-04 + 8.65383162362486e-01 -3.80055493480974e-03 + 8.43662068878266e-01 -7.69211321552455e-03 + 8.22270394573964e-01 -1.24281363324318e-02 + 8.01229047333685e-01 -1.78818932097066e-02 + 7.80519648544988e-01 -2.38576889999194e-02 + 7.60137450727518e-01 -3.02583777838988e-02 + 7.40098281598073e-01 -3.70398802849335e-02 + 7.20352027908950e-01 -4.40116142510090e-02 + 7.00939656244907e-01 -5.12328611067571e-02 + 6.81776953494553e-01 -5.84627261960696e-02 + 6.62912611308619e-01 -6.58049585843197e-02 + 6.44324407874433e-01 -7.31351438149378e-02 + 6.26033587000552e-01 -8.04556049946791e-02 + 6.08009280948661e-01 -8.76887844187042e-02 + 5.90240034355429e-01 -9.48121792091236e-02 + 5.72698730868021e-01 -1.01757526822754e-01 + 5.55411618765222e-01 -1.08539348714150e-01 + 5.38410505295645e-01 -1.15176730540461e-01 + 5.21641137664166e-01 -1.21526455119343e-01 + 5.05120327854410e-01 -1.27641178842136e-01 + 4.88826034147189e-01 -1.33452107654868e-01 + 4.72756829324759e-01 -1.38943797888081e-01 + 4.56889462779481e-01 -1.44022468696136e-01 + 4.41254283784751e-01 -1.48736664468832e-01 + 4.25828763295902e-01 -1.53009077959500e-01 + 4.10608396875106e-01 -1.56781442021245e-01 + 3.95611341439966e-01 -1.60067008778474e-01 + 3.80859198346160e-01 -1.62886386652726e-01 + 3.66352119576184e-01 -1.65155670170054e-01 + 3.52107005040102e-01 -1.66902005730228e-01 + 3.38156214714513e-01 -1.68180087712901e-01 + 3.24513341344794e-01 -1.69002675432013e-01 + 3.11187922762876e-01 -1.69365388971009e-01 + 2.98201656691272e-01 -1.69321104984817e-01 + 2.85552513851790e-01 -1.68850434152112e-01 + 2.73253227372360e-01 -1.67989608645765e-01 + 2.61314584364762e-01 -1.66716467434525e-01 + 2.49717456201525e-01 -1.65067768351444e-01 + 2.38481581724083e-01 -1.63168950410788e-01 + 2.27577633315906e-01 -1.61061577397165e-01 + 2.17016518468669e-01 -1.58704919182658e-01 + 2.06802133386028e-01 -1.56117655460340e-01 + 1.96916073521044e-01 -1.53408634182298e-01 + 1.87348745914297e-01 -1.50498802686717e-01 + 1.78110341897585e-01 -1.47440177216010e-01 + 1.69187136270505e-01 -1.44263475400156e-01 + 1.60570365998313e-01 -1.40988056631572e-01 + 1.52250193619772e-01 -1.37644886570335e-01 + 1.44230669463642e-01 -1.34212542197887e-01 + 1.36494686486109e-01 -1.30715956516135e-01 + 1.29041497441893e-01 -1.27160062404650e-01 + 1.21885590388894e-01 -1.23534314732798e-01 + 1.14973606123809e-01 -1.19946512938672e-01 + 1.08305921585264e-01 -1.16388074461917e-01 + 1.01909359633608e-01 -1.12800979544153e-01 + 9.57707298096185e-02 -1.09166779555742e-01 + 8.98707927414503e-02 -1.05536283052279e-01 + 8.42125339933439e-02 -1.01922663598644e-01 + 7.87856905027138e-02 -9.84078143770367e-02 + 7.35906514404928e-02 -9.49953343228512e-02 + 6.86172317695538e-02 -9.15875578296713e-02 + 6.38533217988130e-02 -8.82040084294520e-02 + 5.92980557795527e-02 -8.48301665574652e-02 + 5.49408872977093e-02 -8.14740098816748e-02 + 5.08036836099950e-02 -7.81032042579184e-02 + 4.68610047073478e-02 -7.47702209343977e-02 + 4.30785112607683e-02 -7.15190729392446e-02 + 3.94919427630735e-02 -6.82684814540532e-02 + 3.60951095929823e-02 -6.50177741480466e-02 + 3.28772361824951e-02 -6.18076334563007e-02 + 2.98476901787584e-02 -5.86203472715078e-02 + 2.69646970034140e-02 -5.54923720162200e-02 + 2.42190323125321e-02 -5.24435068585061e-02 + 2.16645901488774e-02 -4.94116456937637e-02 + 1.92850652097574e-02 -4.63923677020781e-02 + 1.70282894977093e-02 -4.34389302947373e-02 + 1.49260602838669e-02 -4.05334871230597e-02 + 1.29912536138279e-02 -3.76649194227854e-02 + 1.12187903727820e-02 -3.48395240965275e-02 + 9.62813430202066e-03 -3.20378388982212e-02 + 8.18092003399821e-03 -2.92857015336182e-02 + 6.84633398695211e-03 -2.66067373303015e-02 + 5.62450310894219e-03 -2.40002771296278e-02 + 4.52964061799434e-03 -2.14585557295876e-02 + 3.61249392215131e-03 -1.89621107862018e-02 + 2.83156382020768e-03 -1.65274274071386e-02 + 2.15391143043915e-03 -1.41677824378179e-02 + 1.61971733933399e-03 -1.18767840274053e-02 + 1.18249367536328e-03 -9.66762809531005e-03 + 9.00276584579961e-04 -7.54452003683207e-03 + 5.63461991934761e-04 -5.51056387158645e-03 + 2.59288533302532e-04 -3.56890304558222e-03 + 6.06131716837195e-05 -1.72224692907942e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 5.67835389889402e-05 2.23388026035764e-03 + 2.00952097149670e-04 4.61469303956217e-03 + 4.46675038797624e-04 7.05931530631234e-03 + 7.76575926534887e-04 9.57140139412797e-03 + 1.15849680432229e-03 1.21547788698366e-02 + 1.54614500966935e-03 1.48065561530573e-02 + 2.00070260770825e-03 1.75170400276963e-02 + 2.65215356260171e-03 2.02792339598468e-02 + 3.47323279235998e-03 2.30829050644064e-02 + 4.46819146620787e-03 2.59178267189914e-02 + 5.56561856863645e-03 2.87980918982248e-02 + 6.79056284994487e-03 3.17045231575689e-02 + 8.13858873349298e-03 3.46598711622827e-02 + 9.68330745830288e-03 3.76352864715079e-02 + 1.14346994907591e-02 4.06147151377888e-02 + 1.33491940226201e-02 4.36083707829037e-02 + 1.53772074549925e-02 4.66378931168147e-02 + 1.75443628317557e-02 4.96905933565631e-02 + 1.98915287956748e-02 5.27532648459689e-02 + 2.24474950353453e-02 5.58108786203703e-02 + 2.51624414470984e-02 5.88978723678661e-02 + 2.80522645924001e-02 6.19853661991399e-02 + 3.11264629746060e-02 6.50542499375811e-02 + 3.43410667421415e-02 6.81372889799119e-02 + 3.77308203466917e-02 7.12243994705516e-02 + 4.13453068432654e-02 7.42879931829202e-02 + 4.51595000908772e-02 7.73456299876008e-02 + 4.91686920501722e-02 8.03852564794801e-02 + 5.33801809367164e-02 8.33956461149312e-02 + 5.77512987175583e-02 8.62331801696985e-02 + 6.23344808339581e-02 8.87547541886008e-02 + 6.71482925323690e-02 9.12346139217212e-02 + 7.21514064313091e-02 9.37368421170488e-02 + 7.73578208727705e-02 9.62429430485729e-02 + 8.27840233215640e-02 9.87392024812666e-02 + 8.84305455042329e-02 1.01203971113129e-01 + 9.42784521040168e-02 1.03684898058958e-01 + 1.00349482885677e-01 1.06148999300961e-01 + 1.06675746455941e-01 1.08500173174811e-01 + 1.13224681689826e-01 1.10860453971563e-01 + 1.19991569273127e-01 1.13309399912637e-01 + 1.26997678082753e-01 1.15723096597717e-01 + 1.34248487747998e-01 1.18083169460431e-01 + 1.41766455235735e-01 1.20337838546890e-01 + 1.49556942766775e-01 1.22463305444449e-01 + 1.57594884531095e-01 1.24605078711964e-01 + 1.65872323102866e-01 1.26751754125367e-01 + 1.74414303121935e-01 1.28791936379402e-01 + 1.83232973200224e-01 1.30716996095475e-01 + 1.92334031181005e-01 1.32504394318715e-01 + 2.01714845882273e-01 1.34221597554837e-01 + 2.11376563986695e-01 1.35950985429642e-01 + 2.21327073690106e-01 1.37513571507823e-01 + 2.31558674587867e-01 1.38949208546669e-01 + 2.42086808461520e-01 1.40274988342984e-01 + 2.52916621133675e-01 1.41437460216382e-01 + 2.64046135586957e-01 1.42454319791249e-01 + 2.75489341566209e-01 1.43333195335266e-01 + 2.87249360771650e-01 1.44017218149413e-01 + 2.99320864102740e-01 1.44510983023378e-01 + 3.11697880289428e-01 1.44782627217238e-01 + 3.24389216406290e-01 1.44771773129655e-01 + 3.37389885735918e-01 1.44584432506276e-01 + 3.50711947471814e-01 1.44154382165419e-01 + 3.64333063360102e-01 1.43552910023117e-01 + 3.78238232522780e-01 1.42687210105816e-01 + 3.92437161035743e-01 1.41543861735063e-01 + 4.06934048908587e-01 1.40264190680221e-01 + 4.21723746945062e-01 1.38767747462759e-01 + 4.36795000699457e-01 1.36967177057565e-01 + 4.52149019127696e-01 1.34947664351219e-01 + 4.67781452534759e-01 1.32666334029277e-01 + 4.83698128848859e-01 1.30225012111576e-01 + 4.99881720532700e-01 1.27468428284761e-01 + 5.16334894694303e-01 1.24505686672269e-01 + 5.33052962546645e-01 1.21341841759092e-01 + 5.50029162636473e-01 1.17972273560778e-01 + 5.67273658847011e-01 1.14454109134925e-01 + 5.84769489731911e-01 1.10723931887335e-01 + 6.02525985564944e-01 1.06864330068656e-01 + 6.20526328831323e-01 1.02850463209321e-01 + 6.38751539751037e-01 9.86367644668299e-02 + 6.57200727073522e-01 9.44111760430084e-02 + 6.75869233343243e-01 9.00585516397063e-02 + 6.94763003002744e-01 8.56060946859686e-02 + 7.13862552225269e-01 8.10172115726413e-02 + 7.33163934294235e-01 7.63128882283146e-02 + 7.52650023865557e-01 7.14576086673483e-02 + 7.72322163431510e-01 6.65036673628003e-02 + 7.92171758296376e-01 6.14635847757860e-02 + 8.12193610513406e-01 5.63508957281089e-02 + 8.32382188739325e-01 5.11679507532475e-02 + 8.52739781790815e-01 4.59537194411629e-02 + 8.73243502309430e-01 4.06300736331539e-02 + 8.93910339588305e-01 3.52818185648098e-02 + 9.14779694269379e-01 3.01276312748428e-02 + 9.35880709193391e-01 2.50231519126587e-02 + 9.57228053275711e-01 1.95608523563538e-02 + 9.78615505631340e-01 1.38731920021658e-02 + 1.00000000000000e+00 7.91978608447872e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF13_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF13_Coords.txt new file mode 100644 index 00000000..1e2d3601 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF13_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -7.43253554058350e-03 + 9.76403943349399e-01 -2.76411676761089e-03 + 9.52484559548605e-01 1.70901095140179e-04 + 9.28638752659537e-01 1.17264141488701e-03 + 9.04989311213425e-01 4.70169949588895e-04 + 8.81494872571301e-01 -1.54228412257468e-03 + 8.58261823976117e-01 -4.71323858688598e-03 + 8.35336988680772e-01 -8.89913342673737e-03 + 8.12757098532986e-01 -1.39333287845482e-02 + 7.90553516827622e-01 -1.97204508402206e-02 + 7.68704378080380e-01 -2.60279549350672e-02 + 7.47200735959936e-01 -3.27322719971618e-02 + 7.26054587908095e-01 -3.97754488388574e-02 + 7.05225114492986e-01 -4.69799082848601e-02 + 6.84763435154875e-01 -5.44309327674479e-02 + 6.64571290619340e-01 -6.18254862513697e-02 + 6.44721094918900e-01 -6.93273346207594e-02 + 6.25169625290117e-01 -7.67585322065482e-02 + 6.05945813175358e-01 -8.41464455288096e-02 + 5.87027171152179e-01 -9.14195705532406e-02 + 5.68408265127836e-01 -9.85559847621229e-02 + 5.50064494090816e-01 -1.05480219170930e-01 + 5.32022391078534e-01 -1.12217201602923e-01 + 5.14305379706589e-01 -1.18778483581882e-01 + 4.96856985375564e-01 -1.24998074174480e-01 + 4.79708052221339e-01 -1.30961580748527e-01 + 4.62835414864543e-01 -1.36587172753257e-01 + 4.46243569969428e-01 -1.41875228138195e-01 + 4.29903985709251e-01 -1.46704975300093e-01 + 4.13842250877566e-01 -1.51115352601705e-01 + 3.98044961478621e-01 -1.55046661039126e-01 + 3.82509179271707e-01 -1.58431291993384e-01 + 3.67251501006871e-01 -1.61278156599173e-01 + 3.52292583349217e-01 -1.63600947933904e-01 + 3.37637965766980e-01 -1.65316224048267e-01 + 3.23307637097987e-01 -1.66752310164544e-01 + 3.09331872759859e-01 -1.67700911633119e-01 + 2.95728021634658e-01 -1.68102591062499e-01 + 2.82508440825120e-01 -1.67965908456118e-01 + 2.69692479373679e-01 -1.67345872254253e-01 + 2.57277849131547e-01 -1.66258775918654e-01 + 2.45272663136680e-01 -1.64751212632708e-01 + 2.33687365765199e-01 -1.62810360546622e-01 + 2.22490214641063e-01 -1.60532132121801e-01 + 2.11704186735648e-01 -1.57971495180763e-01 + 2.01286775160185e-01 -1.55229506262782e-01 + 1.91249599793888e-01 -1.52264499706685e-01 + 1.81596180932401e-01 -1.49084933070302e-01 + 1.72302626179722e-01 -1.45794670174339e-01 + 1.63346132459904e-01 -1.42374113100026e-01 + 1.54746809674797e-01 -1.38830155258698e-01 + 1.46486022194054e-01 -1.35188632600945e-01 + 1.38547760953462e-01 -1.31493700970626e-01 + 1.30918888826124e-01 -1.27769213465648e-01 + 1.23603494162898e-01 -1.23994562827742e-01 + 1.16577318947649e-01 -1.20210273993055e-01 + 1.09842714794822e-01 -1.16401422895844e-01 + 1.03419770202037e-01 -1.12543409822447e-01 + 9.72370562742986e-02 -1.08770274872843e-01 + 9.12953749434174e-02 -1.05058596046523e-01 + 8.56266337766400e-02 -1.01348959545830e-01 + 8.02107080494107e-02 -9.76386287937753e-02 + 7.50289238576886e-02 -9.39674688861899e-02 + 7.00863608932403e-02 -9.03441792141839e-02 + 6.53714233337561e-02 -8.68604994148313e-02 + 6.08759530256630e-02 -8.35323692737949e-02 + 5.65902415275960e-02 -8.02398098638649e-02 + 5.25059651925724e-02 -7.69927063770997e-02 + 4.86166628447913e-02 -7.37837554314917e-02 + 4.49077582947745e-02 -7.06237618527845e-02 + 4.13927777039596e-02 -6.74897039413312e-02 + 3.80641981810206e-02 -6.44036061372499e-02 + 3.48929832724408e-02 -6.13951848582158e-02 + 3.18856459672562e-02 -5.84268249770528e-02 + 2.90442132262908e-02 -5.54899494869964e-02 + 2.63811004580753e-02 -5.25920709101139e-02 + 2.38848880530692e-02 -4.97328732122965e-02 + 2.15021569942004e-02 -4.69560380557319e-02 + 1.92408086204874e-02 -4.42606273044788e-02 + 1.71577483979552e-02 -4.15892362716984e-02 + 1.52256501903280e-02 -3.89479589361177e-02 + 1.33940150325620e-02 -3.63811619058724e-02 + 1.16945968480858e-02 -3.38694685065991e-02 + 1.01399947277134e-02 -3.14005699954941e-02 + 8.73005199067174e-03 -2.89778491430780e-02 + 7.47487782179956e-03 -2.65876880354154e-02 + 6.33594551826867e-03 -2.42535714842850e-02 + 5.28961501167165e-03 -2.19902421680995e-02 + 4.32280168968960e-03 -1.98014211395919e-02 + 3.45367866450521e-03 -1.76778349381210e-02 + 2.74078600109631e-03 -1.55973088719527e-02 + 2.13806582939436e-03 -1.35749028237675e-02 + 1.61183106799287e-03 -1.16229600944032e-02 + 1.19278741801813e-03 -9.73562172682337e-03 + 8.52780015436871e-04 -7.91879592506294e-03 + 6.34492750095705e-04 -6.17534236909210e-03 + 3.96951815978446e-04 -4.50663935247869e-03 + 1.88581057949551e-04 -2.91531619917444e-03 + 4.72174234786785e-05 -1.40304801253723e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 4.49286575851582e-05 1.76091109368109e-03 + 1.54712126205946e-04 3.62140154224627e-03 + 3.30083241230729e-04 5.53978075065709e-03 + 5.67107864039499e-04 7.51898308153193e-03 + 8.43717618992945e-04 9.56261412743599e-03 + 1.13820712865826e-03 1.16673197751854e-02 + 1.51620497309045e-03 1.38230510834726e-02 + 2.05010390234215e-03 1.60283976006057e-02 + 2.70761333894050e-03 1.82791506633120e-02 + 3.49886357702170e-03 2.05667372944473e-02 + 4.38563597305350e-03 2.28994709759180e-02 + 5.36480583545219e-03 2.52727779283164e-02 + 6.45176350756975e-03 2.76932258096428e-02 + 7.71493839934877e-03 3.01347479048045e-02 + 9.13811424494260e-03 3.25975238107331e-02 + 1.06948081659682e-02 3.50885690282112e-02 + 1.23665030939463e-02 3.76127912846818e-02 + 1.41631103789096e-02 4.01690740091098e-02 + 1.61006676743100e-02 4.27565790645424e-02 + 1.82006253144294e-02 4.53661056474953e-02 + 2.04339011456132e-02 4.80195490755358e-02 + 2.28313083356356e-02 5.06809426782037e-02 + 2.53998275561691e-02 5.33417422932120e-02 + 2.80831554197667e-02 5.60479549242059e-02 + 3.09172689371117e-02 5.87826801739081e-02 + 3.39613669672685e-02 6.15040472448373e-02 + 3.71885488983873e-02 6.42371788378289e-02 + 4.05844892078012e-02 6.69873627303355e-02 + 4.41615443337093e-02 6.97416261506273e-02 + 4.78986121512040e-02 7.24009578305107e-02 + 5.18317438541022e-02 7.48725582194455e-02 + 5.59775247308777e-02 7.73346153272878e-02 + 6.03069307314000e-02 7.98322938773953e-02 + 6.48317249020550e-02 8.23552542934740e-02 + 6.95740177949655e-02 8.48797840519584e-02 + 7.45346746264872e-02 8.73976434260533e-02 + 7.96940411568568e-02 8.99518601786404e-02 + 8.50751411244750e-02 9.25115521139639e-02 + 9.07047952097347e-02 9.50119363718962e-02 + 9.65644778591387e-02 9.75280567202470e-02 + 1.02654922362443e-01 1.00141176068606e-01 + 1.08991128382069e-01 1.02759655535384e-01 + 1.15580811141506e-01 1.05350177915118e-01 + 1.22442015345549e-01 1.07879078703890e-01 + 1.29581761141198e-01 1.10327867455967e-01 + 1.36985125957807e-01 1.12805201120027e-01 + 1.44649070157922e-01 1.15294515341388e-01 + 1.52601162527081e-01 1.17695162751273e-01 + 1.60849467906986e-01 1.20016136499640e-01 + 1.69400994120977e-01 1.22239166511633e-01 + 1.78257906944928e-01 1.24404435861666e-01 + 1.87423810521919e-01 1.26566367432406e-01 + 1.96913917030033e-01 1.28565322487382e-01 + 2.06714122721902e-01 1.30480002121111e-01 + 2.16843733267671e-01 1.32284460248505e-01 + 2.27313503043412e-01 1.33932897606815e-01 + 2.38116555091135e-01 1.35466082264203e-01 + 2.49270187442578e-01 1.36855347383195e-01 + 2.60783364777495e-01 1.38015044037685e-01 + 2.72649760913212e-01 1.38972898742601e-01 + 2.84865722003232e-01 1.39703902024797e-01 + 2.97442765366165e-01 1.40129901393810e-01 + 3.10371404770489e-01 1.40389901175565e-01 + 3.23663550383385e-01 1.40356686531760e-01 + 3.37302478141465e-01 1.40159944002643e-01 + 3.51279258331868e-01 1.39708203283014e-01 + 3.65599383240653e-01 1.38942103586727e-01 + 3.80266593353821e-01 1.38048333465819e-01 + 3.95276573569828e-01 1.36930305581693e-01 + 4.10621082225397e-01 1.35488514837408e-01 + 4.26300213083275e-01 1.33810605435263e-01 + 4.42308306311055e-01 1.31836152808260e-01 + 4.58654091580520e-01 1.29693294983505e-01 + 4.75315068619854e-01 1.27173492402662e-01 + 4.92299980112839e-01 1.24408547660075e-01 + 5.09602575838928e-01 1.21522453981813e-01 + 5.27212395134502e-01 1.18468930195838e-01 + 5.45136348862968e-01 1.15242151997318e-01 + 5.63358188082521e-01 1.11781777741663e-01 + 5.81885057318307e-01 1.08171778668078e-01 + 6.00697978768359e-01 1.04372430246799e-01 + 6.19778853163952e-01 1.00342858722927e-01 + 6.39128296470107e-01 9.62399740334075e-02 + 6.58737479416311e-01 9.19824964120890e-02 + 6.78606901768962e-01 8.76000132289643e-02 + 6.98713465939465e-01 8.30431156104294e-02 + 7.19053735025290e-01 7.83520462505258e-02 + 7.39609238737388e-01 7.34999974962512e-02 + 7.60379187011757e-01 6.85439537095766e-02 + 7.81346186916718e-01 6.34710892603186e-02 + 8.02497578082114e-01 5.82840033620211e-02 + 8.23825251477110e-01 5.29994283777580e-02 + 8.45332549847506e-01 4.76847762917876e-02 + 8.66989872326120e-01 4.22607936796464e-02 + 8.88796133601469e-01 3.67689289229451e-02 + 9.10777419149797e-01 3.13903865017990e-02 + 9.32946008475891e-01 2.60399205588807e-02 + 9.55291210260545e-01 2.03661935434009e-02 + 9.77655302958250e-01 1.44867409656004e-02 + 1.00000000000000e+00 8.36305924051618e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF14_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF14_Coords.txt new file mode 100644 index 00000000..21ac9bc9 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF14_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -8.14836236062521e-03 + 9.75605454220754e-01 -3.27870018079412e-03 + 9.50836784314451e-01 -2.20900988818551e-04 + 9.26031070036306e-01 8.25225422744434e-04 + 9.01354150415546e-01 4.63723364948677e-05 + 8.76856729032888e-01 -2.12212287818620e-03 + 8.52628325860033e-01 -5.49153345932107e-03 + 8.28726407818510e-01 -9.92913740060339e-03 + 8.05179636734850e-01 -1.52183220368432e-02 + 7.82028005324449e-01 -2.12905294714742e-02 + 7.59247407101620e-01 -2.78817020291902e-02 + 7.36825672022388e-01 -3.48456742332678e-02 + 7.14771415904034e-01 -4.21126282820779e-02 + 6.93052137845832e-01 -4.95161086094975e-02 + 6.71727481343893e-01 -5.71636330448956e-02 + 6.50688318620596e-01 -6.46990238340603e-02 + 6.30027418222565e-01 -7.23373717103563e-02 + 6.09682760834827e-01 -7.98549524801710e-02 + 5.89688828203817e-01 -8.73005491504785e-02 + 5.70031102500545e-01 -9.46078346312720e-02 + 5.50710313744022e-01 -1.01755382714016e-01 + 5.31704773200269e-01 -1.08661561649762e-01 + 5.13040076772302e-01 -1.15360198522277e-01 + 4.94731072648672e-01 -1.21856401857074e-01 + 4.76720063365871e-01 -1.27964705191137e-01 + 4.59050447577727e-01 -1.33798894725046e-01 + 4.41698554665827e-01 -1.39265991429221e-01 + 4.24673935956588e-01 -1.44379903497306e-01 + 4.07943877996459e-01 -1.48996777520091e-01 + 3.91529590322889e-01 -1.53147337031555e-01 + 3.75425881926708e-01 -1.56786941146897e-01 + 3.59631453908511e-01 -1.59839992659012e-01 + 3.44161400760639e-01 -1.62311690399160e-01 + 3.29035392588028e-01 -1.64209813619226e-01 + 3.14263667203509e-01 -1.65451316764320e-01 + 2.99868746495612e-01 -1.66506903639003e-01 + 2.85878821421829e-01 -1.67028933600720e-01 + 2.72314348501668e-01 -1.66931590818852e-01 + 2.59190034344532e-01 -1.66240903049082e-01 + 2.46523097896223e-01 -1.65015711658322e-01 + 2.34311085993631e-01 -1.63309762544107e-01 + 2.22557973039563e-01 -1.61179016172101e-01 + 2.11273825191574e-01 -1.58619367104621e-01 + 2.00416162834866e-01 -1.55781295522583e-01 + 1.90010573443506e-01 -1.52649361562255e-01 + 1.80003508496110e-01 -1.49375875213019e-01 + 1.70407177602816e-01 -1.45918068123790e-01 + 1.61224702358730e-01 -1.42273052042672e-01 + 1.52427517023986e-01 -1.38535454147255e-01 + 1.43981471299467e-01 -1.34741684356880e-01 + 1.35915137076383e-01 -1.30853570083458e-01 + 1.28205843380849e-01 -1.26896454867671e-01 + 1.20831500156688e-01 -1.22926515095291e-01 + 1.13776200252657e-01 -1.18962260383654e-01 + 1.07043970465416e-01 -1.14984403533098e-01 + 1.00604490983182e-01 -1.11043538945192e-01 + 9.44627247382671e-02 -1.07112169597954e-01 + 8.86436371027153e-02 -1.03150305327463e-01 + 8.30609551236505e-02 -9.93048193507565e-02 + 7.77158685764800e-02 -9.55452265219299e-02 + 7.26442623777319e-02 -9.18109492601984e-02 + 6.78200455328382e-02 -8.81164194990571e-02 + 6.32251003858072e-02 -8.44890217245990e-02 + 5.88664059457334e-02 -8.09291839835693e-02 + 5.47314426912757e-02 -7.75147830298754e-02 + 5.08048887650857e-02 -7.42689802432870e-02 + 4.70774277960059e-02 -7.10840961776320e-02 + 4.35439177679982e-02 -6.79622663696009e-02 + 4.01931090877671e-02 -6.49028866719955e-02 + 3.70071961558051e-02 -6.19186097345931e-02 + 3.39928055580254e-02 -5.89938489520709e-02 + 3.11577683019826e-02 -5.61235560760588e-02 + 2.84775442869274e-02 -5.33253098749644e-02 + 2.59337722860059e-02 -5.06003306707210e-02 + 2.35351879537169e-02 -4.79341414523893e-02 + 2.13137371577664e-02 -4.53052669924546e-02 + 1.92412232739687e-02 -4.27265135238339e-02 + 1.72551808149047e-02 -4.02460777005286e-02 + 1.53775125192213e-02 -3.78461069409167e-02 + 1.36669286314092e-02 -3.54751904767474e-02 + 1.20867763486272e-02 -3.31490567840202e-02 + 1.05884996763417e-02 -3.09033988993154e-02 + 9.20425453765281e-03 -2.87165660887120e-02 + 7.94657176624660e-03 -2.65748008857490e-02 + 6.81901031712526e-03 -2.44798541378323e-02 + 5.82356366307817e-03 -2.24237272913497e-02 + 4.92174384636360e-03 -2.04275731539013e-02 + 4.09719664088157e-03 -1.84975012786712e-02 + 3.32633841273745e-03 -1.66402354620686e-02 + 2.63006056419046e-03 -1.48461343785805e-02 + 2.07265379541992e-03 -1.30914265545919e-02 + 1.60475669651842e-03 -1.13896387204853e-02 + 1.19362491575511e-03 -9.75207784151342e-03 + 8.61158304775857e-04 -8.17325143675256e-03 + 5.92658871339785e-04 -6.65366840829812e-03 + 4.11941085518658e-04 -5.19491140252507e-03 + 2.54556569896829e-04 -3.79658841465355e-03 + 1.28113832478964e-04 -2.46056989256330e-03 + 3.57617220409199e-05 -1.18717030094207e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 3.47906660476153e-05 1.35864880901149e-03 + 1.15168885058535e-04 2.77417290109050e-03 + 2.30376916315236e-04 4.24252249803400e-03 + 3.87976131495443e-04 5.76601626174964e-03 + 5.74526506204122e-04 7.34806995808761e-03 + 7.95654255520616e-04 8.98493392763457e-03 + 1.12021971636174e-03 1.06662550219730e-02 + 1.56154664930487e-03 1.23953998641279e-02 + 2.08683544746350e-03 1.41733115513416e-02 + 2.71224085851922e-03 1.59928312616081e-02 + 3.43035954718513e-03 1.78573300023999e-02 + 4.21435009067654e-03 1.97747226754239e-02 + 5.09317032805970e-03 2.17377376445490e-02 + 6.12872222137403e-03 2.37226879106243e-02 + 7.28358292664935e-03 2.57436355827732e-02 + 8.54729910157088e-03 2.78048612104546e-02 + 9.92972828959359e-03 2.98969637573703e-02 + 1.14264946100910e-02 3.20287229123090e-02 + 1.30302058764849e-02 3.42098777797921e-02 + 1.47545509310666e-02 3.64362116507928e-02 + 1.65895142682137e-02 3.87188939282128e-02 + 1.85799091430884e-02 4.10158975075125e-02 + 2.07318790579148e-02 4.33277140117620e-02 + 2.29786410496385e-02 4.57116743283601e-02 + 2.53553835037421e-02 4.81450487278177e-02 + 2.79278776797602e-02 5.05737523231150e-02 + 3.06684104757498e-02 5.30293753541954e-02 + 3.35549896302923e-02 5.55320353345598e-02 + 3.66048832549710e-02 5.80672661628428e-02 + 3.98160878278975e-02 6.05922518843348e-02 + 4.32097657635900e-02 6.30632131339738e-02 + 4.68004477364611e-02 6.55508747412392e-02 + 5.05703468888338e-02 6.80833115592091e-02 + 5.45293129960311e-02 7.06568325856674e-02 + 5.87044042125043e-02 7.32381347585862e-02 + 6.30971043353738e-02 7.58315677252795e-02 + 6.76867916036615e-02 7.84763490181517e-02 + 7.24967292572105e-02 8.11447924400529e-02 + 7.75489190519818e-02 8.38012218025252e-02 + 8.28379430912991e-02 8.64755853792752e-02 + 8.83700160522555e-02 8.92311260118967e-02 + 9.41546877815251e-02 9.20147089552618e-02 + 1.00200275044183e-01 9.47925250920637e-02 + 1.06519506627458e-01 9.75499482587641e-02 + 1.13121273553931e-01 1.00272215404985e-01 + 1.20000865270765e-01 1.03022793377647e-01 + 1.27160568795956e-01 1.05784624380971e-01 + 1.34629377330607e-01 1.08475019956957e-01 + 1.42410501436542e-01 1.11115501827654e-01 + 1.50511658880668e-01 1.13695222223560e-01 + 1.58939652295794e-01 1.16224524312285e-01 + 1.67700467710513e-01 1.18723937489766e-01 + 1.76815783980035e-01 1.21067625942295e-01 + 1.86265538652919e-01 1.23365512977448e-01 + 1.96071866452217e-01 1.25554708540608e-01 + 2.06250547051562e-01 1.27593275787970e-01 + 2.16789870603760e-01 1.29541754711146e-01 + 2.27709471480002e-01 1.31337948456032e-01 + 2.39023607624358e-01 1.32877774715532e-01 + 2.50725312099806e-01 1.34211878219550e-01 + 2.62813163393733e-01 1.35317273908679e-01 + 2.75300589304416e-01 1.36105292149500e-01 + 2.88173680979742e-01 1.36733482190757e-01 + 3.01443959248928e-01 1.37027602201975e-01 + 3.15100693572125e-01 1.37162360722735e-01 + 3.29141136015704e-01 1.37051985111160e-01 + 3.43566633885766e-01 1.36597826483452e-01 + 3.58379996607331e-01 1.36020493099717e-01 + 3.73577404766437e-01 1.35212892447741e-01 + 3.89153622315017e-01 1.34072142153192e-01 + 4.05108094120761e-01 1.32686673560345e-01 + 4.21433969423481e-01 1.30984053441620e-01 + 4.38142341403862e-01 1.29118324458878e-01 + 4.55206328011914e-01 1.26836633577195e-01 + 4.72639853963158e-01 1.24300133080523e-01 + 4.90435271070256e-01 1.21679117794261e-01 + 5.08579010309887e-01 1.18895867110872e-01 + 5.27074571229468e-01 1.15918274965440e-01 + 5.45906008138401e-01 1.12688629331682e-01 + 5.65078719861412e-01 1.09292084145262e-01 + 5.84572298052518e-01 1.05676186408607e-01 + 6.04369364403524e-01 1.01804075775369e-01 + 6.24472197888980e-01 9.77950051523939e-02 + 6.44868545310258e-01 9.36084798785348e-02 + 6.65553461692358e-01 8.92765243340495e-02 + 6.86500234562328e-01 8.47365603510263e-02 + 7.07706100172094e-01 8.00475004561028e-02 + 7.29151865146187e-01 7.51929614727690e-02 + 7.50834276036418e-01 7.02319315014268e-02 + 7.72727461247450e-01 6.51263205099363e-02 + 7.94812249063048e-01 5.98701925922095e-02 + 8.17078362972243e-01 5.44954720205527e-02 + 8.39529154287222e-01 4.90934541266714e-02 + 8.62128984506176e-01 4.35866611147249e-02 + 8.84858418262504e-01 3.79716307048406e-02 + 9.07728679674592e-01 3.23837149939797e-02 + 9.30734095888120e-01 2.68027303925987e-02 + 9.53837027134021e-01 2.09467195741978e-02 + 9.76936319972422e-01 1.49132298932001e-02 + 1.00000000000000e+00 8.66710884250080e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF15_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF15_Coords.txt new file mode 100644 index 00000000..670d0c5a --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF15_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -8.57879977773810e-03 + 9.75180222150308e-01 -3.03879904135747e-03 + 9.49954708363444e-01 -1.26002872729501e-04 + 9.24617663626292e-01 6.10122226095701e-04 + 8.99362589909934e-01 -2.13375521927681e-04 + 8.74301657857705e-01 -2.47307597608542e-03 + 8.49512831893362e-01 -5.95848312946069e-03 + 8.25060132654372e-01 -1.05432097366251e-02 + 8.00967349009157e-01 -1.59814342852104e-02 + 7.77279396459348e-01 -2.22202726470426e-02 + 7.53971146353458e-01 -2.89772479518455e-02 + 7.31028686926424e-01 -3.60929872413459e-02 + 7.08458616265561e-01 -4.34907379085029e-02 + 6.86233439551971e-01 -5.10105449101421e-02 + 6.64417721038235e-01 -5.87729225500483e-02 + 6.42896424356607e-01 -6.63906320145616e-02 + 6.21774241465352e-01 -7.41087631455492e-02 + 6.00977841522425e-01 -8.16768344389446e-02 + 5.80544552788493e-01 -8.91561467273735e-02 + 5.60464827414216e-01 -9.64833988179528e-02 + 5.40743392390515e-01 -1.03637454592294e-01 + 5.21360556780428e-01 -1.10533080197566e-01 + 5.02340910284044e-01 -1.17209304289204e-01 + 4.83693742857298e-01 -1.23667469493609e-01 + 4.65360905225594e-01 -1.29710726001548e-01 + 4.47393349439378e-01 -1.35469330395386e-01 + 4.29767286515700e-01 -1.40843787417424e-01 + 4.12495217820767e-01 -1.45855913618906e-01 + 3.95542115741603e-01 -1.50348364394606e-01 + 3.78926510481714e-01 -1.54347061753637e-01 + 3.62648170482185e-01 -1.57816166203811e-01 + 3.46706871509637e-01 -1.60675411249642e-01 + 3.31116764742986e-01 -1.62927825900264e-01 + 3.15896874263702e-01 -1.64577732807176e-01 + 3.01060219418983e-01 -1.65542318105973e-01 + 2.86630760513041e-01 -1.66019067198897e-01 + 2.72635352957487e-01 -1.65852810272617e-01 + 2.59096229086319e-01 -1.65053656791642e-01 + 2.46029444917578e-01 -1.63674484017382e-01 + 2.33450927162206e-01 -1.61779021413358e-01 + 2.21358148093932e-01 -1.59458179997197e-01 + 2.09752590238530e-01 -1.56768645463127e-01 + 1.98644065634366e-01 -1.53708652225252e-01 + 1.87983838111383e-01 -1.50468466633829e-01 + 1.77798959359292e-01 -1.46968929468240e-01 + 1.68029515979667e-01 -1.43391369897358e-01 + 1.58688054711323e-01 -1.39690800395147e-01 + 1.49777434120809e-01 -1.35854606762879e-01 + 1.41266364582040e-01 -1.31957036662395e-01 + 1.33114043882986e-01 -1.28072240442312e-01 + 1.25353982091811e-01 -1.24123605323377e-01 + 1.17961213252232e-01 -1.20147065379440e-01 + 1.10910137898332e-01 -1.16185429245801e-01 + 1.04183249914720e-01 -1.12256793878014e-01 + 9.77845035922472e-02 -1.08341834070059e-01 + 9.16800568181114e-02 -1.04487577173595e-01 + 8.58763837804680e-02 -1.00669929174109e-01 + 8.04013343441990e-02 -9.68347298049542e-02 + 7.51601956348723e-02 -9.31177415424908e-02 + 7.01543935952098e-02 -8.94997948476300e-02 + 6.54219938355571e-02 -8.59156686036492e-02 + 6.09334040261291e-02 -8.23945222782936e-02 + 5.66708598548473e-02 -7.89496641080547e-02 + 5.26424925924951e-02 -7.55684130212430e-02 + 4.88353267109018e-02 -7.22706692662718e-02 + 4.52299098002129e-02 -6.90769445598798e-02 + 4.18171486326621e-02 -6.59585470797291e-02 + 3.85937390562270e-02 -6.29132740880722e-02 + 3.55456313710721e-02 -5.99446421848028e-02 + 3.26532165695984e-02 -5.70661627728155e-02 + 2.99191791468483e-02 -5.42663897359114e-02 + 2.73603366698335e-02 -5.15240489459803e-02 + 2.49547621710270e-02 -4.88496591224952e-02 + 2.26696019923393e-02 -4.62677203676052e-02 + 2.05173895362584e-02 -4.37606410408951e-02 + 1.85413689047946e-02 -4.12897613211990e-02 + 1.67039255897644e-02 -3.88748760932536e-02 + 1.49376604499564e-02 -3.65661749206043e-02 + 1.32724098833742e-02 -3.43362370571288e-02 + 1.17676398242478e-02 -3.21379214236623e-02 + 1.03812841619170e-02 -2.99928372995567e-02 + 9.06612278982865e-03 -2.79311924288680e-02 + 7.85471709046639e-03 -2.59296320464281e-02 + 6.75962346486767e-03 -2.39733845222929e-02 + 5.78638085277238e-03 -2.20635808604033e-02 + 4.93219411743517e-03 -2.01957483008656e-02 + 4.15866656660073e-03 -1.83895524002002e-02 + 3.45414954175195e-03 -1.66456540575484e-02 + 2.78923310544400e-03 -1.49722402872741e-02 + 2.18613805623396e-03 -1.33598127496920e-02 + 1.71216161569515e-03 -1.17839473069557e-02 + 1.31624248102220e-03 -1.02571525116732e-02 + 9.66801840458578e-04 -8.79003718291119e-03 + 6.80319528299336e-04 -7.37728839044000e-03 + 4.49100581451274e-04 -6.01658261674601e-03 + 2.83701305712447e-04 -4.70870707990412e-03 + 1.71327286198412e-04 -3.45212068865394e-03 + 9.27710524239121e-05 -2.24812638028363e-03 + 2.90659238934096e-05 -1.09605843814913e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.88650625107761e-05 1.11148823849564e-03 + 9.20560654498922e-05 2.26693180022457e-03 + 1.72099085901139e-04 3.47224142051019e-03 + 2.83274561762190e-04 4.72937588738418e-03 + 4.17185695243679e-04 6.04164001396517e-03 + 5.97882203243190e-04 7.40505294611765e-03 + 8.95891727887411e-04 8.80908372794426e-03 + 1.28619996129368e-03 1.02598911578957e-02 + 1.73718091964475e-03 1.17614295105485e-02 + 2.26889766516844e-03 1.33073665302488e-02 + 2.89290184609361e-03 1.48981843737658e-02 + 3.56863592046535e-03 1.65490975122241e-02 + 4.33167262281806e-03 1.82447453137629e-02 + 5.23928473841845e-03 1.99628317108720e-02 + 6.24211877712485e-03 2.17255330691366e-02 + 7.33964056226407e-03 2.35355313731346e-02 + 8.55899423724526e-03 2.53750621882832e-02 + 9.88712266524690e-03 2.72586895159738e-02 + 1.13020867063170e-02 2.92023348035768e-02 + 1.28124619939745e-02 3.12046945194575e-02 + 1.44198946335000e-02 3.32706688249579e-02 + 1.61778638266544e-02 3.53546883232132e-02 + 1.80925347692918e-02 3.74625260070275e-02 + 2.00910255479398e-02 3.96581315151937e-02 + 2.22073480805733e-02 4.19153679037419e-02 + 2.45104741518688e-02 4.41730112135886e-02 + 2.69725227219957e-02 4.64664319277826e-02 + 2.95672369905170e-02 4.88244154637241e-02 + 3.23149834672359e-02 5.12316228766112e-02 + 3.52251763885414e-02 5.36850922615401e-02 + 3.83099350602331e-02 5.61720264031417e-02 + 4.15824489104227e-02 5.86905077324653e-02 + 4.50317770709382e-02 6.12582681605947e-02 + 4.86666503586395e-02 6.38753760166677e-02 + 5.25170727043328e-02 6.65025186818970e-02 + 5.65850189187534e-02 6.91518398462091e-02 + 6.08491647683366e-02 7.18603850558563e-02 + 6.53325801131270e-02 7.46028792309043e-02 + 7.00543348142427e-02 7.73615611579748e-02 + 7.50171013293054e-02 8.01381142978750e-02 + 8.02306159895163e-02 8.29454075566739e-02 + 8.57012088705319e-02 8.57724141117260e-02 + 9.14370395472359e-02 8.86083733592826e-02 + 9.74471306573141e-02 9.14506955541571e-02 + 1.03741642665461e-01 9.42869115799166e-02 + 1.10322431016719e-01 9.71366683959768e-02 + 1.17195331455295e-01 9.99963817208149e-02 + 1.24389884664589e-01 1.02804765589993e-01 + 1.31905935056049e-01 1.05580086008781e-01 + 1.39751456026638e-01 1.08317196263952e-01 + 1.47936168023821e-01 1.11006216128796e-01 + 1.56467558128623e-01 1.13642271424664e-01 + 1.65371163914618e-01 1.16141616432774e-01 + 1.74623252652850e-01 1.18621015919461e-01 + 1.84247428093051e-01 1.20997142483866e-01 + 1.94262496093302e-01 1.23226242267470e-01 + 2.04653672488981e-01 1.25380363541681e-01 + 2.15441765864240e-01 1.27378959185081e-01 + 2.26644243180055e-01 1.29123968217828e-01 + 2.38253845273158e-01 1.30674870254090e-01 + 2.50270552701415e-01 1.31999307783067e-01 + 2.62708751790901e-01 1.33015597369151e-01 + 2.75551725512235e-01 1.33872159509066e-01 + 2.88810665433822e-01 1.34378959676908e-01 + 3.02478807217932e-01 1.34723171413855e-01 + 3.16557400521368e-01 1.34828318979527e-01 + 3.31045159681679e-01 1.34573337077908e-01 + 3.45944140981529e-01 1.34191735267806e-01 + 3.61250730235273e-01 1.33577791174796e-01 + 3.76961614806380e-01 1.32641039909018e-01 + 3.93075978637921e-01 1.31467341415961e-01 + 4.09586247490783e-01 1.29983874522969e-01 + 4.26504850189084e-01 1.28372193187690e-01 + 4.43802359792042e-01 1.26353263881723e-01 + 4.61495724587332e-01 1.24138877363526e-01 + 4.79576454948711e-01 1.21758646632159e-01 + 4.98029186432348e-01 1.19133369177162e-01 + 5.16855180283856e-01 1.16301424988927e-01 + 5.36038549215196e-01 1.13206639039446e-01 + 5.55583719652262e-01 1.09934856544340e-01 + 5.75469608979237e-01 1.06426184782536e-01 + 5.95679247848144e-01 1.02646109224194e-01 + 6.16216032509872e-01 9.86875548679134e-02 + 6.37065764297449e-01 9.45384567802663e-02 + 6.58220009598337e-01 9.02324184327279e-02 + 6.79649739397516e-01 8.56983061171984e-02 + 7.01352675498130e-01 8.10067998035236e-02 + 7.23309367720016e-01 7.61487654794268e-02 + 7.45514874390413e-01 7.11835831183337e-02 + 7.67937997489119e-01 6.60570021231055e-02 + 7.90555709099499e-01 6.07584149955232e-02 + 8.13356480155146e-01 5.53297489402000e-02 + 8.36343320325429e-01 4.98760881816722e-02 + 8.59476947043660e-01 4.43220559191783e-02 + 8.82726076021484e-01 3.86348982394945e-02 + 9.06091895800112e-01 3.29178055135213e-02 + 9.29556869258233e-01 2.71942568107446e-02 + 9.53065562517705e-01 2.12312867691710e-02 + 9.76555746470235e-01 1.51116304681152e-02 + 1.00000000000000e+00 8.80279316603190e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF16_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF16_Coords.txt new file mode 100644 index 00000000..c1f50c91 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF16_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -7.93823528916634e-03 + 9.75306611523266e-01 -3.07804362808370e-03 + 9.50254896398834e-01 2.12362996603380e-05 + 9.25086956564820e-01 1.10034879293892e-03 + 8.99988535976524e-01 4.37422920277549e-04 + 8.75072599857149e-01 -1.69228312874642e-03 + 8.50417485943084e-01 -5.02575124436309e-03 + 8.26088106219083e-01 -9.48963995265479e-03 + 8.02111382252523e-01 -1.48157088586162e-02 + 7.78533224241522e-01 -2.09559594834436e-02 + 7.55333131164625e-01 -2.76360667094703e-02 + 7.32498770899621e-01 -3.46931927585546e-02 + 7.10037524800713e-01 -4.20512954807589e-02 + 6.87921684496055e-01 -4.95447286109428e-02 + 6.66209179710118e-01 -5.72757010622818e-02 + 6.44793205529505e-01 -6.48779142100834e-02 + 6.23770247083330e-01 -7.25767710634749e-02 + 6.03070773283972e-01 -8.01314038494710e-02 + 5.82725782097447e-01 -8.75866260531345e-02 + 5.62727405516286e-01 -9.48842528629214e-02 + 5.43080423918886e-01 -1.02003644748097e-01 + 5.23763733755852e-01 -1.08853301029009e-01 + 5.04803219809205e-01 -1.15477844917736e-01 + 4.86206982188546e-01 -1.21874673443526e-01 + 4.67921007083763e-01 -1.27856568331733e-01 + 4.49992820623389e-01 -1.33542654805615e-01 + 4.32401794865636e-01 -1.38840810792771e-01 + 4.15160522435188e-01 -1.43774009354166e-01 + 3.98236888852800e-01 -1.48190991673080e-01 + 3.81648251477225e-01 -1.52112731931741e-01 + 3.65396878028470e-01 -1.55516473547203e-01 + 3.49482408564341e-01 -1.58321238170515e-01 + 3.33919160469124e-01 -1.60534240376794e-01 + 3.18725408829206e-01 -1.62165537784395e-01 + 3.03913049141917e-01 -1.63131873998207e-01 + 2.89504737395872e-01 -1.62983765163967e-01 + 2.75525761184225e-01 -1.62070670020849e-01 + 2.61996790164123e-01 -1.60600815773790e-01 + 2.48932908441187e-01 -1.58650156209932e-01 + 2.36348800371720e-01 -1.56288718478177e-01 + 2.24242074483076e-01 -1.53625685704211e-01 + 2.12614132311826e-01 -1.50704613076576e-01 + 2.01474116266847e-01 -1.47515164268461e-01 + 1.90775946871820e-01 -1.44259340711770e-01 + 1.80545164370369e-01 -1.40816254075015e-01 + 1.70726148932411e-01 -1.37356122795043e-01 + 1.61329495142793e-01 -1.33838435774938e-01 + 1.52357448812365e-01 -1.30248116217731e-01 + 1.43781676609354e-01 -1.26622879278557e-01 + 1.35562251699688e-01 -1.23048941083730e-01 + 1.27731865989209e-01 -1.19425293871551e-01 + 1.20263781459649e-01 -1.15816680044401e-01 + 1.13136940952170e-01 -1.12220007869416e-01 + 1.06332983042845e-01 -1.08662489701008e-01 + 9.98554576560956e-02 -1.05123339035014e-01 + 9.36729639947835e-02 -1.01629914852298e-01 + 8.77889829403561e-02 -9.81820383630434e-02 + 8.22313494306295e-02 -9.47155808667247e-02 + 7.69114078116147e-02 -9.13308647018588e-02 + 7.18269333109061e-02 -8.80418761209455e-02 + 6.70154064102991e-02 -8.47739827365595e-02 + 6.24469306153174e-02 -8.15646647777206e-02 + 5.81057659587854e-02 -7.84140549690817e-02 + 5.40009405345228e-02 -7.52947049856435e-02 + 5.01151207789006e-02 -7.21659059076321e-02 + 4.64322700792648e-02 -6.90335942126407e-02 + 4.29462331812666e-02 -6.59671142994205e-02 + 3.96515804572136e-02 -6.29681996718810e-02 + 3.65329345743545e-02 -6.00437178811974e-02 + 3.35738970738148e-02 -5.72025031652544e-02 + 3.07754335365257e-02 -5.44358564951100e-02 + 2.81537659173496e-02 -5.17226337871633e-02 + 2.56886770890630e-02 -4.90717427799052e-02 + 2.33482991143229e-02 -4.65080355566962e-02 + 2.11432730232991e-02 -4.40159414301263e-02 + 1.91121471256101e-02 -4.15606205415437e-02 + 1.72228999311958e-02 -3.91575871889248e-02 + 1.54064395993220e-02 -3.68520424585129e-02 + 1.36928020357784e-02 -3.46229069295389e-02 + 1.21373998162167e-02 -3.24269429373621e-02 + 1.07044618156111e-02 -3.02820978142858e-02 + 9.34868730826734e-03 -2.82170700487391e-02 + 8.09806623056062e-03 -2.62111289422148e-02 + 6.96372181943001e-03 -2.42506526569285e-02 + 5.96056834155680e-03 -2.23318948971137e-02 + 5.06965708895582e-03 -2.04584451649110e-02 + 4.26820207826318e-03 -1.86422076010040e-02 + 3.54215279838966e-03 -1.68853270402674e-02 + 2.85815863780286e-03 -1.51976459649791e-02 + 2.24323664486902e-03 -1.35681174800671e-02 + 1.75728174742475e-03 -1.19752101824980e-02 + 1.34793914004162e-03 -1.04318177524506e-02 + 9.90510266959983e-04 -8.94698512072236e-03 + 6.97578703019438e-04 -7.51579339168028e-03 + 4.64357280248315e-04 -6.13612031461294e-03 + 2.88591972559368e-04 -4.81032939412014e-03 + 1.72652071928442e-04 -3.53504260318557e-03 + 9.21726822772373e-05 -2.31236956248856e-03 + 2.89749158143047e-05 -1.14152595228739e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.89846382908482e-05 1.09904377509191e-03 + 9.25460105131971e-05 2.26825426701565e-03 + 1.77372928637046e-04 3.48749114259613e-03 + 2.94928045666597e-04 4.75871421546040e-03 + 4.43018528169673e-04 6.08403094200768e-03 + 6.38312963887756e-04 7.46056696755252e-03 + 9.47163065524872e-04 8.87928204628239e-03 + 1.36292248354851e-03 1.03385546497900e-02 + 1.83694236418441e-03 1.18499779537360e-02 + 2.40074018468558e-03 1.34014033663973e-02 + 3.05594814662641e-03 1.49976678162017e-02 + 3.77032037989221e-03 1.66497807270228e-02 + 4.57488786576987e-03 1.83443029444178e-02 + 5.51906408703589e-03 2.00632619669774e-02 + 6.56072342496301e-03 2.18246212199481e-02 + 7.69623508636216e-03 2.36337857570079e-02 + 8.95571256166709e-03 2.54702712422116e-02 + 1.03262325097732e-02 2.73482935706184e-02 + 1.17850925399475e-02 2.92850723449938e-02 + 1.33375184491728e-02 3.12822963331383e-02 + 1.49920040237809e-02 3.33377667408644e-02 + 1.67963509381930e-02 3.54114606810732e-02 + 1.87564987080519e-02 3.75086023081501e-02 + 2.08048274019325e-02 3.96894126704762e-02 + 2.29716484700822e-02 4.19312226540401e-02 + 2.53216431358212e-02 4.41765315953156e-02 + 2.78298220840403e-02 4.64577629177545e-02 + 3.04725601623169e-02 4.88011066487437e-02 + 3.32695085116736e-02 5.11918075676120e-02 + 3.62304186897929e-02 5.36280031772383e-02 + 3.93644755511771e-02 5.61022315336534e-02 + 4.26868496705988e-02 5.86057232062309e-02 + 4.61876578605174e-02 6.11553846039597e-02 + 4.98741851089849e-02 6.37532547016415e-02 + 5.37745202719990e-02 6.63631960936247e-02 + 5.78890274684652e-02 6.90003260469755e-02 + 6.22045848623571e-02 7.16867591984326e-02 + 6.67395204425100e-02 7.44058004604966e-02 + 7.15094552811985e-02 7.71467339233253e-02 + 7.65211067667525e-02 7.99024876975873e-02 + 8.17838450454122e-02 8.26301768788084e-02 + 8.73028349577319e-02 8.53481713528125e-02 + 9.30858323711997e-02 8.80783750999101e-02 + 9.91416946670507e-02 9.08176986892974e-02 + 1.05480595351981e-01 9.35548293971554e-02 + 1.12106860649107e-01 9.62797051576990e-02 + 1.19024136382428e-01 9.90174394136982e-02 + 1.26260042330622e-01 1.01725417281737e-01 + 1.33816269566989e-01 1.04399273374098e-01 + 1.41700663462267e-01 1.07033756577881e-01 + 1.49922921245669e-01 1.09617507912382e-01 + 1.58490745848084e-01 1.12140288851728e-01 + 1.67427226610566e-01 1.14558206235614e-01 + 1.76710282027346e-01 1.16962741891360e-01 + 1.86363310666109e-01 1.19272582161213e-01 + 1.96405140293252e-01 1.21436031107907e-01 + 2.06821300548881e-01 1.23525479904894e-01 + 2.17631928576255e-01 1.25464812094116e-01 + 2.28852962522468e-01 1.27193749895941e-01 + 2.40477755282815e-01 1.28758039445176e-01 + 2.52507693678930e-01 1.30101102154715e-01 + 2.64955599100463e-01 1.31171639589549e-01 + 2.77806279246518e-01 1.32075007668201e-01 + 2.91070185192249e-01 1.32646573696457e-01 + 3.04740840328737e-01 1.33041903853136e-01 + 3.18819477395129e-01 1.33195283275007e-01 + 3.33304350362167e-01 1.32986169941820e-01 + 3.48197166977535e-01 1.32632958624357e-01 + 3.63493940108890e-01 1.32044025079949e-01 + 3.79191584895447e-01 1.31162317872549e-01 + 3.95288926848852e-01 1.30062172860921e-01 + 4.11778548872039e-01 1.28686018034213e-01 + 4.28672318266481e-01 1.27234783277367e-01 + 4.45941423639317e-01 1.25432754513171e-01 + 4.63601280756515e-01 1.23542253443373e-01 + 4.81644473880432e-01 1.21300435261224e-01 + 5.00056154441041e-01 1.18664422872359e-01 + 5.18836063389421e-01 1.15815814392759e-01 + 5.37969499408613e-01 1.12707530577688e-01 + 5.57460349222905e-01 1.09422776572642e-01 + 5.77288515939648e-01 1.05906885195990e-01 + 5.97436626517306e-01 1.02120358117792e-01 + 6.17906665003925e-01 9.81468229100023e-02 + 6.38686205928774e-01 9.39865902403502e-02 + 6.59766571546815e-01 8.96723879840407e-02 + 6.81119084918578e-01 8.51320545501444e-02 + 7.02741779443877e-01 8.04384800208977e-02 + 7.24615479257981e-01 7.55830551158126e-02 + 7.46734371501449e-01 7.06203776437117e-02 + 7.69068303705288e-01 6.55004145708381e-02 + 7.91594648342087e-01 6.02131883818753e-02 + 8.14301397875068e-01 5.47976161070736e-02 + 8.37189869304468e-01 4.93502115779818e-02 + 8.60223965891098e-01 4.38110631161306e-02 + 8.83371421758982e-01 3.81398145030035e-02 + 9.06633371381850e-01 3.24408481950457e-02 + 9.29989733000046e-01 2.67257978266275e-02 + 9.53387742290786e-01 2.07144753192261e-02 + 9.76768638918538e-01 1.45035303709754e-02 + 1.00000000000000e+00 8.08144847432573e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF17_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF17_Coords.txt new file mode 100644 index 00000000..e8398cd3 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF17_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -5.45301418050398e-03 + 9.75817754636844e-01 -1.07014594571340e-03 + 9.51454474857096e-01 1.91024365189180e-03 + 9.26967643090702e-01 3.00968706555777e-03 + 9.02511079251701e-01 2.94654327425755e-03 + 8.78192574605997e-01 1.33458056758987e-03 + 8.54093368263713e-01 -1.40182384869508e-03 + 8.30280803054358e-01 -5.36722915654211e-03 + 8.06793858998891e-01 -1.02284409757101e-02 + 7.83681486977920e-01 -1.59512159380425e-02 + 7.60940204843493e-01 -2.22950822168370e-02 + 7.38563657479683e-01 -2.90867632401626e-02 + 7.16562339357988e-01 -3.62524846703740e-02 + 6.94907137649732e-01 -4.36064241543176e-02 + 6.73631134029173e-01 -5.11811692579687e-02 + 6.52658302378040e-01 -5.86920124341470e-02 + 6.32053668313489e-01 -6.62866061150648e-02 + 6.11762998595842e-01 -7.37633434906679e-02 + 5.91793833227140e-01 -8.11048412074493e-02 + 5.72143812615339e-01 -8.82708930236720e-02 + 5.52817394328116e-01 -9.52421061177968e-02 + 5.33788045856372e-01 -1.01905267173908e-01 + 5.15086541349180e-01 -1.08323876177549e-01 + 4.96717352144744e-01 -1.14481204108679e-01 + 4.78641616276281e-01 -1.20227783933246e-01 + 4.60893396881899e-01 -1.25639100003988e-01 + 4.43463621570381e-01 -1.30651726403441e-01 + 4.26364855167011e-01 -1.35291421458868e-01 + 4.09575905165181e-01 -1.39432097972120e-01 + 3.93110179140291e-01 -1.43077401925812e-01 + 3.76978460385483e-01 -1.46251273376598e-01 + 3.61179752938969e-01 -1.48871519397112e-01 + 3.45729101934949e-01 -1.50960869674387e-01 + 3.30642129005544e-01 -1.52550649026425e-01 + 3.15926278476078e-01 -1.53556648571138e-01 + 3.01599265716078e-01 -1.53406493492377e-01 + 2.87680819991451e-01 -1.52565505829207e-01 + 2.74185684558165e-01 -1.51262467818296e-01 + 2.61125227450442e-01 -1.49553952675144e-01 + 2.48509753994654e-01 -1.47518928364719e-01 + 2.36337378313774e-01 -1.45239165168132e-01 + 2.24609516585392e-01 -1.42744892161473e-01 + 2.13332897224055e-01 -1.40016001929494e-01 + 2.02471916601662e-01 -1.37246042052315e-01 + 1.92046415499529e-01 -1.34302336350696e-01 + 1.82017241046991e-01 -1.31316990852076e-01 + 1.72387811926573e-01 -1.28277098407418e-01 + 1.63158168703259e-01 -1.25175025059640e-01 + 1.54311116670428e-01 -1.22008726981644e-01 + 1.45810745366912e-01 -1.18882519862654e-01 + 1.37686151480707e-01 -1.15678943069290e-01 + 1.29904396960524e-01 -1.12501052056401e-01 + 1.22461453799045e-01 -1.09296875694661e-01 + 1.15336029025638e-01 -1.06110381969955e-01 + 1.08530206086421e-01 -1.02923068284723e-01 + 1.02021937517086e-01 -9.97477261452737e-02 + 9.58035794795516e-02 -9.66087731597880e-02 + 8.99025563208008e-02 -9.34345462961179e-02 + 8.42533694191495e-02 -9.03001520357529e-02 + 7.88404210406804e-02 -8.72478321301334e-02 + 7.36987958956943e-02 -8.41967679007426e-02 + 6.87979160132652e-02 -8.11907184984598e-02 + 6.41293950735861e-02 -7.82219427896279e-02 + 5.97053948052580e-02 -7.52557475365361e-02 + 5.54927030145125e-02 -7.23200756561499e-02 + 5.14882701745751e-02 -6.94055630007988e-02 + 4.76966523729130e-02 -6.65204388093482e-02 + 4.41044276154980e-02 -6.36813418052842e-02 + 4.06917094514561e-02 -6.09068675236080e-02 + 3.74540490762733e-02 -5.81886656057259e-02 + 3.43866063044132e-02 -5.55275845558965e-02 + 3.15023235573427e-02 -5.29049733067924e-02 + 2.87869138658892e-02 -5.03247145633268e-02 + 2.62138854996644e-02 -4.78100517604238e-02 + 2.37865060486491e-02 -4.53531589485433e-02 + 2.15247839409282e-02 -4.29352820557746e-02 + 1.94182671926051e-02 -4.05554813845574e-02 + 1.73965234398919e-02 -3.82405266496950e-02 + 1.54853588645235e-02 -3.59936663761455e-02 + 1.37247140912916e-02 -3.37853520929274e-02 + 1.21016771194090e-02 -3.16194081025936e-02 + 1.05781206388565e-02 -2.95197185049363e-02 + 9.16563324054632e-03 -2.74753790222862e-02 + 7.87017740303867e-03 -2.54771064952531e-02 + 6.73874368242485e-03 -2.35033804471445e-02 + 5.69708622898664e-03 -2.15868085403806e-02 + 4.77713369380707e-03 -1.97111181309851e-02 + 3.95637742176391e-03 -1.78845743446675e-02 + 3.18867965744800e-03 -1.61229116929551e-02 + 2.51755355177319e-03 -1.44093804163539e-02 + 1.97561081401136e-03 -1.27330821562174e-02 + 1.50680513040740e-03 -1.11084517063373e-02 + 1.11087123697807e-03 -9.53891013699422e-03 + 7.87187928013208e-04 -8.02095919047579e-03 + 5.40440313749341e-04 -6.55353655736207e-03 + 3.24451588791395e-04 -5.14486804718090e-03 + 1.88916042874488e-04 -3.78501062412031e-03 + 9.46340362822307e-05 -2.47910069070381e-03 + 2.95523038007147e-05 -1.22605370486567e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 3.01481344622130e-05 1.17505317893727e-03 + 9.71702652511514e-05 2.42646619372459e-03 + 2.03793338171215e-04 3.72885439165868e-03 + 3.50357301196391e-04 5.08422545353897e-03 + 5.56726492329121e-04 6.49032410794411e-03 + 8.10159355539692e-04 7.94834859081885e-03 + 1.16155592002565e-03 9.45472898904353e-03 + 1.67637488199947e-03 1.09790644306452e-02 + 2.24350076193863e-03 1.25604990644086e-02 + 2.93581026563085e-03 1.41655243002384e-02 + 3.71628942355257e-03 1.58152478828471e-02 + 4.58474262640831e-03 1.75044149307111e-02 + 5.55488305863393e-03 1.92276009432552e-02 + 6.64802371618967e-03 2.09824655006495e-02 + 7.84988650655681e-03 2.27705789972541e-02 + 9.14426750365521e-03 2.46074952599354e-02 + 1.05699641486623e-02 2.64638140414759e-02 + 1.21156298219846e-02 2.83517697847890e-02 + 1.37576162529760e-02 3.02925689186482e-02 + 1.54895733386299e-02 3.22984799032679e-02 + 1.73435567726879e-02 3.43421258897796e-02 + 1.93455202749544e-02 3.64041907098984e-02 + 2.15005396192731e-02 3.84872450496868e-02 + 2.37609732142698e-02 4.06370705630654e-02 + 2.61438022753388e-02 4.28440907355414e-02 + 2.86976791253163e-02 4.50652887339507e-02 + 3.14081825116334e-02 4.73218530627499e-02 + 3.42618133903517e-02 4.96294249787890e-02 + 3.72752122579656e-02 5.19754897747939e-02 + 4.04579457665667e-02 5.43568206182997e-02 + 4.38096061596044e-02 5.67814925288692e-02 + 4.73527794655686e-02 5.92252949852968e-02 + 5.10805893305958e-02 6.17034102753216e-02 + 5.49951734742978e-02 6.42246281779437e-02 + 5.91172562090566e-02 6.67651820406855e-02 + 6.34412452148952e-02 6.93500711466022e-02 + 6.79840941864798e-02 7.19471001376835e-02 + 7.27468469458395e-02 7.45705996505986e-02 + 7.77328868720285e-02 7.72333440704537e-02 + 8.29626933019556e-02 7.98998610400721e-02 + 8.84438437146468e-02 8.25516267432993e-02 + 9.41776411888755e-02 8.52039636550780e-02 + 1.00170421380160e-01 8.78676504969935e-02 + 1.06430934474038e-01 9.05393436776120e-02 + 1.12969233548496e-01 9.32086710673799e-02 + 1.19797828219200e-01 9.58462247530667e-02 + 1.26911894255357e-01 9.84958150865328e-02 + 1.34331983632213e-01 1.01128226770770e-01 + 1.42066987117710e-01 1.03723117625941e-01 + 1.50124262102595e-01 1.06274763475707e-01 + 1.58513048529723e-01 1.08770852235264e-01 + 1.67241646522678e-01 1.11196896421823e-01 + 1.76323718493828e-01 1.13540445285679e-01 + 1.85743681389525e-01 1.15873278276396e-01 + 1.95524016824630e-01 1.18115770052045e-01 + 2.05683255342811e-01 1.20208699038275e-01 + 2.16208468120044e-01 1.22224461173209e-01 + 2.27117207800504e-01 1.24090288616604e-01 + 2.38419423158324e-01 1.25782649954125e-01 + 2.50110734150605e-01 1.27336011108803e-01 + 2.62197488700551e-01 1.28669969942400e-01 + 2.74686682065653e-01 1.29764427838693e-01 + 2.87569054903857e-01 1.30681368424973e-01 + 3.00852399367078e-01 1.31283757276969e-01 + 3.14530771437150e-01 1.31692707165930e-01 + 3.28604824690067e-01 1.31851460992892e-01 + 3.43071468150563e-01 1.31640913718290e-01 + 3.57931242815408e-01 1.31256435294713e-01 + 3.73178779264493e-01 1.30614578750586e-01 + 3.88811577543217e-01 1.29697152615801e-01 + 4.04827176697756e-01 1.28553939360805e-01 + 4.21218824620110e-01 1.27145088813715e-01 + 4.37996175755373e-01 1.25658971878768e-01 + 4.55132979373076e-01 1.23843182272296e-01 + 4.72638679585242e-01 1.21926903878881e-01 + 4.90509890590074e-01 1.19631762561332e-01 + 5.08733867924661e-01 1.16939647488128e-01 + 5.27305087603049e-01 1.14015126381095e-01 + 5.46213184288326e-01 1.10843992328087e-01 + 5.65460187911138e-01 1.07498826395060e-01 + 5.85029675577305e-01 1.03944942811554e-01 + 6.04902749493555e-01 1.00126044902967e-01 + 6.25076084848418e-01 9.60954974978452e-02 + 6.45543971739222e-01 9.18933165314899e-02 + 6.66297289512585e-01 8.75484886184110e-02 + 6.87308946494649e-01 8.29877474141992e-02 + 7.08578048914644e-01 7.82894566836472e-02 + 7.30086443256557e-01 7.34459663833689e-02 + 7.51825357054199e-01 6.84945162374382e-02 + 7.73769138587997e-01 6.34023849460844e-02 + 7.95897100069124e-01 5.81625974308282e-02 + 8.18195637696294e-01 5.28018830946166e-02 + 8.40659948231990e-01 4.73841857178122e-02 + 8.63266034014869e-01 4.19041191703725e-02 + 8.85979573720097e-01 3.62991883120328e-02 + 9.08802830149653e-01 3.06806974342369e-02 + 9.31707972602122e-01 2.50135348041367e-02 + 9.54654320230810e-01 1.88471626322655e-02 + 9.77590603702380e-01 1.23214474808323e-02 + 1.00000000000000e+00 5.52162384629112e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF18_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF18_Coords.txt new file mode 100644 index 00000000..87813ee7 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF18_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -2.37767599414968e-03 + 9.76446819562239e-01 1.18667276573974e-03 + 9.52930798636692e-01 3.80478847156908e-03 + 9.29282208028914e-01 5.37628501132393e-03 + 9.05615578666939e-01 6.07272680933467e-03 + 8.82032334216335e-01 5.18874855240369e-03 + 8.58617284514100e-01 3.26660678111755e-03 + 8.35440764035589e-01 2.67187094232616e-05 + 8.12556593166433e-01 -4.15650599841566e-03 + 7.90017464961696e-01 -9.25945431510779e-03 + 7.67840842437519e-01 -1.50885188225015e-02 + 7.46027726392422e-01 -2.14593261524176e-02 + 7.24592442618031e-01 -2.82974871754426e-02 + 7.03504149817637e-01 -3.53964569024539e-02 + 6.82765349116846e-01 -4.26998988823194e-02 + 6.62337893926518e-01 -5.00271216489902e-02 + 6.42248092575011e-01 -5.74239730292741e-02 + 6.22460538916900e-01 -6.47395984745764e-02 + 6.02953903187687e-01 -7.18789103015881e-02 + 5.83732605013996e-01 -7.88228152136706e-02 + 5.64800704679662e-01 -8.55519158464723e-02 + 5.46124988243235e-01 -9.19284463008494e-02 + 5.27742247208307e-01 -9.80364414989111e-02 + 5.09652486976343e-01 -1.03841306232240e-01 + 4.91835492986616e-01 -1.09243363075515e-01 + 4.74308759446067e-01 -1.14261681915081e-01 + 4.57077435404333e-01 -1.18870892627075e-01 + 4.40154051473917e-01 -1.23098817274973e-01 + 4.23530856843343e-01 -1.26854027870635e-01 + 4.07216398081170e-01 -1.30119328171116e-01 + 3.91231938614656e-01 -1.32976005720577e-01 + 3.75575699731328e-01 -1.35342726415398e-01 + 3.60263622208770e-01 -1.37261172568907e-01 + 3.45308062067250e-01 -1.38788502251440e-01 + 3.30710985565161e-01 -1.39841337156737e-01 + 3.16484027641533e-01 -1.40100625734666e-01 + 3.02640076917013e-01 -1.39862266369132e-01 + 2.89186583012941e-01 -1.39252768782004e-01 + 2.76130340586499e-01 -1.38286107582322e-01 + 2.63476265682543e-01 -1.37049216008764e-01 + 2.51223094661652e-01 -1.35572490644241e-01 + 2.39372261720154e-01 -1.33875529784685e-01 + 2.27927524364597e-01 -1.31931209492906e-01 + 2.16866171615739e-01 -1.29910205264487e-01 + 2.06201029914413e-01 -1.27692002391941e-01 + 1.95913212312204e-01 -1.25358568326782e-01 + 1.85997306093273e-01 -1.22934748923442e-01 + 1.76450637821784e-01 -1.20426052562665e-01 + 1.67269721120968e-01 -1.17795029832047e-01 + 1.58423588488400e-01 -1.15164333199127e-01 + 1.49936911969762e-01 -1.12408754691065e-01 + 1.41769123119841e-01 -1.09669875291307e-01 + 1.33937151744594e-01 -1.06851502319845e-01 + 1.26416097012572e-01 -1.04016679034228e-01 + 1.19206237571905e-01 -1.01151657303313e-01 + 1.12297037125044e-01 -9.82587192113124e-02 + 1.05667160617742e-01 -9.53856625792421e-02 + 9.93435270819619e-02 -9.24557770413018e-02 + 9.32891373053101e-02 -8.95249953967126e-02 + 8.74719354214747e-02 -8.66600851213458e-02 + 8.19240576596432e-02 -8.37764095161515e-02 + 7.66140873543626e-02 -8.09233249988340e-02 + 7.15426883354032e-02 -7.80879536266522e-02 + 6.67258789024077e-02 -7.52313564677441e-02 + 6.21109049974624e-02 -7.24930414546405e-02 + 5.77107003282204e-02 -6.98465745441758e-02 + 5.35430034534783e-02 -6.71846452282005e-02 + 4.95845561568290e-02 -6.45422361158792e-02 + 4.58099226060605e-02 -6.19523763970443e-02 + 4.22293604618921e-02 -5.93855665933846e-02 + 3.88308843695516e-02 -5.68544053787320e-02 + 3.56234006217278e-02 -5.43433098462299e-02 + 3.25999205074709e-02 -5.18499783811972e-02 + 2.97405688058144e-02 -4.93956746514801e-02 + 2.70395385980955e-02 -4.69821041730334e-02 + 2.44940212404595e-02 -4.46103096861655e-02 + 2.21201103864747e-02 -4.22591015257432e-02 + 1.98580479062668e-02 -3.99325658782353e-02 + 1.77168686887470e-02 -3.76638917235478e-02 + 1.57157807032474e-02 -3.54403779106754e-02 + 1.38676651671849e-02 -3.32484674991874e-02 + 1.21441938253155e-02 -3.11061195104619e-02 + 1.05378361076491e-02 -2.90145230640159e-02 + 9.04844929893957e-03 -2.69697346212576e-02 + 7.75683497330708e-03 -2.49283589829342e-02 + 6.52980280782892e-03 -2.29587165235158e-02 + 5.45989916249106e-03 -2.10098573697542e-02 + 4.51688987743758e-03 -1.90975789024075e-02 + 3.64156821001467e-03 -1.72448669660278e-02 + 2.89517955356030e-03 -1.54279532736546e-02 + 2.27709187814676e-03 -1.36490255771574e-02 + 1.72915425508911e-03 -1.19244153221547e-02 + 1.27964769399565e-03 -1.02506222817353e-02 + 9.12717177077437e-04 -8.62589658032073e-03 + 6.43670432858475e-04 -7.05048038051019e-03 + 3.75496964177492e-04 -5.53981424307094e-03 + 2.12451593354277e-04 -4.07587556179559e-03 + 9.85747212878459e-05 -2.66752580611053e-03 + 3.05204163981267e-05 -1.31331094969237e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 3.15800516939920e-05 1.28536935659477e-03 + 1.02861345468154e-04 2.63794919245206e-03 + 2.36308992810849e-04 4.04267190102204e-03 + 4.18574204776478e-04 5.50160407333578e-03 + 6.96667127526426e-04 7.00712121949262e-03 + 1.02165107805804e-03 8.56543372145463e-03 + 1.42540966556040e-03 1.01797040162715e-02 + 2.06214142058454e-03 1.17841124321626e-02 + 2.74385305341704e-03 1.34517101595850e-02 + 3.59432216104703e-03 1.51227008126668e-02 + 4.52897284835177e-03 1.68382166645950e-02 + 5.58705383071816e-03 1.85729863183344e-02 + 6.76096524288088e-03 2.03314489250025e-02 + 8.03743675144860e-03 2.21305025010730e-02 + 9.43646227409209e-03 2.39515425026592e-02 + 1.09263641031346e-02 2.58226128735423e-02 + 1.25566270365459e-02 2.77033405353925e-02 + 1.43178449292754e-02 2.96035213537207e-02 + 1.61852054142408e-02 3.15492683526132e-02 + 1.81381119035080e-02 3.35658704424136e-02 + 2.02376177807679e-02 3.55949640883938e-02 + 2.24827884412515e-02 3.76427169254937e-02 + 2.48776366499191e-02 3.97084340106233e-02 + 2.73991082013164e-02 4.18201264039935e-02 + 3.00477787622335e-02 4.39843306813997e-02 + 3.28525738533268e-02 4.61758552907474e-02 + 3.58120783592458e-02 4.84020618976064e-02 + 3.89252554594669e-02 5.06656093643179e-02 + 4.22050404438107e-02 5.29567403882480e-02 + 4.56607724006619e-02 5.52705490464994e-02 + 4.92802379264876e-02 5.76342317329541e-02 + 5.30951492645608e-02 6.00045745431363e-02 + 5.71023305776689e-02 6.23946378850674e-02 + 6.12975848311221e-02 6.48215197669438e-02 + 6.56925727776909e-02 6.72766782487322e-02 + 7.02743714952992e-02 6.97972744317459e-02 + 7.50969486986961e-02 7.22842735310359e-02 + 8.01400765487782e-02 7.47901896085021e-02 + 8.53920774693246e-02 7.73567066055900e-02 + 9.08903676568554e-02 7.99133996484751e-02 + 9.66403183510142e-02 8.24936560307861e-02 + 1.02638479952074e-01 8.50997650283062e-02 + 1.08889440257636e-01 8.77162219327400e-02 + 1.15401817527268e-01 9.03394906080130e-02 + 1.22185516627081e-01 9.29598512750285e-02 + 1.29263118491494e-01 9.55337809970597e-02 + 1.36619374775123e-01 9.81184385458023e-02 + 1.44266139092389e-01 1.00694502173312e-01 + 1.52221162890854e-01 1.03229848289691e-01 + 1.60491203003249e-01 1.05718276956696e-01 + 1.69084936589124e-01 1.08146601356303e-01 + 1.78011398738398e-01 1.10496847084347e-01 + 1.87272650122097e-01 1.12780737463291e-01 + 1.96861105345526e-01 1.15054643125002e-01 + 2.06798117527740e-01 1.17240543617190e-01 + 2.17101851419760e-01 1.19273158884218e-01 + 2.27761275369060e-01 1.21224134069861e-01 + 2.38790761271252e-01 1.23023413411139e-01 + 2.50192886766329e-01 1.24678047176873e-01 + 2.61966061889217e-01 1.26213824812832e-01 + 2.74122740201456e-01 1.27530811823120e-01 + 2.86662746727198e-01 1.28636005140460e-01 + 2.99584123829558e-01 1.29553120390120e-01 + 3.12891391317914e-01 1.30171094917509e-01 + 3.26579260634688e-01 1.30578353143042e-01 + 3.40647672578538e-01 1.30725411590738e-01 + 3.55091880946261e-01 1.30496104164832e-01 + 3.69910990811779e-01 1.30058415062081e-01 + 3.85097931570468e-01 1.29333718130797e-01 + 4.00650923113019e-01 1.28339370562823e-01 + 4.16565921229797e-01 1.27096432683427e-01 + 4.32836992216272e-01 1.25581769969023e-01 + 4.49471067150447e-01 1.23948898925125e-01 + 4.66445046714551e-01 1.21982635824263e-01 + 4.83761025693294e-01 1.19827800217627e-01 + 5.01420577935565e-01 1.17377223728947e-01 + 5.19413548507589e-01 1.14623284584942e-01 + 5.37727933854121e-01 1.11613572571558e-01 + 5.56358704938187e-01 1.08373804583437e-01 + 5.75305606530518e-01 1.04960916116859e-01 + 5.94556737334723e-01 1.01364726003763e-01 + 6.14091323042302e-01 9.75131887392979e-02 + 6.33899505217000e-01 9.34229607669790e-02 + 6.53983838820148e-01 8.91779646388802e-02 + 6.74334658110115e-01 8.48016108581404e-02 + 6.94926822402831e-01 8.02237288972718e-02 + 7.15760758260989e-01 7.55262386365138e-02 + 7.36819570375329e-01 7.07027052448581e-02 + 7.58090843885297e-01 6.57693336437398e-02 + 7.79554466153280e-01 6.07141783168916e-02 + 8.01192136630880e-01 5.55343914786427e-02 + 8.22988286990664e-01 5.02420511779286e-02 + 8.44930581805388e-01 4.48622679286764e-02 + 8.67009913774751e-01 3.94519467741740e-02 + 8.89189431928600e-01 3.39266635119004e-02 + 9.11472787704912e-01 2.84011627846064e-02 + 9.33822613763039e-01 2.27894520303026e-02 + 9.56213100416208e-01 1.64551756972167e-02 + 9.78602197523542e-01 9.57262213328838e-03 + 1.00000000000000e+00 2.38801343162379e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF19_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF19_Coords.txt new file mode 100644 index 00000000..ffdbb0d3 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF19_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -3.68399389995869e-04 + 9.76857008771838e-01 2.66731162732446e-03 + 9.53893452982560e-01 5.08228579069216e-03 + 9.30791447416205e-01 6.92341917618193e-03 + 9.07639904153749e-01 8.15655615709104e-03 + 8.84536094791801e-01 7.92264904224889e-03 + 8.61567157501965e-01 6.68493011849853e-03 + 8.38805377497580e-01 4.13452337383163e-03 + 8.16314251999226e-01 5.97915678772836e-04 + 7.94148914190988e-01 -3.89604633156816e-03 + 7.72340484630481e-01 -9.19436001700492e-03 + 7.50894760627057e-01 -1.51087969475548e-02 + 7.29828566229855e-01 -2.15579885729289e-02 + 7.09109933074187e-01 -2.83298125964794e-02 + 6.88721421877958e-01 -3.53036886233563e-02 + 6.68649585846097e-01 -4.23737071775973e-02 + 6.48895487241817e-01 -4.95075181376893e-02 + 6.29435996348719e-01 -5.65920614554448e-02 + 6.10230958530276e-01 -6.34793436033746e-02 + 5.91289213882662e-01 -7.01620809295741e-02 + 5.72614563636092e-01 -7.66179006666135e-02 + 5.54169437142293e-01 -8.26972170912674e-02 + 5.35994549591891e-01 -8.84922462055237e-02 + 5.18086994319589e-01 -9.39558134124888e-02 + 5.00438716025881e-01 -9.90271375426639e-02 + 4.83056404950572e-01 -1.03683276789266e-01 + 4.65954483401666e-01 -1.07928967059445e-01 + 4.49145459682817e-01 -1.11790741247148e-01 + 4.32630347798518e-01 -1.15206880360019e-01 + 4.16414524640443e-01 -1.18147531896552e-01 + 4.00526087330994e-01 -1.20731141532653e-01 + 3.84962746755882e-01 -1.22881481336833e-01 + 3.69741027707524e-01 -1.24652317902417e-01 + 3.54871156825438e-01 -1.26116996793257e-01 + 3.40351528329817e-01 -1.27196549851457e-01 + 3.26189812343215e-01 -1.27831505011485e-01 + 3.12394436962796e-01 -1.28135125466097e-01 + 2.98968095909353e-01 -1.28135971204913e-01 + 2.85914601715587e-01 -1.27815225606007e-01 + 2.73235356281731e-01 -1.27263263044964e-01 + 2.60929501705741e-01 -1.26470643765030e-01 + 2.48998483933274e-01 -1.25450275622875e-01 + 2.37444123255251e-01 -1.24173437692176e-01 + 2.26252115496294e-01 -1.22785796310441e-01 + 2.15430713313732e-01 -1.21185221143952e-01 + 2.04974244392958e-01 -1.19412349992892e-01 + 1.94871537400587e-01 -1.17520737121037e-01 + 1.85118149204518e-01 -1.15527561249974e-01 + 1.75719532106264e-01 -1.13369650618129e-01 + 1.66647941717989e-01 -1.11180617405335e-01 + 1.57925164945130e-01 -1.08833224985739e-01 + 1.49505657854053e-01 -1.06498338398972e-01 + 1.41420016040231e-01 -1.04044619127328e-01 + 1.33640986123984e-01 -1.01549904565748e-01 + 1.26167669913614e-01 -9.90049839819346e-02 + 1.18997037103723e-01 -9.64015758401574e-02 + 1.12098825120963e-01 -9.38093390294696e-02 + 1.05499623500676e-01 -9.11479135507931e-02 + 9.91810164066800e-02 -8.84508376192239e-02 + 9.31002162531755e-02 -8.58102997394773e-02 + 8.72874366774390e-02 -8.31377449587737e-02 + 8.17107141333520e-02 -8.04892138256785e-02 + 7.63766137075373e-02 -7.78449994839546e-02 + 7.13036684223055e-02 -7.51579825759147e-02 + 6.64263817165701e-02 -7.26018598042667e-02 + 6.17681093546461e-02 -7.01301752855594e-02 + 5.73551856813564e-02 -6.76137828225569e-02 + 5.31579386553926e-02 -6.50996263715978e-02 + 4.91473139049403e-02 -6.26301467575107e-02 + 4.53431586149581e-02 -6.01620539688450e-02 + 4.17288283387378e-02 -5.77156085161925e-02 + 3.83105975635588e-02 -5.52772281229456e-02 + 3.50862364938885e-02 -5.28405786158374e-02 + 3.20401842818251e-02 -5.04256327322228e-02 + 2.91607168682362e-02 -4.80403110926350e-02 + 2.64301474681941e-02 -4.56985651824556e-02 + 2.38818791314998e-02 -4.33660011061808e-02 + 2.14869187314351e-02 -4.10319139878904e-02 + 1.92210251217201e-02 -3.87490158345328e-02 + 1.70866204440822e-02 -3.65155909889459e-02 + 1.51088856667703e-02 -3.43067488660566e-02 + 1.32677571342121e-02 -3.21365849699287e-02 + 1.15452964783661e-02 -3.00141740624550e-02 + 9.93785550135011e-03 -2.79390543678102e-02 + 8.53733963199581e-03 -2.58535670157040e-02 + 7.18971942545551e-03 -2.38493192760235e-02 + 6.01408812501931e-03 -2.18527495788709e-02 + 4.98035831239796e-03 -1.98845668008135e-02 + 4.02595523871816e-03 -1.79724851036912e-02 + 3.21872354864114e-03 -1.60881596868680e-02 + 2.53699895316356e-03 -1.42423112550335e-02 + 1.92596838800982e-03 -1.24525079880165e-02 + 1.42958340648342e-03 -1.07107365453782e-02 + 1.02402066973875e-03 -9.01638710474725e-03 + 7.29515457680132e-04 -7.37055242509973e-03 + 4.22134415351005e-04 -5.79337753090592e-03 + 2.34596295265449e-04 -4.26157143671717e-03 + 1.02904903665998e-04 -2.78642458580164e-03 + 3.16491042877115e-05 -1.36624202526467e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 3.25137502262144e-05 1.36126836315680e-03 + 1.06572281496749e-04 2.77981521878749e-03 + 2.57511209208200e-04 4.25126635289481e-03 + 4.63055841935316e-04 5.77772676962173e-03 + 7.87917070457592e-04 7.34807091678409e-03 + 1.15955675201046e-03 8.97177740531396e-03 + 1.59745861466139e-03 1.06563985806526e-02 + 2.31368504535807e-03 1.23130195245482e-02 + 3.07011367084607e-03 1.40368009141934e-02 + 4.02371261501702e-03 1.57508050961990e-02 + 5.05889266777718e-03 1.75092215738978e-02 + 6.24062268199277e-03 1.92737269450562e-02 + 7.54740536677814e-03 2.10551920713005e-02 + 8.94341992064346e-03 2.28830596185717e-02 + 1.04710077300238e-02 2.47255697363701e-02 + 1.20884012253117e-02 2.66189106966348e-02 + 1.38520540216189e-02 2.85155544569944e-02 + 1.57538252832241e-02 3.04237067797815e-02 + 1.77681435802238e-02 3.23726800924697e-02 + 1.98651227360326e-02 3.43962534435927e-02 + 2.21247244203388e-02 3.64158580641648e-02 + 2.45284811789666e-02 3.84542786038096e-02 + 2.70797126293869e-02 4.05086907274035e-02 + 2.97713970613449e-02 4.25955179697784e-02 + 3.25934127100249e-02 4.47318036374387e-02 + 3.55618220018821e-02 4.69039793632072e-02 + 3.86836906268538e-02 4.91103908591560e-02 + 4.19661079042882e-02 5.13452316640530e-02 + 4.54195931002610e-02 5.36005424735060e-02 + 4.90533369175556e-02 5.58703224938828e-02 + 5.28474279411799e-02 5.81942364368840e-02 + 5.68395292704747e-02 6.05166790176710e-02 + 6.10288780337881e-02 6.28493270475509e-02 + 6.54071465451169e-02 6.52146960136306e-02 + 6.99800855562079e-02 6.76141714293276e-02 + 7.47299921393616e-02 7.00928446530985e-02 + 7.97349694380070e-02 7.25080974627385e-02 + 8.49609191753247e-02 7.49373418732565e-02 + 9.03863431014392e-02 7.74411126435351e-02 + 9.60597012920897e-02 7.99261936987175e-02 + 1.01984926382490e-01 8.24310363129346e-02 + 1.08155469732798e-01 8.49653756451838e-02 + 1.14574779429234e-01 8.75131666717048e-02 + 1.21251387707475e-01 9.00699473431387e-02 + 1.28195102790333e-01 9.26263962880819e-02 + 1.35435072734491e-01 9.51218497619305e-02 + 1.42949252027610e-01 9.76304862957753e-02 + 1.50743822415266e-01 1.00143225443294e-01 + 1.58842313055751e-01 1.02614343572487e-01 + 1.67251089180853e-01 1.05037311736569e-01 + 1.75978460980627e-01 1.07398386544002e-01 + 1.85033942788463e-01 1.09676903953931e-01 + 1.94412030223010e-01 1.11906753065792e-01 + 2.04110352857490e-01 1.14127897662318e-01 + 2.14149527961947e-01 1.16265117747636e-01 + 2.24547481767990e-01 1.18248683868967e-01 + 2.35294419696161e-01 1.20148148534840e-01 + 2.46402639597428e-01 1.21897385397864e-01 + 2.57869912676765e-01 1.23526834665610e-01 + 2.69696468272276e-01 1.25053947368743e-01 + 2.81898741199044e-01 1.26364975026619e-01 + 2.94471881045941e-01 1.27487690783284e-01 + 3.07418691339119e-01 1.28414307575311e-01 + 3.20741558118385e-01 1.29056641751163e-01 + 3.34435620226968e-01 1.29474248027250e-01 + 3.48500353688656e-01 1.29624393334326e-01 + 3.62929932989329e-01 1.29396296126059e-01 + 3.77722526892471e-01 1.28930828553253e-01 + 3.92869955516012e-01 1.28156113952553e-01 + 4.08370908134265e-01 1.27114694902152e-01 + 4.24220308156953e-01 1.25806236875891e-01 + 4.40412755529192e-01 1.24220713149001e-01 + 4.56953405525328e-01 1.22475796836960e-01 + 4.73821213743432e-01 1.20395388434913e-01 + 4.91013482752600e-01 1.18050411789495e-01 + 5.08535020400488e-01 1.15490643648704e-01 + 5.26377360286358e-01 1.12710340482628e-01 + 5.44524273775329e-01 1.09660985096774e-01 + 5.62974211427790e-01 1.06393299108221e-01 + 5.81725427948974e-01 1.02949051041186e-01 + 6.00768970403698e-01 9.93338710397741e-02 + 6.20082840879561e-01 9.54749572480719e-02 + 6.39652920613148e-01 9.13660653707297e-02 + 6.59487153767914e-01 8.71101696164325e-02 + 6.79575519171002e-01 8.27251675441617e-02 + 6.99894148304263e-01 7.81515132973927e-02 + 7.20444328669405e-01 7.34673024705215e-02 + 7.41209985385736e-01 6.86669596077010e-02 + 7.62176328526465e-01 6.37536068656100e-02 + 7.83326857277745e-01 5.87278224664763e-02 + 8.04644827719480e-01 5.35902846761059e-02 + 8.26113390531774e-01 4.83441901136536e-02 + 8.47715298834171e-01 4.29917435480749e-02 + 8.69451154762037e-01 3.76211700207279e-02 + 8.91282457860132e-01 3.21440170875230e-02 + 9.13213765042928e-01 2.66674634778728e-02 + 9.35201490491600e-01 2.10851818173222e-02 + 9.57229521434730e-01 1.46843783125432e-02 + 9.79261819214701e-01 7.64883901865307e-03 + 1.00000000000000e+00 3.48671814865888e-04 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF20_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF20_Coords.txt new file mode 100644 index 00000000..8e86a6c9 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF20_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -1.16970450232154e-05 + 9.76925950475657e-01 2.89849629928081e-03 + 9.54056302293072e-01 5.27987438372875e-03 + 9.31048128850624e-01 7.19864995910977e-03 + 9.07985124166376e-01 8.59432633354728e-03 + 8.84963341017396e-01 8.76245996738773e-03 + 8.62070108500804e-01 7.89821744156301e-03 + 8.39377957233181e-01 5.82757272129634e-03 + 8.16952105741759e-01 2.74131006023888e-03 + 7.94848134812973e-01 -1.31047187114084e-03 + 7.73099762468629e-01 -6.19594038201392e-03 + 7.51713796559463e-01 -1.17316935887704e-02 + 7.30707465507159e-01 -1.78243181962159e-02 + 7.10048880246723e-01 -2.42736757420121e-02 + 6.89717065485909e-01 -3.09377224920066e-02 + 6.69703185975444e-01 -3.77351051006435e-02 + 6.50003630817286e-01 -4.46004260244532e-02 + 6.30597616366455e-01 -5.14349380887498e-02 + 6.11441818070351e-01 -5.80781149510869e-02 + 5.92545822192135e-01 -6.45215136200802e-02 + 5.73913326684091e-01 -7.07373461559128e-02 + 5.55506287086248e-01 -7.65813023757692e-02 + 5.37365867311171e-01 -8.21381752489661e-02 + 5.19488675136997e-01 -8.73572229383648e-02 + 5.01868935197649e-01 -9.21948826265366e-02 + 4.84511382435821e-01 -9.66125856407465e-02 + 4.67432104979211e-01 -1.00628904032081e-01 + 4.50643532673488e-01 -1.04265668268842e-01 + 4.34148314472208e-01 -1.07478023174613e-01 + 4.17951273380630e-01 -1.10235646319524e-01 + 4.02081583043242e-01 -1.12662589853757e-01 + 3.86536904904201e-01 -1.14691181363898e-01 + 3.71333778363175e-01 -1.16376698317397e-01 + 3.56481987324237e-01 -1.17794019293702e-01 + 3.41979279301955e-01 -1.18871441512321e-01 + 3.27832555060862e-01 -1.19600488549061e-01 + 3.14049364730407e-01 -1.20059113518256e-01 + 3.00631508155208e-01 -1.20254220188729e-01 + 2.87582216544618e-01 -1.20159958866052e-01 + 2.74902221193761e-01 -1.19865036371322e-01 + 2.62590720444375e-01 -1.19348842067133e-01 + 2.50649124402496e-01 -1.18621135823199e-01 + 2.39078845345792e-01 -1.17656533028436e-01 + 2.27867184439070e-01 -1.16582394562078e-01 + 2.17021456811297e-01 -1.15308380050123e-01 + 2.06538387308884e-01 -1.13853615562753e-01 + 1.96405791960340e-01 -1.12282176086080e-01 + 1.86618882329224e-01 -1.10617167094150e-01 + 1.77184649555781e-01 -1.08781185951076e-01 + 1.68076082704334e-01 -1.06908773866295e-01 + 1.59314215217802e-01 -1.04873638045081e-01 + 1.50852862448295e-01 -1.02861593237538e-01 + 1.42724842088730e-01 -1.00718365786054e-01 + 1.34902608040035e-01 -9.85287421796948e-02 + 1.27384992592018e-01 -9.62861825827909e-02 + 1.20170299874457e-01 -9.39710611432170e-02 + 1.13226789857415e-01 -9.16709983326127e-02 + 1.06580720474888e-01 -8.93032875865484e-02 + 1.00217178769272e-01 -8.68749312381822e-02 + 9.40916537592124e-02 -8.45028367434999e-02 + 8.82337163668553e-02 -8.20944117938331e-02 + 8.26115051483221e-02 -7.97126340550203e-02 + 7.72312330966435e-02 -7.73288341051596e-02 + 7.21130677350178e-02 -7.48833638768388e-02 + 6.71894736753951e-02 -7.24763209375136e-02 + 6.24856412277135e-02 -7.00416636170101e-02 + 5.80294161668677e-02 -6.75572914548322e-02 + 5.37899973283964e-02 -6.50720675769313e-02 + 4.97376985419173e-02 -6.26297954371682e-02 + 4.58940560730263e-02 -6.01849905424522e-02 + 4.22416037500420e-02 -5.77591819336826e-02 + 3.87861465552347e-02 -5.53392550403537e-02 + 3.55262959996525e-02 -5.29181938435960e-02 + 3.24472582872532e-02 -5.05155931301242e-02 + 2.95362641509762e-02 -4.81404755119313e-02 + 2.67729953169852e-02 -4.58090684459152e-02 + 2.41939083904648e-02 -4.34848129849921e-02 + 2.18141572031663e-02 -4.11543813853988e-02 + 1.95673854713824e-02 -3.88737506338495e-02 + 1.74477564779088e-02 -3.66431614312941e-02 + 1.54752345352323e-02 -3.44358303125963e-02 + 1.36342551938651e-02 -3.22650844102067e-02 + 1.19084234941661e-02 -3.01413804853732e-02 + 1.02942941011661e-02 -2.80648529097022e-02 + 8.86743811777817e-03 -2.59756933328882e-02 + 7.49856900534070e-03 -2.39690434637317e-02 + 6.29098663294263e-03 -2.19677989083217e-02 + 5.22308841935517e-03 -1.99933475331875e-02 + 4.24008866088351e-03 -1.80740827427679e-02 + 3.40280642281631e-03 -1.61810689964114e-02 + 2.68688998868729e-03 -1.43265021403969e-02 + 2.04591034039661e-03 -1.25280222785356e-02 + 1.52162287314027e-03 -1.07769333035290e-02 + 1.09208473544427e-03 -9.07280332309622e-03 + 7.75103994536751e-04 -7.41691607941299e-03 + 4.52353374589913e-04 -5.83014500820004e-03 + 2.49723979775574e-04 -4.28843531366952e-03 + 1.06661955669598e-04 -2.80345353766615e-03 + 3.27195725030880e-05 -1.37348955310638e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 3.26413884329373e-05 1.37318323731147e-03 + 1.07225011317394e-04 2.80153107572479e-03 + 2.61262892040196e-04 4.28285015690166e-03 + 4.70931448264386e-04 5.81923659176159e-03 + 8.04058189317705e-04 7.39899934408296e-03 + 1.18395464357889e-03 9.03211811477640e-03 + 1.62790475131778e-03 1.07268695231018e-02 + 2.35805156291858e-03 1.23907220018351e-02 + 3.12729867551767e-03 1.41221855611746e-02 + 4.09811443518625e-03 1.58417552692127e-02 + 5.15013525889198e-03 1.76056029553215e-02 + 6.35251451470470e-03 1.93733209765600e-02 + 7.68136628992783e-03 2.11568889489349e-02 + 9.09705641338774e-03 2.29878091550079e-02 + 1.06457219627370e-02 2.48321471768241e-02 + 1.22840569946196e-02 2.67273324555485e-02 + 1.40693975554630e-02 2.86248786440320e-02 + 1.59938671904845e-02 3.05326851588142e-02 + 1.80320179344073e-02 3.24804018390111e-02 + 2.01525184247463e-02 3.45030950602257e-02 + 2.24382250539517e-02 3.65190950131922e-02 + 2.48676010790424e-02 3.85540869978262e-02 + 2.74438995195706e-02 4.06048186992883e-02 + 3.01630613080321e-02 4.26855478409807e-02 + 3.30131439394830e-02 4.48150556811931e-02 + 3.60078117153417e-02 4.69819958893802e-02 + 3.91555926213345e-02 4.91831364532758e-02 + 4.24650818770967e-02 5.14111490804253e-02 + 4.59463399533206e-02 5.36584113782445e-02 + 4.96085019195341e-02 5.59187875417100e-02 + 5.34304029583731e-02 5.82339756158755e-02 + 5.74506053673470e-02 6.05464382961678e-02 + 6.16688433559805e-02 6.28675145510649e-02 + 6.60761101690652e-02 6.52205906481849e-02 + 7.06771229650270e-02 6.76087786085493e-02 + 7.54534564656442e-02 7.00783385211843e-02 + 8.04871181124642e-02 7.24796963744080e-02 + 8.57417937708899e-02 7.48942120614805e-02 + 9.11943707542743e-02 7.73854695174959e-02 + 9.68950720892806e-02 7.98566713262581e-02 + 1.02847573387230e-01 8.22876079010535e-02 + 1.09044858215908e-01 8.47210179791181e-02 + 1.15490222891971e-01 8.71750070246340e-02 + 1.22192184613505e-01 8.96434844224979e-02 + 1.29160511286559e-01 9.21174420433711e-02 + 1.36425397154230e-01 9.45156825723323e-02 + 1.43963785764342e-01 9.69333711278718e-02 + 1.51780847657248e-01 9.93726343552587e-02 + 1.59901053759045e-01 1.01772022005663e-01 + 1.68330718517798e-01 1.04124856132688e-01 + 1.77078093160315e-01 1.06417242140794e-01 + 1.86152768336554e-01 1.08626721316434e-01 + 1.95547957086479e-01 1.10808018380726e-01 + 2.05262344651788e-01 1.12982949744755e-01 + 2.15316288411784e-01 1.15080703683943e-01 + 2.25727640430810e-01 1.17028842247463e-01 + 2.36486953294469e-01 1.18893468221244e-01 + 2.47606103597236e-01 1.20613966312300e-01 + 2.59082067962401e-01 1.22236590592394e-01 + 2.70915428466803e-01 1.23770388922269e-01 + 2.83123302721779e-01 1.25093790952213e-01 + 2.95700040272605e-01 1.26248167564620e-01 + 3.08649339579229e-01 1.27202204411106e-01 + 3.21973207911371e-01 1.27886002490200e-01 + 3.35666915940575e-01 1.28336009455904e-01 + 3.49729856148137e-01 1.28515938919406e-01 + 3.64156044605897e-01 1.28322082434802e-01 + 3.78943465936109e-01 1.27872557734258e-01 + 3.94083763263825e-01 1.27105654197604e-01 + 4.09575696342703e-01 1.26076864381629e-01 + 4.25414011369775e-01 1.24776753517338e-01 + 4.41593423933488e-01 1.23203803654028e-01 + 4.58118698550793e-01 1.21453065442532e-01 + 4.74969289264106e-01 1.19379481227578e-01 + 4.92141581296370e-01 1.17024136753557e-01 + 5.09640928459442e-01 1.14468473774205e-01 + 5.27459181191729e-01 1.11706370002499e-01 + 5.45579400762510e-01 1.08675938318902e-01 + 5.64000646601103e-01 1.05430671339811e-01 + 5.82720846933108e-01 1.02001576810010e-01 + 6.01731586141294e-01 9.83969151548686e-02 + 6.21010755973352e-01 9.45591973944104e-02 + 6.40543478738464e-01 9.04796724759952e-02 + 6.60338537645302e-01 8.62499884007561e-02 + 6.80385825453853e-01 8.18833516289867e-02 + 7.00661796733097e-01 7.73360839181257e-02 + 7.21167806331622e-01 7.26753969763489e-02 + 7.41887916488567e-01 6.78960039061239e-02 + 7.62806892564257e-01 6.29998067215964e-02 + 7.83908861634844e-01 5.79878832722068e-02 + 8.05177351436274e-01 5.28629172742288e-02 + 8.26595261100184e-01 4.76276642630319e-02 + 8.48144449629654e-01 4.22843337759070e-02 + 8.69827140629476e-01 3.69111819966000e-02 + 8.91604637206406e-01 3.14360883953754e-02 + 9.13481489167149e-01 2.59485561418769e-02 + 9.35413129302637e-01 2.03601258502341e-02 + 9.57385180896840e-01 1.40200210251241e-02 + 9.79362661611973e-01 7.10265085432084e-03 + 1.00000000000000e+00 -1.07577592503420e-05 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF21_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF21_Coords.txt new file mode 100644 index 00000000..388e7950 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF21_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -2.84740725711342e-05 + 9.76865338872185e-01 2.85428304137865e-03 + 9.53929219800446e-01 5.24327408174464e-03 + 9.30868587354945e-01 7.20751732930949e-03 + 9.07757786371386e-01 8.68022664963385e-03 + 8.84685981963589e-01 9.16779767337892e-03 + 8.61737273650503e-01 8.59878745573448e-03 + 8.38982716451081e-01 6.97032631101525e-03 + 8.16487465310072e-01 4.27790070293695e-03 + 7.94307280144394e-01 5.98958387499667e-04 + 7.72478209244049e-01 -3.92421216988763e-03 + 7.51009294443888e-01 -9.11447969158894e-03 + 7.29917171589636e-01 -1.48652160246661e-02 + 7.09173987466613e-01 -2.09915209310793e-02 + 6.88759055777041e-01 -2.73426738600162e-02 + 6.68666517410726e-01 -3.38483930358717e-02 + 6.48890300856279e-01 -4.04237940323079e-02 + 6.29411879426884e-01 -4.69774888101651e-02 + 6.10190624345359e-01 -5.33527496658855e-02 + 5.91235514841636e-01 -5.95364517406264e-02 + 5.72549427006805e-01 -6.54947690043992e-02 + 5.54098681203993e-01 -7.10990749251103e-02 + 5.35920827161821e-01 -7.64189417500869e-02 + 5.18012958869965e-01 -8.14046707993908e-02 + 5.00370906490186e-01 -8.60216565775983e-02 + 4.82998993642838e-01 -9.02272377996711e-02 + 4.65913482233682e-01 -9.40474533539546e-02 + 4.49125729712078e-01 -9.74967264248575e-02 + 4.32639419880572e-01 -1.00542965307158e-01 + 4.16459539589475e-01 -1.03161374243716e-01 + 4.00613215473433e-01 -1.05466420900906e-01 + 3.85098707684728e-01 -1.07402177176065e-01 + 3.69931266330609e-01 -1.09020571824359e-01 + 3.55119768331056e-01 -1.10391209715929e-01 + 3.40661821755905e-01 -1.11451999694907e-01 + 3.26563430473896e-01 -1.12194090288857e-01 + 3.12830956759217e-01 -1.12692769163857e-01 + 2.99465542002860e-01 -1.12952761784846e-01 + 2.86469704616211e-01 -1.12949992221423e-01 + 2.73843543674708e-01 -1.12766407873851e-01 + 2.61586025508254e-01 -1.12380265536283e-01 + 2.49698014015215e-01 -1.11799275824114e-01 + 2.38180021002129e-01 -1.11005012677545e-01 + 2.27020875450809e-01 -1.10103654156307e-01 + 2.16226137874301e-01 -1.09019236030612e-01 + 2.05793116599237e-01 -1.07760935076377e-01 + 1.95709833948425e-01 -1.06391330139806e-01 + 1.85971073779880e-01 -1.04935019609158e-01 + 1.76583031796272e-01 -1.03315378553033e-01 + 1.67520981485238e-01 -1.01654758321660e-01 + 1.58802515906259e-01 -9.98409591053214e-02 + 1.50385000970262e-01 -9.80499859448751e-02 + 1.42298158727063e-01 -9.61306196719593e-02 + 1.34516269147850e-01 -9.41634136087469e-02 + 1.27037305703638e-01 -9.21442045117529e-02 + 1.19859512781939e-01 -9.00492381147093e-02 + 1.12952800949352e-01 -8.79682875564088e-02 + 1.06339499636755e-01 -8.58264580885655e-02 + 1.00007414389900e-01 -8.36143627290609e-02 + 9.39147764330701e-02 -8.14516604635932e-02 + 8.80868393032252e-02 -7.92537536059723e-02 + 8.24946159428780e-02 -7.70801723815972e-02 + 7.71274250919293e-02 -7.49012538073132e-02 + 7.20190535116052e-02 -7.26564811445412e-02 + 6.71057079852937e-02 -7.03934414720974e-02 + 6.24118140095744e-02 -6.80431207723954e-02 + 5.79644757418812e-02 -6.56460890316721e-02 + 5.37333540900433e-02 -6.32481286299431e-02 + 4.96893756299879e-02 -6.08884959776765e-02 + 4.58534457561426e-02 -5.85255201649711e-02 + 4.22083319889390e-02 -5.61793213837462e-02 + 3.87596121937182e-02 -5.38383821901660e-02 + 3.55057922281837e-02 -5.14962236665323e-02 + 3.24322743559543e-02 -4.91703134749231e-02 + 2.95264783129621e-02 -4.68695823371802e-02 + 2.67683318695932e-02 -4.46098816905116e-02 + 2.41934701367245e-02 -4.23573844305122e-02 + 2.18548607049960e-02 -4.00989773901928e-02 + 1.96524338700715e-02 -3.78875178579182e-02 + 1.75755260431319e-02 -3.57232070150690e-02 + 1.56358377059865e-02 -3.35811088781324e-02 + 1.38207984844720e-02 -3.14734077737011e-02 + 1.21180061661380e-02 -2.94102107211683e-02 + 1.05254874189780e-02 -2.73912953793136e-02 + 9.09360929036987e-03 -2.53625298476404e-02 + 7.72181822309867e-03 -2.34101512080760e-02 + 6.49763138245874e-03 -2.14641052056444e-02 + 5.40871842169344e-03 -1.95429445805207e-02 + 4.40961919998241e-03 -1.76727016085954e-02 + 3.55040219006997e-03 -1.58276863888619e-02 + 2.80808183134115e-03 -1.40194239937278e-02 + 2.14649703528823e-03 -1.22634144788593e-02 + 1.59920737776881e-03 -1.05527195276620e-02 + 1.14930375044154e-03 -8.88654178716626e-03 + 8.10231534512569e-04 -7.26673074294147e-03 + 4.78895883677518e-04 -5.71256790934727e-03 + 2.63639401109400e-04 -4.20252872193405e-03 + 1.11557989496940e-04 -2.74745794723513e-03 + 3.44756369415605e-05 -1.34604561592499e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 3.20816693922806e-05 1.34573179197360e-03 + 1.07094538044363e-04 2.74581135191723e-03 + 2.61023002477552e-04 4.19787122797409e-03 + 4.70744609715971e-04 5.70378084563639e-03 + 8.02668778110153e-04 7.25269694625556e-03 + 1.18211679499553e-03 8.85342213515878e-03 + 1.62613136894154e-03 1.05133892427942e-02 + 2.35095850098151e-03 1.21472955138763e-02 + 3.11291707163376e-03 1.38451043913963e-02 + 4.06681615370234e-03 1.55343607101053e-02 + 5.10318321837548e-03 1.72662509388141e-02 + 6.28537915014080e-03 1.90038719565046e-02 + 7.59081076018542e-03 2.07586526711072e-02 + 8.98284133346192e-03 2.25595390649685e-02 + 1.05048772029216e-02 2.43750659231944e-02 + 1.21173705320911e-02 2.62396209517460e-02 + 1.38724687721741e-02 2.81092919141236e-02 + 1.57628531446385e-02 2.99916503138032e-02 + 1.77668024925910e-02 3.19129888938685e-02 + 1.98560304119069e-02 3.39051089397272e-02 + 2.21065209505667e-02 3.58935725801445e-02 + 2.44975644102754e-02 3.79031615747998e-02 + 2.70332347408878e-02 3.99299291146165e-02 + 2.97109628466766e-02 4.19867024992787e-02 + 3.25200587654925e-02 4.40903080891470e-02 + 3.54726867654753e-02 4.62315479726106e-02 + 3.85766530005811e-02 4.84076241040826e-02 + 4.18413693987001e-02 5.06110330462258e-02 + 4.52764942398936e-02 5.28343865988492e-02 + 4.88907425761762e-02 5.50724163659514e-02 + 5.26646691476036e-02 5.73640816538310e-02 + 5.66345029639527e-02 5.96558451069643e-02 + 6.08009395375298e-02 6.19577340085226e-02 + 6.51558010698599e-02 6.42917617552471e-02 + 6.97040980071108e-02 6.66604081412036e-02 + 7.44292782322818e-02 6.91063981945018e-02 + 7.94075911539318e-02 7.14919169255233e-02 + 8.46064336120551e-02 7.38912356977943e-02 + 9.00046646171667e-02 7.63634375717562e-02 + 9.56495329755105e-02 7.88186816028507e-02 + 1.01544707534728e-01 8.12061081549737e-02 + 1.07684393957011e-01 8.35823621854077e-02 + 1.14072629815357e-01 8.59820974163730e-02 + 1.20717936678019e-01 8.83984296232361e-02 + 1.27629750106332e-01 9.08236951338500e-02 + 1.34836465041941e-01 9.31733181108972e-02 + 1.42317922535003e-01 9.55435716133629e-02 + 1.50079297300981e-01 9.79421782603361e-02 + 1.58143784516036e-01 1.00304899967289e-01 + 1.66517972957835e-01 1.02624809036553e-01 + 1.75210207161683e-01 1.04888579553756e-01 + 1.84229946037827e-01 1.07074677598208e-01 + 1.93571360679093e-01 1.09243451986783e-01 + 2.03234945574175e-01 1.11402415125159e-01 + 2.13239205546370e-01 1.13491436907172e-01 + 2.23601537222704e-01 1.15440504439587e-01 + 2.34314315339563e-01 1.17306503096526e-01 + 2.45388676682413e-01 1.19037311828905e-01 + 2.56822498877269e-01 1.20681072953816e-01 + 2.68616771371790e-01 1.22241825144540e-01 + 2.80788220103666e-01 1.23601558631169e-01 + 2.93331680600211e-01 1.24805212165338e-01 + 3.06251511490344e-01 1.25807926970102e-01 + 3.19549745336724e-01 1.26554338608240e-01 + 3.33222453479109e-01 1.27061326118213e-01 + 3.47269018943833e-01 1.27298091243991e-01 + 3.61683948293755e-01 1.27170458380383e-01 + 3.76464979016090e-01 1.26770572192297e-01 + 3.91604054165987e-01 1.26048320133488e-01 + 4.07099743027696e-01 1.25063728629558e-01 + 4.22946891110087e-01 1.23804897872974e-01 + 4.39140508807244e-01 1.22276792353123e-01 + 4.55684294155409e-01 1.20554509111602e-01 + 4.72559601516541e-01 1.18524015966612e-01 + 4.89761912975334e-01 1.16207419090395e-01 + 5.07296139266516e-01 1.13684964275664e-01 + 5.25154357085284e-01 1.10950890395180e-01 + 5.43320252389640e-01 1.07950681161174e-01 + 5.61792716627316e-01 1.04735757711390e-01 + 5.80568803339265e-01 1.01328525940682e-01 + 5.99640262789189e-01 9.77381351876646e-02 + 6.18986539924185e-01 9.39237635066851e-02 + 6.38592769146560e-01 8.98769749368346e-02 + 6.58465976460566e-01 8.56827556065770e-02 + 6.78595728050462e-01 8.13433005574353e-02 + 6.98959863838616e-01 7.68298671125305e-02 + 7.19558497677296e-01 7.21964039086358e-02 + 7.40375559459272e-01 6.74380995266311e-02 + 7.61395509952232e-01 6.25588162368450e-02 + 7.82602242599360e-01 5.75571816126900e-02 + 8.03979199523738e-01 5.24376017015890e-02 + 8.25508947220265e-01 4.72044836666912e-02 + 8.47173082201993e-01 4.18658829372147e-02 + 8.68972243269945e-01 3.64790803343795e-02 + 8.90869140608345e-01 3.09938752249591e-02 + 9.12865896627548e-01 2.54780934053288e-02 + 9.34919781152421e-01 1.98727453143736e-02 + 9.57016514682770e-01 1.36303405789984e-02 + 9.79120888238619e-01 6.90832082291697e-03 + 1.00000000000000e+00 3.57170593908316e-05 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF22_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF22_Coords.txt new file mode 100644 index 00000000..ee67f764 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF22_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -1.37905772906987e-04 + 9.76725991935908e-01 2.75905550847849e-03 + 9.53631351611733e-01 5.18607754339260e-03 + 9.30439467907717e-01 7.21116637405844e-03 + 9.07208132179710e-01 8.76441631458846e-03 + 8.84013496158046e-01 9.51161259804528e-03 + 8.60933319861523e-01 9.19547841137385e-03 + 8.38035712490432e-01 7.96595476402018e-03 + 8.15385168895348e-01 5.62847327150540e-03 + 7.93037657818789e-01 2.28558101061580e-03 + 7.71032949299981e-01 -1.90093741181228e-03 + 7.49384114270963e-01 -6.76049461633643e-03 + 7.28106510273087e-01 -1.21725858076415e-02 + 7.07180107191085e-01 -1.79684774976327e-02 + 6.86585882704839e-01 -2.39949416112886e-02 + 6.66322327664117e-01 -3.01870419451860e-02 + 6.46380042253330e-01 -3.64467876017566e-02 + 6.26744157329858e-01 -4.26868759536930e-02 + 6.07380274045402e-01 -4.87646156436792e-02 + 5.88295958690534e-01 -5.46605390281692e-02 + 5.69492521413567e-01 -6.03344111379996e-02 + 5.50944917753757e-01 -6.56813210738157e-02 + 5.32683529719922e-01 -7.07499443242120e-02 + 5.14706548079326e-01 -7.54948621351449e-02 + 4.97012214427392e-01 -7.98856360729547e-02 + 4.79604661938784e-01 -8.38829246167327e-02 + 4.62499971271577e-01 -8.75164861473946e-02 + 4.45707439025159e-01 -9.07910364185073e-02 + 4.29232251749769e-01 -9.36853302638665e-02 + 4.13079887518895e-01 -9.61843197334282e-02 + 3.97273156999330e-01 -9.83823772625506e-02 + 3.81811499955324e-01 -1.00238171273862e-01 + 3.66707654879754e-01 -1.01796983957391e-01 + 3.51968873020320e-01 -1.03118493586559e-01 + 3.37592692843044e-01 -1.04152291381984e-01 + 3.23583613955391e-01 -1.04892228070397e-01 + 3.09945962441104e-01 -1.05403595252986e-01 + 2.96679877893668e-01 -1.05689666745533e-01 + 2.83786673843868e-01 -1.05732022868329e-01 + 2.71265428998315e-01 -1.05601326789481e-01 + 2.59114641005256e-01 -1.05279433841182e-01 + 2.47334122817983e-01 -1.04772898258849e-01 + 2.35922762413987e-01 -1.04073450080798e-01 + 2.24871859339431e-01 -1.03261410015675e-01 + 2.14183854398850e-01 -1.02280347491613e-01 + 2.03856443420195e-01 -1.01137855951245e-01 + 1.93878365466042e-01 -9.98859412460872e-02 + 1.84243680326433e-01 -9.85473584321357e-02 + 1.74956557366324e-01 -9.70603160684741e-02 + 1.65996483607503e-01 -9.55230954068784e-02 + 1.57374597017771e-01 -9.38510527263059e-02 + 1.49055367342827e-01 -9.21872601100961e-02 + 1.41061804544547e-01 -9.04086149008263e-02 + 1.33371830662132e-01 -8.85813343893779e-02 + 1.25981833168783e-01 -8.67037376102544e-02 + 1.18889524396252e-01 -8.47556746420726e-02 + 1.12068484997073e-01 -8.28134777714908e-02 + 1.05533508673527e-01 -8.08202882655789e-02 + 9.92765954754487e-02 -7.87616970055698e-02 + 9.32618460232315e-02 -7.67377034670206e-02 + 8.75063188947793e-02 -7.46839878289475e-02 + 8.19865845292902e-02 -7.26460887111042e-02 + 7.66696758964058e-02 -7.06018837113606e-02 + 7.16044906719353e-02 -6.85025449105124e-02 + 6.67363367619081e-02 -6.63816283727544e-02 + 6.20862671655154e-02 -6.41837626120213e-02 + 5.76781158267178e-02 -6.19465872092337e-02 + 5.34835811930607e-02 -5.97092958338184e-02 + 4.94762917876905e-02 -5.75018783824138e-02 + 4.56743711349976e-02 -5.52907634791866e-02 + 4.20616172369434e-02 -5.30929364276299e-02 + 3.86426064710656e-02 -5.08998396737268e-02 + 3.54153788093397e-02 -4.87062512082961e-02 + 3.23662010540160e-02 -4.65256202361847e-02 + 2.94833263627923e-02 -4.43663553536911e-02 + 2.67477674550665e-02 -4.22428674968400e-02 + 2.41915370057616e-02 -4.01273164512632e-02 + 2.18857573818062e-02 -3.80078237337925e-02 + 1.97179884024849e-02 -3.59301627477569e-02 + 1.76757845498892e-02 -3.38938481159999e-02 + 1.57641027306169e-02 -3.18781262584388e-02 + 1.39724593422236e-02 -2.98931987545935e-02 + 1.22918968479213e-02 -2.79480618328304e-02 + 1.07221372201749e-02 -2.60416137215328e-02 + 9.28872160500910e-03 -2.41314304207875e-02 + 7.91630048953282e-03 -2.22853322080103e-02 + 6.67953167608040e-03 -2.04480781470025e-02 + 5.57389618300349e-03 -1.86324963909326e-02 + 4.56332093730877e-03 -1.68598162507488e-02 + 3.68524480226045e-03 -1.51108431623255e-02 + 2.91938579202685e-03 -1.33953381237321e-02 + 2.24116079129066e-03 -1.17246173969605e-02 + 1.67248583161617e-03 -1.00953735229212e-02 + 1.20324454848532e-03 -8.50604304796152e-03 + 8.41606529174913e-04 -6.95951603892573e-03 + 5.04718335749302e-04 -5.47175146445821e-03 + 2.77648316387901e-04 -4.02638290581776e-03 + 1.17748797893260e-04 -2.63253995295761e-03 + 3.69468292642352e-05 -1.28969548263411e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 3.09535021918612e-05 1.28936436929246e-03 + 1.06637401949987e-04 2.63142100210815e-03 + 2.59964572072159e-04 4.02351019908418e-03 + 4.69920111426106e-04 5.46706336175963e-03 + 7.96541452526313e-04 6.95306199333623e-03 + 1.17401205379525e-03 8.48786363886347e-03 + 1.61831089593917e-03 1.00770346353190e-02 + 2.32333874774940e-03 1.16504559884271e-02 + 3.06712959817167e-03 1.32804282822632e-02 + 3.98276803748560e-03 1.49090049113570e-02 + 4.98344743343845e-03 1.65770603791945e-02 + 6.11996090735756e-03 1.82551557640217e-02 + 7.37297343445192e-03 1.99533035573824e-02 + 8.71286539087883e-03 2.16948370578646e-02 + 1.01765501551493e-02 2.34537701968742e-02 + 1.17322670694759e-02 2.52581891303742e-02 + 1.34217992141067e-02 2.70733747583812e-02 + 1.52388298301360e-02 2.89063564237294e-02 + 1.71688461558914e-02 3.07767937542747e-02 + 1.91899331878790e-02 3.27097377805680e-02 + 2.13638093661363e-02 3.46457797783486e-02 + 2.36723297656305e-02 3.66070405437775e-02 + 2.61211854117630e-02 3.85883561887161e-02 + 2.87097811699761e-02 4.06004475067315e-02 + 3.14304301249726e-02 4.26557978654197e-02 + 3.42931270832587e-02 4.47486944963130e-02 + 3.73038188445460e-02 4.68776749211300e-02 + 4.04730361230994e-02 4.90353694174481e-02 + 4.38097981156242e-02 5.12147401773910e-02 + 4.73220204778543e-02 5.34122475810596e-02 + 5.09939923040230e-02 5.56608916859612e-02 + 5.48571252255563e-02 5.79155152658394e-02 + 5.89138291139096e-02 6.01837002893103e-02 + 6.31577497344129e-02 6.24845191863370e-02 + 6.75947899647940e-02 6.48186842922515e-02 + 7.22122652229698e-02 6.72216823767386e-02 + 7.70740114758716e-02 6.95807319849553e-02 + 8.21553322345438e-02 7.19550902719777e-02 + 8.74394236745447e-02 7.43941379373109e-02 + 9.29672017196781e-02 7.68226772209049e-02 + 9.87424021686052e-02 7.91978116359561e-02 + 1.04761752867740e-01 8.15667320414124e-02 + 1.11030780081871e-01 8.39572315421679e-02 + 1.17558018563720e-01 8.63625746301939e-02 + 1.24352270186846e-01 8.87774608495421e-02 + 1.31438105054613e-01 9.11321173164249e-02 + 1.38801313550205e-01 9.35029309525731e-02 + 1.46447393656373e-01 9.58971156573319e-02 + 1.54396766312990e-01 9.82613258248415e-02 + 1.62656569565700e-01 1.00588261686332e-01 + 1.71235347766832e-01 1.02865843879122e-01 + 1.80142279870852e-01 1.05076149462146e-01 + 1.89373799652761e-01 1.07269345993908e-01 + 1.98933590722142e-01 1.09443191127768e-01 + 2.08836636556623e-01 1.11554276573076e-01 + 2.19099471288483e-01 1.13540075332887e-01 + 2.29717904676441e-01 1.15442617819263e-01 + 2.40701766215834e-01 1.17220973164961e-01 + 2.52050933191971e-01 1.18911560197852e-01 + 2.63767077262110e-01 1.20517086973916e-01 + 2.75865949946677e-01 1.21934154882854e-01 + 2.88343581116220e-01 1.23201688742876e-01 + 3.01205334203085e-01 1.24270880831573e-01 + 3.14453408998862e-01 1.25097439258154e-01 + 3.28085392677879e-01 1.25681829879209e-01 + 3.42100675917614e-01 1.25997636647737e-01 + 3.56494768423971e-01 1.25962526629538e-01 + 3.71264984512598e-01 1.25638758942093e-01 + 3.86403905621335e-01 1.24988484201363e-01 + 4.01909708696471e-01 1.24068994185517e-01 + 4.17777487590764e-01 1.22870793211783e-01 + 4.34002789914367e-01 1.21403723025625e-01 + 4.50587361686721e-01 1.19722425477543e-01 + 4.67516097146081e-01 1.17745691253289e-01 + 4.84783008098729e-01 1.15478338348871e-01 + 5.02391973551338e-01 1.12996226374276e-01 + 5.20335411416213e-01 1.10293881931109e-01 + 5.38598443680468e-01 1.07327040011182e-01 + 5.57179445389403e-01 1.04143490655964e-01 + 5.76073870986909e-01 1.00758354775127e-01 + 5.95273625837750e-01 9.71818954906031e-02 + 6.14761209512960e-01 9.33892639430016e-02 + 6.34522016454894e-01 8.93721485884786e-02 + 6.54559394245177e-01 8.52121018071187e-02 + 6.74862300856641e-01 8.08992604208061e-02 + 6.95411169374383e-01 7.64180821116692e-02 + 7.16203679512635e-01 7.18100281693020e-02 + 7.37223461079002e-01 6.70709646616096e-02 + 7.58454521150695e-01 6.22070114365566e-02 + 7.79880103179641e-01 5.72143218232588e-02 + 8.01483398149160e-01 5.20988678810583e-02 + 8.23246404130259e-01 4.68667510151217e-02 + 8.45150485874660e-01 4.15319681044740e-02 + 8.67192695150624e-01 3.61314252690582e-02 + 8.89338539461505e-01 3.06353825258196e-02 + 9.11585423298854e-01 2.50909095333333e-02 + 9.33894494503434e-01 1.94679731415527e-02 + 9.56251121560769e-01 1.33384432495636e-02 + 9.78619325570430e-01 6.83697775457594e-03 + 1.00000000000000e+00 2.05198748460235e-04 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF23_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF23_Coords.txt new file mode 100644 index 00000000..b7ccee65 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF23_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -3.89631805446465e-04 + 9.76523223440909e-01 2.57752479218257e-03 + 9.53190468875220e-01 5.08428616099728e-03 + 9.29793700110228e-01 7.19463079459903e-03 + 9.06373069230989e-01 8.83683936265999e-03 + 8.82989474321167e-01 9.75643931673717e-03 + 8.59712867174704e-01 9.61496203663975e-03 + 8.36607653336429e-01 8.67096288412905e-03 + 8.13736696364153e-01 6.61459865723342e-03 + 7.91156003915796e-01 3.56436965978782e-03 + 7.68908626920759e-01 -3.19229213119966e-04 + 7.47012054504006e-01 -4.87284377280892e-03 + 7.25479893786865e-01 -9.96177887707548e-03 + 7.04301598747634e-01 -1.54349458980302e-02 + 6.83461873027533e-01 -2.11434442792537e-02 + 6.62962284386421e-01 -2.70203050251467e-02 + 6.42791629284883e-01 -3.29619235742479e-02 + 6.22938362223096e-01 -3.88812963489969e-02 + 6.03377191897424e-01 -4.46577924076831e-02 + 5.84113605921901e-01 -5.02638611712951e-02 + 5.65147058057943e-01 -5.56526737727627e-02 + 5.46463242401931e-01 -6.07476183166026e-02 + 5.28083600651341e-01 -6.55730561886808e-02 + 5.10007892084025e-01 -7.00900567751652e-02 + 4.92236196987507e-01 -7.42679957358169e-02 + 4.74773357090323e-01 -7.80766311425804e-02 + 4.57634431292357e-01 -8.15460818492506e-02 + 4.40826245471248e-01 -8.46702707193481e-02 + 4.24355029015101e-01 -8.74363864527718e-02 + 4.08227124292632e-01 -8.98419112116650e-02 + 3.92459570866590e-01 -9.19539503766752e-02 + 3.77053268096062e-01 -9.37469616449339e-02 + 3.62017890326388e-01 -9.52572816145339e-02 + 3.47358922971653e-01 -9.65314596619472e-02 + 3.33074130797390e-01 -9.75316311345544e-02 + 3.19166552441191e-01 -9.82568017865109e-02 + 3.05638457789601e-01 -9.87570424765259e-02 + 2.92489196946871e-01 -9.90352109981780e-02 + 2.79718896446607e-01 -9.90816142636686e-02 + 2.67325715523272e-01 -9.89532661236331e-02 + 2.55307554299133e-01 -9.86395210813088e-02 + 2.43662963759620e-01 -9.81468679323721e-02 + 2.32389051593200e-01 -9.74790188542946e-02 + 2.21479352444559e-01 -9.66892453470001e-02 + 2.10932960713701e-01 -9.57430626738486e-02 + 2.00746891023561e-01 -9.46523604003965e-02 + 1.90911241857401e-01 -9.34530543544128e-02 + 1.81419357741535e-01 -9.21641429584474e-02 + 1.72272201518936e-01 -9.07467422355202e-02 + 1.63454036160759e-01 -8.92690930011261e-02 + 1.54968504898213e-01 -8.76805069244906e-02 + 1.46789032362938e-01 -8.60792825829244e-02 + 1.38929389926432e-01 -8.43836334579841e-02 + 1.31372073509835e-01 -8.26402323580097e-02 + 1.24111669738838e-01 -8.08497501671892e-02 + 1.17144601558583e-01 -7.89996633722882e-02 + 1.10449627383806e-01 -7.71449373419936e-02 + 1.04032527949034e-01 -7.52514037061188e-02 + 9.78887241867816e-02 -7.33057936883226e-02 + 9.19902897469441e-02 -7.13774864507213e-02 + 8.63446174524882e-02 -6.94278850804577e-02 + 8.09349931912135e-02 -6.74837749535468e-02 + 7.57176279736417e-02 -6.55345654926341e-02 + 7.07422636872318e-02 -6.35487599075303e-02 + 6.59681013466920e-02 -6.15577280140700e-02 + 6.14091796784638e-02 -5.95276219887417e-02 + 5.70825310884753e-02 -5.74696232341217e-02 + 5.29640917916176e-02 -5.54139826908802e-02 + 4.90331099431885e-02 -5.33787557780121e-02 + 4.53019232083321e-02 -5.13412852201466e-02 + 4.17564728311483e-02 -4.93141304770355e-02 + 3.83992522495016e-02 -4.72921118209637e-02 + 3.52273324651378e-02 -4.52718650652909e-02 + 3.22287783868937e-02 -4.32621299402485e-02 + 2.93935765607861e-02 -4.12701495319455e-02 + 2.67049962322860e-02 -3.93074868211488e-02 + 2.41875159700224e-02 -3.73546300420540e-02 + 2.19051355335849e-02 -3.54024649802942e-02 + 1.97596598780863e-02 -3.34865723449696e-02 + 1.77404917592603e-02 -3.16046902103228e-02 + 1.58480959117786e-02 -2.97420661384396e-02 + 1.40731937772208e-02 -2.79068578544306e-02 + 1.24092192372854e-02 -2.61060448917434e-02 + 1.08572800374988e-02 -2.43371683353192e-02 + 9.42416939885715e-03 -2.25730887258294e-02 + 8.05945666798942e-03 -2.08575096912792e-02 + 6.81900211726789e-03 -1.91549248355902e-02 + 5.70427188596224e-03 -1.74708678303986e-02 + 4.68929550551071e-03 -1.58203951766527e-02 + 3.79718481534846e-03 -1.41925025018919e-02 + 3.01254414274189e-03 -1.25940941416061e-02 + 2.32306506044275e-03 -1.10313592778986e-02 + 1.73616370284593e-03 -9.50573827422768e-03 + 1.25001115654578e-03 -8.01464961151014e-03 + 8.66582941084615e-04 -6.56215809631841e-03 + 5.27892943221305e-04 -5.15982819826281e-03 + 2.90620181051750e-04 -3.79793930383067e-03 + 1.24304967749036e-04 -2.48335242246912e-03 + 3.96737576866571e-05 -1.21650060438702e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.95189184277812e-05 1.21614429607452e-03 + 1.05767060451514e-04 2.48286216056600e-03 + 2.57762778152470e-04 3.79720959162143e-03 + 4.68204860110995e-04 5.16008910759149e-03 + 7.83797140932723e-04 6.56497526010459e-03 + 1.15715502367995e-03 8.01500849124157e-03 + 1.60204509969143e-03 9.51313492711731e-03 + 2.26838290451738e-03 1.10094565184360e-02 + 2.98389530162135e-03 1.25531639212653e-02 + 3.84468300573088e-03 1.41052049491652e-02 + 4.79382432709198e-03 1.56929490788932e-02 + 5.86480251491728e-03 1.72970451450205e-02 + 7.04339712537743e-03 1.89252483507722e-02 + 8.31036366558127e-03 2.05930697348407e-02 + 9.69288686144440e-03 2.22822382309425e-02 + 1.11694244157683e-02 2.40125728679872e-02 + 1.27687195678609e-02 2.57610052570714e-02 + 1.44855480622724e-02 2.75340521574697e-02 + 1.63141117762223e-02 2.93431371358707e-02 + 1.82409459730255e-02 3.12044757360750e-02 + 2.03090129151232e-02 3.30784440112194e-02 + 2.25047656211822e-02 3.49825288350549e-02 + 2.48358954405978e-02 3.69102907266350e-02 + 2.73027851057594e-02 3.88709280586456e-02 + 2.99022786432083e-02 4.08708020979388e-02 + 3.26428835363264e-02 4.29073735254742e-02 + 3.55275801260422e-02 4.49815642845116e-02 + 3.85675366725734e-02 4.70868993056664e-02 + 4.17712151330545e-02 4.92166052451779e-02 + 4.51455848984656e-02 5.13693116705787e-02 + 4.86800832975236e-02 5.35697871829730e-02 + 5.23998258242555e-02 5.57840039693155e-02 + 5.63090699963194e-02 5.80167300546564e-02 + 6.04040077958621e-02 6.02830393557848e-02 + 6.46921254503434e-02 6.25806625362446e-02 + 6.91657933196187e-02 6.49357139206047e-02 + 7.38718601029010e-02 6.72692279831682e-02 + 7.87963189404003e-02 6.96202880139496e-02 + 8.39284216127343e-02 7.20249986111878e-02 + 8.93005278379212e-02 7.44277079926884e-02 + 9.49165785178080e-02 7.68080305069524e-02 + 1.00776596462740e-01 7.91941589367465e-02 + 1.06887992955234e-01 8.15979852235107e-02 + 1.13259326028114e-01 8.40133348371362e-02 + 1.19898645623439e-01 8.64376453292622e-02 + 1.26825363129969e-01 8.88246082279034e-02 + 1.34032996617006e-01 9.12209273262398e-02 + 1.41527923866446e-01 9.36300218950618e-02 + 1.49326736108375e-01 9.60160327660242e-02 + 1.57437264377705e-01 9.83712642438628e-02 + 1.65868324600152e-01 1.00685218752554e-01 + 1.74628718266615e-01 1.02944937223580e-01 + 1.83718250107745e-01 1.05182085806860e-01 + 1.93143977808745e-01 1.07387673596204e-01 + 2.02916723675256e-01 1.09537420256945e-01 + 2.13052007685298e-01 1.11578803647391e-01 + 2.23549653724373e-01 1.13536674601117e-01 + 2.34418102657221e-01 1.15382216081547e-01 + 2.45660047881914e-01 1.17132423550172e-01 + 2.57277821794247e-01 1.18790833197830e-01 + 2.69285661481619e-01 1.20274563173763e-01 + 2.81681435328113e-01 1.21610792504416e-01 + 2.94471299405458e-01 1.22753207590004e-01 + 3.07657839217654e-01 1.23665554126748e-01 + 3.21240423603742e-01 1.24335192568048e-01 + 3.35218492732312e-01 1.24739126354752e-01 + 3.49588853515411e-01 1.24807697648437e-01 + 3.64348393745959e-01 1.24573091480070e-01 + 3.79490557018895e-01 1.24009550543367e-01 + 3.95013008833302e-01 1.23166425873097e-01 + 4.10911230551784e-01 1.22040125894596e-01 + 4.27181368064296e-01 1.20643690185419e-01 + 4.43822979334143e-01 1.19012214211741e-01 + 4.60825027599087e-01 1.17096430824897e-01 + 4.78180176231373e-01 1.14887296599190e-01 + 4.95890785853081e-01 1.12452966207322e-01 + 5.13949537326196e-01 1.09787047252637e-01 + 5.32343642071341e-01 1.06859196176221e-01 + 5.51070553747742e-01 1.03710967331665e-01 + 5.70123937401839e-01 1.00351455565678e-01 + 5.89495628773574e-01 9.67909361070087e-02 + 6.09171898570426e-01 9.30211098562286e-02 + 6.29138822745811e-01 8.90355090111987e-02 + 6.49394868003684e-01 8.49035724050775e-02 + 6.69928293397831e-01 8.06107601158379e-02 + 6.90722533013325e-01 7.61534793554206e-02 + 7.11772271356487e-01 7.15640092699005e-02 + 7.33060707027799e-01 6.68388174833136e-02 + 7.54571508751324e-01 6.19858692115997e-02 + 7.76286826841553e-01 5.69994231785712e-02 + 7.98189415948090e-01 5.18865779509044e-02 + 8.20260703237170e-01 4.66547433653687e-02 + 8.42482201370411e-01 4.13224819490564e-02 + 8.64845816185461e-01 3.59114363001708e-02 + 8.87320554539452e-01 3.04068317544367e-02 + 9.09898081718863e-01 2.48403197190891e-02 + 9.32544737844051e-01 1.92037035893727e-02 + 9.55244628007707e-01 1.31962135682704e-02 + 9.77960328149588e-01 6.92447736867692e-03 + 1.00000000000000e+00 5.33569410323788e-04 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF24_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF24_Coords.txt new file mode 100644 index 00000000..dee2a673 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF24_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -7.50291333776672e-04 + 9.76298896194702e-01 2.32889115261073e-03 + 9.52696096636841e-01 4.94521028450639e-03 + 9.29060312605788e-01 7.15692894407718e-03 + 9.05417910316586e-01 8.89067899641578e-03 + 8.81816184123139e-01 9.89569835581813e-03 + 8.58317705959904e-01 9.84322267766306e-03 + 8.34983301808537e-01 9.04823588658875e-03 + 8.11873434560873e-01 7.18374392840931e-03 + 7.89043919534343e-01 4.37297375841967e-03 + 7.66539540795448e-01 7.44223479357781e-04 + 7.44381391909662e-01 -3.54660860602751e-03 + 7.22581240917263e-01 -8.35156649411918e-03 + 7.01137346622867e-01 -1.35373495193734e-02 + 6.80039693873756e-01 -1.89641771354476e-02 + 6.59290364533785e-01 -2.45571754348028e-02 + 6.38878859868852e-01 -3.02132879449722e-02 + 6.18795535800661e-01 -3.58428941592947e-02 + 5.99025214360609e-01 -4.13502377144402e-02 + 5.79571063345178e-01 -4.66989833430834e-02 + 5.60430857912260e-01 -5.18361266758138e-02 + 5.41600549487872e-01 -5.67126894278324e-02 + 5.23093012388221e-01 -6.13292557711388e-02 + 5.04909716783247e-01 -6.56538953621398e-02 + 4.87051293227111e-01 -6.96530548678958e-02 + 4.69524243044734e-01 -7.33080529423055e-02 + 4.52341821294675e-01 -7.66472468360973e-02 + 4.35508589614116e-01 -7.96544207222355e-02 + 4.19030914862448e-01 -8.23226920725703e-02 + 4.02916228417393e-01 -8.46623466695113e-02 + 3.87175637539370e-01 -8.67119738820041e-02 + 3.71811428132166e-01 -8.84606569575440e-02 + 3.56830409304917e-01 -8.99353602919689e-02 + 3.42236645717252e-01 -9.11689881156119e-02 + 3.28028443529475e-01 -9.21352973252990e-02 + 3.14207871794200e-01 -9.28394446226089e-02 + 3.00775731152437e-01 -9.33148765751533e-02 + 2.87731091983130e-01 -9.35649492324365e-02 + 2.75073270707374e-01 -9.35897732815692e-02 + 2.62799911559184e-01 -9.34332051784304e-02 + 2.50908328649408e-01 -9.30938200207195e-02 + 2.39395914296969e-01 -9.25789080830780e-02 + 2.28258324217990e-01 -9.19038525166016e-02 + 2.17490357613613e-01 -9.10978135960199e-02 + 2.07088466750961e-01 -9.01469095785202e-02 + 1.97047806459751e-01 -8.90697005309464e-02 + 1.87360260340612e-01 -8.78852780089872e-02 + 1.78018682210870e-01 -8.66086122363040e-02 + 1.69020258315682e-01 -8.52244126115397e-02 + 1.60353331264926e-01 -8.37720812851559e-02 + 1.52014939197557e-01 -8.22330718969560e-02 + 1.43987185788990e-01 -8.06620558758565e-02 + 1.36274091000982e-01 -7.90182608959080e-02 + 1.28862566102960e-01 -7.73292710854366e-02 + 1.21745655831401e-01 -7.55977296970018e-02 + 1.14917898957625e-01 -7.38189265766767e-02 + 1.08363637615901e-01 -7.20267149673762e-02 + 1.02080415985040e-01 -7.02081908521227e-02 + 9.60650562136330e-02 -6.83524876726988e-02 + 9.02979483004230e-02 -6.64992618936153e-02 + 8.47777986078614e-02 -6.46338463331624e-02 + 7.94941040279597e-02 -6.27654801484029e-02 + 7.44102991938022e-02 -6.08945434432346e-02 + 6.95582747844778e-02 -5.90057327945389e-02 + 6.49131793283190e-02 -5.71216563862163e-02 + 6.04794197269670e-02 -5.52290978859873e-02 + 5.62646886835696e-02 -5.33218521504249e-02 + 5.22507416096869e-02 -5.14208493808622e-02 + 4.84245433996503e-02 -4.95323182851412e-02 + 4.47904867206598e-02 -4.76449015546858e-02 + 4.13374558635882e-02 -4.57663829252569e-02 + 3.80650840253715e-02 -4.38944940923365e-02 + 3.49691116419480e-02 -4.20279518522186e-02 + 3.20400727373755e-02 -4.01712967041496e-02 + 2.92703341033774e-02 -3.83301218257238e-02 + 2.66462635908786e-02 -3.65121714900467e-02 + 2.41819941212201e-02 -3.47068073590117e-02 + 2.19143199986438e-02 -3.29088330701643e-02 + 1.97796258019261e-02 -3.11426553752093e-02 + 1.77718675728929e-02 -2.94033561455842e-02 + 1.58892791802320e-02 -2.76827467855728e-02 + 1.41231129715086e-02 -2.59874713046408e-02 + 1.24680257561555e-02 -2.43219224431366e-02 + 1.09259070704779e-02 -2.26820710355976e-02 + 9.49343298356482e-03 -2.10561306903018e-02 + 8.14503768413817e-03 -1.94635072722990e-02 + 6.90999917273266e-03 -1.78889094607232e-02 + 5.79390475471148e-03 -1.63307209071248e-02 + 4.78106804114271e-03 -1.47978940894094e-02 + 3.88016584757143e-03 -1.32873649605637e-02 + 3.08233798054177e-03 -1.18026200908121e-02 + 2.38686534170238e-03 -1.03450301564476e-02 + 1.78599805341179e-03 -8.92081233071476e-03 + 1.28652156378685e-03 -7.52634471004791e-03 + 8.83996769448488e-04 -6.16669016705767e-03 + 5.46612029292912e-04 -4.84894257335285e-03 + 3.01376049559927e-04 -3.56996967423148e-03 + 1.30154076571712e-04 -2.33432457843823e-03 + 4.21374163304318e-05 -1.14334359217422e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.81157574964881e-05 1.14295937760577e-03 + 1.04621923266427e-04 2.33440626401102e-03 + 2.54739066947636e-04 3.57120735782472e-03 + 4.65849257103884e-04 4.85377645755166e-03 + 7.66296706792806e-04 6.17820210329396e-03 + 1.13400710680486e-03 7.54436835218198e-03 + 1.57970905045129e-03 8.95240763421855e-03 + 2.19446599887451e-03 1.03731283301651e-02 + 2.87705684559474e-03 1.18324568030195e-02 + 3.67789371859726e-03 1.33102740954264e-02 + 4.57036584246313e-03 1.48203416608747e-02 + 5.56967498060080e-03 1.63537813005310e-02 + 6.66759090523285e-03 1.79156766085822e-02 + 7.85649334745409e-03 1.95131911485843e-02 + 9.15255477687989e-03 2.11363600124788e-02 + 1.05445488424763e-02 2.27966579112874e-02 + 1.20486064407746e-02 2.44823719840950e-02 + 1.36603871932619e-02 2.61996974106957e-02 + 1.53821576127598e-02 2.79522040521000e-02 + 1.72090722971723e-02 2.97472094765997e-02 + 1.91651219523706e-02 3.15651260035317e-02 + 2.12426156558742e-02 3.34176370326924e-02 + 2.34511443758688e-02 3.52973320141773e-02 + 2.57904895361023e-02 3.72130957307203e-02 + 2.82626509750913e-02 3.91646919322919e-02 + 3.08759739857624e-02 4.11514060005145e-02 + 3.36299253040576e-02 4.31771896078588e-02 + 3.65354985842998e-02 4.52371794325495e-02 + 3.96008704268746e-02 4.73246766888027e-02 + 4.28321561070921e-02 4.94404029988426e-02 + 4.62242346874908e-02 5.16004112773017e-02 + 4.97958902647260e-02 5.37820404238713e-02 + 5.35528496536011e-02 5.59876066111493e-02 + 5.74940264314054e-02 5.82280097517281e-02 + 6.16289114941267e-02 6.04973177565880e-02 + 6.59549586653717e-02 6.28123067599801e-02 + 7.05011791699481e-02 6.51291026479873e-02 + 7.52646676807933e-02 6.74659569979716e-02 + 8.02411483868892e-02 6.98450349458632e-02 + 8.54541005536459e-02 7.22307435968477e-02 + 9.09077876598320e-02 7.46202759272474e-02 + 9.66055445093218e-02 7.70252439848328e-02 + 1.02556617968726e-01 7.94445037398437e-02 + 1.08769595464231e-01 8.18723919264446e-02 + 1.15251846243329e-01 8.43087989893419e-02 + 1.22017436032429e-01 8.67299569776199e-02 + 1.29067606508560e-01 8.91543819424277e-02 + 1.36410072520413e-01 9.15812636222036e-02 + 1.44057372467977e-01 9.39916412991629e-02 + 1.52018009642350e-01 9.63774884768607e-02 + 1.60301083370340e-01 9.87298228910894e-02 + 1.68915004119298e-01 1.01040503878498e-01 + 1.77863375679202e-01 1.03322385460583e-01 + 1.87155863329685e-01 1.05561389941643e-01 + 1.96799541214523e-01 1.07750710152026e-01 + 2.06809021346131e-01 1.09847473640509e-01 + 2.17187694050625e-01 1.11860752579225e-01 + 2.27942920264959e-01 1.13772677888835e-01 + 2.39080425704280e-01 1.15580120940451e-01 + 2.50602978823008e-01 1.17288028936626e-01 + 2.62523055501980e-01 1.18833856236034e-01 + 2.74840647475125e-01 1.20232024719622e-01 + 2.87562192937226e-01 1.21441226349321e-01 + 3.00690830602118e-01 1.22430852727519e-01 + 3.14227523639263e-01 1.23178402093805e-01 + 3.28171801048535e-01 1.23663484726724e-01 + 3.42521760498053e-01 1.23828016318311e-01 + 3.57273986043832e-01 1.23678074838371e-01 + 3.72422815778781e-01 1.23198599341217e-01 + 3.87965402200350e-01 1.22429097089126e-01 + 4.03897678601998e-01 1.21373131778580e-01 + 4.20216289788358e-01 1.20045527577897e-01 + 4.36918952632428e-01 1.18464558254558e-01 + 4.53998170716250e-01 1.16608654175239e-01 + 4.71445818375774e-01 1.14459171027755e-01 + 4.89262561234794e-01 1.12074715982259e-01 + 5.07441163553935e-01 1.09446574254448e-01 + 5.25971148178741e-01 1.06560361311888e-01 + 5.44848798428680e-01 1.03449434794008e-01 + 5.64066277235567e-01 1.00118102629513e-01 + 5.83615080942241e-01 9.65751507526858e-02 + 6.03485053765207e-01 9.28288280428212e-02 + 6.23663294928140e-01 8.88766391764726e-02 + 6.44143290404599e-01 8.47640847275778e-02 + 6.64912691365091e-01 8.04820587812154e-02 + 6.85957565742361e-01 7.60375257877561e-02 + 7.07269770163650e-01 7.14578896712954e-02 + 7.28832031023755e-01 6.67399716333503e-02 + 7.50627928640914e-01 6.18927779581912e-02 + 7.72638273090132e-01 5.69095365551616e-02 + 7.94845273313031e-01 5.17979358377091e-02 + 8.17229952512696e-01 4.65661010560639e-02 + 8.39774418012758e-01 4.12350839199444e-02 + 8.62464948057395e-01 3.58183297895103e-02 + 8.85273913513708e-01 3.03089834179839e-02 + 9.08187630633643e-01 2.47304583972593e-02 + 9.31177783406441e-01 1.90863321564750e-02 + 9.54226411846771e-01 1.31957781659379e-02 + 9.77294204499900e-01 7.13558621173920e-03 + 1.00000000000000e+00 9.69484227912823e-04 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF25_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF25_Coords.txt new file mode 100644 index 00000000..f5baf458 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF25_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -1.09250671868000e-03 + 9.76115586099618e-01 2.09600510332978e-03 + 9.52288294552172e-01 4.81417885933177e-03 + 9.28450060797343e-01 7.11490117592222e-03 + 9.04619297601449e-01 8.92329765774539e-03 + 8.80834074284664e-01 9.95340950185301e-03 + 8.57151659839586e-01 9.92756319875484e-03 + 8.33630254563209e-01 9.17783270101517e-03 + 8.10328015134571e-01 7.42012067290446e-03 + 7.87300463622396e-01 4.77516783787571e-03 + 7.64592703953390e-01 1.32624859090481e-03 + 7.42228033108644e-01 -2.77682728463799e-03 + 7.20216772646893e-01 -7.37607048945225e-03 + 6.98563400687629e-01 -1.23524458090196e-02 + 6.77262887692173e-01 -1.75755523866722e-02 + 6.56316064999009e-01 -2.29614286738159e-02 + 6.35714570806867e-01 -2.84102836191219e-02 + 6.15449288352083e-01 -3.38290876998397e-02 + 5.95513325480546e-01 -3.91424755035297e-02 + 5.75907942700664e-01 -4.43068439562326e-02 + 5.56629760363534e-01 -4.92645154005323e-02 + 5.37682173510500e-01 -5.39873548651573e-02 + 5.19071820661838e-01 -5.84578413099440e-02 + 5.00801555954315e-01 -6.26495762564164e-02 + 4.82871601768206e-01 -6.65256315806630e-02 + 4.65290321806567e-01 -7.00771541943242e-02 + 4.48069107802193e-01 -7.33303008744292e-02 + 4.31210942377935e-01 -7.62613694929760e-02 + 4.14721717256527e-01 -7.88670112627226e-02 + 3.98609830485640e-01 -8.11674486204708e-02 + 3.82881803238740e-01 -8.31789010896421e-02 + 3.67540922501510e-01 -8.49011792837672e-02 + 3.52591959359744e-01 -8.63538669976877e-02 + 3.38038125513927e-01 -8.75591661511401e-02 + 3.23878337769632e-01 -8.84993826488772e-02 + 3.10114246734585e-01 -8.91848244796117e-02 + 2.96745918134662e-01 -8.96356484654719e-02 + 2.83772536979569e-01 -8.98560569285609e-02 + 2.71193048529533e-01 -8.98541970412896e-02 + 2.59004966514683e-01 -8.96641882545778e-02 + 2.47205169565799e-01 -8.92924468430343e-02 + 2.35790240472659e-01 -8.87473051941079e-02 + 2.24754947680772e-01 -8.80529555951448e-02 + 2.14094425301211e-01 -8.72214656839783e-02 + 2.03803579375793e-01 -8.62541002544239e-02 + 1.93875405543264e-01 -8.51751516327919e-02 + 1.84303408655320e-01 -8.39908637540001e-02 + 1.75080215317279e-01 -8.27132159406177e-02 + 1.66199793240435e-01 -8.13445725448274e-02 + 1.57653122663062e-01 -7.99033042566852e-02 + 1.49432819276280e-01 -7.83940014030634e-02 + 1.41527369025976e-01 -7.68397516570057e-02 + 1.33933094840571e-01 -7.52295246442809e-02 + 1.26640143243466e-01 -7.35770567956669e-02 + 1.19640559393263e-01 -7.18863418890472e-02 + 1.12927077813054e-01 -7.01581195662533e-02 + 1.06488519837237e-01 -6.84113181275732e-02 + 1.00316701895756e-01 -6.66480482070258e-02 + 9.44082133574360e-02 -6.48587314973944e-02 + 8.87499483874507e-02 -6.30623827083626e-02 + 8.33346753623294e-02 -6.12610269188888e-02 + 7.81562621654159e-02 -5.94517874653428e-02 + 7.31951432238743e-02 -5.76424972836634e-02 + 6.84577626403403e-02 -5.58286777757905e-02 + 6.39326342358596e-02 -5.40173864513933e-02 + 5.96152121769926e-02 -5.22094494493164e-02 + 5.55045079578264e-02 -5.03979483760663e-02 + 5.15876859053906e-02 -4.85965280700871e-02 + 4.78588835860377e-02 -4.68025488097465e-02 + 4.43151088293809e-02 -4.50134393598166e-02 + 4.09479814741917e-02 -4.32331507155101e-02 + 3.77544761371438e-02 -4.14613164257821e-02 + 3.47290964996220e-02 -3.96983685901773e-02 + 3.18646716164714e-02 -3.79460007064151e-02 + 2.91557807064150e-02 -3.62082493349325e-02 + 2.65916717593254e-02 -3.44893521422311e-02 + 2.41768614668749e-02 -3.27857249071581e-02 + 2.19169363744281e-02 -3.10958697248329e-02 + 1.97853574099944e-02 -2.94351217148795e-02 + 1.77809502328637e-02 -2.77959928991413e-02 + 1.59012923654057e-02 -2.61756147968822e-02 + 1.41377791124355e-02 -2.45798265623274e-02 + 1.24854340081653e-02 -2.30107015135764e-02 + 1.09463949529226e-02 -2.14628875680232e-02 + 9.51420326071247e-03 -1.99362443503988e-02 + 8.18367131774184e-03 -1.84317002704562e-02 + 6.95781355369571e-03 -1.69495477016988e-02 + 5.84461757031922e-03 -1.54828594722959e-02 + 4.83675987451319e-03 -1.40360192911298e-02 + 3.93148210889690e-03 -1.26118037509212e-02 + 3.12597705524147e-03 -1.12107577936507e-02 + 2.42827959498203e-03 -9.83080813631348e-03 + 1.81848159181735e-03 -8.48180028772974e-03 + 1.31026857339993e-03 -7.15931186006862e-03 + 8.94028566689473e-04 -5.86904696569661e-03 + 5.59139659541858e-04 -4.61467241237522e-03 + 3.08713803920484e-04 -3.39799797587375e-03 + 1.34284352600275e-04 -2.22180755581035e-03 + 4.38766782931077e-05 -1.08808364043886e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.70754963215136e-05 1.08767660334744e-03 + 1.03580808069746e-04 2.22228516879441e-03 + 2.51928419550096e-04 3.40061010146026e-03 + 4.63659613080425e-04 4.62272156443479e-03 + 7.50030014672317e-04 5.88676081458818e-03 + 1.11249110649511e-03 7.19012596240712e-03 + 1.55894767722491e-03 8.53069940774572e-03 + 2.12648113335517e-03 9.89524770439861e-03 + 2.78122395867452e-03 1.12920178518460e-02 + 3.53349472781731e-03 1.27152234032320e-02 + 4.37986080892483e-03 1.41682764668305e-02 + 5.32108740225112e-03 1.56504595401408e-02 + 6.35403104634295e-03 1.71645723270603e-02 + 7.48065465647005e-03 1.87111343722309e-02 + 8.70798790603196e-03 2.02868357356723e-02 + 1.00326625323290e-02 2.18967960271385e-02 + 1.14615517896570e-02 2.35376948845036e-02 + 1.29908498121995e-02 2.52156066282122e-02 + 1.46285017870635e-02 2.69284106702504e-02 + 1.63762840007771e-02 2.86766604856462e-02 + 1.82437127611806e-02 3.04560704781735e-02 + 2.02283271437812e-02 3.22731904280343e-02 + 2.23410892379826e-02 3.41200707129672e-02 + 2.45803161096591e-02 3.60061322399834e-02 + 2.69523034357121e-02 3.79258490183542e-02 + 2.94661214249216e-02 3.98790227559557e-02 + 3.21182316854737e-02 4.18723073706309e-02 + 3.49189765158157e-02 4.39025161395751e-02 + 3.78764907558025e-02 4.59628851663624e-02 + 4.09963031658456e-02 4.80556676923546e-02 + 4.42775927892050e-02 5.01900205707697e-02 + 4.77343365858657e-02 5.23520241988731e-02 + 5.13731297355052e-02 5.45423734775189e-02 + 5.51950546654045e-02 5.67687018233320e-02 + 5.92113866358186e-02 5.90218736527301e-02 + 6.34234392442166e-02 6.13116302117422e-02 + 6.78462003333466e-02 6.36214314140050e-02 + 7.24854173464343e-02 6.59533657552206e-02 + 7.73419721841157e-02 6.83186401819959e-02 + 8.24324258544088e-02 7.06971481688955e-02 + 8.77613607346135e-02 7.30926428047549e-02 + 9.33346253668055e-02 7.55076582271502e-02 + 9.91628221387800e-02 7.79350885797270e-02 + 1.05254564598752e-01 8.03695380742510e-02 + 1.11616753158002e-01 8.28125781644698e-02 + 1.18259294307182e-01 8.52558088653510e-02 + 1.25189263783572e-01 8.76985152086404e-02 + 1.32415679289748e-01 9.01369747472587e-02 + 1.39947873838956e-01 9.25638030881446e-02 + 1.47794845481183e-01 9.49707607832480e-02 + 1.55965915271520e-01 9.73499622034032e-02 + 1.64469189511735e-01 9.96967278841057e-02 + 1.73311416702080e-01 1.02010530578746e-01 + 1.82503742461270e-01 1.04273623478212e-01 + 1.92050672615684e-01 1.06491541481398e-01 + 2.01966200947807e-01 1.08628345168654e-01 + 2.12256126598972e-01 1.10681929211142e-01 + 2.22927191842667e-01 1.12642214263348e-01 + 2.33987552164155e-01 1.14491142152048e-01 + 2.45440161850974e-01 1.16234688095526e-01 + 2.57296008031495e-01 1.17825202458106e-01 + 2.69556869203747e-01 1.19267427279133e-01 + 2.82229070262522e-01 1.20524379694892e-01 + 2.95316275100028e-01 1.21569011458766e-01 + 3.08820531899773e-01 1.22372406982529e-01 + 3.22741461950530e-01 1.22915930928339e-01 + 3.37078134209340e-01 1.23149875849477e-01 + 3.51826981727722e-01 1.23062131822088e-01 + 3.66983039246985e-01 1.22645337613189e-01 + 3.82543070599223e-01 1.21930860322884e-01 + 3.98503391798556e-01 1.20928153680211e-01 + 4.14860961126985e-01 1.19652845240075e-01 + 4.31612326060530e-01 1.18111343121154e-01 + 4.48752327492312e-01 1.16301638158787e-01 + 4.66272601249854e-01 1.14199654104434e-01 + 4.84172419107913e-01 1.11855636518184e-01 + 5.02444493519843e-01 1.09258193501888e-01 + 5.21080236029992e-01 1.06406605973784e-01 + 5.40074886324364e-01 1.03326688418026e-01 + 5.59419655929053e-01 1.00019465978113e-01 + 5.79105612175721e-01 9.64916235087976e-02 + 5.99125173361441e-01 9.27647911198193e-02 + 6.19466430557399e-01 8.88409323564860e-02 + 6.40119041978738e-01 8.47390121899819e-02 + 6.61070257644903e-01 8.04603243420791e-02 + 6.82307901055849e-01 7.60197144231869e-02 + 7.03821798847536e-01 7.14430901975401e-02 + 7.25594294352276e-01 6.67273876453086e-02 + 7.47609060933277e-01 6.18819437827459e-02 + 7.69845737824426e-01 5.68996656088332e-02 + 7.92286051630428e-01 5.17884210392101e-02 + 8.14910827049322e-01 4.65565586752961e-02 + 8.37702906504111e-01 4.12259060670082e-02 + 8.60644007466582e-01 3.58073758391948e-02 + 8.83708956400804e-01 3.02965383060978e-02 + 9.06880276867715e-01 2.47142694962048e-02 + 9.30133788123677e-01 1.90677931913939e-02 + 9.53449456906722e-01 1.32665027689235e-02 + 9.76786262644257e-01 7.36258542738043e-03 + 1.00000000000000e+00 1.36768088735877e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF26_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF26_Coords.txt new file mode 100644 index 00000000..cf7fc7ad --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF26_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -1.24163918250367e-03 + 9.76041165887563e-01 1.99488268803741e-03 + 9.52121914098850e-01 4.75706252222044e-03 + 9.28199957236603e-01 7.09542956274019e-03 + 9.04291190262318e-01 8.93443745793852e-03 + 8.80430343444036e-01 9.96657729426452e-03 + 8.56672689113696e-01 9.94290435584814e-03 + 8.33075425877888e-01 9.19689625764953e-03 + 8.09695700165266e-01 7.47347691185626e-03 + 7.86588885771507e-01 4.89111440127801e-03 + 7.63799981052509e-01 1.51070336812985e-03 + 7.41353018207342e-01 -2.52044512396319e-03 + 7.19257743648676e-01 -7.04038680187796e-03 + 6.97520950922480e-01 -1.19358851549070e-02 + 6.76139778430185e-01 -1.70807096849569e-02 + 6.55114191085606e-01 -2.23867022793893e-02 + 6.34437029834687e-01 -2.77559055040500e-02 + 6.14099171583599e-01 -3.30936716419077e-02 + 5.94097092702040e-01 -3.83329090713677e-02 + 5.74431276878783e-01 -4.34270288627529e-02 + 5.55097922205893e-01 -4.83165117769746e-02 + 5.36103244219295e-01 -5.29813461185869e-02 + 5.17451514118577e-01 -5.73969020907143e-02 + 4.99146144876149e-01 -6.15389789381977e-02 + 4.81187008959400e-01 -6.53691205567300e-02 + 4.63583334863196e-01 -6.88825029007271e-02 + 4.46345674250821e-01 -7.21042694778078e-02 + 4.29476426936704e-01 -7.50078286995993e-02 + 4.12981165598887e-01 -7.75910433182066e-02 + 3.96868697220895e-01 -7.98780646047934e-02 + 3.81143737274277e-01 -8.18762285984978e-02 + 3.65809950832190e-01 -8.35894755418217e-02 + 3.50871346715946e-01 -8.50344502846749e-02 + 3.36330856482784e-01 -8.62291005970239e-02 + 3.22187680974826e-01 -8.71590314211491e-02 + 3.08443381198299e-01 -8.78366569779970e-02 + 2.95097824515779e-01 -8.82768172546241e-02 + 2.82150316172696e-01 -8.84841421890272e-02 + 2.69599713195053e-01 -8.84700415928376e-02 + 2.57443538674293e-01 -8.82648900755557e-02 + 2.45678503760535e-01 -8.78783328013873e-02 + 2.34300892069519e-01 -8.73191978590562e-02 + 2.23305176083759e-01 -8.66151143715721e-02 + 2.12686475906400e-01 -8.57717042278548e-02 + 2.02439201431732e-01 -8.47960575058360e-02 + 1.92555334399891e-01 -8.37147804336106e-02 + 1.83029072759030e-01 -8.25291243560209e-02 + 1.73852988185549e-01 -8.12499391500962e-02 + 1.65019713285519e-01 -7.98863532611348e-02 + 1.56521149653515e-01 -7.84487425858802e-02 + 1.48348326905127e-01 -7.69504193661685e-02 + 1.40492169632055e-01 -7.54025801721342e-02 + 1.32945934195466e-01 -7.38053647018080e-02 + 1.25701000521494e-01 -7.21672889164535e-02 + 1.18749063872964e-01 -7.04928479452887e-02 + 1.12082069469409e-01 -6.87847420009533e-02 + 1.05690639166719e-01 -6.70564170338887e-02 + 9.95644793751720e-02 -6.53155594973088e-02 + 9.36997891046597e-02 -6.35528503057422e-02 + 8.80860404700645e-02 -6.17798179936638e-02 + 8.27138402760154e-02 -6.00046280095742e-02 + 7.75786796919451e-02 -5.82199952095701e-02 + 7.26702775903076e-02 -5.64364109081874e-02 + 6.79824154250675e-02 -5.46532131450536e-02 + 6.35091047142614e-02 -5.28689233118743e-02 + 5.92419326453291e-02 -5.10893765254210e-02 + 5.51761610142073e-02 -4.93108527891892e-02 + 5.13012904354392e-02 -4.75441103336549e-02 + 4.76145565870374e-02 -4.57830799218584e-02 + 4.41097775457074e-02 -4.40286611417737e-02 + 4.07797547228364e-02 -4.22832639538696e-02 + 3.76203144073222e-02 -4.05471915450099e-02 + 3.46254260858043e-02 -3.88215755752492e-02 + 3.17889101119942e-02 -3.71070792104368e-02 + 2.91063013242030e-02 -3.54070623086104e-02 + 2.65680917385227e-02 -3.37242560099722e-02 + 2.41746444824902e-02 -3.20578976536326e-02 + 2.19171444247013e-02 -3.04080975483655e-02 + 1.97858149698125e-02 -2.87865206302891e-02 + 1.77816785975911e-02 -2.71845498672619e-02 + 1.59022597396959e-02 -2.56014672844354e-02 + 1.41389646872167e-02 -2.40428780632352e-02 + 1.24868469400250e-02 -2.25098697316461e-02 + 1.09480652882895e-02 -2.09965445874096e-02 + 9.51590058520777e-03 -1.95072970846173e-02 + 8.19359579424781e-03 -1.80358499675050e-02 + 6.97242094431141e-03 -1.65886214694131e-02 + 5.86117299541770e-03 -1.51566425360256e-02 + 4.85595721623195e-03 -1.37425320553921e-02 + 3.94940941742267e-03 -1.23512986917568e-02 + 3.14133805635955e-03 -1.09822611963997e-02 + 2.44321685058300e-03 -9.63205407941857e-03 + 1.83022786901874e-03 -8.31193681735096e-03 + 1.31884419349740e-03 -7.01717270777278e-03 + 8.97352130663886e-04 -5.75368875832799e-03 + 5.63740815773768e-04 -4.52380901007206e-03 + 3.11436976892490e-04 -3.33125476138120e-03 + 1.35836193808489e-04 -2.17811670838639e-03 + 4.45280502729537e-05 -1.06661993857544e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.66760054509128e-05 1.06620363196370e-03 + 1.03135511949883e-04 2.17873971903504e-03 + 2.50714385917578e-04 3.33437480200911e-03 + 4.62713811117844e-04 4.53305150068868e-03 + 7.43003875184307e-04 5.77372654297466e-03 + 1.10319761909825e-03 7.05282637820245e-03 + 1.54998013794877e-03 8.36733050300788e-03 + 2.09725226970234e-03 9.71027755670584e-03 + 2.74048621866142e-03 1.10830229161061e-02 + 3.47313095950444e-03 1.24853542942127e-02 + 4.30082217565610e-03 1.39166476275545e-02 + 5.21857196014794e-03 1.53794131710022e-02 + 6.22534316879645e-03 1.68755017759930e-02 + 7.32700741881788e-03 1.84027736911195e-02 + 8.52685165419718e-03 1.99605923185556e-02 + 9.82457508956703e-03 2.15515967524936e-02 + 1.12235177290181e-02 2.31756834085188e-02 + 1.27200503919435e-02 2.48389080154999e-02 + 1.43242279905998e-02 2.65369959399126e-02 + 1.60404245440130e-02 2.82678634249202e-02 + 1.78725008542331e-02 3.00332073110525e-02 + 1.98202147599872e-02 3.18374092114472e-02 + 2.18950460972363e-02 3.36723552878899e-02 + 2.40945084991586e-02 3.55478542511501e-02 + 2.64266594338935e-02 3.74562543671355e-02 + 2.89010475331631e-02 3.93973576550753e-02 + 3.15128856164724e-02 4.13789637240956e-02 + 3.42721423161374e-02 4.33986437239279e-02 + 3.71869766220148e-02 4.54495802606190e-02 + 4.02627031087678e-02 4.75346101784617e-02 + 4.35002150116920e-02 4.96601391986086e-02 + 4.69116164095437e-02 5.18156791609964e-02 + 5.05037836700218e-02 5.40013488484752e-02 + 5.42786678950318e-02 5.62234865342880e-02 + 5.82483001631071e-02 5.84716108883904e-02 + 6.24154978875846e-02 6.07527350834376e-02 + 6.67896743600186e-02 6.30611281243319e-02 + 7.13799999231155e-02 6.53925012153297e-02 + 7.61894222215938e-02 6.77537053720447e-02 + 8.12317662654453e-02 7.01307269242542e-02 + 8.65117557737097e-02 7.25279882775677e-02 + 9.20362184425747e-02 7.49454680746529e-02 + 9.78162759593724e-02 7.73748306064237e-02 + 1.03860552928939e-01 7.98107486389235e-02 + 1.10175778191298e-01 8.22554075072582e-02 + 1.16770214549517e-01 8.47058953467228e-02 + 1.23653203755665e-01 8.71546056154831e-02 + 1.30834337594950e-01 8.95968004923253e-02 + 1.38321670606146e-01 9.20292431191944e-02 + 1.46124389981669e-01 9.44436195002828e-02 + 1.54251904677806e-01 9.68324582790219e-02 + 1.62712200809751e-01 9.91923751629681e-02 + 1.71513312218537e-01 1.01517930059788e-01 + 1.80666845834493e-01 1.03789912148757e-01 + 1.90176370985942e-01 1.06018468666417e-01 + 2.00055657032727e-01 1.08170258618851e-01 + 2.10311372495842e-01 1.10238994003200e-01 + 2.20950065131051e-01 1.12217532980930e-01 + 2.31980866532305e-01 1.14082146312415e-01 + 2.43406769821147e-01 1.15839163095632e-01 + 2.55238147077280e-01 1.17446579677784e-01 + 2.67477513281741e-01 1.18905422327083e-01 + 2.80131073498889e-01 1.20180419750751e-01 + 2.93202720534022e-01 1.21245816208447e-01 + 3.06694896295832e-01 1.22070353231193e-01 + 3.20607263770737e-01 1.22636054133308e-01 + 3.34939268318345e-01 1.22896410171916e-01 + 3.49687302556342e-01 1.22832514196396e-01 + 3.64846676687070e-01 1.22439952772840e-01 + 3.80414003309436e-01 1.21746813551104e-01 + 3.96385756696833e-01 1.20764922463268e-01 + 4.12759002166226e-01 1.19510124555119e-01 + 4.29529884389691e-01 1.17984334619021e-01 + 4.46694073835668e-01 1.16192944649426e-01 + 4.64243196738119e-01 1.14110111055027e-01 + 4.82175957113290e-01 1.11782567369759e-01 + 5.00485020623298e-01 1.09197665297171e-01 + 5.19162565566196e-01 1.06360394677582e-01 + 5.38203389191021e-01 1.03293317692501e-01 + 5.57598376049888e-01 9.99962209759983e-02 + 5.77338386735964e-01 9.64747451695822e-02 + 5.97416810267783e-01 9.27560007851153e-02 + 6.17822173815498e-01 8.88440305009192e-02 + 6.38542633624223e-01 8.47454500445900e-02 + 6.59565297378976e-01 8.04670393872135e-02 + 6.80878616121945e-01 7.60267543210821e-02 + 7.02471652655181e-01 7.14503788937509e-02 + 7.24326595397154e-01 6.67348588383987e-02 + 7.46427190977622e-01 6.18895589890343e-02 + 7.68752587046382e-01 5.69073596180092e-02 + 7.91284306570890e-01 5.17961434205325e-02 + 8.14003121917812e-01 4.65642776255388e-02 + 8.36892227450033e-01 4.12336544355374e-02 + 8.59931497183523e-01 3.58149763309393e-02 + 8.83096691520270e-01 3.03040139923268e-02 + 9.06368918443855e-01 2.47214332231998e-02 + 9.29725626335315e-01 1.90747607002302e-02 + 9.53145857383183e-01 1.33087425250220e-02 + 9.76587861324942e-01 7.46542536535991e-03 + 1.00000000000000e+00 1.53835660395088e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF27_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF27_Coords.txt new file mode 100644 index 00000000..a8559b09 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF27_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -1.24164223325347e-03 + 9.76041164392396e-01 1.99488062082566e-03 + 9.52121910751731e-01 4.75706135335948e-03 + 9.28199952199219e-01 7.09542915865422e-03 + 9.04291183649571e-01 8.93443767118390e-03 + 8.80430335305919e-01 9.96657750751068e-03 + 8.56672679460919e-01 9.94290456909515e-03 + 8.33075414701384e-01 9.19689647089799e-03 + 8.09695687435274e-01 7.47347776900502e-03 + 7.86588871455130e-01 4.89111649401108e-03 + 7.63799965113471e-01 1.51070681640460e-03 + 7.41353000623285e-01 -2.52044025059049e-03 + 7.19257724385752e-01 -7.04038035491660e-03 + 6.97520929992240e-01 -1.19358771025367e-02 + 6.76139755888505e-01 -1.70807000809784e-02 + 6.55114166969036e-01 -2.23866910906930e-02 + 6.34437004205735e-01 -2.77558927368869e-02 + 6.14099144503465e-01 -3.30936572688430e-02 + 5.94097064299627e-01 -3.83328932311329e-02 + 5.74431247267374e-01 -4.34270116338703e-02 + 5.55097891490535e-01 -4.83164932012163e-02 + 5.36103212560625e-01 -5.29813263991864e-02 + 5.17451481630547e-01 -5.73968812892901e-02 + 4.99146111683925e-01 -6.15389571602501e-02 + 4.81186975180132e-01 -6.53690978763222e-02 + 4.63583300631990e-01 -6.88824794729917e-02 + 4.46345639685456e-01 -7.21042454369658e-02 + 4.29476392143564e-01 -7.50078041225779e-02 + 4.12981130677270e-01 -7.75910183051978e-02 + 3.96868662278405e-01 -7.98780393343755e-02 + 3.81143702382537e-01 -8.18762030718283e-02 + 3.65809916070270e-01 -8.35894498418953e-02 + 3.50871312147949e-01 -8.50344244357429e-02 + 3.36330822167539e-01 -8.62290745383426e-02 + 3.22187646977060e-01 -8.71590051574009e-02 + 3.08443347581371e-01 -8.78366305562361e-02 + 2.95097791339595e-01 -8.82767906155356e-02 + 2.82150283499973e-01 -8.84841152823162e-02 + 2.69599681087069e-01 -8.84700144337475e-02 + 2.57443507192848e-01 -8.82648626051867e-02 + 2.45678472964112e-01 -8.78783050259134e-02 + 2.34300862010750e-01 -8.73191697949781e-02 + 2.23305146809674e-01 -8.66150861037270e-02 + 2.12686447462944e-01 -8.57716757140843e-02 + 2.02439173855586e-01 -8.47960288193625e-02 + 1.92555307706631e-01 -8.37147516939257e-02 + 1.83029046978344e-01 -8.25290955835651e-02 + 1.73852963346223e-01 -8.12499103431124e-02 + 1.65019689389359e-01 -7.98863245514951e-02 + 1.56521126720043e-01 -7.84487139477401e-02 + 1.48348304923117e-01 -7.69503909453266e-02 + 1.40492148638460e-01 -7.54025518805833e-02 + 1.32945914165942e-01 -7.38053366709304e-02 + 1.25700981456047e-01 -7.21672611749456e-02 + 1.18749045764871e-01 -7.04928205316870e-02 + 1.12082052295785e-01 -6.87847149917338e-02 + 1.05690622940757e-01 -6.70563903986223e-02 + 9.95644640688240e-02 -6.53155333147837e-02 + 9.36997746804533e-02 -6.35528246583057e-02 + 8.80860269419856e-02 -6.17797928182627e-02 + 8.27138276159543e-02 -6.00046033630738e-02 + 7.75786679035966e-02 -5.82199710630611e-02 + 7.26702668766427e-02 -5.64363872841197e-02 + 6.79824057221827e-02 -5.46531901393429e-02 + 6.35090960690899e-02 -5.28689008362057e-02 + 5.92419250258708e-02 -5.10893545882387e-02 + 5.51761543119222e-02 -4.93108314830338e-02 + 5.13012845894761e-02 -4.75440896934531e-02 + 4.76145515997845e-02 -4.57830599145488e-02 + 4.41097733544431e-02 -4.40286418035125e-02 + 4.07797512889574e-02 -4.22832452899324e-02 + 3.76203116687853e-02 -4.05471735735779e-02 + 3.46254239696624e-02 -3.88215583285753e-02 + 3.17889085655347e-02 -3.71070627007449e-02 + 2.91063003142196e-02 -3.54070465342894e-02 + 2.65680912572024e-02 -3.37242409387003e-02 + 2.41746444372365e-02 -3.20578833095496e-02 + 2.19171444247057e-02 -3.04080839884921e-02 + 1.97858149698170e-02 -2.87865078379770e-02 + 1.77816785975956e-02 -2.71845378027204e-02 + 1.59022597397006e-02 -2.56014559510294e-02 + 1.41389646872214e-02 -2.40428674601252e-02 + 1.24868469400299e-02 -2.25098598379508e-02 + 1.09480652882944e-02 -2.09965353712404e-02 + 9.51590058521273e-03 -1.95072886041607e-02 + 8.19359596476239e-03 -1.80358421377615e-02 + 6.97242121388991e-03 -1.65886143273830e-02 + 5.86117330807756e-03 -1.51566360782969e-02 + 4.85595758514205e-03 -1.37425262435773e-02 + 3.94940976333073e-03 -1.23512935315688e-02 + 3.14133835342164e-03 -1.09822566687452e-02 + 2.44321714150649e-03 -9.63205013980954e-03 + 1.83022809796061e-03 -8.31193344939125e-03 + 1.31884436057794e-03 -7.01716988880847e-03 + 8.97352193736273e-04 -5.75368646998309e-03 + 5.63740905842356e-04 -4.52380720725293e-03 + 3.11437030347409e-04 -3.33125343689109e-03 + 1.35836224347021e-04 -2.17811584123553e-03 + 4.45280630750671e-05 -1.06661951254253e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.66759975469128e-05 1.06620320574453e-03 + 1.03135502882502e-04 2.17873885472331e-03 + 2.50714361136359e-04 3.33437348745562e-03 + 4.62713791811825e-04 4.53304972124580e-03 + 7.43003731765193e-04 5.77372430028259e-03 + 1.10319742939756e-03 7.05282365458086e-03 + 1.54997995490141e-03 8.36732726269284e-03 + 2.09725167376054e-03 9.71027388884010e-03 + 2.74048539040992e-03 1.10830187729024e-02 + 3.47312973743479e-03 1.24853497385656e-02 + 4.30082057862358e-03 1.39166426421534e-02 + 5.21856989199968e-03 1.53794078029284e-02 + 6.22534057591764e-03 1.68754960531490e-02 + 7.32700432621982e-03 1.84027675881834e-02 + 8.52684801153103e-03 1.99605858637636e-02 + 9.82457090745577e-03 2.15515899247781e-02 + 1.12235129483028e-02 2.31756762504219e-02 + 1.27200449567995e-02 2.48389005693531e-02 + 1.43242218865420e-02 2.65369882056060e-02 + 1.60404178082626e-02 2.82678553499417e-02 + 1.78724934115684e-02 3.00331989618528e-02 + 1.98202065802740e-02 3.18374006104675e-02 + 2.18950371605342e-02 3.36723464545640e-02 + 2.40944987682683e-02 3.55478452136134e-02 + 2.64266489071067e-02 3.74562451109318e-02 + 2.89010362193680e-02 3.93973481646352e-02 + 3.15128734993139e-02 4.13789540071277e-02 + 3.42721293711695e-02 4.33986338037802e-02 + 3.71869628254960e-02 4.54495701594197e-02 + 4.02626884327817e-02 4.75345999298599e-02 + 4.35001994625931e-02 4.96601287812404e-02 + 4.69115999564798e-02 5.18156686218105e-02 + 5.05037662874084e-02 5.40013382232845e-02 + 5.42786495746735e-02 5.62234758330505e-02 + 5.82482809121614e-02 5.84716000937855e-02 + 6.24154777430842e-02 6.07527241240193e-02 + 6.67896532476333e-02 6.30611171442784e-02 + 7.13799778368031e-02 6.53924902316809e-02 + 7.61893991966636e-02 6.77536943148228e-02 + 8.12317422826271e-02 7.01307158448530e-02 + 8.65117308166364e-02 7.25279772295263e-02 + 9.20361925143298e-02 7.49454570665521e-02 + 9.78162490733068e-02 7.73748196288702e-02 + 1.03860525098628e-01 7.98107376836716e-02 + 1.10175749426971e-01 8.22553965780306e-02 + 1.16770184828620e-01 8.47058845532950e-02 + 1.23653173100621e-01 8.71545949342700e-02 + 1.30834306039958e-01 8.95967898803351e-02 + 1.38321638159842e-01 9.20292326136635e-02 + 1.46124356656426e-01 9.44436091370127e-02 + 1.54251870487751e-01 9.68324481019705e-02 + 1.62712165766615e-01 9.91923652415109e-02 + 1.71513276359922e-01 1.01517920367561e-01 + 1.80666809206519e-01 1.03789902629961e-01 + 1.90176333616483e-01 1.06018459355824e-01 + 2.00055618945293e-01 1.08170249602257e-01 + 2.10311333730825e-01 1.10238985284240e-01 + 2.20950025725240e-01 1.12217524621099e-01 + 2.31980826542045e-01 1.14082138261491e-01 + 2.43406729303366e-01 1.15839155310084e-01 + 2.55238106076494e-01 1.17446572225308e-01 + 2.67477471857320e-01 1.18905415201973e-01 + 2.80131031707401e-01 1.20180412981259e-01 + 2.93202678436719e-01 1.21245809848125e-01 + 3.06694853961626e-01 1.22070347287731e-01 + 3.20607221269401e-01 1.22636048627399e-01 + 3.34939225727116e-01 1.22896405187495e-01 + 3.49687259951759e-01 1.22832509683795e-01 + 3.64846634151165e-01 1.22439948740756e-01 + 3.80413960921238e-01 1.21746809942571e-01 + 3.96385714538567e-01 1.20764919268824e-01 + 4.12758960322157e-01 1.19510121769152e-01 + 4.29529842936380e-01 1.17984332147218e-01 + 4.46694032865700e-01 1.16192942543521e-01 + 4.64243156344356e-01 1.14110109333428e-01 + 4.82175917377177e-01 1.11782565979692e-01 + 5.00484981625201e-01 1.09197664159710e-01 + 5.19162527401886e-01 1.06360393829411e-01 + 5.38203351947280e-01 1.03293317103930e-01 + 5.57598339807246e-01 9.99962205928791e-02 + 5.77338351570623e-01 9.64747449157602e-02 + 5.97416776275050e-01 9.27560006949552e-02 + 6.17822141099620e-01 8.88440306520127e-02 + 6.38542602259551e-01 8.47454502578335e-02 + 6.59565267437110e-01 8.04670396004571e-02 + 6.80878587686638e-01 7.60267545343259e-02 + 7.02471625795160e-01 7.14503791069948e-02 + 7.24326570178040e-01 6.67348590516426e-02 + 7.46427167466697e-01 6.18895592022783e-02 + 7.68752565300964e-01 5.69073598312532e-02 + 7.91284286644164e-01 5.17961436337766e-02 + 8.14003103862062e-01 4.65642778387828e-02 + 8.36892211324902e-01 4.12336546487814e-02 + 8.59931483011660e-01 3.58149765441833e-02 + 8.83096679342750e-01 3.03040142055707e-02 + 9.06368908273977e-01 2.47214334364437e-02 + 9.29725618218844e-01 1.90747609134739e-02 + 9.53145851346865e-01 1.33087434425404e-02 + 9.76587857380671e-01 7.46542748662253e-03 + 1.00000000000000e+00 1.53836008119114e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF28_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF28_Coords.txt new file mode 100644 index 00000000..a8559b09 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF28_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -1.24164223325347e-03 + 9.76041164392396e-01 1.99488062082566e-03 + 9.52121910751731e-01 4.75706135335948e-03 + 9.28199952199219e-01 7.09542915865422e-03 + 9.04291183649571e-01 8.93443767118390e-03 + 8.80430335305919e-01 9.96657750751068e-03 + 8.56672679460919e-01 9.94290456909515e-03 + 8.33075414701384e-01 9.19689647089799e-03 + 8.09695687435274e-01 7.47347776900502e-03 + 7.86588871455130e-01 4.89111649401108e-03 + 7.63799965113471e-01 1.51070681640460e-03 + 7.41353000623285e-01 -2.52044025059049e-03 + 7.19257724385752e-01 -7.04038035491660e-03 + 6.97520929992240e-01 -1.19358771025367e-02 + 6.76139755888505e-01 -1.70807000809784e-02 + 6.55114166969036e-01 -2.23866910906930e-02 + 6.34437004205735e-01 -2.77558927368869e-02 + 6.14099144503465e-01 -3.30936572688430e-02 + 5.94097064299627e-01 -3.83328932311329e-02 + 5.74431247267374e-01 -4.34270116338703e-02 + 5.55097891490535e-01 -4.83164932012163e-02 + 5.36103212560625e-01 -5.29813263991864e-02 + 5.17451481630547e-01 -5.73968812892901e-02 + 4.99146111683925e-01 -6.15389571602501e-02 + 4.81186975180132e-01 -6.53690978763222e-02 + 4.63583300631990e-01 -6.88824794729917e-02 + 4.46345639685456e-01 -7.21042454369658e-02 + 4.29476392143564e-01 -7.50078041225779e-02 + 4.12981130677270e-01 -7.75910183051978e-02 + 3.96868662278405e-01 -7.98780393343755e-02 + 3.81143702382537e-01 -8.18762030718283e-02 + 3.65809916070270e-01 -8.35894498418953e-02 + 3.50871312147949e-01 -8.50344244357429e-02 + 3.36330822167539e-01 -8.62290745383426e-02 + 3.22187646977060e-01 -8.71590051574009e-02 + 3.08443347581371e-01 -8.78366305562361e-02 + 2.95097791339595e-01 -8.82767906155356e-02 + 2.82150283499973e-01 -8.84841152823162e-02 + 2.69599681087069e-01 -8.84700144337475e-02 + 2.57443507192848e-01 -8.82648626051867e-02 + 2.45678472964112e-01 -8.78783050259134e-02 + 2.34300862010750e-01 -8.73191697949781e-02 + 2.23305146809674e-01 -8.66150861037270e-02 + 2.12686447462944e-01 -8.57716757140843e-02 + 2.02439173855586e-01 -8.47960288193625e-02 + 1.92555307706631e-01 -8.37147516939257e-02 + 1.83029046978344e-01 -8.25290955835651e-02 + 1.73852963346223e-01 -8.12499103431124e-02 + 1.65019689389359e-01 -7.98863245514951e-02 + 1.56521126720043e-01 -7.84487139477401e-02 + 1.48348304923117e-01 -7.69503909453266e-02 + 1.40492148638460e-01 -7.54025518805833e-02 + 1.32945914165942e-01 -7.38053366709304e-02 + 1.25700981456047e-01 -7.21672611749456e-02 + 1.18749045764871e-01 -7.04928205316870e-02 + 1.12082052295785e-01 -6.87847149917338e-02 + 1.05690622940757e-01 -6.70563903986223e-02 + 9.95644640688240e-02 -6.53155333147837e-02 + 9.36997746804533e-02 -6.35528246583057e-02 + 8.80860269419856e-02 -6.17797928182627e-02 + 8.27138276159543e-02 -6.00046033630738e-02 + 7.75786679035966e-02 -5.82199710630611e-02 + 7.26702668766427e-02 -5.64363872841197e-02 + 6.79824057221827e-02 -5.46531901393429e-02 + 6.35090960690899e-02 -5.28689008362057e-02 + 5.92419250258708e-02 -5.10893545882387e-02 + 5.51761543119222e-02 -4.93108314830338e-02 + 5.13012845894761e-02 -4.75440896934531e-02 + 4.76145515997845e-02 -4.57830599145488e-02 + 4.41097733544431e-02 -4.40286418035125e-02 + 4.07797512889574e-02 -4.22832452899324e-02 + 3.76203116687853e-02 -4.05471735735779e-02 + 3.46254239696624e-02 -3.88215583285753e-02 + 3.17889085655347e-02 -3.71070627007449e-02 + 2.91063003142196e-02 -3.54070465342894e-02 + 2.65680912572024e-02 -3.37242409387003e-02 + 2.41746444372365e-02 -3.20578833095496e-02 + 2.19171444247057e-02 -3.04080839884921e-02 + 1.97858149698170e-02 -2.87865078379770e-02 + 1.77816785975956e-02 -2.71845378027204e-02 + 1.59022597397006e-02 -2.56014559510294e-02 + 1.41389646872214e-02 -2.40428674601252e-02 + 1.24868469400299e-02 -2.25098598379508e-02 + 1.09480652882944e-02 -2.09965353712404e-02 + 9.51590058521273e-03 -1.95072886041607e-02 + 8.19359596476239e-03 -1.80358421377615e-02 + 6.97242121388991e-03 -1.65886143273830e-02 + 5.86117330807756e-03 -1.51566360782969e-02 + 4.85595758514205e-03 -1.37425262435773e-02 + 3.94940976333073e-03 -1.23512935315688e-02 + 3.14133835342164e-03 -1.09822566687452e-02 + 2.44321714150649e-03 -9.63205013980954e-03 + 1.83022809796061e-03 -8.31193344939125e-03 + 1.31884436057794e-03 -7.01716988880847e-03 + 8.97352193736273e-04 -5.75368646998309e-03 + 5.63740905842356e-04 -4.52380720725293e-03 + 3.11437030347409e-04 -3.33125343689109e-03 + 1.35836224347021e-04 -2.17811584123553e-03 + 4.45280630750671e-05 -1.06661951254253e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.66759975469128e-05 1.06620320574453e-03 + 1.03135502882502e-04 2.17873885472331e-03 + 2.50714361136359e-04 3.33437348745562e-03 + 4.62713791811825e-04 4.53304972124580e-03 + 7.43003731765193e-04 5.77372430028259e-03 + 1.10319742939756e-03 7.05282365458086e-03 + 1.54997995490141e-03 8.36732726269284e-03 + 2.09725167376054e-03 9.71027388884010e-03 + 2.74048539040992e-03 1.10830187729024e-02 + 3.47312973743479e-03 1.24853497385656e-02 + 4.30082057862358e-03 1.39166426421534e-02 + 5.21856989199968e-03 1.53794078029284e-02 + 6.22534057591764e-03 1.68754960531490e-02 + 7.32700432621982e-03 1.84027675881834e-02 + 8.52684801153103e-03 1.99605858637636e-02 + 9.82457090745577e-03 2.15515899247781e-02 + 1.12235129483028e-02 2.31756762504219e-02 + 1.27200449567995e-02 2.48389005693531e-02 + 1.43242218865420e-02 2.65369882056060e-02 + 1.60404178082626e-02 2.82678553499417e-02 + 1.78724934115684e-02 3.00331989618528e-02 + 1.98202065802740e-02 3.18374006104675e-02 + 2.18950371605342e-02 3.36723464545640e-02 + 2.40944987682683e-02 3.55478452136134e-02 + 2.64266489071067e-02 3.74562451109318e-02 + 2.89010362193680e-02 3.93973481646352e-02 + 3.15128734993139e-02 4.13789540071277e-02 + 3.42721293711695e-02 4.33986338037802e-02 + 3.71869628254960e-02 4.54495701594197e-02 + 4.02626884327817e-02 4.75345999298599e-02 + 4.35001994625931e-02 4.96601287812404e-02 + 4.69115999564798e-02 5.18156686218105e-02 + 5.05037662874084e-02 5.40013382232845e-02 + 5.42786495746735e-02 5.62234758330505e-02 + 5.82482809121614e-02 5.84716000937855e-02 + 6.24154777430842e-02 6.07527241240193e-02 + 6.67896532476333e-02 6.30611171442784e-02 + 7.13799778368031e-02 6.53924902316809e-02 + 7.61893991966636e-02 6.77536943148228e-02 + 8.12317422826271e-02 7.01307158448530e-02 + 8.65117308166364e-02 7.25279772295263e-02 + 9.20361925143298e-02 7.49454570665521e-02 + 9.78162490733068e-02 7.73748196288702e-02 + 1.03860525098628e-01 7.98107376836716e-02 + 1.10175749426971e-01 8.22553965780306e-02 + 1.16770184828620e-01 8.47058845532950e-02 + 1.23653173100621e-01 8.71545949342700e-02 + 1.30834306039958e-01 8.95967898803351e-02 + 1.38321638159842e-01 9.20292326136635e-02 + 1.46124356656426e-01 9.44436091370127e-02 + 1.54251870487751e-01 9.68324481019705e-02 + 1.62712165766615e-01 9.91923652415109e-02 + 1.71513276359922e-01 1.01517920367561e-01 + 1.80666809206519e-01 1.03789902629961e-01 + 1.90176333616483e-01 1.06018459355824e-01 + 2.00055618945293e-01 1.08170249602257e-01 + 2.10311333730825e-01 1.10238985284240e-01 + 2.20950025725240e-01 1.12217524621099e-01 + 2.31980826542045e-01 1.14082138261491e-01 + 2.43406729303366e-01 1.15839155310084e-01 + 2.55238106076494e-01 1.17446572225308e-01 + 2.67477471857320e-01 1.18905415201973e-01 + 2.80131031707401e-01 1.20180412981259e-01 + 2.93202678436719e-01 1.21245809848125e-01 + 3.06694853961626e-01 1.22070347287731e-01 + 3.20607221269401e-01 1.22636048627399e-01 + 3.34939225727116e-01 1.22896405187495e-01 + 3.49687259951759e-01 1.22832509683795e-01 + 3.64846634151165e-01 1.22439948740756e-01 + 3.80413960921238e-01 1.21746809942571e-01 + 3.96385714538567e-01 1.20764919268824e-01 + 4.12758960322157e-01 1.19510121769152e-01 + 4.29529842936380e-01 1.17984332147218e-01 + 4.46694032865700e-01 1.16192942543521e-01 + 4.64243156344356e-01 1.14110109333428e-01 + 4.82175917377177e-01 1.11782565979692e-01 + 5.00484981625201e-01 1.09197664159710e-01 + 5.19162527401886e-01 1.06360393829411e-01 + 5.38203351947280e-01 1.03293317103930e-01 + 5.57598339807246e-01 9.99962205928791e-02 + 5.77338351570623e-01 9.64747449157602e-02 + 5.97416776275050e-01 9.27560006949552e-02 + 6.17822141099620e-01 8.88440306520127e-02 + 6.38542602259551e-01 8.47454502578335e-02 + 6.59565267437110e-01 8.04670396004571e-02 + 6.80878587686638e-01 7.60267545343259e-02 + 7.02471625795160e-01 7.14503791069948e-02 + 7.24326570178040e-01 6.67348590516426e-02 + 7.46427167466697e-01 6.18895592022783e-02 + 7.68752565300964e-01 5.69073598312532e-02 + 7.91284286644164e-01 5.17961436337766e-02 + 8.14003103862062e-01 4.65642778387828e-02 + 8.36892211324902e-01 4.12336546487814e-02 + 8.59931483011660e-01 3.58149765441833e-02 + 8.83096679342750e-01 3.03040142055707e-02 + 9.06368908273977e-01 2.47214334364437e-02 + 9.29725618218844e-01 1.90747609134739e-02 + 9.53145851346865e-01 1.33087434425404e-02 + 9.76587857380671e-01 7.46542748662253e-03 + 1.00000000000000e+00 1.53836008119114e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF29_Coords.txt b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF29_Coords.txt new file mode 100644 index 00000000..a8559b09 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AF29_Coords.txt @@ -0,0 +1,208 @@ + 201 NumCoords ! The number of coordinates in the airfoil shape file (including an extra coordinate for airfoil reference). Set to zero if coordinates not included. +! ......... x-y coordinates are next if NumCoords > 0 ............. +! x-y coordinate of airfoil reference +! x/c y/c + 0.250000 0 +! coordinates of airfoil shape +! interpolation to 200 points +! x/c y/c + 1.00000000000000e+00 -1.24164223325347e-03 + 9.76041164392396e-01 1.99488062082566e-03 + 9.52121910751731e-01 4.75706135335948e-03 + 9.28199952199219e-01 7.09542915865422e-03 + 9.04291183649571e-01 8.93443767118390e-03 + 8.80430335305919e-01 9.96657750751068e-03 + 8.56672679460919e-01 9.94290456909515e-03 + 8.33075414701384e-01 9.19689647089799e-03 + 8.09695687435274e-01 7.47347776900502e-03 + 7.86588871455130e-01 4.89111649401108e-03 + 7.63799965113471e-01 1.51070681640460e-03 + 7.41353000623285e-01 -2.52044025059049e-03 + 7.19257724385752e-01 -7.04038035491660e-03 + 6.97520929992240e-01 -1.19358771025367e-02 + 6.76139755888505e-01 -1.70807000809784e-02 + 6.55114166969036e-01 -2.23866910906930e-02 + 6.34437004205735e-01 -2.77558927368869e-02 + 6.14099144503465e-01 -3.30936572688430e-02 + 5.94097064299627e-01 -3.83328932311329e-02 + 5.74431247267374e-01 -4.34270116338703e-02 + 5.55097891490535e-01 -4.83164932012163e-02 + 5.36103212560625e-01 -5.29813263991864e-02 + 5.17451481630547e-01 -5.73968812892901e-02 + 4.99146111683925e-01 -6.15389571602501e-02 + 4.81186975180132e-01 -6.53690978763222e-02 + 4.63583300631990e-01 -6.88824794729917e-02 + 4.46345639685456e-01 -7.21042454369658e-02 + 4.29476392143564e-01 -7.50078041225779e-02 + 4.12981130677270e-01 -7.75910183051978e-02 + 3.96868662278405e-01 -7.98780393343755e-02 + 3.81143702382537e-01 -8.18762030718283e-02 + 3.65809916070270e-01 -8.35894498418953e-02 + 3.50871312147949e-01 -8.50344244357429e-02 + 3.36330822167539e-01 -8.62290745383426e-02 + 3.22187646977060e-01 -8.71590051574009e-02 + 3.08443347581371e-01 -8.78366305562361e-02 + 2.95097791339595e-01 -8.82767906155356e-02 + 2.82150283499973e-01 -8.84841152823162e-02 + 2.69599681087069e-01 -8.84700144337475e-02 + 2.57443507192848e-01 -8.82648626051867e-02 + 2.45678472964112e-01 -8.78783050259134e-02 + 2.34300862010750e-01 -8.73191697949781e-02 + 2.23305146809674e-01 -8.66150861037270e-02 + 2.12686447462944e-01 -8.57716757140843e-02 + 2.02439173855586e-01 -8.47960288193625e-02 + 1.92555307706631e-01 -8.37147516939257e-02 + 1.83029046978344e-01 -8.25290955835651e-02 + 1.73852963346223e-01 -8.12499103431124e-02 + 1.65019689389359e-01 -7.98863245514951e-02 + 1.56521126720043e-01 -7.84487139477401e-02 + 1.48348304923117e-01 -7.69503909453266e-02 + 1.40492148638460e-01 -7.54025518805833e-02 + 1.32945914165942e-01 -7.38053366709304e-02 + 1.25700981456047e-01 -7.21672611749456e-02 + 1.18749045764871e-01 -7.04928205316870e-02 + 1.12082052295785e-01 -6.87847149917338e-02 + 1.05690622940757e-01 -6.70563903986223e-02 + 9.95644640688240e-02 -6.53155333147837e-02 + 9.36997746804533e-02 -6.35528246583057e-02 + 8.80860269419856e-02 -6.17797928182627e-02 + 8.27138276159543e-02 -6.00046033630738e-02 + 7.75786679035966e-02 -5.82199710630611e-02 + 7.26702668766427e-02 -5.64363872841197e-02 + 6.79824057221827e-02 -5.46531901393429e-02 + 6.35090960690899e-02 -5.28689008362057e-02 + 5.92419250258708e-02 -5.10893545882387e-02 + 5.51761543119222e-02 -4.93108314830338e-02 + 5.13012845894761e-02 -4.75440896934531e-02 + 4.76145515997845e-02 -4.57830599145488e-02 + 4.41097733544431e-02 -4.40286418035125e-02 + 4.07797512889574e-02 -4.22832452899324e-02 + 3.76203116687853e-02 -4.05471735735779e-02 + 3.46254239696624e-02 -3.88215583285753e-02 + 3.17889085655347e-02 -3.71070627007449e-02 + 2.91063003142196e-02 -3.54070465342894e-02 + 2.65680912572024e-02 -3.37242409387003e-02 + 2.41746444372365e-02 -3.20578833095496e-02 + 2.19171444247057e-02 -3.04080839884921e-02 + 1.97858149698170e-02 -2.87865078379770e-02 + 1.77816785975956e-02 -2.71845378027204e-02 + 1.59022597397006e-02 -2.56014559510294e-02 + 1.41389646872214e-02 -2.40428674601252e-02 + 1.24868469400299e-02 -2.25098598379508e-02 + 1.09480652882944e-02 -2.09965353712404e-02 + 9.51590058521273e-03 -1.95072886041607e-02 + 8.19359596476239e-03 -1.80358421377615e-02 + 6.97242121388991e-03 -1.65886143273830e-02 + 5.86117330807756e-03 -1.51566360782969e-02 + 4.85595758514205e-03 -1.37425262435773e-02 + 3.94940976333073e-03 -1.23512935315688e-02 + 3.14133835342164e-03 -1.09822566687452e-02 + 2.44321714150649e-03 -9.63205013980954e-03 + 1.83022809796061e-03 -8.31193344939125e-03 + 1.31884436057794e-03 -7.01716988880847e-03 + 8.97352193736273e-04 -5.75368646998309e-03 + 5.63740905842356e-04 -4.52380720725293e-03 + 3.11437030347409e-04 -3.33125343689109e-03 + 1.35836224347021e-04 -2.17811584123553e-03 + 4.45280630750671e-05 -1.06661951254253e-03 + 0.00000000000000e+00 0.00000000000000e+00 + 2.66759975469128e-05 1.06620320574453e-03 + 1.03135502882502e-04 2.17873885472331e-03 + 2.50714361136359e-04 3.33437348745562e-03 + 4.62713791811825e-04 4.53304972124580e-03 + 7.43003731765193e-04 5.77372430028259e-03 + 1.10319742939756e-03 7.05282365458086e-03 + 1.54997995490141e-03 8.36732726269284e-03 + 2.09725167376054e-03 9.71027388884010e-03 + 2.74048539040992e-03 1.10830187729024e-02 + 3.47312973743479e-03 1.24853497385656e-02 + 4.30082057862358e-03 1.39166426421534e-02 + 5.21856989199968e-03 1.53794078029284e-02 + 6.22534057591764e-03 1.68754960531490e-02 + 7.32700432621982e-03 1.84027675881834e-02 + 8.52684801153103e-03 1.99605858637636e-02 + 9.82457090745577e-03 2.15515899247781e-02 + 1.12235129483028e-02 2.31756762504219e-02 + 1.27200449567995e-02 2.48389005693531e-02 + 1.43242218865420e-02 2.65369882056060e-02 + 1.60404178082626e-02 2.82678553499417e-02 + 1.78724934115684e-02 3.00331989618528e-02 + 1.98202065802740e-02 3.18374006104675e-02 + 2.18950371605342e-02 3.36723464545640e-02 + 2.40944987682683e-02 3.55478452136134e-02 + 2.64266489071067e-02 3.74562451109318e-02 + 2.89010362193680e-02 3.93973481646352e-02 + 3.15128734993139e-02 4.13789540071277e-02 + 3.42721293711695e-02 4.33986338037802e-02 + 3.71869628254960e-02 4.54495701594197e-02 + 4.02626884327817e-02 4.75345999298599e-02 + 4.35001994625931e-02 4.96601287812404e-02 + 4.69115999564798e-02 5.18156686218105e-02 + 5.05037662874084e-02 5.40013382232845e-02 + 5.42786495746735e-02 5.62234758330505e-02 + 5.82482809121614e-02 5.84716000937855e-02 + 6.24154777430842e-02 6.07527241240193e-02 + 6.67896532476333e-02 6.30611171442784e-02 + 7.13799778368031e-02 6.53924902316809e-02 + 7.61893991966636e-02 6.77536943148228e-02 + 8.12317422826271e-02 7.01307158448530e-02 + 8.65117308166364e-02 7.25279772295263e-02 + 9.20361925143298e-02 7.49454570665521e-02 + 9.78162490733068e-02 7.73748196288702e-02 + 1.03860525098628e-01 7.98107376836716e-02 + 1.10175749426971e-01 8.22553965780306e-02 + 1.16770184828620e-01 8.47058845532950e-02 + 1.23653173100621e-01 8.71545949342700e-02 + 1.30834306039958e-01 8.95967898803351e-02 + 1.38321638159842e-01 9.20292326136635e-02 + 1.46124356656426e-01 9.44436091370127e-02 + 1.54251870487751e-01 9.68324481019705e-02 + 1.62712165766615e-01 9.91923652415109e-02 + 1.71513276359922e-01 1.01517920367561e-01 + 1.80666809206519e-01 1.03789902629961e-01 + 1.90176333616483e-01 1.06018459355824e-01 + 2.00055618945293e-01 1.08170249602257e-01 + 2.10311333730825e-01 1.10238985284240e-01 + 2.20950025725240e-01 1.12217524621099e-01 + 2.31980826542045e-01 1.14082138261491e-01 + 2.43406729303366e-01 1.15839155310084e-01 + 2.55238106076494e-01 1.17446572225308e-01 + 2.67477471857320e-01 1.18905415201973e-01 + 2.80131031707401e-01 1.20180412981259e-01 + 2.93202678436719e-01 1.21245809848125e-01 + 3.06694853961626e-01 1.22070347287731e-01 + 3.20607221269401e-01 1.22636048627399e-01 + 3.34939225727116e-01 1.22896405187495e-01 + 3.49687259951759e-01 1.22832509683795e-01 + 3.64846634151165e-01 1.22439948740756e-01 + 3.80413960921238e-01 1.21746809942571e-01 + 3.96385714538567e-01 1.20764919268824e-01 + 4.12758960322157e-01 1.19510121769152e-01 + 4.29529842936380e-01 1.17984332147218e-01 + 4.46694032865700e-01 1.16192942543521e-01 + 4.64243156344356e-01 1.14110109333428e-01 + 4.82175917377177e-01 1.11782565979692e-01 + 5.00484981625201e-01 1.09197664159710e-01 + 5.19162527401886e-01 1.06360393829411e-01 + 5.38203351947280e-01 1.03293317103930e-01 + 5.57598339807246e-01 9.99962205928791e-02 + 5.77338351570623e-01 9.64747449157602e-02 + 5.97416776275050e-01 9.27560006949552e-02 + 6.17822141099620e-01 8.88440306520127e-02 + 6.38542602259551e-01 8.47454502578335e-02 + 6.59565267437110e-01 8.04670396004571e-02 + 6.80878587686638e-01 7.60267545343259e-02 + 7.02471625795160e-01 7.14503791069948e-02 + 7.24326570178040e-01 6.67348590516426e-02 + 7.46427167466697e-01 6.18895592022783e-02 + 7.68752565300964e-01 5.69073598312532e-02 + 7.91284286644164e-01 5.17961436337766e-02 + 8.14003103862062e-01 4.65642778387828e-02 + 8.36892211324902e-01 4.12336546487814e-02 + 8.59931483011660e-01 3.58149765441833e-02 + 8.83096679342750e-01 3.03040142055707e-02 + 9.06368908273977e-01 2.47214334364437e-02 + 9.29725618218844e-01 1.90747609134739e-02 + 9.53145851346865e-01 1.33087434425404e-02 + 9.76587857380671e-01 7.46542748662253e-03 + 1.00000000000000e+00 1.53836008119114e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_00.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_00.dat new file mode 100644 index 00000000..b23ba71d --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_00.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF00_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF00_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +0.000000 alpha0 ! 0-lift angle of attack, depends on airfoil. +0.000000 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +0.000000 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +0.000000 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.000000 Cd0 ! 2D drag coefficient value at 0-lift. +0.000000 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.77000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.74000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 -2.77555756156289e-17 +-1.71000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.68000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.65000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.62000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.59000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.56000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.53000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.50000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.47000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.44000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.41000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.38000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.35000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.32000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.29000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.26000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.23000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.20000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.17000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.14000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.11000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.08000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.05000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.02000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.90000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-8.70000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-8.40000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-8.10000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-7.80000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-7.50000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-7.20000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.90000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-5.70000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-5.40000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-5.10000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-4.80000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-4.50000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-4.20000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.90000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.93939393939394e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.87878787878788e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.81818181818182e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.75757575757576e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.69696969696970e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.63636363636364e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.57575757575758e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.51515151515151e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.45454545454545e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.39393939393939e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.33333333333333e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.27272727272727e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.21212121212121e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.15151515151515e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.09090909090909e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.03030303030303e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.96969696969697e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.90909090909091e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.84848484848485e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.78787878787879e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.72727272727273e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.66666666666667e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.60606060606061e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.54545454545455e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.48484848484848e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.42424242424242e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.36363636363636e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.30303030303030e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.24242424242424e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.18181818181818e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.12121212121212e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.06060606060606e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.39393939393939e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-8.78787878787879e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-8.18181818181818e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-7.57575757575758e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.96969696969697e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-6.36363636363636e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-5.75757575757576e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-5.15151515151515e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-4.54545454545454e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.93939393939394e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.33333333333333e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.72727272727273e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-2.12121212121212e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-1.51515151515152e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-9.09090909090912e-01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 +-3.03030303030302e-01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.03030303030302e-01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.09090909090912e-01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.51515151515152e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.12121212121212e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.72727272727273e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.33333333333333e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.93939393939394e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 4.54545454545455e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 5.15151515151515e+00 1.11022302462516e-16 5.00000000000000e-01 0.00000000000000e+00 + 5.75757575757576e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.36363636363637e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.96969696969697e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 7.57575757575757e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 8.18181818181818e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 8.78787878787879e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.39393939393939e+00 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.06060606060606e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.12121212121212e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.18181818181818e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.24242424242424e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.30303030303030e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.36363636363636e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.42424242424242e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.48484848484848e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.54545454545455e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.60606060606061e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.66666666666667e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.72727272727273e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.78787878787879e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.84848484848485e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.90909090909091e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.96969696969697e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.03030303030303e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.09090909090909e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.15151515151515e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.21212121212121e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.27272727272727e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.33333333333333e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.39393939393939e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.45454545454545e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.51515151515151e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.57575757575758e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.63636363636364e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.69696969696970e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.75757575757576e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.81818181818182e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.87878787878788e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 2.93939393939394e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 3.90000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 4.20000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 4.50000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 4.80000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 5.10000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 5.40000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 5.70000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 6.90000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 7.20000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 7.50000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 7.80000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 8.10000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 8.40000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 8.70000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.00000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.30000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.60000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 9.90000000000000e+01 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.02000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.05000000000000e+02 2.77555756156289e-17 5.00000000000000e-01 0.00000000000000e+00 + 1.08000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.11000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.14000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.17000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.20000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.23000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.26000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.29000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.32000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.35000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.38000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.41000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.44000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.47000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.50000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.53000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.56000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.59000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.62000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.65000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.68000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.71000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.74000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.77000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 + 1.80000000000000e+02 0.00000000000000e+00 5.00000000000000e-01 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_01.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_01.dat new file mode 100644 index 00000000..b197c637 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_01.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF01_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF01_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +0.000000 alpha0 ! 0-lift angle of attack, depends on airfoil. +0.000000 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +0.000000 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +0.000000 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.000000 Cd0 ! 2D drag coefficient value at 0-lift. +0.000000 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 4.98298540333591e-01 0.00000000000000e+00 +-1.77000000000000e+02 6.22917411225319e-03 4.99373778033698e-01 7.76775909182493e-03 +-1.74000000000000e+02 1.25154154596942e-02 4.99419482735902e-01 1.56066808333025e-02 +-1.71000000000000e+02 1.87731622461588e-02 4.99461965511715e-01 2.34100699534240e-02 +-1.68000000000000e+02 2.34094297732302e-02 4.99530448606310e-01 2.52436698228222e-02 +-1.65000000000000e+02 2.72360674222744e-02 4.99608171404762e-01 2.40924447430971e-02 +-1.62000000000000e+02 3.10637475603965e-02 4.99680051763820e-01 2.29412064713014e-02 +-1.59000000000000e+02 3.36494201711338e-02 4.99754234730512e-01 2.21517716457378e-02 +-1.56000000000000e+02 3.37510782194723e-02 4.99836914626034e-01 2.20859314734659e-02 +-1.53000000000000e+02 3.38548418745498e-02 4.99908331389323e-01 2.20200907982144e-02 +-1.50000000000000e+02 3.39610598736408e-02 4.99965130046894e-01 2.19542509808981e-02 +-1.47000000000000e+02 3.40022351252792e-02 5.01549605455131e-01 2.23645223424130e-02 +-1.44000000000000e+02 3.40443360294749e-02 5.07633704084372e-01 2.27747952710201e-02 +-1.41000000000000e+02 3.40874558144093e-02 5.13717849193324e-01 2.31850713339235e-02 +-1.38000000000000e+02 3.36790582106382e-02 5.20009950681803e-01 2.35945800253753e-02 +-1.35000000000000e+02 3.30448480367859e-02 5.26406029938182e-01 2.40037050326582e-02 +-1.32000000000000e+02 3.24110462717851e-02 5.32802182487933e-01 2.44128347281493e-02 +-1.29000000000000e+02 3.14966524820477e-02 5.39025691193689e-01 2.47587684454421e-02 +-1.26000000000000e+02 3.00203897774573e-02 5.44903911391262e-01 2.49783099065228e-02 +-1.23000000000000e+02 2.85442923527018e-02 5.47997043443126e-01 2.51978496904198e-02 +-1.20000000000000e+02 2.70683874187890e-02 5.50390438255170e-01 2.54173886357562e-02 +-1.17000000000000e+02 2.48208058238953e-02 5.51842311486022e-01 2.53547661804404e-02 +-1.14000000000000e+02 2.25732865469572e-02 5.53294177329843e-01 2.52921434125441e-02 +-1.11000000000000e+02 2.03258601363591e-02 5.54746032082366e-01 2.52295211230444e-02 +-1.08000000000000e+02 1.77044555792872e-02 5.55339410798165e-01 2.49510697467495e-02 +-1.05000000000000e+02 1.48960397658858e-02 5.55503544958830e-01 2.45647021836766e-02 +-1.02000000000000e+02 1.20876828091304e-02 5.55667677238678e-01 2.41783390479984e-02 +-9.90000000000000e+01 9.19392120485563e-03 5.55336597556942e-01 2.36900749881812e-02 +-9.60000000000000e+01 6.12926766887735e-03 5.54015072501802e-01 2.29980046662208e-02 +-9.30000000000000e+01 3.06463754512461e-03 5.52693557542367e-01 2.23059396312876e-02 +-9.00000000000000e+01 1.91272727247280e-08 5.51372047630695e-01 2.15841433608613e-02 +-8.70000000000000e+01 -3.06463440848635e-03 5.52693556189802e-01 2.16338466189352e-02 +-8.40000000000000e+01 -6.12927623833141e-03 5.54015076197080e-01 2.16677916947745e-02 +-8.10000000000000e+01 -9.19389465618328e-03 5.55336586108752e-01 2.16947509086332e-02 +-7.80000000000000e+01 -1.20876692076357e-02 5.55667678033613e-01 2.14919425433851e-02 +-7.50000000000000e+01 -1.48960583459338e-02 5.55503543872940e-01 2.11742464233755e-02 +-7.20000000000000e+01 -1.77044419776618e-02 5.55339411593092e-01 2.08565539438687e-02 +-6.90000000000000e+01 -2.03258406672883e-02 5.54746044659799e-01 2.04334687101240e-02 +-6.60000000000000e+01 -2.25732928313413e-02 5.53294173270158e-01 1.97995893374298e-02 +-6.30000000000000e+01 -2.48208206936227e-02 5.51842301880517e-01 1.91657099647355e-02 +-6.00000000000000e+01 -2.70683971825928e-02 5.50390422420595e-01 1.85318284698429e-02 +-5.70000000000000e+01 -2.85443021178706e-02 5.47997027608551e-01 1.76503617476530e-02 +-5.40000000000000e+01 -3.00203995438562e-02 5.44903872501265e-01 1.67688916585075e-02 +-5.10000000000000e+01 -3.14966622493741e-02 5.39025652303692e-01 1.58874148353996e-02 +-4.80000000000000e+01 -3.24110456233041e-02 5.32802189034552e-01 1.48845508415255e-02 +-4.50000000000000e+01 -3.30448401226552e-02 5.26406109778172e-01 1.38209952131320e-02 +-4.20000000000000e+01 -3.36790575613502e-02 5.20009957227964e-01 1.27574273972622e-02 +-3.90000000000000e+01 -3.40874557757088e-02 5.13717843800706e-01 1.16502587670957e-02 +-3.60000000000000e+01 -3.40443359103789e-02 5.07633687072646e-01 1.04558679399742e-02 +-3.30000000000000e+01 -3.40022354063646e-02 5.01549646541201e-01 9.26149992360155e-03 +-3.00000000000000e+01 -3.39610593176495e-02 4.99965129704843e-01 8.06710800308781e-03 +-2.93939393939394e+01 -3.39393842149473e-02 4.99955039870966e-01 7.77133972459921e-03 +-2.87878787878788e+01 -3.39178226626962e-02 4.99944209186026e-01 7.47170990628286e-03 +-2.81818181818182e+01 -3.38963709780943e-02 4.99932679692807e-01 7.17234251862615e-03 +-2.75757575757576e+01 -3.38750252088939e-02 4.99920490061147e-01 6.87323704771576e-03 +-2.69696969696970e+01 -3.38537822279900e-02 4.99907676487852e-01 6.57440256765985e-03 +-2.63636363636364e+01 -3.38326389844070e-02 4.99894272577114e-01 6.27584744506084e-03 +-2.57575757575758e+01 -3.38115926180026e-02 4.99880309637533e-01 5.97758105595668e-03 +-2.51515151515151e+01 -3.37906402717716e-02 4.99865816763762e-01 5.67961122622956e-03 +-2.45454545454545e+01 -3.37697787305793e-02 4.99850820740502e-01 5.38193913346827e-03 +-2.39393939393939e+01 -3.37490052565293e-02 4.99835346782305e-01 5.08457126751900e-03 +-2.33333333333333e+01 -3.37283172206986e-02 4.99819418446624e-01 4.78751430822279e-03 +-2.27272727272727e+01 -3.37077120977687e-02 4.99803057767734e-01 4.49077513241954e-03 +-2.21212121212121e+01 -3.36871874609726e-02 4.99786285377891e-01 4.19436082126422e-03 +-2.15151515151515e+01 -3.36667405096286e-02 4.99769120219361e-01 3.89827188626708e-03 +-2.09090909090909e+01 -3.36463693546679e-02 4.99751580718914e-01 3.60252094397359e-03 +-2.03030303030303e+01 -3.36260719547005e-02 4.99733684020483e-01 3.30711743419011e-03 +-1.96969696969697e+01 -3.29941770005342e-02 4.99715928910410e-01 2.97198266169500e-03 +-1.90909090909091e+01 -3.17509544740198e-02 4.99698118180787e-01 2.59700694849448e-03 +-1.84848484848485e+01 -3.05081921751880e-02 4.99679692312574e-01 2.22228885632221e-03 +-1.78787878787879e+01 -2.92658434632383e-02 4.99660638867322e-01 1.84786105360303e-03 +-1.72727272727273e+01 -2.80238734929002e-02 4.99640945159408e-01 1.47377573016103e-03 +-1.66666666666667e+01 -2.67823588448486e-02 4.99620599927312e-01 1.10014144572659e-03 +-1.60606060606061e+01 -2.55413203393379e-02 4.99599590742328e-01 7.27083418764568e-04 +-1.54545454545455e+01 -2.43008440419113e-02 4.99577905993521e-01 3.54797120669601e-04 +-1.48484848484848e+01 -2.30608787869031e-02 4.99555531346250e-01 4.21684305218460e-05 +-1.42424242424242e+01 -2.18214069842467e-02 4.99532452564366e-01 2.71911216522822e-05 +-1.36363636363636e+01 -2.05833091301585e-02 4.99508671393742e-01 1.42264537010822e-05 +-1.30303030303030e+01 -1.93442785240345e-02 4.99484131275150e-01 4.31295864732214e-06 +-1.24242424242424e+01 -1.81074797005703e-02 4.99458875874706e-01 -1.61041962405105e-04 +-1.18181818181818e+01 -1.68699463185017e-02 4.99432832875225e-01 -7.83817617224051e-04 +-1.12121212121212e+01 -1.56337784253251e-02 4.99406027440083e-01 -1.40654332027136e-03 +-1.06060606060606e+01 -1.43985688202720e-02 4.99052692242324e-01 -2.02931540870597e-03 +-1.00000000000000e+01 -1.31630022724158e-02 4.97993704507194e-01 -2.65204851654948e-03 +-9.39393939393939e+00 -1.11477228175490e-02 4.96487069320693e-01 -2.55646323442072e-03 +-8.78787878787879e+00 -9.13290842766007e-03 4.94977661180442e-01 -2.46147157009362e-03 +-8.18181818181818e+00 -7.12154268363285e-03 4.93467019568035e-01 -2.36566761577865e-03 +-7.57575757575758e+00 -5.11266117893152e-03 4.91954998300813e-01 -2.26283387170764e-03 +-6.96969696969697e+00 -3.10698824489412e-03 4.90440242965021e-01 -2.08181170391097e-03 +-6.36363636363636e+00 -1.10309834514044e-03 4.88921311313049e-01 -1.89874522974860e-03 +-5.75757575757576e+00 -3.00747474205360e-04 4.87401751405469e-01 -1.71567088819378e-03 +-5.15151515151515e+00 -2.21631176101127e-04 4.85879616962190e-01 -1.53403240787112e-03 +-4.54545454545454e+00 -1.49616631477367e-04 4.84353891592103e-01 -1.35030844364575e-03 +-3.93939393939394e+00 -8.68897616353509e-05 4.82825709613375e-01 -1.16711649919569e-03 +-3.33333333333333e+00 -3.06390387180330e-05 4.81485638756053e-01 -1.06097220254243e-03 +-2.72727272727273e+00 2.49883470329266e-03 4.81081167821070e-01 -1.11471300781816e-03 +-2.12121212121212e+00 9.70229526683138e-03 4.81205260595194e-01 -1.25146797918653e-03 +-1.51515151515152e+00 1.69064135086061e-02 4.81329323131111e-01 -1.47373619873665e-03 +-9.09090909090912e-01 2.15687752025109e-02 4.81450361624086e-01 -1.68081905636486e-03 +-3.03030303030302e-01 2.42404595537528e-02 4.81560887996981e-01 -1.90313415400156e-03 + 3.03030303030302e-01 2.69131749150450e-02 4.81684879937810e-01 -2.12376124690789e-03 + 9.09090909090912e-01 2.95856638229001e-02 4.81808857865227e-01 -2.33301661078614e-03 + 1.51515151515152e+00 3.22398936101882e-02 4.81929840079279e-01 -2.55120165338738e-03 + 2.12121212121212e+00 3.66675784640552e-02 4.81924986740543e-01 -2.77391835793390e-03 + 2.72727272727273e+00 4.19698427928253e-02 4.81879454613869e-01 -2.98510710550669e-03 + 3.33333333333333e+00 4.72717179522425e-02 4.81833922593971e-01 -3.18573614963958e-03 + 3.93939393939394e+00 5.25753326357400e-02 4.81775728360497e-01 -3.38638186200821e-03 + 4.54545454545455e+00 5.78765746006633e-02 4.81728632143155e-01 -3.59889201718914e-03 + 5.15151515151515e+00 6.31803800322498e-02 4.81680617938285e-01 -3.79953830438974e-03 + 5.75757575757576e+00 6.78668119866628e-02 4.81626107889307e-01 -4.03804041841606e-03 + 6.36363636363637e+00 7.15042486961224e-02 4.81584603835809e-01 -4.34980617905866e-03 + 6.96969696969697e+00 7.49998526302299e-02 4.81530576563388e-01 -4.66507085142508e-03 + 7.57575757575757e+00 7.85534281259633e-02 4.81489207644286e-01 -4.96022383060956e-03 + 8.18181818181818e+00 8.27222397693518e-02 4.81442706653469e-01 -5.12210053319802e-03 + 8.78787878787879e+00 8.59673537796770e-02 4.81485608223198e-01 -5.30026887591891e-03 + 9.39393939393939e+00 8.63938854494780e-02 4.81734888790963e-01 -5.58390579608546e-03 + 1.00000000000000e+01 8.61476310716953e-02 4.82033636040847e-01 -5.89351913489291e-03 + 1.06060606060606e+01 1.14640664678628e-02 4.86367761950627e-01 -4.32401101558585e-03 + 1.12121212121212e+01 1.77109990487445e-03 4.90977291638818e-01 -5.52690415533776e-05 + 1.18181818181818e+01 1.63608094150530e-03 4.94596563237555e-01 -4.71568484033090e-05 + 1.24242424242424e+01 5.38023265894621e-02 4.97637007791052e-01 -7.01427597271410e-05 + 1.30303030303030e+01 7.07102583465799e-02 4.99408388908304e-01 -2.78511851302713e-04 + 1.36363636363636e+01 6.81632004936948e-02 4.99466710089213e-01 -3.41458399817878e-04 + 1.42424242424242e+01 6.49592840496404e-02 4.99515392758744e-01 -3.60890382699212e-04 + 1.48484848484848e+01 6.00226087507924e-02 4.99558582755279e-01 -3.80502489146672e-04 + 1.54545454545455e+01 5.42932388358678e-02 4.99595173447000e-01 -3.60569709918067e-04 + 1.60606060606061e+01 4.89399852015463e-02 4.99626659734195e-01 -3.74707069218248e-04 + 1.66666666666667e+01 4.90264804982352e-02 4.99643029856566e-01 -8.14570485140793e-04 + 1.72727272727273e+01 4.89767434358854e-02 4.99658738397009e-01 -1.29542584308036e-03 + 1.78787878787879e+01 4.87601917929942e-02 4.99673710331708e-01 -1.82640692279492e-03 + 1.84848484848485e+01 4.85448822816922e-02 4.99688486075466e-01 -2.35860501303099e-03 + 1.90909090909091e+01 4.83300562227171e-02 4.99703072863703e-01 -2.89167774847090e-03 + 1.96969696969697e+01 4.81154623433704e-02 4.99717479015725e-01 -3.42523467641370e-03 + 2.03030303030303e+01 4.80233231913679e-02 4.99733684020482e-01 -3.86916331990858e-03 + 2.09090909090909e+01 4.80535318777004e-02 4.99751580718914e-01 -4.22318641357654e-03 + 2.15151515151515e+01 4.80838465710918e-02 4.99769120219361e-01 -4.57757988364418e-03 + 2.21212121212121e+01 4.81142702027946e-02 4.99786285377891e-01 -4.93233346765168e-03 + 2.27272727272727e+01 4.81448054735174e-02 4.99803057767734e-01 -5.28743306710894e-03 + 2.33333333333333e+01 4.81754564360106e-02 4.99819418446624e-01 -5.64287905507360e-03 + 2.39393939393939e+01 4.82062265821584e-02 4.99835346782305e-01 -5.99866390348971e-03 + 2.45454545454545e+01 4.82371195457987e-02 4.99850820740502e-01 -6.35478030087519e-03 + 2.51515151515151e+01 4.82681391100110e-02 4.99865816763762e-01 -6.71122114458926e-03 + 2.57575757575758e+01 4.82992892148572e-02 4.99880309637533e-01 -7.06797953342872e-03 + 2.63636363636364e+01 4.83305745045125e-02 4.99894272577114e-01 -7.42505490046007e-03 + 2.69696969696970e+01 4.83619990851020e-02 4.99907676487852e-01 -7.78243869417755e-03 + 2.75757575757576e+01 4.83935670617676e-02 4.99920490061147e-01 -8.14012048538783e-03 + 2.81818181818182e+01 4.84252828173819e-02 4.99932679692807e-01 -8.49809103217069e-03 + 2.87878787878788e+01 4.84571508417891e-02 4.99944209186026e-01 -8.85634022554155e-03 + 2.93939393939394e+01 4.84891768440017e-02 4.99955039870966e-01 -9.21486940940596e-03 + 3.00000000000000e+01 4.85213661255990e-02 4.99965129704843e-01 -9.57367290978077e-03 + 3.30000000000000e+01 4.85783850925221e-02 5.01549646541201e-01 -1.08893308683242e-02 + 3.60000000000000e+01 4.86367279082047e-02 5.07633687072646e-01 -1.21830696545693e-02 + 3.90000000000000e+01 4.86965308414856e-02 5.13717843800706e-01 -1.34715855024972e-02 + 4.20000000000000e+01 4.81074542024269e-02 5.20009957227964e-01 -1.45755410030633e-02 + 4.50000000000000e+01 4.71938349445183e-02 5.26406109778172e-01 -1.55872262614513e-02 + 4.80000000000000e+01 4.62807992978572e-02 5.32802189034552e-01 -1.65988999268877e-02 + 5.10000000000000e+01 4.49696537236258e-02 5.39025652303692e-01 -1.75196039279897e-02 + 5.40000000000000e+01 4.28613244897533e-02 5.44903872501265e-01 -1.82583627521897e-02 + 5.70000000000000e+01 4.07532301242102e-02 5.47997027608551e-01 -1.89971159327085e-02 + 6.00000000000000e+01 3.86454092273193e-02 5.50390422420595e-01 -1.97358662914081e-02 + 6.30000000000000e+01 3.54441639493027e-02 5.51842301880517e-01 -2.01991699310181e-02 + 6.60000000000000e+01 3.22429963032422e-02 5.53294173270158e-01 -2.06624712096125e-02 + 6.90000000000000e+01 2.90419479592744e-02 5.54746044659799e-01 -2.11257724882070e-02 + 7.20000000000000e+01 2.52997639160426e-02 5.55339411593092e-01 -2.14026262276280e-02 + 7.50000000000000e+01 2.12869899032544e-02 5.55503543872940e-01 -2.15862600142917e-02 + 7.80000000000000e+01 1.72742065965976e-02 5.55667678033613e-01 -2.17698959052524e-02 + 8.10000000000000e+01 1.31391516042592e-02 5.55336586108752e-01 -2.18644734045035e-02 + 8.40000000000000e+01 8.75945317316178e-03 5.54015076197080e-01 -2.17809402678169e-02 + 8.70000000000000e+01 4.37972128358576e-03 5.52693556189802e-01 -2.16904207186265e-02 + 9.00000000000000e+01 -1.91272727377706e-08 5.51372047630695e-01 -2.15841433608613e-02 + 9.30000000000000e+01 -3.06463754512461e-03 5.52693557542367e-01 -2.23059396312876e-02 + 9.60000000000000e+01 -6.12926766887736e-03 5.54015072501802e-01 -2.29980046662208e-02 + 9.90000000000000e+01 -9.19392120485563e-03 5.55336597556942e-01 -2.36900749881812e-02 + 1.02000000000000e+02 -1.20876828091304e-02 5.55667677238678e-01 -2.41783390479984e-02 + 1.05000000000000e+02 -1.48960397658858e-02 5.55503544958831e-01 -2.45647021836766e-02 + 1.08000000000000e+02 -1.77044555792872e-02 5.55339410798165e-01 -2.49510697467495e-02 + 1.11000000000000e+02 -2.03258601363591e-02 5.54746032082366e-01 -2.52295211230444e-02 + 1.14000000000000e+02 -2.25732865469573e-02 5.53294177329843e-01 -2.52921434125440e-02 + 1.17000000000000e+02 -2.48208058238953e-02 5.51842311486022e-01 -2.53547661804404e-02 + 1.20000000000000e+02 -2.70683874187890e-02 5.50390438255170e-01 -2.54173886357562e-02 + 1.23000000000000e+02 -2.85442923527018e-02 5.47997043443125e-01 -2.51978496904198e-02 + 1.26000000000000e+02 -3.00203897774573e-02 5.44903911391262e-01 -2.49783099065228e-02 + 1.29000000000000e+02 -3.14966524820477e-02 5.39025691193689e-01 -2.47587684454421e-02 + 1.32000000000000e+02 -3.24110462717851e-02 5.32802182487933e-01 -2.44128347281493e-02 + 1.35000000000000e+02 -3.30448480367859e-02 5.26406029938182e-01 -2.40037050326582e-02 + 1.38000000000000e+02 -3.36790582106382e-02 5.20009950681803e-01 -2.35945800253753e-02 + 1.41000000000000e+02 -3.40874558144093e-02 5.13717849193324e-01 -2.31850713339234e-02 + 1.44000000000000e+02 -3.40443360294749e-02 5.07633704084372e-01 -2.27747952710201e-02 + 1.47000000000000e+02 -3.40022351252792e-02 5.01549605455131e-01 -2.23645223424130e-02 + 1.50000000000000e+02 -3.39610598736408e-02 4.99965130046894e-01 -2.19542509808981e-02 + 1.53000000000000e+02 -3.38548418745498e-02 4.99908331389323e-01 -2.20200907982144e-02 + 1.56000000000000e+02 -3.37510782194723e-02 4.99836914626034e-01 -2.20859314734659e-02 + 1.59000000000000e+02 -3.36494201711338e-02 4.99754234730512e-01 -2.21517716457378e-02 + 1.62000000000000e+02 -3.10637475603964e-02 4.99680051763820e-01 -2.42417639918563e-02 + 1.65000000000000e+02 -2.72360674222744e-02 4.99608171404762e-01 -2.73438495435689e-02 + 1.68000000000000e+02 -2.34094297732302e-02 4.99530448606310e-01 -3.04458995483989e-02 + 1.71000000000000e+02 -1.87731622461588e-02 4.99461965511715e-01 -2.92625874417800e-02 + 1.74000000000000e+02 -1.25154154596942e-02 4.99419482735902e-01 -1.95083510416281e-02 + 1.77000000000000e+02 -6.22917411225319e-03 4.99373778033698e-01 -9.70969886478117e-03 + 1.80000000000000e+02 0.00000000000000e+00 4.98298540333591e-01 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_02.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_02.dat new file mode 100644 index 00000000..3b06888a --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_02.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF02_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF02_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +0.000000 alpha0 ! 0-lift angle of attack, depends on airfoil. +0.000000 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +0.000000 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +0.000000 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.000000 Cd0 ! 2D drag coefficient value at 0-lift. +0.000000 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 4.43994184250602e-01 0.00000000000000e+00 +-1.77000000000000e+02 5.28218858836285e-02 4.51778947168691e-01 6.31301215186523e-02 +-1.74000000000000e+02 1.06127688082721e-01 4.54846200132976e-01 1.26838596030369e-01 +-1.71000000000000e+02 1.59191863314727e-01 4.57721687001980e-01 1.90258289868333e-01 +-1.68000000000000e+02 1.97447618139026e-01 4.62593607482116e-01 2.03998727898909e-01 +-1.65000000000000e+02 2.28363691552126e-01 4.68241882193770e-01 1.92900117855920e-01 +-1.62000000000000e+02 2.59339036364168e-01 4.73545480231159e-01 1.81801380632199e-01 +-1.59000000000000e+02 2.79820337838342e-01 4.79170658239085e-01 1.73519743179148e-01 +-1.56000000000000e+02 2.79311457907633e-01 4.85668590966138e-01 1.70872209970165e-01 +-1.53000000000000e+02 2.78926753637668e-01 4.91502040321387e-01 1.68224656535610e-01 +-1.50000000000000e+02 2.78686833504982e-01 4.96473066155593e-01 1.65577105058638e-01 +-1.47000000000000e+02 2.78482617289417e-01 5.10449666953889e-01 1.68109661007669e-01 +-1.44000000000000e+02 2.78333002128108e-01 5.51477403517201e-01 1.70642226630173e-01 +-1.41000000000000e+02 2.78243478183707e-01 5.92505453513528e-01 1.73174811600312e-01 +-1.38000000000000e+02 2.74638204421170e-01 6.34935844279750e-01 1.76256259812944e-01 +-1.35000000000000e+02 2.69271830313825e-01 6.78067402586119e-01 1.79612138533394e-01 +-1.32000000000000e+02 2.63929918544127e-01 7.21199455141732e-01 1.82968055709224e-01 +-1.29000000000000e+02 2.56353341244360e-01 7.63167294790495e-01 1.86036517826043e-01 +-1.26000000000000e+02 2.44267095501969e-01 8.02806703094638e-01 1.88530068460767e-01 +-1.23000000000000e+02 2.32190027809931e-01 8.30095142617392e-01 1.91023600046048e-01 +-1.20000000000000e+02 2.20124030074996e-01 8.54280447094884e-01 1.93517122106963e-01 +-1.17000000000000e+02 2.01822771772063e-01 8.71322712892104e-01 1.94226310566758e-01 +-1.14000000000000e+02 1.83524830303930e-01 8.88364899623064e-01 1.94935492828237e-01 +-1.11000000000000e+02 1.65231494534441e-01 9.05406956162956e-01 1.95644669672032e-01 +-1.08000000000000e+02 1.43911689592217e-01 9.15698197853296e-01 1.94815640807175e-01 +-1.05000000000000e+02 1.21077486266499e-01 9.22613980715162e-01 1.93217497375608e-01 +-1.02000000000000e+02 9.82451183513876e-02 9.29529684328913e-01 1.91619372257204e-01 +-9.90000000000000e+01 7.47225598413416e-02 9.32477260333714e-01 1.89218782642220e-01 +-9.60000000000000e+01 4.98149331461973e-02 9.27488409240135e-01 1.85213229275117e-01 +-9.30000000000000e+01 2.49074967312809e-02 9.22499596258566e-01 1.81207706508184e-01 +-9.00000000000000e+01 1.55454756347091e-07 9.17510802332658e-01 1.75447976882559e-01 +-8.70000000000000e+01 -2.49074712386065e-02 9.22499591152534e-01 1.75821854055456e-01 +-8.40000000000000e+01 -4.98150027934706e-02 9.27488423190074e-01 1.75265803096445e-01 +-8.10000000000000e+01 -7.47223440699950e-02 9.32477217115983e-01 1.74297623848041e-01 +-7.80000000000000e+01 -9.82450077740596e-02 9.29529717823434e-01 1.71657379233808e-01 +-7.50000000000000e+01 -1.21077637330475e-01 9.22613934961229e-01 1.68181073081051e-01 +-7.20000000000000e+01 -1.43911579000158e-01 9.15698231347477e-01 1.64704806763536e-01 +-6.90000000000000e+01 -1.65231336083193e-01 9.05407103798478e-01 1.60521039551036e-01 +-6.60000000000000e+01 -1.83524881462789e-01 8.88364851969969e-01 1.54922212612248e-01 +-6.30000000000000e+01 -2.01822892842596e-01 8.71322600141459e-01 1.49323385673460e-01 +-6.00000000000000e+01 -2.20124109861353e-01 8.54280287086177e-01 1.43724546113009e-01 +-5.70000000000000e+01 -2.32190107676827e-01 8.30094982608685e-01 1.36653206413885e-01 +-5.40000000000000e+01 -2.44267175435753e-01 8.02806440842389e-01 1.29581839704227e-01 +-5.10000000000000e+01 -2.56353421232862e-01 7.63167032538246e-01 1.22510418973089e-01 +-4.80000000000000e+01 -2.63929913090152e-01 7.21199499288443e-01 1.14843085027639e-01 +-4.50000000000000e+01 -2.69271763474185e-01 6.78067940982074e-01 1.06877804052201e-01 +-4.20000000000000e+01 -2.74638198917296e-01 6.34935888423376e-01 9.89124318011671e-02 +-3.90000000000000e+01 -2.78243478234639e-01 5.92505417148744e-01 9.07777362760891e-02 +-3.60000000000000e+01 -2.78333002465160e-01 5.51477288799700e-01 8.23042410827366e-02 +-3.30000000000000e+01 -2.78482616088909e-01 5.10449944015222e-01 7.38309077181307e-02 +-3.00000000000000e+01 -2.78686834724237e-01 4.96473034437446e-01 6.53574058853759e-02 +-2.93939393939394e+01 -2.78722484884278e-01 4.95550482915159e-01 6.31590888898999e-02 +-2.87878787878788e+01 -2.78764834228033e-01 4.94584223091226e-01 6.07329510056277e-02 +-2.81818181818182e+01 -2.78813665479675e-01 4.93576735381485e-01 5.83222958533192e-02 +-2.75757575757576e+01 -2.78868771825416e-01 4.92530294643563e-01 5.59273989519316e-02 +-2.69696969696970e+01 -2.78929953713021e-01 4.91447040145689e-01 5.35486208968168e-02 +-2.63636363636364e+01 -2.78997019845282e-01 4.90328957261459e-01 5.11863242110430e-02 +-2.57575757575758e+01 -2.79069786417323e-01 4.89177896868326e-01 4.88408872710036e-02 +-2.51515151515151e+01 -2.79148077344780e-01 4.87995577350176e-01 4.65126844314689e-02 +-2.45454545454545e+01 -2.79231725535284e-01 4.86783573310055e-01 4.42020473048908e-02 +-2.39393939393939e+01 -2.79320569460013e-01 4.85543372341575e-01 4.19093587754535e-02 +-2.33333333333333e+01 -2.79414454019281e-01 4.84276364273540e-01 3.96350129365467e-02 +-2.27272727272727e+01 -2.79513230225828e-01 4.82983849071519e-01 3.73794155039853e-02 +-2.21212121212121e+01 -2.79616754906648e-01 4.81667043985251e-01 3.51429842476471e-02 +-2.15151515151515e+01 -2.79724892952109e-01 4.80327059059195e-01 3.29260988660576e-02 +-2.09090909090909e+01 -2.79837510321443e-01 4.78964987050167e-01 3.07292415847816e-02 +-2.03030303030303e+01 -2.79954479045127e-01 4.77581841281423e-01 2.85528819253764e-02 +-1.96969696969697e+01 -2.75171456546404e-01 4.76241678491924e-01 2.59885541142665e-02 +-1.90909090909091e+01 -2.65502607041286e-01 4.74932861964715e-01 2.30296767768801e-02 +-1.84848484848485e+01 -2.55857808543395e-01 4.73587766414009e-01 2.00850651071971e-02 +-1.78787878787879e+01 -2.46237593082487e-01 4.72205644697461e-01 1.71576346825735e-02 +-1.72727272727273e+01 -2.36642641160737e-01 4.70785737308274e-01 1.42512880441333e-02 +-1.66666666666667e+01 -2.27074552079369e-01 4.69327391673071e-01 1.13715515436610e-02 +-1.60606060606061e+01 -2.17534554179683e-01 4.67829874530176e-01 8.52581274757511e-03 +-1.54545454545455e+01 -2.08024441493220e-01 4.66292514169838e-01 5.72461577042921e-03 +-1.48484848484848e+01 -1.98545026218225e-01 4.64714449362364e-01 3.24301314993957e-03 +-1.42424242424242e+01 -1.89097459745549e-01 4.63094831340957e-01 2.15754331667197e-03 +-1.36363636363636e+01 -1.79689119603896e-01 4.61433905636119e-01 1.19082104448867e-03 +-1.30303030303030e+01 -1.70305930436414e-01 4.59727952028918e-01 4.04096803450701e-04 +-1.24242424242424e+01 -1.60970739714131e-01 4.57980061533300e-01 -1.08597634782590e-03 +-1.18181818181818e+01 -1.51665423337775e-01 4.56185474694515e-01 -5.28562481853854e-03 +-1.12121212121212e+01 -1.42405828637851e-01 4.54346018736465e-01 -9.48493644261989e-03 +-1.06060606060606e+01 -1.33190990892009e-01 4.51015638941563e-01 -1.36845608636440e-02 +-1.00000000000000e+01 -1.24014684903561e-01 4.44510346744821e-01 -1.78839224215030e-02 +-9.39393939393939e+00 -1.08436489679061e-01 4.35608923797464e-01 -1.72393490814751e-02 +-8.78787878787879e+00 -9.29541316307449e-02 4.26594514374539e-01 -1.65987787657685e-02 +-8.18181818181818e+00 -7.76026887758120e-02 4.17469560995041e-01 -1.59527308236021e-02 +-7.57575757575758e+00 -6.23970752419446e-02 4.08227566266090e-01 -1.52754905468310e-02 +-6.96969696969697e+00 -4.73685296749869e-02 3.98853223979206e-01 -1.42539284761816e-02 +-6.36363636363636e+00 -3.25421758356058e-02 3.89329220025460e-01 -1.32208969139180e-02 +-5.75757575757576e+00 -2.32883547306756e-02 3.79669167553607e-01 -1.21878209564984e-02 +-5.15151515151515e+00 -1.75463818719779e-02 3.69851724588186e-01 -1.11628011971168e-02 +-4.54545454545454e+00 -1.22231690324848e-02 3.59859373530705e-01 -1.01275683268214e-02 +-3.93939393939394e+00 -7.44825163485882e-03 3.49689752142525e-01 -9.09398161623545e-03 +-3.33333333333333e+00 -2.91658839268368e-03 3.40624828035861e-01 -8.49251566568143e-03 +-2.72727272727273e+00 1.68507347052569e-02 3.37851584545355e-01 -9.05855564667579e-03 +-2.12121212121212e+00 6.54268180916555e-02 3.38696970690453e-01 -1.01724248228530e-02 +-1.51515151515152e+00 1.14007336489887e-01 3.39540888251967e-01 -1.18440226132878e-02 +-9.09090909090912e-01 1.51313727007511e-01 3.40364324377504e-01 -1.33594433207991e-02 +-3.03030303030302e-01 1.79793106660581e-01 3.41119901467205e-01 -1.49439775633901e-02 + 3.03030303030302e-01 2.08277227321411e-01 3.41959802485552e-01 -1.65190153005760e-02 + 9.09090909090912e-01 2.36761120877396e-01 3.42798375876233e-01 -1.80436696564668e-02 + 1.51515151515152e+00 2.62099120009543e-01 3.43615726098759e-01 -1.96089791867871e-02 + 2.12121212121212e+00 2.98214942887010e-01 3.43590036955630e-01 -2.12433569551258e-02 + 2.72727272727273e+00 3.41265305298494e-01 3.43282612273994e-01 -2.28522580646574e-02 + 3.33333333333333e+00 3.84321941282732e-01 3.42975023524515e-01 -2.44142825317703e-02 + 3.93939393939394e+00 4.27399321163861e-01 3.42588020332646e-01 -2.59764367716794e-02 + 4.54545454545455e+00 4.70462749288264e-01 3.42270335299019e-01 -2.75887619844635e-02 + 5.15151515151515e+00 5.13550609798191e-01 3.41947566135864e-01 -2.91509206998043e-02 + 5.75757575757576e+00 5.51690452105184e-01 3.41583432622427e-01 -3.09254291087337e-02 + 6.36363636363637e+00 5.81502121097488e-01 3.41302193452691e-01 -3.30991045572195e-02 + 6.96969696969697e+00 6.10301560112658e-01 3.40942615842003e-01 -3.52998315891569e-02 + 7.57575757575757e+00 6.39640830053245e-01 3.40662394282476e-01 -3.74120160931164e-02 + 8.18181818181818e+00 6.73716922359672e-01 3.40349350542629e-01 -3.89332211349433e-02 + 8.78787878787879e+00 7.00575005999923e-01 3.40649231227702e-01 -4.05874368999055e-02 + 9.39393939393939e+00 7.05980518760212e-01 3.42347265627704e-01 -4.28334247556514e-02 + 1.00000000000000e+01 7.06877424431301e-01 3.44374177297010e-01 -4.52251156741810e-02 + 1.06060606060606e+01 2.24043543681458e-01 3.72918111447314e-01 -3.53747047936440e-02 + 1.12121212121212e+01 1.40264660669456e-01 4.01951061572017e-01 -4.64618913321433e-03 + 1.18181818181818e+01 1.31385056875955e-01 4.23992085353333e-01 -4.07850695907500e-03 + 1.24242424242424e+01 4.46038012430764e-01 4.42283118524471e-01 -5.50420221929163e-03 + 1.30303030303030e+01 5.55998373281915e-01 4.54419475361305e-01 -7.26003568693194e-03 + 1.36363636363636e+01 5.44188127636130e-01 4.58360923643072e-01 -7.86408309600584e-03 + 1.42424242424242e+01 5.27942944540329e-01 4.61684804811602e-01 -8.24435657376023e-03 + 1.48484848484848e+01 4.89688648561149e-01 4.64663565131384e-01 -8.63252791099281e-03 + 1.54545454545455e+01 4.48737588342535e-01 4.67211594818839e-01 -8.81024773998454e-03 + 1.60606060606061e+01 4.12943834077636e-01 4.69433759746416e-01 -9.21685653350780e-03 + 1.66666666666667e+01 4.12507412476758e-01 4.70665756115078e-01 -1.23356902066896e-02 + 1.72727272727273e+01 4.11140315107920e-01 4.71853296753582e-01 -1.57410394707879e-02 + 1.78787878787879e+01 4.08617622571655e-01 4.72990750025282e-01 -1.94979904601476e-02 + 1.84848484848485e+01 4.06114881343676e-01 4.74116453453578e-01 -2.33119670538974e-02 + 1.90909090909091e+01 4.03627419358201e-01 4.75230998047512e-01 -2.71766217490092e-02 + 1.96969696969697e+01 4.01154151508036e-01 4.76335071600720e-01 -3.10855411393017e-02 + 2.03030303030303e+01 3.99841450263120e-01 4.77581841281423e-01 -3.43354943821136e-02 + 2.09090909090909e+01 3.99682666388390e-01 4.78964987050167e-01 -3.69103854071785e-02 + 2.15151515151515e+01 3.99530136656685e-01 4.80327059059195e-01 -3.95071276844189e-02 + 2.21212121212121e+01 3.99384045127721e-01 4.81667043985251e-01 -4.21252206930270e-02 + 2.27272727272727e+01 3.99244584495002e-01 4.82983849071519e-01 -4.47641473640253e-02 + 2.33333333333333e+01 3.99111949378307e-01 4.84276364273540e-01 -4.74235100634337e-02 + 2.39393939393939e+01 3.98986345789788e-01 4.85543372341575e-01 -5.01028646553693e-02 + 2.45454545454545e+01 3.98867988116513e-01 4.86783573310055e-01 -5.28017797812506e-02 + 2.51515151515151e+01 3.98757099550410e-01 4.87995577350176e-01 -5.55198364035922e-02 + 2.57575757575758e+01 3.98653912544980e-01 4.89177896868326e-01 -5.82566273692076e-02 + 2.63636363636364e+01 3.98558667733390e-01 4.90328957261459e-01 -6.10118045012879e-02 + 2.69696969696970e+01 3.98471618483357e-01 4.91447040145689e-01 -6.37849681601756e-02 + 2.75757575757576e+01 3.98393029231929e-01 4.92530294643563e-01 -6.65757129024393e-02 + 2.81818181818182e+01 3.98323175239888e-01 4.93576735381485e-01 -6.93836508624560e-02 + 2.87878787878788e+01 3.98262343636652e-01 4.94584223091226e-01 -7.22083954498178e-02 + 2.93939393939394e+01 3.98210832316413e-01 4.95550482915159e-01 -7.50496587540483e-02 + 3.00000000000000e+01 3.98168954058675e-01 4.96473034437446e-01 -7.79071060247789e-02 + 3.30000000000000e+01 3.97861629624178e-01 5.10449944015222e-01 -8.85000759993798e-02 + 3.60000000000000e+01 3.97632504408999e-01 5.51477288799700e-01 -9.78012526556367e-02 + 3.90000000000000e+01 3.97489452250910e-01 5.92505417148744e-01 -1.06793009320285e-01 + 4.20000000000000e+01 3.92296355524120e-01 6.34935888423376e-01 -1.14716558885029e-01 + 4.50000000000000e+01 3.84572561868948e-01 6.78067940982074e-01 -1.22106077030729e-01 + 4.80000000000000e+01 3.76882670622963e-01 7.21199499288443e-01 -1.29495510499575e-01 + 5.10000000000000e+01 3.66020533668567e-01 7.63167032538246e-01 -1.36361479578265e-01 + 5.40000000000000e+01 3.48758349336931e-01 8.02806440842389e-01 -1.42180486224307e-01 + 5.70000000000000e+01 3.31509203268269e-01 8.30094982608685e-01 -1.47999448416575e-01 + 6.00000000000000e+01 3.14275781966473e-01 8.54280287086177e-01 -1.53818388382123e-01 + 6.30000000000000e+01 2.88206454299320e-01 8.71322600141459e-01 -1.57969229855332e-01 + 6.60000000000000e+01 2.62142183925970e-01 8.88364851969969e-01 -1.62120057030290e-01 + 6.90000000000000e+01 2.36084952068339e-01 9.05407103798478e-01 -1.66270884205247e-01 + 7.20000000000000e+01 2.05649772307401e-01 9.15698231347478e-01 -1.69225081057529e-01 + 7.50000000000000e+01 1.73023749638975e-01 9.22613934961229e-01 -1.71580987245091e-01 + 7.80000000000000e+01 1.40399517677831e-01 9.29529717823434e-01 -1.73936920429460e-01 + 8.10000000000000e+01 1.06786972533886e-01 9.32477217115983e-01 -1.75676992294215e-01 + 8.40000000000000e+01 7.11914675762680e-02 9.27488423190074e-01 -1.76185384031098e-01 + 8.70000000000000e+01 3.55956906886392e-02 9.22499591152534e-01 -1.76281636984940e-01 + 9.00000000000000e+01 -1.55454756453089e-07 9.17510802332658e-01 -1.75447976882559e-01 + 9.30000000000000e+01 -2.49074967312808e-02 9.22499596258566e-01 -1.81207706508184e-01 + 9.60000000000000e+01 -4.98149331461974e-02 9.27488409240135e-01 -1.85213229275117e-01 + 9.90000000000000e+01 -7.47225598413417e-02 9.32477260333714e-01 -1.89218782642220e-01 + 1.02000000000000e+02 -9.82451183513876e-02 9.29529684328913e-01 -1.91619372257204e-01 + 1.05000000000000e+02 -1.21077486266499e-01 9.22613980715162e-01 -1.93217497375608e-01 + 1.08000000000000e+02 -1.43911689592217e-01 9.15698197853296e-01 -1.94815640807175e-01 + 1.11000000000000e+02 -1.65231494534441e-01 9.05406956162956e-01 -1.95644669672032e-01 + 1.14000000000000e+02 -1.83524830303930e-01 8.88364899623064e-01 -1.94935492828237e-01 + 1.17000000000000e+02 -2.01822771772063e-01 8.71322712892104e-01 -1.94226310566758e-01 + 1.20000000000000e+02 -2.20124030074997e-01 8.54280447094884e-01 -1.93517122106963e-01 + 1.23000000000000e+02 -2.32190027809931e-01 8.30095142617392e-01 -1.91023600046048e-01 + 1.26000000000000e+02 -2.44267095501969e-01 8.02806703094638e-01 -1.88530068460767e-01 + 1.29000000000000e+02 -2.56353341244360e-01 7.63167294790494e-01 -1.86036517826043e-01 + 1.32000000000000e+02 -2.63929918544127e-01 7.21199455141732e-01 -1.82968055709224e-01 + 1.35000000000000e+02 -2.69271830313825e-01 6.78067402586119e-01 -1.79612138533394e-01 + 1.38000000000000e+02 -2.74638204421170e-01 6.34935844279749e-01 -1.76256259812944e-01 + 1.41000000000000e+02 -2.78243478183707e-01 5.92505453513527e-01 -1.73174811600312e-01 + 1.44000000000000e+02 -2.78333002128108e-01 5.51477403517201e-01 -1.70642226630173e-01 + 1.47000000000000e+02 -2.78482617289417e-01 5.10449666953889e-01 -1.68109661007669e-01 + 1.50000000000000e+02 -2.78686833504982e-01 4.96473066155593e-01 -1.65577105058638e-01 + 1.53000000000000e+02 -2.78926753637668e-01 4.91502040321387e-01 -1.68224656535610e-01 + 1.56000000000000e+02 -2.79311457907633e-01 4.85668590966138e-01 -1.70872209970165e-01 + 1.59000000000000e+02 -2.79820337838342e-01 4.79170658239085e-01 -1.73519743179148e-01 + 1.62000000000000e+02 -2.59339036364167e-01 4.73545480231159e-01 -1.92371270010081e-01 + 1.65000000000000e+02 -2.28363691552126e-01 4.68241882193770e-01 -2.19324930692370e-01 + 1.68000000000000e+02 -1.97447618139026e-01 4.62593607482116e-01 -2.46278282511930e-01 + 1.71000000000000e+02 -1.59191863314727e-01 4.57721687001980e-01 -2.37822862335416e-01 + 1.74000000000000e+02 -1.06127688082721e-01 4.54846200132976e-01 -1.58548245037961e-01 + 1.77000000000000e+02 -5.28218858836285e-02 4.51778947168691e-01 -7.89126518983154e-02 + 1.80000000000000e+02 0.00000000000000e+00 4.43994184250602e-01 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_03.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_03.dat new file mode 100644 index 00000000..1c63fe2f --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_03.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF03_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF03_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +0.000000 alpha0 ! 0-lift angle of attack, depends on airfoil. +0.000000 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +0.000000 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +0.000000 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.000000 Cd0 ! 2D drag coefficient value at 0-lift. +0.000000 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 2.86667939639823e-01 0.00000000000000e+00 +-1.77000000000000e+02 1.03993393584518e-01 2.98099548900633e-01 1.09870530503698e-01 +-1.74000000000000e+02 2.08939500216179e-01 3.07632373564454e-01 2.20747616176905e-01 +-1.71000000000000e+02 3.13409902357768e-01 3.16774623015665e-01 3.31122113148220e-01 +-1.68000000000000e+02 3.85054442612432e-01 3.34234373573580e-01 3.53101024359159e-01 +-1.65000000000000e+02 4.40412121695890e-01 3.55419527359135e-01 3.30883174396667e-01 +-1.62000000000000e+02 4.95885499788614e-01 3.75931646834106e-01 3.08665069836311e-01 +-1.59000000000000e+02 5.30626275353240e-01 3.98846265744607e-01 2.91144350600985e-01 +-1.56000000000000e+02 5.23897762918947e-01 4.27014220182996e-01 2.83018243112307e-01 +-1.53000000000000e+02 5.17411720704259e-01 4.53884562381070e-01 2.74892073545017e-01 +-1.50000000000000e+02 5.11208424965791e-01 4.79070665595520e-01 2.66765899031848e-01 +-1.47000000000000e+02 5.07722631231294e-01 5.14614980861448e-01 2.69838067335530e-01 +-1.44000000000000e+02 5.04343461108966e-01 5.71996674202226e-01 2.72910247373812e-01 +-1.41000000000000e+02 5.01081625048703e-01 6.29378805912717e-01 2.75982450882136e-01 +-1.38000000000000e+02 4.92453728624275e-01 6.88722261711689e-01 2.80934437546522e-01 +-1.35000000000000e+02 4.81136499725427e-01 7.49046375576140e-01 2.86826311975596e-01 +-1.32000000000000e+02 4.69867035979492e-01 8.09371180701211e-01 2.92718253920303e-01 +-1.29000000000000e+02 4.54938482726295e-01 8.68067709113985e-01 2.98486582390899e-01 +-1.26000000000000e+02 4.32612975232015e-01 9.23507676366582e-01 3.04007683325731e-01 +-1.23000000000000e+02 4.10305382623877e-01 9.74580839620112e-01 3.09528742082194e-01 +-1.20000000000000e+02 3.88019404664959e-01 1.02455678086533e+00 3.15049779750259e-01 +-1.17000000000000e+02 3.55328226413339e-01 1.06294869915767e+00 3.18312911803281e-01 +-1.14000000000000e+02 3.22643517723842e-01 1.10134044814828e+00 3.21576026976400e-01 +-1.11000000000000e+02 2.89967780617592e-01 1.13973190385125e+00 3.24839117221471e-01 +-1.08000000000000e+02 2.52261395940272e-01 1.16675109608688e+00 3.25784702971782e-01 +-1.05000000000000e+02 2.12037421291888e-01 1.18808406999478e+00 3.25571518828366e-01 +-1.02000000000000e+02 1.71816981097322e-01 1.20941679944765e+00 3.25358337127833e-01 +-9.90000000000000e+01 1.30505705696886e-01 1.22393767216320e+00 3.23791373077473e-01 +-9.60000000000000e+01 8.70036173585535e-02 1.22483453634678e+00 3.19516785688025e-01 +-9.30000000000000e+01 4.35018613516539e-02 1.22573139367882e+00 3.15242230954016e-01 +-9.00000000000000e+01 2.71507463396801e-07 1.22662824758516e+00 3.07541711312162e-01 +-8.70000000000000e+01 -4.35018168277582e-02 1.22573139459675e+00 3.06500259153458e-01 +-8.40000000000000e+01 -8.70037390000840e-02 1.22483453383895e+00 3.03642638678455e-01 +-8.10000000000000e+01 -1.30505328844274e-01 1.22393767993261e+00 2.99980148628166e-01 +-7.80000000000000e+01 -1.71816786310515e-01 1.20941690276751e+00 2.93732912001213e-01 +-7.50000000000000e+01 -2.12037687400372e-01 1.18808392885856e+00 2.86193257479784e-01 +-7.20000000000000e+01 -2.52261201124482e-01 1.16675119940570e+00 2.78653689355799e-01 +-6.90000000000000e+01 -2.89967497594430e-01 1.13973223643685e+00 2.70131045852760e-01 +-6.60000000000000e+01 -3.22643609105459e-01 1.10134034079787e+00 2.59642171088866e-01 +-6.30000000000000e+01 -3.55328442677626e-01 1.06294844515890e+00 2.49153296324973e-01 +-6.00000000000000e+01 -3.88019552026475e-01 1.02455645022712e+00 2.38664407299212e-01 +-5.70000000000000e+01 -4.10305530142687e-01 9.74580508981902e-01 2.26511664589643e-01 +-5.40000000000000e+01 -4.32613122881359e-01 9.23507309578663e-01 2.14358875460006e-01 +-5.10000000000000e+01 -4.54938630482502e-01 8.68067342326065e-01 2.02205993489526e-01 +-4.80000000000000e+01 -4.69867024471485e-01 8.09371242445124e-01 1.89666602848052e-01 +-4.50000000000000e+01 -4.81136358743375e-01 7.49047128580672e-01 1.76933964082825e-01 +-4.20000000000000e+01 -4.92453717018877e-01 6.88722323451287e-01 1.64201179411986e-01 +-3.90000000000000e+01 -5.01081627884301e-01 6.29378755052664e-01 1.51481884585662e-01 +-3.60000000000000e+01 -5.04343470398699e-01 5.71996513757487e-01 1.38789326350142e-01 +-3.30000000000000e+01 -5.07722608040306e-01 5.14615368361460e-01 1.26097010519998e-01 +-3.00000000000000e+01 -5.11208459117473e-01 4.79070493417508e-01 1.13404444471583e-01 +-2.93939393939394e+01 -5.12436596980431e-01 4.74141998928450e-01 1.10133084143430e-01 +-2.87878787878788e+01 -5.13677818293272e-01 4.69128142491057e-01 1.06416791520792e-01 +-2.81818181818182e+01 -5.14931698718120e-01 4.64033768336758e-01 1.02730736544464e-01 +-2.75757575757576e+01 -5.16197857581441e-01 4.58863256541541e-01 9.90754777938710e-02 +-2.69696969696970e+01 -5.17475891884770e-01 4.53620820905796e-01 9.54517077990795e-02 +-2.63636363636364e+01 -5.18765418068804e-01 4.48310365722169e-01 9.18601257810618e-02 +-2.57575757575758e+01 -5.20066063887109e-01 4.42935541572834e-01 8.83014589939624e-02 +-2.51515151515151e+01 -5.21377478812960e-01 4.37499722355814e-01 8.47764326963560e-02 +-2.45454545454545e+01 -5.22699356428834e-01 4.32005929515122e-01 8.12857120895547e-02 +-2.39393939393939e+01 -5.24031381270285e-01 4.26457068308669e-01 7.78300449431755e-02 +-2.33333333333333e+01 -5.25373250428924e-01 4.20855853060512e-01 7.44102009183187e-02 +-2.27272727272727e+01 -5.26724672933875e-01 4.15204822592555e-01 7.10269723745852e-02 +-2.21212121212121e+01 -5.28085369169450e-01 4.09506354183381e-01 6.76811752130597e-02 +-2.15151515151515e+01 -5.29455101817919e-01 4.03762544083001e-01 6.43735744019926e-02 +-2.09090909090909e+01 -5.30833589187798e-01 3.97975580174912e-01 6.11050941602448e-02 +-2.03030303030303e+01 -5.32220574716406e-01 3.92147459389974e-01 5.78766456029426e-02 +-1.96969696969697e+01 -5.25041853310013e-01 3.86734130344610e-01 5.36740381794206e-02 +-1.90909090909091e+01 -5.09325030771277e-01 3.81712847911617e-01 4.84844307653104e-02 +-1.84848484848485e+01 -4.93655025441404e-01 3.76620832907035e-01 4.33226553930925e-02 +-1.78787878787879e+01 -4.78033039651211e-01 3.71456499045297e-01 3.81944365371004e-02 +-1.72727272727273e+01 -4.62460538476065e-01 3.66218257085999e-01 3.31074211396244e-02 +-1.66666666666667e+01 -4.46940500203995e-01 3.60904945553023e-01 2.80723751195183e-02 +-1.60606060606061e+01 -4.31475323775307e-01 3.55515132392443e-01 2.31037263323430e-02 +-1.54545454545455e+01 -4.16068349642614e-01 3.50047632879528e-01 1.82220369706882e-02 +-1.48484848484848e+01 -4.00721354508913e-01 3.44500616736217e-01 1.35484980910323e-02 +-1.42424242424242e+01 -3.85436695885767e-01 3.38872341578923e-01 9.50016605244364e-03 +-1.36363636363636e+01 -3.70224538567261e-01 3.33164648622073e-01 5.68381330007907e-03 +-1.30303030303030e+01 -3.55069373476952e-01 3.27366609646139e-01 2.21886814225965e-03 +-1.24242424242424e+01 -3.39999733693878e-01 3.21489179943910e-01 -1.51885448689381e-03 +-1.18181818181818e+01 -3.24995626539620e-01 3.15518354985586e-01 -7.39251364704825e-03 +-1.12121212121212e+01 -3.10077560762327e-01 3.09460976947365e-01 -1.32657016910330e-02 +-1.06060606060606e+01 -2.95245474304323e-01 3.02802644980894e-01 -1.91393272151166e-02 +-1.00000000000000e+01 -2.80494800381428e-01 2.94941318686088e-01 -2.50125850968491e-02 +-9.39393939393939e+00 -2.53378368416910e-01 2.85498339501372e-01 -2.41110800948355e-02 +-8.78787878787879e+00 -2.26455617318188e-01 2.75839796452712e-01 -2.32151737520043e-02 +-8.18181818181818e+00 -1.99780347135765e-01 2.65960153502913e-01 -2.23116063606220e-02 +-7.57575757575758e+00 -1.73389839145603e-01 2.55848927836634e-01 -2.13969572586265e-02 +-6.96969696969697e+00 -1.47345183372831e-01 2.45482961997361e-01 -2.03679525995866e-02 +-6.36363636363636e+00 -1.21705108097721e-01 2.34834463036821e-01 -1.93275559307849e-02 +-5.75757575757576e+00 -9.84583488516512e-02 2.23910273504550e-01 -1.82871145503072e-02 +-5.15151515151515e+00 -7.69804748827422e-02 2.12678155631259e-01 -1.72546758160953e-02 +-4.54545454545454e+00 -5.63182850040337e-02 2.01106147724455e-01 -1.62156816231646e-02 +-3.93939393939394e+00 -3.67302227953779e-02 1.89186489694562e-01 -1.51750925589128e-02 +-3.33333333333333e+00 -1.62909510485965e-02 1.78416547415723e-01 -1.45633390580307e-02 +-2.72727272727273e+00 2.35675611773452e-02 1.75058203392890e-01 -1.57637846300459e-02 +-2.12121212121212e+00 9.15064277602737e-02 1.76056082872914e-01 -1.78244951342892e-02 +-1.51515151515152e+00 1.59451497183287e-01 1.77051126032286e-01 -2.03910649409379e-02 +-9.09090909090912e-01 2.23403602833365e-01 1.78026120925083e-01 -2.27493568922369e-02 +-3.03030303030302e-01 2.84237891949164e-01 1.78938378727225e-01 -2.51368568675113e-02 + 3.03030303030302e-01 3.45074372567327e-01 1.79925592577568e-01 -2.75148616917628e-02 + 9.09090909090912e-01 4.05913145027735e-01 1.80910163063640e-01 -2.98751951472708e-02 + 1.51515151515152e+00 4.60391564367498e-01 1.81869640777608e-01 -3.22531226669864e-02 + 2.12121212121212e+00 5.26159436695712e-01 1.81867217039864e-01 -3.48049504623527e-02 + 2.72727272727273e+00 6.00837730272748e-01 1.81506752812675e-01 -3.74260524663783e-02 + 3.33333333333333e+00 6.75529949068352e-01 1.81145950978939e-01 -4.00304350025881e-02 + 3.93939393939394e+00 7.50255901253955e-01 1.80716836967219e-01 -4.26350339105715e-02 + 4.54545454545455e+00 8.24966195051160e-01 1.80347288666951e-01 -4.52499112015484e-02 + 5.15151515151515e+00 8.99712588876260e-01 1.79976785308154e-01 -4.78545175714740e-02 + 5.75757575757576e+00 9.67968657716851e-01 1.79568694884216e-01 -5.06699455716737e-02 + 6.36363636363637e+00 1.02536319902264e+00 1.79238042626890e-01 -5.38531921907918e-02 + 6.96969696969697e+00 1.08152198541483e+00 1.78841802101979e-01 -5.70812124887872e-02 + 7.57575757575757e+00 1.13835718017464e+00 1.78513776681022e-01 -6.02799006382464e-02 + 8.18181818181818e+00 1.20034525413988e+00 1.78155584214918e-01 -6.32698190171098e-02 + 8.78787878787879e+00 1.25229031916550e+00 1.78543028590070e-01 -6.64922350787756e-02 + 9.39393939393939e+00 1.27694825197027e+00 1.80574010062172e-01 -7.03025346844773e-02 + 1.00000000000000e+01 1.29634873488058e+00 1.82986102023255e-01 -7.42574649964911e-02 + 1.06060606060606e+01 7.61428140940585e-01 2.15852259319746e-01 -6.42507106934242e-02 + 1.12121212121212e+01 6.15718379411708e-01 2.48106113414377e-01 -2.23104303837720e-02 + 1.18181818181818e+01 5.89645960609568e-01 2.71990713431963e-01 -2.03506593942910e-02 + 1.24242424242424e+01 8.40078452027123e-01 2.92157538787909e-01 -2.37998425692650e-02 + 1.30303030303030e+01 9.36540372696081e-01 3.08975183148329e-01 -2.65133219580019e-02 + 1.36363636363636e+01 9.30793183702627e-01 3.21455925212482e-01 -2.79339590650596e-02 + 1.42424242424242e+01 9.21535598013246e-01 3.32263191328175e-01 -2.92269843086423e-02 + 1.48484848484848e+01 8.79920211959341e-01 3.42195165358544e-01 -3.05512733483560e-02 + 1.54545454545455e+01 8.39112171194525e-01 3.50890504854493e-01 -3.17289039382959e-02 + 1.60606060606061e+01 8.05866011124999e-01 3.58713280531263e-01 -3.32426789378008e-02 + 1.66666666666667e+01 8.00847317731894e-01 3.63662607459754e-01 -3.82620408096336e-02 + 1.72727272727273e+01 7.94727809634000e-01 3.68473291646017e-01 -4.36253357634993e-02 + 1.78787878787879e+01 7.87227516277651e-01 3.73122818099744e-01 -4.94117560810391e-02 + 1.84848484848485e+01 7.79760973975816e-01 3.77747724480973e-01 -5.53090732287109e-02 + 1.90909090909091e+01 7.72322946522647e-01 3.82350733174758e-01 -6.13053346702226e-02 + 1.96969696969697e+01 7.64912514438728e-01 3.86935069316851e-01 -6.73885480064952e-02 + 2.03030303030303e+01 7.60227909567809e-01 3.92147459389974e-01 -7.23552962067858e-02 + 2.09090909090909e+01 7.58256171990743e-01 3.97975580174912e-01 -7.61741534254430e-02 + 2.15151515151515e+01 7.56296648702810e-01 4.03762544083001e-01 -8.00356859572341e-02 + 2.21212121212121e+01 7.54349708693408e-01 4.09506354183381e-01 -8.39389232226646e-02 + 2.27272727272727e+01 7.52415756848464e-01 4.15204822592555e-01 -8.78828761836009e-02 + 2.33333333333333e+01 7.50495135179352e-01 4.20855853060512e-01 -9.18667405374683e-02 + 2.39393939393939e+01 7.48588246026085e-01 4.26457068308669e-01 -9.58896488905942e-02 + 2.45454545454545e+01 7.46695508084816e-01 4.32005929515122e-01 -9.99507588032690e-02 + 2.51515151515151e+01 7.44817357247520e-01 4.37499722355814e-01 -1.04049251898781e-01 + 2.57575757575758e+01 7.42954247493942e-01 4.42935541572834e-01 -1.08184333010354e-01 + 2.63636363636364e+01 7.41106620219380e-01 4.48310365722169e-01 -1.12355301356762e-01 + 2.69696969696970e+01 7.39274979765670e-01 4.53620820905796e-01 -1.16561383374543e-01 + 2.75757575757576e+01 7.37459861618629e-01 4.58863256541540e-01 -1.20801801101431e-01 + 2.81818181818182e+01 7.35661817641651e-01 4.64033768336758e-01 -1.25075807437783e-01 + 2.87878787878788e+01 7.33881427635071e-01 4.69128142491057e-01 -1.29382661238589e-01 + 2.93939393939394e+01 7.32119240063399e-01 4.74141998928450e-01 -1.33721775955579e-01 + 3.00000000000000e+01 7.30375865782397e-01 4.79070493417508e-01 -1.38092497824076e-01 + 3.30000000000000e+01 7.25362478438806e-01 5.14615368361460e-01 -1.54403266201777e-01 + 3.60000000000000e+01 7.20501914137933e-01 5.71996513757487e-01 -1.68191263513666e-01 + 3.90000000000000e+01 7.15809365515503e-01 6.29378755052664e-01 -1.81374882567390e-01 + 4.20000000000000e+01 7.03433185279059e-01 6.88722323451288e-01 -1.93418520707176e-01 + 4.50000000000000e+01 6.87204092577322e-01 7.49047128580672e-01 -2.04892279627535e-01 + 4.80000000000000e+01 6.71041224113679e-01 8.09371242445124e-01 -2.16365907069522e-01 + 5.10000000000000e+01 6.49672046103066e-01 8.68067342326066e-01 -2.27288040920096e-01 + 5.40000000000000e+01 6.17781812255886e-01 9.23507309578663e-01 -2.37107152133572e-01 + 5.70000000000000e+01 5.85917028103372e-01 9.74580508981902e-01 -2.46926188334836e-01 + 6.00000000000000e+01 5.54082947327309e-01 1.02455645022712e+00 -2.56745187030279e-01 + 6.30000000000000e+01 5.07474214362050e-01 1.06294844515890e+00 -2.64611277891633e-01 + 6.60000000000000e+01 4.60875379522342e-01 1.10134034079787e+00 -2.72477352013468e-01 + 6.90000000000000e+01 4.14290290845089e-01 1.13973223643685e+00 -2.80343426135302e-01 + 7.20000000000000e+01 3.60455499151900e-01 1.16675119940570e+00 -2.86657663083315e-01 + 7.50000000000000e+01 3.02992179274825e-01 1.18808392885856e+00 -2.92196013212590e-01 + 7.80000000000000e+01 2.45532428311787e-01 1.20941690276751e+00 -2.97734426806946e-01 + 8.10000000000000e+01 1.86507133137001e-01 1.22393767993261e+00 -3.02380776716557e-01 + 8.40000000000000e+01 1.24338355198263e-01 1.22483453383895e+00 -3.05243060833536e-01 + 8.70000000000000e+01 6.21691023243765e-02 1.22573139459675e+00 -3.07300455628019e-01 + 9.00000000000000e+01 -2.71507463581614e-07 1.22662824758516e+00 -3.07541711312162e-01 + 9.30000000000000e+01 -4.35018613516539e-02 1.22573139367882e+00 -3.15242230954016e-01 + 9.60000000000000e+01 -8.70036173585537e-02 1.22483453634678e+00 -3.19516785688025e-01 + 9.90000000000000e+01 -1.30505705696887e-01 1.22393767216320e+00 -3.23791373077473e-01 + 1.02000000000000e+02 -1.71816981097322e-01 1.20941679944765e+00 -3.25358337127833e-01 + 1.05000000000000e+02 -2.12037421291888e-01 1.18808406999478e+00 -3.25571518828366e-01 + 1.08000000000000e+02 -2.52261395940272e-01 1.16675109608688e+00 -3.25784702971782e-01 + 1.11000000000000e+02 -2.89967780617593e-01 1.13973190385125e+00 -3.24839117221471e-01 + 1.14000000000000e+02 -3.22643517723843e-01 1.10134044814828e+00 -3.21576026976400e-01 + 1.17000000000000e+02 -3.55328226413339e-01 1.06294869915767e+00 -3.18312911803281e-01 + 1.20000000000000e+02 -3.88019404664959e-01 1.02455678086533e+00 -3.15049779750259e-01 + 1.23000000000000e+02 -4.10305382623878e-01 9.74580839620111e-01 -3.09528742082193e-01 + 1.26000000000000e+02 -4.32612975232015e-01 9.23507676366582e-01 -3.04007683325731e-01 + 1.29000000000000e+02 -4.54938482726295e-01 8.68067709113984e-01 -2.98486582390899e-01 + 1.32000000000000e+02 -4.69867035979492e-01 8.09371180701210e-01 -2.92718253920303e-01 + 1.35000000000000e+02 -4.81136499725427e-01 7.49046375576140e-01 -2.86826311975596e-01 + 1.38000000000000e+02 -4.92453728624275e-01 6.88722261711688e-01 -2.80934437546522e-01 + 1.41000000000000e+02 -5.01081625048703e-01 6.29378805912717e-01 -2.75982450882136e-01 + 1.44000000000000e+02 -5.04343461108966e-01 5.71996674202226e-01 -2.72910247373812e-01 + 1.47000000000000e+02 -5.07722631231294e-01 5.14614980861448e-01 -2.69838067335530e-01 + 1.50000000000000e+02 -5.11208424965791e-01 4.79070665595519e-01 -2.66765899031848e-01 + 1.53000000000000e+02 -5.17411720704259e-01 4.53884562381070e-01 -2.74892073545017e-01 + 1.56000000000000e+02 -5.23897762918947e-01 4.27014220182996e-01 -2.83018243112307e-01 + 1.59000000000000e+02 -5.30626275353240e-01 3.98846265744607e-01 -2.91144350600985e-01 + 1.62000000000000e+02 -4.95885499788614e-01 3.75931646834106e-01 -3.27060715613266e-01 + 1.65000000000000e+02 -4.40412121695890e-01 3.55419527359135e-01 -3.76872444414846e-01 + 1.68000000000000e+02 -3.85054442612432e-01 3.34234373573580e-01 -4.26683602422472e-01 + 1.71000000000000e+02 -3.13409902357768e-01 3.16774623015665e-01 -4.13902641435275e-01 + 1.74000000000000e+02 -2.08939500216179e-01 3.07632373564454e-01 -2.75934520221132e-01 + 1.77000000000000e+02 -1.03993393584518e-01 2.98099548900633e-01 -1.37338163129622e-01 + 1.80000000000000e+02 0.00000000000000e+00 2.86667939639823e-01 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_04.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_04.dat new file mode 100644 index 00000000..abbe8560 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_04.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF04_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF04_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +0.000000 alpha0 ! 0-lift angle of attack, depends on airfoil. +0.000000 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +0.000000 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +0.000000 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.000000 Cd0 ! 2D drag coefficient value at 0-lift. +0.000000 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.52890685398725e-01 0.00000000000000e+00 +-1.77000000000000e+02 1.31704479748411e-01 1.63763723652671e-01 1.19452717008645e-01 +-1.74000000000000e+02 2.64615541683425e-01 1.74744683765139e-01 2.39999774321882e-01 +-1.71000000000000e+02 3.96924138305795e-01 1.85683483417484e-01 3.60000410445527e-01 +-1.68000000000000e+02 4.83692709572010e-01 2.10410090026251e-01 3.83359490424043e-01 +-1.65000000000000e+02 5.47678400067375e-01 2.42039936419247e-01 3.58398920279377e-01 +-1.62000000000000e+02 6.11661936785840e-01 2.73684904094820e-01 3.33438064107582e-01 +-1.59000000000000e+02 6.49147890945894e-01 3.10889487497261e-01 3.13527249627107e-01 +-1.56000000000000e+02 6.33627994109589e-01 3.59203284556557e-01 3.03716295849012e-01 +-1.53000000000000e+02 6.18102771363694e-01 4.07545900233725e-01 2.93905168850931e-01 +-1.50000000000000e+02 6.02571440780362e-01 4.55925647601040e-01 2.84093898343018e-01 +-1.47000000000000e+02 5.93851743225456e-01 5.14758887292997e-01 2.87063352917468e-01 +-1.44000000000000e+02 5.85129730070885e-01 5.73263830376554e-01 2.90032783400607e-01 +-1.41000000000000e+02 5.76405140982154e-01 6.31769220410934e-01 2.93002194449487e-01 +-1.38000000000000e+02 5.62958434932229e-01 6.92274906461514e-01 2.98271914144742e-01 +-1.35000000000000e+02 5.47150816004827e-01 7.53780736462377e-01 3.04691792390807e-01 +-1.32000000000000e+02 5.31341994964165e-01 8.15287271265272e-01 3.11111734292256e-01 +-1.29000000000000e+02 5.11898674393990e-01 8.75134136992628e-01 3.17501821606841e-01 +-1.26000000000000e+02 4.85188015388141e-01 9.31661656684178e-01 3.23832218317126e-01 +-1.23000000000000e+02 4.58477182925037e-01 9.88188744534565e-01 3.30162566296010e-01 +-1.20000000000000e+02 4.31765994733252e-01 1.04471561647244e+00 3.36492889647229e-01 +-1.17000000000000e+02 3.94568156643264e-01 1.08888387091091e+00 3.40603620297433e-01 +-1.14000000000000e+02 3.57370304957649e-01 1.13305193246859e+00 3.44714328600463e-01 +-1.11000000000000e+02 3.20172552298473e-01 1.17721965661140e+00 3.48825002561235e-01 +-1.08000000000000e+02 2.77962126266291e-01 1.20912806034645e+00 3.50515840614408e-01 +-1.05000000000000e+02 2.33245372677999e-01 1.23490671052890e+00 3.50996730156169e-01 +-1.02000000000000e+02 1.88529066354869e-01 1.26068506531321e+00 3.51477592241862e-01 +-9.90000000000000e+01 1.42846269453300e-01 1.27908367222767e+00 3.50498451065250e-01 +-9.60000000000000e+01 9.52306422330625e-02 1.28272246374676e+00 3.46599247549748e-01 +-9.30000000000000e+01 4.76153787695439e-02 1.28636122746753e+00 3.42699970222382e-01 +-9.00000000000000e+01 2.97181093101284e-07 1.28999997728939e+00 3.38877476679819e-01 +-8.70000000000000e+01 -4.76153300354876e-02 1.28636123119179e+00 3.34288189245273e-01 +-8.40000000000000e+01 -9.52307753769642e-02 1.28272245357189e+00 3.29739597523247e-01 +-8.10000000000000e+01 -1.42845856965667e-01 1.27908370375002e+00 3.25207993177059e-01 +-7.80000000000000e+01 -1.88528849782130e-01 1.26068519016437e+00 3.17955441758359e-01 +-7.50000000000000e+01 -2.33245668518482e-01 1.23490653998066e+00 3.09344032062908e-01 +-7.20000000000000e+01 -2.77961909696404e-01 1.20912818519635e+00 3.00732721046221e-01 +-6.90000000000000e+01 -3.20172230052935e-01 1.17722003923687e+00 2.91121626468145e-01 +-6.60000000000000e+01 -3.57370408969930e-01 1.13305180896654e+00 2.79510882896335e-01 +-6.30000000000000e+01 -3.94568402742750e-01 1.08888357869621e+00 2.67900139324525e-01 +-6.00000000000000e+01 -4.31766171454802e-01 1.04471524249362e+00 2.56289382389432e-01 +-5.70000000000000e+01 -4.58477359643245e-01 9.88188370555741e-01 2.43119604599202e-01 +-5.40000000000000e+01 -4.85188192105633e-01 9.31661282701068e-01 2.29949776504115e-01 +-5.10000000000000e+01 -5.11898851109208e-01 8.75133763009519e-01 2.16779847798548e-01 +-4.80000000000000e+01 -5.31341959036239e-01 8.15287334218715e-01 2.03370614403917e-01 +-4.50000000000000e+01 -5.47150557766459e-01 7.53781504217852e-01 1.89841732510719e-01 +-4.20000000000000e+01 -5.62958388264277e-01 6.92274969410558e-01 1.76312695587616e-01 +-3.90000000000000e+01 -5.76405141219782e-01 6.31769168555292e-01 1.62884018923624e-01 +-3.60000000000000e+01 -5.85129736228324e-01 5.73263666791100e-01 1.49655804982024e-01 +-3.30000000000000e+01 -5.93851682613004e-01 5.14759282378343e-01 1.36427843675875e-01 +-3.00000000000000e+01 -6.02571527674987e-01 4.55925302880350e-01 1.23199622280574e-01 +-2.93939393939394e+01 -6.05709742968724e-01 4.46148292728679e-01 1.20183218217587e-01 +-2.87878787878788e+01 -6.08847690581429e-01 4.36373153786693e-01 1.17176335932680e-01 +-2.81818181818182e+01 -6.11985380005597e-01 4.26599779864539e-01 1.14168793413229e-01 +-2.75757575757576e+01 -6.15122858980615e-01 4.16827876718823e-01 1.11160516192624e-01 +-2.69696969696970e+01 -6.18260109619839e-01 4.07057465245291e-01 1.08151524224604e-01 +-2.63636363636364e+01 -6.21397122656834e-01 3.97288544820632e-01 1.05141828538283e-01 +-2.57575757575758e+01 -6.24533844014296e-01 3.87521148707597e-01 1.02131448274330e-01 +-2.51515151515151e+01 -6.27670245374249e-01 3.77755259564324e-01 9.91203848845818e-02 +-2.45454545454545e+01 -6.30806424352339e-01 3.67990641254345e-01 9.61085707127930e-02 +-2.39393939393939e+01 -6.33942376901069e-01 3.58227230091829e-01 9.30959891641372e-02 +-2.33333333333333e+01 -6.37078020453462e-01 3.48464966576383e-01 9.00826225283333e-02 +-2.27272727272727e+01 -6.40213455369502e-01 3.38703795054776e-01 8.70684539419758e-02 +-2.21212121212121e+01 -6.43348687727384e-01 3.28943663414953e-01 8.40534654418665e-02 +-2.15151515151515e+01 -6.46483666873065e-01 3.19184299164519e-01 8.10375681805418e-02 +-2.09090909090909e+01 -6.49618442068989e-01 3.09425824234104e-01 7.80207956612929e-02 +-2.03030303030303e+01 -6.52753032833882e-01 2.99668251498965e-01 7.50031458623772e-02 +-1.96969696969697e+01 -6.46281639088916e-01 2.90949411270925e-01 7.04968593518714e-02 +-1.90909090909091e+01 -6.30204218160431e-01 2.83269742867490e-01 6.45023032212650e-02 +-1.84848484848485e+01 -6.14126582290594e-01 2.75592004359402e-01 5.85074349929442e-02 +-1.78787878787879e+01 -5.98047856789765e-01 2.67915828822348e-01 5.25118142631482e-02 +-1.72727272727273e+01 -5.81967302635588e-01 2.60240916364328e-01 4.65150110129194e-02 +-1.66666666666667e+01 -5.65885606263078e-01 2.52567649498003e-01 4.05170693283586e-02 +-1.60606060606061e+01 -5.49802714208954e-01 2.44896059615267e-01 3.45176730639480e-02 +-1.54545454545455e+01 -5.33719399306242e-01 2.37226574370814e-01 2.85166866132808e-02 +-1.48484848484848e+01 -5.17634634029050e-01 2.29558765259197e-01 2.25131018007247e-02 +-1.42424242424242e+01 -5.01547801579493e-01 2.21892402675115e-01 1.65057329856289e-02 +-1.36363636363636e+01 -4.85463674091492e-01 2.14231747747893e-01 1.04934903363307e-02 +-1.30303030303030e+01 -4.69370079236432e-01 2.06565470271126e-01 4.47314506258597e-03 +-1.24242424242424e+01 -4.53283193318206e-01 1.98908867060531e-01 -1.54613211877309e-03 +-1.18181818181818e+01 -4.37187366788929e-01 1.91247369015575e-01 -7.53424241146752e-03 +-1.12121212121212e+01 -4.21093768204950e-01 1.83591167142366e-01 -1.35218680172613e-02 +-1.06060606060606e+01 -4.04998617109735e-01 1.75937905154481e-01 -1.95099338612331e-02 +-1.00000000000000e+01 -3.88896565106125e-01 1.68281357120578e-01 -2.54976171334784e-02 +-9.39393939393939e+00 -3.56980581536747e-01 1.60570608546530e-01 -2.45787021969936e-02 +-8.78787878787879e+00 -3.25052844156906e-01 1.52859809151608e-01 -2.36654666080170e-02 +-8.18181818181818e+00 -2.93123808227596e-01 1.45152920413788e-01 -2.27443554637733e-02 +-7.57575757575758e+00 -2.61189540733289e-01 1.37458302486576e-01 -2.18232254306519e-02 +-6.96969696969697e+00 -2.29253315550365e-01 1.29770338259547e-01 -2.09121948405043e-02 +-6.36363636363636e+00 -1.97299114478799e-01 1.22078681072535e-01 -1.99910067472643e-02 +-5.75757575757576e+00 -1.65337094409309e-01 1.14401642642313e-01 -1.90688307982063e-02 +-5.15151515151515e+00 -1.33363372258401e-01 1.06731125985166e-01 -1.81553134789971e-02 +-4.54545454545454e+00 -1.01365853608070e-01 9.90577635911853e-02 -1.72377886839538e-02 +-3.93939393939394e+00 -6.93567841681647e-02 9.14006376859695e-02 -1.63172897943185e-02 +-3.33333333333333e+00 -3.31807555093951e-02 8.46570826009648e-02 -1.57731499131537e-02 +-2.72727272727273e+00 2.39727377628819e-02 8.25273948895898e-02 -1.71381638240559e-02 +-2.12121212121212e+00 9.32486327068270e-02 8.31141750981614e-02 -1.96272564550678e-02 +-1.51515151515152e+00 1.62528583105757e-01 8.37008175454388e-02 -2.21076923365064e-02 +-9.09090909090912e-01 2.31797235397626e-01 8.42859193789413e-02 -2.45940451844470e-02 +-3.03030303030302e-01 3.01068246865505e-01 8.48656437169153e-02 -2.70868281606804e-02 + 3.03030303030302e-01 3.70338484450812e-01 8.54523328928443e-02 -2.95712433598367e-02 + 9.09090909090912e-01 4.39610300212106e-01 8.60391036829737e-02 -3.20559148731745e-02 + 1.51515151515152e+00 5.09192579530866e-01 8.66138848674114e-02 -3.45449324288621e-02 + 2.12121212121212e+00 5.86406064228343e-01 8.66581954835795e-02 -3.72379475609113e-02 + 2.72727272727273e+00 6.67209757832241e-01 8.64425327187755e-02 -4.00378706815080e-02 + 3.33333333333333e+00 7.48006310769884e-01 8.62268646743108e-02 -4.28376526659724e-02 + 3.93939393939394e+00 8.28814559558240e-01 8.60123335176102e-02 -4.56376672559721e-02 + 4.54545454545455e+00 9.09607713918266e-01 8.57976670724705e-02 -4.84274348252293e-02 + 5.15151515151515e+00 9.90415750809011e-01 8.55913123524140e-02 -5.12274574370195e-02 + 5.75757575757576e+00 1.06840447148798e+00 8.53816156813169e-02 -5.42125455584405e-02 + 6.36363636363637e+00 1.14160400255878e+00 8.51849910150180e-02 -5.75066351634233e-02 + 6.96969696969697e+00 1.21413721717018e+00 8.49944037839137e-02 -6.08487619763315e-02 + 7.57575757575757e+00 1.28664609286845e+00 8.48025295082906e-02 -6.41936917237977e-02 + 8.18181818181818e+00 1.35907367282053e+00 8.46074089108589e-02 -6.75395926025836e-02 + 8.78787878787879e+00 1.42498875451348e+00 8.48939582739108e-02 -7.11385484353892e-02 + 9.39393939393939e+00 1.47790044040096e+00 8.61562125019175e-02 -7.52537462367865e-02 + 1.00000000000000e+01 1.52761951021426e+00 8.76527806305783e-02 -7.94958935415669e-02 + 1.06060606060606e+01 1.21037111221097e+00 1.08368637158632e-01 -7.47780360782507e-02 + 1.12121212121212e+01 1.06745252059869e+00 1.30650270554887e-01 -4.13744293556483e-02 + 1.18181818181818e+01 1.04047682231151e+00 1.48602204458626e-01 -3.87322662567038e-02 + 1.24242424242424e+01 1.02050139325215e+00 1.65510670067403e-01 -4.07401587716326e-02 + 1.30303030303030e+01 1.00956882423978e+00 1.81609086020050e-01 -4.27814866733380e-02 + 1.36363636363636e+01 1.00743778578338e+00 1.96445539032532e-01 -4.48202992152467e-02 + 1.42424242424242e+01 1.00757475615447e+00 2.09842058498476e-01 -4.68758763258071e-02 + 1.48484848484848e+01 1.00899715128062e+00 2.22621760789065e-01 -4.89826947132140e-02 + 1.54545454545455e+01 1.01148957933609e+00 2.34179209308161e-01 -5.10542451445077e-02 + 1.60606060606061e+01 1.01288900592554e+00 2.45010338785109e-01 -5.35062027787723e-02 + 1.66666666666667e+01 1.00195252813289e+00 2.52941797110189e-01 -5.94879954798757e-02 + 1.72727272727273e+01 9.90372353173637e-01 2.60712604214289e-01 -6.56606862514200e-02 + 1.78787878787879e+01 9.78006308087524e-01 2.68286875927460e-01 -7.20666332697287e-02 + 1.84848484848485e+01 9.65644506690629e-01 2.75856403296140e-01 -7.84749075877025e-02 + 1.90909090909091e+01 9.53284332352213e-01 2.83426080329155e-01 -8.48813171286689e-02 + 1.96969696969697e+01 9.40924882807228e-01 2.91001781071828e-01 -9.12808153392477e-02 + 2.03030303030303e+01 9.32508485341658e-01 2.99668251498965e-01 -9.63197520692682e-02 + 2.09090909090909e+01 9.28035612370247e-01 3.09425824234104e-01 -9.99987465351088e-02 + 2.15151515151515e+01 9.23562474293211e-01 3.19184299164519e-01 -1.03676821203003e-01 + 2.21212121212121e+01 9.19089043051198e-01 3.28943663414953e-01 -1.07353977654978e-01 + 2.27272727272727e+01 9.14615247866511e-01 3.38703795054776e-01 -1.11030178126034e-01 + 2.33333333333333e+01 9.10141161527127e-01 3.48464966576383e-01 -1.14705513496165e-01 + 2.39393939393939e+01 9.05666775287466e-01 3.58227230091829e-01 -1.18380002566973e-01 + 2.45454545454545e+01 9.01191945397226e-01 3.67990641254345e-01 -1.22053668013310e-01 + 2.51515151515151e+01 8.96716790059191e-01 3.77755259564324e-01 -1.25726522238022e-01 + 2.57575757575758e+01 8.92241315022274e-01 3.87521148707597e-01 -1.29398582102913e-01 + 2.63636363636364e+01 8.87765380758913e-01 3.97288544820632e-01 -1.33069928789038e-01 + 2.69696969696970e+01 8.83289027675016e-01 4.07057465245291e-01 -1.36740556769150e-01 + 2.75757575757576e+01 8.78812332951360e-01 4.16827876718823e-01 -1.40410439162852e-01 + 2.81818181818182e+01 8.74335309658910e-01 4.26599779864539e-01 -1.44079560303650e-01 + 2.87878787878788e+01 8.69857983172985e-01 4.36373153786694e-01 -1.47747893479490e-01 + 2.93939393939394e+01 8.65380285398246e-01 4.46148292728679e-01 -1.51415526599333e-01 + 3.00000000000000e+01 8.60902202671727e-01 4.55925302880350e-01 -1.55082474171227e-01 + 3.30000000000000e+01 8.48397959434636e-01 5.14759282378343e-01 -1.68663399184894e-01 + 3.60000000000000e+01 8.35890707575628e-01 5.73263666791100e-01 -1.82298027595826e-01 + 3.90000000000000e+01 8.23379662232036e-01 6.31769168555292e-01 -1.95945868274559e-01 + 4.20000000000000e+01 8.04154954731604e-01 6.92274969410558e-01 -2.08554266597334e-01 + 4.50000000000000e+01 7.81573458480718e-01 7.53781504217852e-01 -2.20643060705334e-01 + 4.80000000000000e+01 7.58990915560083e-01 8.15287334218715e-01 -2.32731716287242e-01 + 5.10000000000000e+01 7.31215839592101e-01 8.75133763009519e-01 -2.44320755354886e-01 + 5.40000000000000e+01 6.93057699659601e-01 9.31661282701068e-01 -2.54910529274792e-01 + 5.70000000000000e+01 6.54899314951571e-01 9.88188370555741e-01 -2.65500222295077e-01 + 6.00000000000000e+01 6.16740425757725e-01 1.04471524249362e+00 -2.76089874865860e-01 + 6.30000000000000e+01 5.63629556606820e-01 1.08888357869621e+00 -2.84820525032635e-01 + 6.60000000000000e+01 5.10518346428343e-01 1.13305180896654e+00 -2.93551159264809e-01 + 6.90000000000000e+01 4.57406844501805e-01 1.17722003923687e+00 -3.02281793496983e-01 + 7.20000000000000e+01 3.97127599293486e-01 1.20912818519635e+00 -3.09472835540815e-01 + 7.50000000000000e+01 3.33264710335960e-01 1.23490653998066e+00 -3.15894113007981e-01 + 7.80000000000000e+01 2.69400999928860e-01 1.26068519016437e+00 -3.22315464057870e-01 + 8.10000000000000e+01 2.04142652815547e-01 1.27908370375002e+00 -3.27816939705399e-01 + 8.40000000000000e+01 1.36095393510895e-01 1.28272245357189e+00 -3.31478728044814e-01 + 8.70000000000000e+01 6.80476143629091e-02 1.28636123119179e+00 -3.35157787608892e-01 + 9.00000000000000e+01 -2.97181093302924e-07 1.28999997728939e+00 -3.38875766435868e-01 + 9.30000000000000e+01 -4.76153787695439e-02 1.28636122746753e+00 -3.42699882733940e-01 + 9.60000000000000e+01 -9.52306422330627e-02 1.28272246374676e+00 -3.46597404225314e-01 + 9.90000000000000e+01 -1.42846269453301e-01 1.27908367222767e+00 -3.50494955491782e-01 + 1.02000000000000e+02 -1.88529066354869e-01 1.26068506531321e+00 -3.51472552278717e-01 + 1.05000000000000e+02 -2.33245372677999e-01 1.23490671052890e+00 -3.50990203444848e-01 + 1.08000000000000e+02 -2.77962126266291e-01 1.20912806034645e+00 -3.50507849083669e-01 + 1.11000000000000e+02 -3.20172552298473e-01 1.17721965661140e+00 -3.48815656358806e-01 + 1.14000000000000e+02 -3.57370304957649e-01 1.13305193246859e+00 -3.44703823754748e-01 + 1.17000000000000e+02 -3.94568156643264e-01 1.08888387091091e+00 -3.40591959738759e-01 + 1.20000000000000e+02 -4.31765994733252e-01 1.04471561647244e+00 -3.36480075676600e-01 + 1.23000000000000e+02 -4.58477182925037e-01 9.88188744534564e-01 -3.30149032834181e-01 + 1.26000000000000e+02 -4.85188015388141e-01 9.31661656684178e-01 -3.23817965809434e-01 + 1.29000000000000e+02 -5.11898674393990e-01 8.75134136992627e-01 -3.17486850418223e-01 + 1.32000000000000e+02 -5.31341994964165e-01 8.15287271265271e-01 -3.11096424528303e-01 + 1.35000000000000e+02 -5.47150816004827e-01 7.53780736462377e-01 -3.04676343460043e-01 + 1.38000000000000e+02 -5.62958434932230e-01 6.92274906461514e-01 -2.98256335959350e-01 + 1.41000000000000e+02 -5.76405140982154e-01 6.31769220410933e-01 -2.92986730247466e-01 + 1.44000000000000e+02 -5.85129730070885e-01 5.73263830376554e-01 -2.90017937448097e-01 + 1.47000000000000e+02 -5.93851743225456e-01 5.14758887292997e-01 -2.87049167328765e-01 + 1.50000000000000e+02 -6.02571440780362e-01 4.55925647601039e-01 -2.84080408549046e-01 + 1.53000000000000e+02 -6.18102771363694e-01 4.07545900233725e-01 -2.93893652756478e-01 + 1.56000000000000e+02 -6.33627994109589e-01 3.59203284556557e-01 -3.03706889264038e-01 + 1.59000000000000e+02 -6.49147890945894e-01 3.10889487497261e-01 -3.13520050804901e-01 + 1.62000000000000e+02 -6.11662753189298e-01 2.73684904094820e-01 -3.53432900875577e-01 + 1.65000000000000e+02 -5.47687466921444e-01 2.42039936419247e-01 -4.08395849769896e-01 + 1.68000000000000e+02 -4.83692709572010e-01 2.10410090026251e-01 -4.63358168842291e-01 + 1.71000000000000e+02 -3.96924138305795e-01 1.85683483417484e-01 -4.50000513056908e-01 + 1.74000000000000e+02 -2.64615541683425e-01 1.74744683765139e-01 -2.99999717902353e-01 + 1.77000000000000e+02 -1.31704479748411e-01 1.63763723652671e-01 -1.49315896260807e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.52890685398725e-01 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_05.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_05.dat new file mode 100644 index 00000000..28ca6bdb --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_05.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF05_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF05_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.550758 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.972792 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-3.390653 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.577585 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.698181 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.047738 Cd0 ! 2D drag coefficient value at 0-lift. +-0.017884 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.30927947138125e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.43244990746609e-01 5.69851238094485e-02 1.19452717008645e-01 +-1.74000000000000e+02 2.87802289582396e-01 6.09656699428337e-02 2.39999774321882e-01 +-1.71000000000000e+02 4.31704332512692e-01 6.49763275693468e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.23499707930916e-01 8.50931388592694e-02 3.82638556679456e-01 +-1.65000000000000e+02 5.83384432077198e-01 1.13322899941877e-01 3.56596594332269e-01 +-1.62000000000000e+02 6.43053795138515e-01 1.41646320077994e-01 3.30554333566108e-01 +-1.59000000000000e+02 6.78451069490567e-01 1.78095963395456e-01 3.09470086171798e-01 +-1.56000000000000e+02 6.58893043506451e-01 2.30735614552766e-01 2.98273249714432e-01 +-1.53000000000000e+02 6.39361023231318e-01 2.83555584049004e-01 2.87022407877401e-01 +-1.50000000000000e+02 6.19863301663139e-01 3.36609283159026e-01 2.75697034623494e-01 +-1.47000000000000e+02 6.09009472068249e-01 4.01283048649868e-01 2.78062585683198e-01 +-1.44000000000000e+02 5.98171151079133e-01 4.63879476339314e-01 2.80408703728939e-01 +-1.41000000000000e+02 5.87351226752077e-01 5.26476382236643e-01 2.82731729240854e-01 +-1.38000000000000e+02 5.72330730353409e-01 5.91679697265480e-01 2.87760801862453e-01 +-1.35000000000000e+02 5.55209533057542e-01 6.58186211572688e-01 2.94147772624518e-01 +-1.32000000000000e+02 5.38097371011921e-01 7.24693487985318e-01 3.00529378672850e-01 +-1.29000000000000e+02 5.17511317766740e-01 7.89812599804369e-01 3.07049734636571e-01 +-1.26000000000000e+02 4.89961725795433e-01 8.52155375838165e-01 3.13857858392341e-01 +-1.23000000000000e+02 4.62416171597766e-01 9.14497675605232e-01 3.20665726887359e-01 +-1.20000000000000e+02 4.34875524108853e-01 9.76839737247837e-01 3.27473323520141e-01 +-1.17000000000000e+02 3.97141252418688e-01 1.02744833950730e+00 3.32448774893895e-01 +-1.14000000000000e+02 3.59408610235184e-01 1.07805672550782e+00 3.37422939191108e-01 +-1.11000000000000e+02 3.21678367338784e-01 1.12866472489365e+00 3.42395452802871e-01 +-1.08000000000000e+02 2.79088060479540e-01 1.16729127063990e+00 3.45105968655180e-01 +-1.05000000000000e+02 2.34067147859934e-01 1.19992699833297e+00 3.46678811680518e-01 +-1.02000000000000e+02 1.89047548243342e-01 1.23256235205249e+00 3.48239595384036e-01 +-9.90000000000000e+01 1.43131704344168e-01 1.25788743783553e+00 3.48340383273987e-01 +-9.60000000000000e+01 9.54209316759962e-02 1.26859167109942e+00 3.45525190946857e-01 +-9.30000000000000e+01 4.77105235832516e-02 1.27929582258901e+00 3.42653176080977e-01 +-9.00000000000000e+01 2.97774918887840e-07 1.28999993319219e+00 3.41171513503408e-01 +-8.70000000000000e+01 -4.77104747518152e-02 1.27929583354468e+00 3.34817796856754e-01 +-8.40000000000000e+01 -9.54210650859458e-02 1.26859164116800e+00 3.29193185522394e-01 +-8.10000000000000e+01 -1.43131291032302e-01 1.25788753056483e+00 3.23300885206925e-01 +-7.80000000000000e+01 -1.89047330204813e-01 1.23256251011385e+00 3.14255422250019e-01 +-7.50000000000000e+01 -2.34067445710414e-01 1.19992678241918e+00 3.04545364776568e-01 +-7.20000000000000e+01 -2.79087842435176e-01 1.16729142869966e+00 2.94835418571366e-01 +-6.90000000000000e+01 -3.21678040492873e-01 1.12866516331131e+00 2.84308787573372e-01 +-6.60000000000000e+01 -3.59408715740005e-01 1.07805658399745e+00 2.72148720112555e-01 +-6.30000000000000e+01 -3.97141502062332e-01 1.02744800468359e+00 2.59988652651739e-01 +-6.00000000000000e+01 -4.34875706297759e-01 9.76839324796023e-01 2.47828577510345e-01 +-5.70000000000000e+01 -4.62416353822370e-01 9.14497263153418e-01 2.34772451636168e-01 +-5.40000000000000e+01 -4.89961908050355e-01 8.52154963381625e-01 2.21716275891253e-01 +-5.10000000000000e+01 -5.17511500044336e-01 7.89812187347829e-01 2.08660000404101e-01 +-4.80000000000000e+01 -5.38086518717761e-01 7.24693556057142e-01 1.95844288146640e-01 +-4.50000000000000e+01 -5.55175897952576e-01 6.58187041749934e-01 1.83148853637833e-01 +-4.20000000000000e+01 -5.72313983328070e-01 5.91679765332548e-01 1.70453273649745e-01 +-3.90000000000000e+01 -5.87347123075626e-01 5.26476326754529e-01 1.58085355571838e-01 +-3.60000000000000e+01 -5.98161176797901e-01 4.63879301313675e-01 1.46372520769741e-01 +-3.30000000000000e+01 -6.09008454841632e-01 4.01283471365111e-01 1.34659909662040e-01 +-3.00000000000000e+01 -6.19863411384585e-01 3.36608903265194e-01 1.22947070166372e-01 +-2.93939393939394e+01 -6.23846756639890e-01 3.25869060451884e-01 1.20313440786885e-01 +-2.87878787878788e+01 -6.27838778995726e-01 3.15141051259396e-01 1.17614452112613e-01 +-2.81818181818182e+01 -6.31839641876821e-01 3.04424204137947e-01 1.14912699050432e-01 +-2.75757575757576e+01 -6.35836270597920e-01 2.93717682812228e-01 1.12207880384010e-01 +-2.69696969696970e+01 -6.39833911454526e-01 2.83021034017517e-01 1.09499798315900e-01 +-2.63636363636364e+01 -6.43837810956875e-01 2.72333814688203e-01 1.06788280516258e-01 +-2.57575757575758e+01 -6.47833727204863e-01 2.61655649661799e-01 1.04073092351849e-01 +-2.51515151515151e+01 -6.51811878050700e-01 2.50986136645096e-01 1.01353965974111e-01 +-2.45454545454545e+01 -6.55792402610431e-01 2.40324660439802e-01 9.86307582663180e-02 +-2.39393939393939e+01 -6.59769329462643e-01 2.29670818293622e-01 9.59032541531653e-02 +-2.33333333333333e+01 -6.63693753618085e-01 2.19024233923185e-01 9.31708867916564e-02 +-2.27272727272727e+01 -6.67617282194909e-01 2.08384555374766e-01 9.04338238763716e-02 +-2.21212121212121e+01 -6.71539925846911e-01 1.97751453089189e-01 8.76919095450044e-02 +-2.15151515151515e+01 -6.75391364530441e-01 1.87124374677434e-01 8.49442500011879e-02 +-2.09090909090909e+01 -6.79225055311131e-01 1.76503213160456e-01 8.21911480032724e-02 +-2.03030303030303e+01 -6.83058586454578e-01 1.65887757170172e-01 7.94326338508051e-02 +-1.96969696969697e+01 -6.77179366626525e-01 1.57936143099498e-01 7.50259515023840e-02 +-1.90909090909091e+01 -6.61588812956316e-01 1.52651370129665e-01 6.89730817674315e-02 +-1.84848484848485e+01 -6.45998974297365e-01 1.47376694007528e-01 6.29169683694159e-02 +-1.78787878787879e+01 -6.30407947197086e-01 1.42112026219737e-01 5.68565081215708e-02 +-1.72727272727273e+01 -6.14814081267429e-01 1.36857330079429e-01 5.07903974899203e-02 +-1.66666666666667e+01 -5.99217230522637e-01 1.31613040740835e-01 4.47175106901892e-02 +-1.60606060606061e+01 -5.83616581541072e-01 1.26379356727811e-01 3.86359166779271e-02 +-1.54545454545455e+01 -5.68012174444683e-01 1.21156750685727e-01 3.25431989869031e-02 +-1.48484848484848e+01 -5.52402341156080e-01 1.15945116537827e-01 2.64350024320926e-02 +-1.42424242424242e+01 -5.36785838629193e-01 1.10744490215081e-01 2.03050549247369e-02 +-1.36363636363636e+01 -5.21164946554597e-01 1.05556831744732e-01 1.41441663106941e-02 +-1.30303030303030e+01 -5.05532268418259e-01 1.00377944456418e-01 7.93532744678689e-03 +-1.24242424242424e+01 -4.89896163495659e-01 9.52139797533199e-02 1.73252780437516e-03 +-1.18181818181818e+01 -4.74247226456870e-01 9.00595351969602e-02 -4.26939729837575e-03 +-1.12121212121212e+01 -4.58591426990099e-01 8.49188835204796e-02 -1.02684318086498e-02 +-1.06060606060606e+01 -4.42925008308680e-01 7.97910287467256e-02 -1.62647493676347e-02 +-1.00000000000000e+01 -4.27245419806289e-01 7.46743204034461e-02 -2.22564315863916e-02 +-9.39393939393939e+00 -3.94450071012984e-01 7.15761244145179e-02 -2.16020013916610e-02 +-8.78787878787879e+00 -3.61709763635419e-01 6.85053420395361e-02 -2.09365369698145e-02 +-8.18181818181818e+00 -3.29004774877055e-01 6.54609123314964e-02 -2.02303412864217e-02 +-7.57575757575758e+00 -2.96719457325792e-01 6.35194996651035e-02 -1.95537154607737e-02 +-6.96969696969697e+00 -2.64607645997063e-01 6.22646687778469e-02 -1.89056408818654e-02 +-6.36363636363636e+00 -2.32580527152297e-01 6.06079991204510e-02 -1.81689497551464e-02 +-5.75757575757576e+00 -2.00633174166183e-01 5.86072762325081e-02 -1.69119223172787e-02 +-5.15151515151515e+00 -1.68866114677660e-01 5.62255812194239e-02 -1.65526782796882e-02 +-4.54545454545454e+00 -1.37461932635248e-01 5.36929428917852e-02 -1.61977017355170e-02 +-3.93939393939394e+00 -1.06758451318221e-01 5.10791375965595e-02 -1.58364616756710e-02 +-3.33333333333333e+00 -7.62685548653199e-02 4.84672024181126e-02 -1.56131840112851e-02 +-2.72727272727273e+00 -2.30465602521035e-02 4.76318232912975e-02 -1.71370109715407e-02 +-2.12121212121212e+00 5.60835187551921e-02 4.79951799533595e-02 -1.97007210491168e-02 +-1.51515151515152e+00 1.33973262951602e-01 4.82654676882718e-02 -2.19439082938550e-02 +-9.09090909090912e-01 2.11028087723967e-01 4.85254853369285e-02 -2.42243917401695e-02 +-3.03030303030302e-01 2.87261368924859e-01 4.88198593001318e-02 -2.64441305820696e-02 + 3.03030303030302e-01 3.62683470094018e-01 4.90303436956597e-02 -2.86606885206110e-02 + 9.09090909090912e-01 4.37199562095510e-01 4.92283898912697e-02 -3.09291436006373e-02 + 1.51515151515152e+00 5.13610653178412e-01 4.93813249350217e-02 -3.31627344995039e-02 + 2.12121212121212e+00 5.93819523225117e-01 4.94346635643130e-02 -3.56399268252573e-02 + 2.72727272727273e+00 6.74386743494600e-01 4.93129308208056e-02 -3.83078247443938e-02 + 3.33333333333333e+00 7.54945044010580e-01 4.91755144944948e-02 -4.10234230183793e-02 + 3.93939393939394e+00 8.35509088091445e-01 4.91056624497743e-02 -4.37392469039279e-02 + 4.54545454545455e+00 9.16064316845785e-01 4.89398733238135e-02 -4.63880027667541e-02 + 5.15151515151515e+00 9.96625787614405e-01 4.87886086060796e-02 -4.91038344328945e-02 + 5.75757575757576e+00 1.07656301546343e+00 4.86681788543757e-02 -5.18876441202431e-02 + 6.36363636363637e+00 1.15542943443492e+00 4.84580270970572e-02 -5.47393555777829e-02 + 6.96969696969697e+00 1.23410923793262e+00 4.83167054847680e-02 -5.76374031069491e-02 + 7.57575757575757e+00 1.31245193672788e+00 4.80332030687119e-02 -6.06302767966048e-02 + 8.18181818181818e+00 1.38759943761324e+00 4.77434147182263e-02 -6.42287509236700e-02 + 8.78787878787879e+00 1.45873318731176e+00 4.76208649517908e-02 -6.80810236266958e-02 + 9.39393939393939e+00 1.52667302662998e+00 4.74125681417122e-02 -7.21235138863210e-02 + 1.00000000000000e+01 1.59364179899341e+00 4.69592426109806e-02 -7.62125968301386e-02 + 1.06060606060606e+01 1.53266180129203e+00 5.17795621500542e-02 -7.64122517246057e-02 + 1.12121212121212e+01 1.50662714460046e+00 5.81185911119093e-02 -6.22473445320763e-02 + 1.18181818181818e+01 1.52196088499542e+00 6.47040938908333e-02 -6.38501972207365e-02 + 1.24242424242424e+01 1.06125737520671e+00 7.27011070641862e-02 -5.06632430902114e-02 + 1.30303030303030e+01 9.86623647198398e-01 7.99581638241099e-02 -5.02161054006635e-02 + 1.36363636363636e+01 9.95413895615537e-01 8.64252489342137e-02 -5.25392814360008e-02 + 1.42424242424242e+01 1.00924723452713e+00 9.21833608579365e-02 -5.50345279620461e-02 + 1.48484848484848e+01 1.02661321711400e+00 9.75776888323979e-02 -5.76003393676277e-02 + 1.54545454545455e+01 1.05138532349845e+00 1.02292972150637e-01 -6.01726803278759e-02 + 1.60606060606061e+01 1.07964132412529e+00 1.07181768900225e-01 -6.30677892912717e-02 + 1.66666666666667e+01 1.06432412273203e+00 1.15493817389282e-01 -6.88775293421371e-02 + 1.72727272727273e+01 1.04867809191367e+00 1.23747525118351e-01 -7.47996579324639e-02 + 1.78787878787879e+01 1.03269240545081e+00 1.31928776633279e-01 -8.08557118437613e-02 + 1.84848484848485e+01 1.01640007994456e+00 1.40110699660449e-01 -8.69627224737571e-02 + 1.90909090909091e+01 1.00063944099394e+00 1.48295486938811e-01 -9.30638334648102e-02 + 1.96969696969697e+01 9.85938420719178e-01 1.56485775705632e-01 -9.91101057357213e-02 + 2.03030303030303e+01 9.75860062476632e-01 1.65887757170172e-01 -1.03774527782874e-01 + 2.09090909090909e+01 9.70385523569138e-01 1.76503213160456e-01 -1.07066137517572e-01 + 2.15151515151515e+01 9.64910741287637e-01 1.87124374677434e-01 -1.10360436221179e-01 + 2.21212121212121e+01 9.59410539374443e-01 1.97751453089189e-01 -1.13658562031653e-01 + 2.27272727272727e+01 9.53808409121640e-01 2.08384555374766e-01 -1.16963451063534e-01 + 2.33333333333333e+01 9.48205009566551e-01 2.19024233923185e-01 -1.20268180130586e-01 + 2.39393939393939e+01 9.42600325574261e-01 2.29670818293622e-01 -1.23572752917098e-01 + 2.45454545454545e+01 9.36920460742092e-01 2.40324660439802e-01 -1.26879595000076e-01 + 2.51515151515151e+01 9.31235454127077e-01 2.50986136645096e-01 -1.30185781900636e-01 + 2.57575757575758e+01 9.25553857527951e-01 2.61655649661799e-01 -1.33491111669471e-01 + 2.63636363636364e+01 9.19846852026574e-01 2.72333814688203e-01 -1.36796376983463e-01 + 2.69696969696970e+01 9.14128444983841e-01 2.83021034017517e-01 -1.40101150711351e-01 + 2.75757575757576e+01 9.08419019689508e-01 2.93717682812228e-01 -1.43405050790712e-01 + 2.81818181818182e+01 9.02711061316296e-01 3.04424204137947e-01 -1.46708310397499e-01 + 2.87878787878788e+01 8.96997060076054e-01 3.15141051259396e-01 -1.50011073235030e-01 + 2.93939393939394e+01 8.91295747727463e-01 3.25869060451884e-01 -1.53313276996418e-01 + 3.00000000000000e+01 8.85606890090034e-01 3.36608903265194e-01 -1.56615109400843e-01 + 3.30000000000000e+01 8.70046621612218e-01 4.01283471365112e-01 -1.68896662349608e-01 + 3.60000000000000e+01 8.54497762357662e-01 4.63879301313675e-01 -1.80807931817999e-01 + 3.90000000000000e+01 8.38996891272377e-01 5.26476326754529e-01 -1.92637317529328e-01 + 4.20000000000000e+01 8.17522301694096e-01 5.91679765332548e-01 -2.03957651916238e-01 + 4.50000000000000e+01 7.93066546402043e-01 6.58187041749934e-01 -2.15023567058536e-01 + 4.80000000000000e+01 7.68679932146205e-01 7.24693556057142e-01 -2.26089355395965e-01 + 5.10000000000000e+01 7.39303717872206e-01 7.89812187347829e-01 -2.36920708472379e-01 + 5.40000000000000e+01 6.99944452555873e-01 8.52154963381625e-01 -2.47283175955455e-01 + 5.70000000000000e+01 6.60590914392139e-01 9.14497263153418e-01 -2.57645564275396e-01 + 6.00000000000000e+01 6.21244336348351e-01 9.76839324796023e-01 -2.68007913014073e-01 + 6.30000000000000e+01 5.67342239658887e-01 1.02744800468359e+00 -2.77212112250156e-01 + 6.60000000000000e+01 5.13442407001332e-01 1.07805658399745e+00 -2.86416301559060e-01 + 6.90000000000000e+01 4.59545925192930e-01 1.12866516331131e+00 -2.95620490867964e-01 + 7.20000000000000e+01 3.98720080252567e-01 1.16729142869966e+00 -3.03676557424305e-01 + 7.50000000000000e+01 3.34428749413491e-01 1.19992678241918e+00 -3.11158586107968e-01 + 7.80000000000000e+01 2.70137761942138e-01 1.23256251011385e+00 -3.18640700529719e-01 + 8.10000000000000e+01 2.04550434150108e-01 1.25788753056483e+00 -3.25335532450249e-01 + 8.40000000000000e+01 1.36367248239496e-01 1.26859164116800e+00 -3.30455853712348e-01 + 8.70000000000000e+01 6.81835415395329e-02 1.27929583354468e+00 -3.35467708982822e-01 + 9.00000000000000e+01 -2.97774919089685e-07 1.28999993319219e+00 -3.40233119894460e-01 + 9.30000000000000e+01 -4.77105235832516e-02 1.27929582258901e+00 -3.42605172055241e-01 + 9.60000000000000e+01 -9.54209316759964e-02 1.26859167109942e+00 -3.44513777418663e-01 + 9.90000000000000e+01 -1.43131704344168e-01 1.25788743783553e+00 -3.46422397362864e-01 + 1.02000000000000e+02 -1.89047548243342e-01 1.23256235205249e+00 -3.45474218431042e-01 + 1.05000000000000e+02 -2.34067147859934e-01 1.19992699833297e+00 -3.43097670996285e-01 + 1.08000000000000e+02 -2.79088060479540e-01 1.16729127063990e+00 -3.40721096328304e-01 + 1.11000000000000e+02 -3.21678367338785e-01 1.12866472489365e+00 -3.37267285780153e-01 + 1.14000000000000e+02 -3.59408610235184e-01 1.07805672550782e+00 -3.31659036281393e-01 + 1.17000000000000e+02 -3.97141252418688e-01 1.02744833950730e+00 -3.26050743938977e-01 + 1.20000000000000e+02 -4.34875524108853e-01 9.76839737247837e-01 -3.20442427056780e-01 + 1.23000000000000e+02 -4.62416171597766e-01 9.14497675605232e-01 -3.13240052857952e-01 + 1.26000000000000e+02 -4.89961725795433e-01 8.52155375838165e-01 -3.06037651148621e-01 + 1.29000000000000e+02 -5.17511317766740e-01 7.89812599804369e-01 -2.98835194416227e-01 + 1.32000000000000e+02 -5.38097371011921e-01 7.24693487985317e-01 -2.92129065581036e-01 + 1.35000000000000e+02 -5.55209533057542e-01 6.58186211572688e-01 -2.85671100106641e-01 + 1.38000000000000e+02 -5.72330730353409e-01 5.91679697265480e-01 -2.79213208633931e-01 + 1.41000000000000e+02 -5.87351226752077e-01 5.26476382236642e-01 -2.74246677538335e-01 + 1.44000000000000e+02 -5.98171151079133e-01 4.63879476339314e-01 -2.72262879298565e-01 + 1.47000000000000e+02 -6.09009472068249e-01 4.01283048649868e-01 -2.70279096213984e-01 + 1.50000000000000e+02 -6.19863301663139e-01 3.36609283159026e-01 -2.68295320706727e-01 + 1.53000000000000e+02 -6.39361023231318e-01 2.83555584049004e-01 -2.80703642982803e-01 + 1.56000000000000e+02 -6.58893043506451e-01 2.30735614552766e-01 -2.93111951398230e-01 + 1.59000000000000e+02 -6.78451069490567e-01 1.78095963395456e-01 -3.05520165022309e-01 + 1.62000000000000e+02 -6.43501747482713e-01 1.41646320077994e-01 -3.47725013460614e-01 + 1.65000000000000e+02 -5.88359323471862e-01 1.13322899941877e-01 -4.04828431301629e-01 + 1.68000000000000e+02 -5.23499707930916e-01 8.50931388592694e-02 -4.61931194793028e-01 + 1.71000000000000e+02 -4.31704332512692e-01 6.49763275693468e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.87802289582396e-01 6.09656699428337e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.43244990746609e-01 5.69851238094485e-02 -1.49315896260807e-01 + 1.80000000000000e+02 0.00000000000000e+00 5.30927947138125e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_06.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_06.dat new file mode 100644 index 00000000..28b7cb05 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_06.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF06_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF06_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +0.000000 alpha0 ! 0-lift angle of attack, depends on airfoil. +0.000000 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +0.000000 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +0.000000 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.000000 Cd0 ! 2D drag coefficient value at 0-lift. +0.000000 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 1.04451467064788e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.47157007613739e-01 1.04872308588687e-02 1.19452717008645e-01 +-1.74000000000000e+02 2.95662162415483e-01 1.05303966409131e-02 2.39999774321882e-01 +-1.71000000000000e+02 4.43494166290477e-01 1.05740045222718e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.36848745324298e-01 2.74506298830325e-02 3.81279166438973e-01 +-1.65000000000000e+02 6.01560063853722e-01 5.27443629674667e-02 3.53198134597150e-01 +-1.62000000000000e+02 6.66223778858103e-01 7.80396220376046e-02 3.25116780970332e-01 +-1.59000000000000e+02 7.02316612456853e-01 1.12504063201209e-01 3.01860860228524e-01 +-1.56000000000000e+02 6.79726083437648e-01 1.65305735070101e-01 2.88248798735499e-01 +-1.53000000000000e+02 6.57149315796707e-01 2.18110193131311e-01 2.74623662647778e-01 +-1.50000000000000e+02 6.34589659449874e-01 2.70917973756332e-01 2.60980583690885e-01 +-1.47000000000000e+02 6.22060969336252e-01 3.35899150571673e-01 2.62488656920504e-01 +-1.44000000000000e+02 6.09539332292595e-01 4.00853059956420e-01 2.63992059057429e-01 +-1.41000000000000e+02 5.97025743089158e-01 4.65807465559123e-01 2.65489913378387e-01 +-1.38000000000000e+02 5.80704075775906e-01 5.33717517969207e-01 2.70296859813583e-01 +-1.35000000000000e+02 5.62478076348152e-01 6.03105387787129e-01 2.76759519512185e-01 +-1.32000000000000e+02 5.44255597967036e-01 6.72494052728241e-01 2.83220945160593e-01 +-1.29000000000000e+02 5.22678505700544e-01 7.40650991852422e-01 2.90064291270315e-01 +-1.26000000000000e+02 4.94385901691070e-01 8.06344473485986e-01 2.97673949948684e-01 +-1.23000000000000e+02 4.66094993647798e-01 8.72037453255156e-01 3.05283501600632e-01 +-1.20000000000000e+02 4.37806027109449e-01 9.37730182101509e-01 3.12892965044744e-01 +-1.17000000000000e+02 3.99577421117098e-01 9.92049662822417e-01 3.19211276900007e-01 +-1.14000000000000e+02 3.61349504390741e-01 1.04636891381409e+00 3.25529257918674e-01 +-1.11000000000000e+02 3.23122662358267e-01 1.10068774984251e+00 3.31846802734848e-01 +-1.08000000000000e+02 2.80173308571465e-01 1.14318523690795e+00 3.36136841670906e-01 +-1.05000000000000e+02 2.34862463623927e-01 1.17977195947738e+00 3.39411510930403e-01 +-1.02000000000000e+02 1.89552426493172e-01 1.21635826279871e+00 3.42683246088910e-01 +-9.90000000000000e+01 1.43411370176115e-01 1.24567433198225e+00 3.44537199174708e-01 +-9.60000000000000e+01 9.56073752226676e-02 1.26044961797812e+00 3.43556506874831e-01 +-9.30000000000000e+01 4.78037454869307e-02 1.27522479109913e+00 3.42562148033031e-01 +-9.00000000000000e+01 2.98356743247137e-07 1.28999990778373e+00 3.41794286215052e-01 +-8.70000000000000e+01 -4.78036965600822e-02 1.27522480622146e+00 3.34958722226529e-01 +-8.40000000000000e+01 -9.56075088932874e-02 1.26044957666313e+00 3.28241304934322e-01 +-8.10000000000000e+01 -1.43410956056677e-01 1.24567445997852e+00 3.21434171665192e-01 +-7.80000000000000e+01 -1.89552207046124e-01 1.21635843999553e+00 3.12123499707622e-01 +-7.50000000000000e+01 -2.34862763393904e-01 1.17977171742431e+00 3.01780409905885e-01 +-7.20000000000000e+01 -2.80173089123731e-01 1.14318541410297e+00 2.91437438626359e-01 +-6.90000000000000e+01 -3.23122331202990e-01 1.10068822040718e+00 2.80383282644346e-01 +-6.60000000000000e+01 -3.61349611282076e-01 1.04636876192745e+00 2.67906699019381e-01 +-6.30000000000000e+01 -3.99577674034013e-01 9.92049303447725e-01 2.55430115394417e-01 +-6.00000000000000e+01 -4.37806214260738e-01 9.37729747481855e-01 2.42953527363207e-01 +-5.70000000000000e+01 -4.66095180812632e-01 8.72037018635503e-01 2.29962886841547e-01 +-5.40000000000000e+01 -4.94386088868899e-01 8.06344038861353e-01 2.16972196699283e-01 +-5.10000000000000e+01 -5.22678692887195e-01 7.40650557227788e-01 2.03981407315058e-01 +-4.80000000000000e+01 -5.44252972972638e-01 6.72494123749236e-01 1.91507677333331e-01 +-4.50000000000000e+01 -5.62469809216957e-01 6.03106253931314e-01 1.79292468742977e-01 +-4.20000000000000e+01 -5.80700032781224e-01 5.33717588985239e-01 1.67077120176337e-01 +-3.90000000000000e+01 -5.97024764718039e-01 4.65807407987464e-01 1.55320402968213e-01 +-3.60000000000000e+01 -6.09536960661095e-01 4.00852878339035e-01 1.44480717872626e-01 +-3.30000000000000e+01 -6.22060657674661e-01 3.35899589207050e-01 1.33641239795822e-01 +-3.00000000000000e+01 -6.34589785519217e-01 2.70917595996388e-01 1.22801551597028e-01 +-2.93939393939394e+01 -6.39157128083239e-01 2.60249253715867e-01 1.20443684761723e-01 +-2.87878787878788e+01 -6.43726970234920e-01 2.49581068160403e-01 1.18056074979326e-01 +-2.81818181818182e+01 -6.48299337915072e-01 2.38913030435958e-01 1.15668753051161e-01 +-2.75757575757576e+01 -6.52871145565939e-01 2.28244918383301e-01 1.13281631608806e-01 +-2.69696969696970e+01 -6.57443601591947e-01 2.17576846610789e-01 1.10894703470960e-01 +-2.63636363636364e+01 -6.62017925284925e-01 2.06908899722581e-01 1.08507963151374e-01 +-2.57575757575758e+01 -6.66590638057245e-01 1.96241193383532e-01 1.06121395705389e-01 +-2.51515151515151e+01 -6.71159355283587e-01 1.85573782554301e-01 1.03734968840955e-01 +-2.45454545454545e+01 -6.75728973211485e-01 1.74906478164995e-01 1.01348641226412e-01 +-2.39393939393939e+01 -6.80298045453838e-01 1.64239274881544e-01 9.89623846880801e-02 +-2.33333333333333e+01 -6.84854798199331e-01 1.53572167720432e-01 9.65760871231664e-02 +-2.27272727272727e+01 -6.89411636551734e-01 1.42905152020367e-01 9.41898138397285e-02 +-2.21212121212121e+01 -6.93968554262710e-01 1.32238223416651e-01 9.18035530549137e-02 +-2.15151515151515e+01 -6.98508709947078e-01 1.21571133361270e-01 8.94170767131999e-02 +-2.09090909090909e+01 -7.03044892648499e-01 1.10904061345980e-01 8.70305146317220e-02 +-2.03030303030303e+01 -7.07581304739425e-01 1.00237064894968e-01 8.46439121010197e-02 +-1.96969696969697e+01 -7.02434146497075e-01 9.30822479646328e-02 8.04176563008526e-02 +-1.90909090909091e+01 -6.87605029081401e-01 8.94394535867222e-02 7.43518989818734e-02 +-1.84848484848485e+01 -6.72778074386064e-01 8.57969669339951e-02 6.82864549586822e-02 +-1.78787878787879e+01 -6.57952316652420e-01 8.21546025938098e-02 6.22210099648385e-02 +-1.72727272727273e+01 -6.43126950262024e-01 7.85122065549102e-02 5.61553003431422e-02 +-1.66666666666667e+01 -6.28302519055304e-01 7.48699483442050e-02 5.00895983301152e-02 +-1.60606060606061e+01 -6.13478902955351e-01 7.12278305909537e-02 4.40238940514546e-02 +-1.54545454545455e+01 -5.98656762623450e-01 6.75860437894719e-02 3.79584834371826e-02 +-1.48484848484848e+01 -5.83835116087009e-01 6.39443715968832e-02 3.18929726477928e-02 +-1.42424242424242e+01 -5.69013374770912e-01 6.03026916613097e-02 2.58271029097552e-02 +-1.36363636363636e+01 -5.54192788419233e-01 5.66613031319075e-02 1.97612536677373e-02 +-1.30303030303030e+01 -5.39371304159858e-01 5.30198014190618e-02 1.36946491482892e-02 +-1.24242424242424e+01 -5.24551543111039e-01 4.93787366739739e-02 7.62887531626830e-03 +-1.18181818181818e+01 -5.09730889357631e-01 4.57375886003972e-02 1.56582884204670e-03 +-1.12121212121212e+01 -4.94911816881562e-01 4.20969074071858e-02 -4.49615178689840e-03 +-1.06060606060606e+01 -4.80091928606605e-01 3.84561282662129e-02 -1.05578228942103e-02 +-1.00000000000000e+01 -4.65272615271009e-01 3.48157175645994e-02 -1.66180951849822e-02 +-9.39393939393939e+00 -4.33015231009942e-01 3.42187656030196e-02 -1.65076215545108e-02 +-8.78787878787879e+00 -4.00776603293592e-01 3.36221501328585e-02 -1.63940097647302e-02 +-8.18181818181818e+00 -3.68550425214672e-01 3.30196417584014e-02 -1.62766322067477e-02 +-7.57575757575758e+00 -3.36434279469676e-01 3.26768333428082e-02 -1.61640703650675e-02 +-6.96969696969697e+00 -3.04375048369348e-01 3.24942948584592e-02 -1.60544597500587e-02 +-6.36363636363636e+00 -2.72349727408693e-01 3.22072522033381e-02 -1.59243774119394e-02 +-5.75757575757576e+00 -2.40358355463915e-01 3.18276476040425e-02 -1.56691283801087e-02 +-5.15151515151515e+00 -2.08432296047144e-01 3.13466648471733e-02 -1.56292523082999e-02 +-4.54545454545454e+00 -1.76609965524745e-01 3.08120593078346e-02 -1.55984117030112e-02 +-3.93939393939394e+00 -1.44997595632154e-01 3.02529210905892e-02 -1.55594122431336e-02 +-3.33333333333333e+00 -1.13863635347939e-01 2.96208324027153e-02 -1.55210128993654e-02 +-2.72727272727273e+00 -5.99893192871201e-02 2.93065185564550e-02 -1.71363467068633e-02 +-2.12121212121212e+00 2.27564888093693e-02 2.93538954238316e-02 -1.97749354532020e-02 +-1.51515151515152e+00 1.05200007924397e-01 2.93787983393214e-02 -2.18495371988307e-02 +-9.09090909090912e-01 1.87443112873824e-01 2.94162855389729e-02 -2.40114002927046e-02 +-3.03030303030302e-01 2.69492451080518e-01 2.95149670076408e-02 -2.60738132222027e-02 + 3.03030303030302e-01 3.51341217387514e-01 2.95252389442168e-02 -2.81360338847481e-02 + 9.09090909090912e-01 4.32977146923541e-01 2.95324300033464e-02 -3.02799067329311e-02 + 1.51515151515152e+00 5.14818629228781e-01 2.95320187044063e-02 -3.23663227732926e-02 + 2.12121212121212e+00 5.95875970346463e-01 2.96220237683965e-02 -3.47191596720360e-02 + 2.72727272727273e+00 6.76364098276864e-01 2.96076377124260e-02 -3.73109856941127e-02 + 3.33333333333333e+00 7.56846420931681e-01 2.95894663968510e-02 -3.99780779670709e-02 + 3.93939393939394e+00 8.37335412739111e-01 2.96601655289752e-02 -4.26453918217197e-02 + 4.54545454545455e+00 9.17819291031016e-01 2.96450963882609e-02 -4.52128978330237e-02 + 5.15151515151515e+00 9.98308476294268e-01 2.96479816058189e-02 -4.78802193292873e-02 + 5.75757575757576e+00 1.07878507397145e+00 2.96910810658735e-02 -5.05480539440911e-02 + 6.36363636363637e+00 1.15925721789623e+00 2.96540309894699e-02 -5.31448705442736e-02 + 6.96969696969697e+00 1.23972406223336e+00 2.97108111966689e-02 -5.57870430345416e-02 + 7.57575757575757e+00 1.31979653762893e+00 2.96607700932776e-02 -5.85770647543249e-02 + 8.18181818181818e+00 1.39574347837112e+00 2.96344899473148e-02 -6.23210696280249e-02 + 8.78787878787879e+00 1.46845278922940e+00 2.96855555923576e-02 -6.63193015468805e-02 + 9.39393939393939e+00 1.54113668312882e+00 2.96488360635837e-02 -7.03198982848751e-02 + 1.00000000000000e+01 1.61380661140144e+00 2.95365970912785e-02 -7.43207867311127e-02 + 1.06060606060606e+01 1.66835969927735e+00 2.93338363207452e-02 -7.80346111337379e-02 + 1.12121212121212e+01 1.70692741182872e+00 2.93798828283306e-02 -8.05927498314898e-02 + 1.18181818181818e+01 1.74587632218544e+00 3.01307604443737e-02 -8.45839669704818e-02 + 1.24242424242424e+01 1.09782720012007e+00 3.33105797425031e-02 -6.18259975113200e-02 + 1.30303030303030e+01 9.73402814155888e-01 3.56492113840093e-02 -5.87718757586572e-02 + 1.36363636363636e+01 9.88485823361229e-01 3.73441347002030e-02 -6.12633502425757e-02 + 1.42424242424242e+01 1.01090647828627e+00 3.86537299612605e-02 -6.40712596029900e-02 + 1.48484848484848e+01 1.04282842508625e+00 3.96717899749230e-02 -6.69529521512987e-02 + 1.54545454545455e+01 1.08269042899909e+00 4.02778502988878e-02 -7.00292393429914e-02 + 1.60606060606061e+01 1.12069441651250e+00 4.15211136336744e-02 -7.34124817337401e-02 + 1.66666666666667e+01 1.10428631804948e+00 4.97349677981258e-02 -7.89834353690655e-02 + 1.72727272727273e+01 1.08784286827117e+00 5.79481890360755e-02 -8.45666402360810e-02 + 1.78787878787879e+01 1.07137007227413e+00 6.61606214571691e-02 -9.01640784321922e-02 + 1.84848484848485e+01 1.05482456124854e+00 7.43726955221486e-02 -9.57806291561119e-02 + 1.90909090909091e+01 1.03840773749638e+00 8.25847845613570e-02 -1.01399088671180e-01 + 1.96969696969697e+01 1.02224607479530e+00 9.07973366722597e-02 -1.07003526290174e-01 + 2.03030303030303e+01 1.01092702064250e+00 1.00237064894968e-01 -1.11264195300182e-01 + 2.09090909090909e+01 1.00444584016781e+00 1.10904061345980e-01 -1.14182224296970e-01 + 2.15151515151515e+01 9.97964986040765e-01 1.21571133361270e-01 -1.17102244903151e-01 + 2.21212121212121e+01 9.91478442890709e-01 1.32238223416651e-01 -1.20024488822164e-01 + 2.27272727272727e+01 9.84967906725073e-01 1.42905152020367e-01 -1.22949596706990e-01 + 2.33333333333333e+01 9.78457485279851e-01 1.53572167720432e-01 -1.25875923784615e-01 + 2.39393939393939e+01 9.71947187592677e-01 1.64239274881544e-01 -1.28803443608322e-01 + 2.45454545454545e+01 9.65419250819274e-01 1.74906478164995e-01 -1.31732713112496e-01 + 2.51515151515151e+01 9.58890536835396e-01 1.85573782554301e-01 -1.34663003015135e-01 + 2.57575757575758e+01 9.52363117111773e-01 1.96241193383532e-01 -1.37594239679627e-01 + 2.63636363636364e+01 9.45829985373321e-01 2.06908899722581e-01 -1.40526626180439e-01 + 2.69696969696970e+01 9.39294556254110e-01 2.17576846610789e-01 -1.43460023904971e-01 + 2.75757575757576e+01 9.32761808370637e-01 2.28244918383301e-01 -1.46394293444329e-01 + 2.81818181818182e+01 9.26229995246710e-01 2.38913030435957e-01 -1.49329450107358e-01 + 2.87878787878788e+01 9.19697387107103e-01 2.49581068160403e-01 -1.52265482124334e-01 + 2.93939393939394e+01 9.13168404913080e-01 2.60249253715867e-01 -1.55202396247522e-01 + 3.00000000000000e+01 9.06643011580764e-01 2.70917595996388e-01 -1.58140217032240e-01 + 3.30000000000000e+01 8.88688675426252e-01 3.35899589207050e-01 -1.69129145388514e-01 + 3.60000000000000e+01 8.70742215903117e-01 4.00852878339035e-01 -1.79949350188385e-01 + 3.90000000000000e+01 8.52812326157355e-01 4.65807407987464e-01 -1.90730956251902e-01 + 4.20000000000000e+01 8.29505265359302e-01 5.33717588985240e-01 -2.01309118189523e-01 + 4.50000000000000e+01 8.03510457214686e-01 6.03106253931314e-01 -2.11785658405499e-01 + 4.80000000000000e+01 7.77534592624486e-01 6.72494123749237e-01 -2.22262078570281e-01 + 5.10000000000000e+01 7.46744805516537e-01 7.40650557227789e-01 -2.32656858855358e-01 + 5.40000000000000e+01 7.06322608215230e-01 8.06344038861353e-01 -2.42888354132579e-01 + 5.70000000000000e+01 6.65902819356557e-01 8.72037018635503e-01 -2.53119771247217e-01 + 6.00000000000000e+01 6.25485786688918e-01 9.37729747481856e-01 -2.63351149280861e-01 + 6.30000000000000e+01 5.70855611235508e-01 9.92049303447725e-01 -2.72828203817710e-01 + 6.60000000000000e+01 5.16226204482826e-01 1.04636876192745e+00 -2.82305251888810e-01 + 6.90000000000000e+01 4.61598036952559e-01 1.10068822040718e+00 -2.91782299959910e-01 + 7.20000000000000e+01 4.00255485500037e-01 1.14318541410298e+00 -3.00336786931006e-01 + 7.50000000000000e+01 3.35555531395701e-01 1.17977171742431e+00 -3.08430012238153e-01 + 7.80000000000000e+01 2.70855228914286e-01 1.21635843999553e+00 -3.16523330287215e-01 + 8.10000000000000e+01 2.04949941366059e-01 1.24567445997852e+00 -3.23905764836268e-01 + 8.40000000000000e+01 1.36633587012766e-01 1.26044957666313e+00 -3.29866481455659e-01 + 8.70000000000000e+01 6.83167107824974e-02 1.27522480622146e+00 -3.35775778267908e-01 + 9.00000000000000e+01 -2.98356743449189e-07 1.28999990778373e+00 -3.41568552350958e-01 + 9.30000000000000e+01 -4.78037454869307e-02 1.27522479109913e+00 -3.42550600496776e-01 + 9.60000000000000e+01 -9.56073752226678e-02 1.26044961797812e+00 -3.43313207813819e-01 + 9.90000000000000e+01 -1.43411370176115e-01 1.24567433198225e+00 -3.44075820956797e-01 + 1.02000000000000e+02 -1.89552426493172e-01 1.21635826279871e+00 -3.42018024992642e-01 + 1.05000000000000e+02 -2.34862463623927e-01 1.17977195947738e+00 -3.38550055015947e-01 + 1.08000000000000e+02 -2.80173308571465e-01 1.14318523690795e+00 -3.35082045299249e-01 + 1.11000000000000e+02 -3.23122662358267e-01 1.10068774984251e+00 -3.30613204224884e-01 + 1.14000000000000e+02 -3.61349504390742e-01 1.04636891381409e+00 -3.24142730917994e-01 + 1.17000000000000e+02 -3.99577421117098e-01 9.92049662822417e-01 -3.17672208180576e-01 + 1.20000000000000e+02 -4.37806027109449e-01 9.37730182101508e-01 -3.11201658314193e-01 + 1.23000000000000e+02 -4.66094993647798e-01 8.72037453255156e-01 -3.03497229746074e-01 + 1.26000000000000e+02 -4.94385901691070e-01 8.06344473485986e-01 -2.95792771749784e-01 + 1.29000000000000e+02 -5.22678505700545e-01 7.40650991852421e-01 -2.88088254894948e-01 + 1.32000000000000e+02 -5.44255597967036e-01 6.72494052728240e-01 -2.81200220471366e-01 + 1.35000000000000e+02 -5.62478076348152e-01 6.03105387787129e-01 -2.74720426295997e-01 + 1.38000000000000e+02 -5.80704075775906e-01 5.33717517969206e-01 -2.68240706372448e-01 + 1.41000000000000e+02 -5.97025743089158e-01 4.65807465559123e-01 -2.63448804520033e-01 + 1.44000000000000e+02 -6.09539332292595e-01 4.00853059956420e-01 -2.62032552505631e-01 + 1.47000000000000e+02 -6.22060969336252e-01 3.35899150571673e-01 -2.60616311310659e-01 + 1.50000000000000e+02 -6.34589659449874e-01 2.70917973756332e-01 -2.59200075525210e-01 + 1.53000000000000e+02 -6.57149315796707e-01 2.18110193131311e-01 -2.73103661656341e-01 + 1.56000000000000e+02 -6.79726083437648e-01 1.65305735070101e-01 -2.87007230377031e-01 + 1.59000000000000e+02 -7.02316612456853e-01 1.12504063201209e-01 -3.00910692883565e-01 + 1.62000000000000e+02 -6.66331535360941e-01 7.80396220376046e-02 -3.44436173003965e-01 + 1.65000000000000e+02 -6.02756791375368e-01 5.27443629674667e-02 -4.02772912450035e-01 + 1.68000000000000e+02 -5.36848745324298e-01 2.74506298830325e-02 -4.61108983413823e-01 + 1.71000000000000e+02 -4.43494166290477e-01 1.05740045222718e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.95662162415483e-01 1.05303966409131e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.47157007613739e-01 1.04872308588687e-02 -1.49315896260807e-01 + 1.80000000000000e+02 0.00000000000000e+00 1.04451467064788e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_07.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_07.dat new file mode 100644 index 00000000..d854bfa0 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_07.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF07_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF07_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.175483 alpha0 ! 0-lift angle of attack, depends on airfoil. +12.034907 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-4.017330 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.598379 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.740046 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.019639 Cd0 ! 2D drag coefficient value at 0-lift. +-0.026025 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 2.33914127688100e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.43031527763221e-01 2.33914127688100e-02 1.19163615697548e-01 +-1.74000000000000e+02 2.87990892106934e-01 2.66846196171584e-02 2.39999774321882e-01 +-1.71000000000000e+02 4.31987088278764e-01 3.65643482753360e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.31545849874829e-01 5.84098652013656e-02 3.64532897060852e-01 +-1.65000000000000e+02 6.11268538666348e-01 8.62381366029380e-02 3.11332656605488e-01 +-1.62000000000000e+02 6.94600133989169e-01 1.14066726893083e-01 2.58131725599959e-01 +-1.59000000000000e+02 7.40824462046985e-01 1.50632267952715e-01 2.21242462675373e-01 +-1.56000000000000e+02 7.16139659509821e-01 2.04671414989218e-01 2.16831447428975e-01 +-1.53000000000000e+02 6.91423868529968e-01 2.58710851852227e-01 2.12177598920349e-01 +-1.50000000000000e+02 6.66670110194854e-01 3.12750462408367e-01 2.07242736249593e-01 +-1.47000000000000e+02 6.52900940317335e-01 3.79139090101126e-01 2.11698220689362e-01 +-1.44000000000000e+02 6.39116027015019e-01 4.45527909875772e-01 2.16157774411608e-01 +-1.41000000000000e+02 6.25312980734950e-01 5.11917113827909e-01 2.20622202461720e-01 +-1.38000000000000e+02 6.07728072005134e-01 5.81216719268110e-01 2.27857968655088e-01 +-1.35000000000000e+02 5.88252908821619e-01 6.51971519548278e-01 2.36476173369762e-01 +-1.32000000000000e+02 5.68769160282536e-01 7.22726946114877e-01 2.45092460374068e-01 +-1.29000000000000e+02 5.45846532434262e-01 7.92131150298341e-01 2.54083304617287e-01 +-1.26000000000000e+02 5.16059865398949e-01 8.58832903295187e-01 2.63823977750305e-01 +-1.23000000000000e+02 4.86270063393777e-01 9.25534146724964e-01 2.73560128804467e-01 +-1.20000000000000e+02 4.56476301826173e-01 9.92235135380730e-01 2.83291214803044e-01 +-1.17000000000000e+02 4.16489600596796e-01 1.04694876887339e+00 2.91917422175410e-01 +-1.14000000000000e+02 3.76501801901982e-01 1.10166216993032e+00 3.00538465312235e-01 +-1.11000000000000e+02 3.36512597958186e-01 1.15637515301294e+00 3.09153340377474e-01 +-1.08000000000000e+02 2.91693025082505e-01 1.19874087754264e+00 3.15840388222425e-01 +-1.05000000000000e+02 2.44458666678294e-01 1.23493287877690e+00 3.21561919471006e-01 +-1.02000000000000e+02 1.97224219276773e-01 1.27112446528618e+00 3.27278150969725e-01 +-9.90000000000000e+01 1.49160540417765e-01 1.29974121708087e+00 3.31577776566796e-01 +-9.60000000000000e+01 9.94402497296759e-02 1.31320797134044e+00 3.33053601420033e-01 +-9.30000000000000e+01 4.97202158283082e-02 1.32667462272159e+00 3.34536430978363e-01 +-9.00000000000000e+01 3.10317978578370e-07 1.34014122266447e+00 3.35516468539213e-01 +-8.70000000000000e+01 -4.97201649399637e-02 1.32667463650466e+00 3.30914309585675e-01 +-8.40000000000000e+01 -9.94403887586856e-02 1.31320793368439e+00 3.25875044063013e-01 +-8.10000000000000e+01 -1.49160109697721e-01 1.29974133374151e+00 3.20684674998472e-01 +-7.80000000000000e+01 -1.97223990505980e-01 1.27112464057129e+00 3.14068969100332e-01 +-7.50000000000000e+01 -2.44458979176423e-01 1.23493263933526e+00 3.06188477394521e-01 +-7.20000000000000e+01 -2.91692796320390e-01 1.19874105282597e+00 2.98307891491871e-01 +-6.90000000000000e+01 -3.36512251521935e-01 1.15637562699211e+00 2.89561021929827e-01 +-6.60000000000000e+01 -3.76501913717355e-01 1.10166201694156e+00 2.79081514110173e-01 +-6.30000000000000e+01 -4.16489865150498e-01 1.04694840689101e+00 2.68601883289040e-01 +-6.00000000000000e+01 -4.56476498955521e-01 9.92234694090483e-01 2.58122183245595e-01 +-5.70000000000000e+01 -4.86270260493495e-01 9.25533705434717e-01 2.46741658278199e-01 +-5.40000000000000e+01 -5.16060062475956e-01 8.58832461999884e-01 2.35361028339939e-01 +-5.10000000000000e+01 -5.45846729491953e-01 7.92130709003037e-01 2.23980188458352e-01 +-4.80000000000000e+01 -5.69289853059557e-01 7.22744238735752e-01 2.13008982600553e-01 +-4.50000000000000e+01 -5.89557703094231e-01 6.52015452980456e-01 2.02242587171249e-01 +-4.20000000000000e+01 -6.08251798068365e-01 5.81234011749336e-01 1.91868319013648e-01 +-3.90000000000000e+01 -6.25416926876934e-01 5.11597466281429e-01 1.81968105360702e-01 +-3.60000000000000e+01 -6.39316913259601e-01 4.44496914459934e-01 1.73264272171102e-01 +-3.30000000000000e+01 -6.52916432542900e-01 3.78198211323207e-01 1.65338571395536e-01 +-3.00000000000000e+01 -6.66670235178609e-01 3.12750067745499e-01 1.58271579799568e-01 +-2.93939393939394e+01 -6.71047367933391e-01 3.01438712775986e-01 1.57020885663939e-01 +-2.87878787878788e+01 -6.75419095195018e-01 2.90127357806473e-01 1.55835649782268e-01 +-2.81818181818182e+01 -6.79785363067838e-01 2.78816002836960e-01 1.54649678410992e-01 +-2.75757575757576e+01 -6.84281237628547e-01 2.67629852848922e-01 1.53624988893004e-01 +-2.69696969696970e+01 -6.88830733728478e-01 2.56497366741980e-01 1.52669124180276e-01 +-2.63636363636364e+01 -6.93376184149147e-01 2.45364880635039e-01 1.51712730581928e-01 +-2.57575757575758e+01 -6.98037897852729e-01 2.34311621831173e-01 1.50875935757439e-01 +-2.51515151515151e+01 -7.02877385944567e-01 2.23377185516994e-01 1.50218827286969e-01 +-2.45454545454545e+01 -7.07714903614937e-01 2.12442749202814e-01 1.49561371313348e-01 +-2.39393939393939e+01 -7.12595164217054e-01 2.01529837369162e-01 1.48943431555047e-01 +-2.33333333333333e+01 -7.17876308107891e-01 1.90810650027497e-01 1.48683703309005e-01 +-2.27272727272727e+01 -7.23157231061198e-01 1.80091462685832e-01 1.48423779056222e-01 +-2.21212121212121e+01 -7.28437947560357e-01 1.69372275344166e-01 1.48163680826540e-01 +-2.15151515151515e+01 -7.31713351978921e-01 1.58838231776999e-01 1.48337985994225e-01 +-2.09090909090909e+01 -7.34245840474427e-01 1.48350486062725e-01 1.48620871862006e-01 +-2.03030303030303e+01 -7.38065551990425e-01 1.37862740348452e-01 1.48903686939429e-01 +-1.96969696969697e+01 -7.32808819200495e-01 1.29918930302428e-01 1.44712603991306e-01 +-1.90909090909091e+01 -7.18361958000880e-01 1.24518912013222e-01 1.36047824693694e-01 +-1.84848484848485e+01 -7.04189587691779e-01 1.19119156714805e-01 1.27383320623159e-01 +-1.78787878787879e+01 -6.90170520790039e-01 1.13719385941933e-01 1.18718587275407e-01 +-1.72727272727273e+01 -6.76245095637824e-01 1.08319367652727e-01 1.10053115983160e-01 +-1.66666666666667e+01 -6.62381424994436e-01 1.02255720988610e-01 1.01387526517949e-01 +-1.60606060606061e+01 -6.48560316531438e-01 9.61448175238969e-02 9.27217646524863e-02 +-1.54545454545455e+01 -6.34969522120538e-01 9.03872009230254e-02 8.40561496211227e-02 +-1.48484848484848e+01 -6.21508539218862e-01 8.48230957038706e-02 7.53901059090511e-02 +-1.42424242424242e+01 -6.08408366025162e-01 7.96630711027307e-02 6.67232674713552e-02 +-1.36363636363636e+01 -5.95447218953895e-01 7.45632229779760e-02 5.80562179472338e-02 +-1.30303030303030e+01 -5.82646323386179e-01 6.95101444417735e-02 4.93879760859292e-02 +-1.24242424242424e+01 -5.70051253619176e-01 6.44104289730139e-02 4.07195611654372e-02 +-1.18181818181818e+01 -5.57661981483822e-01 5.92219660335435e-02 3.20496569255294e-02 +-1.12121212121212e+01 -5.45521148334811e-01 5.38126013913541e-02 2.33792067297271e-02 +-1.06060606060606e+01 -5.33770601268997e-01 4.82803386350898e-02 1.47062382307926e-02 +-1.00000000000000e+01 -5.22536282520595e-01 4.27091715581483e-02 6.03175191196416e-03 +-9.39393939393939e+00 -4.98663010113629e-01 3.97762979408636e-02 1.46216346791845e-03 +-8.78787878787879e+00 -4.74896579071385e-01 3.69498939396144e-02 -3.11443204072278e-03 +-8.18181818181818e+00 -4.50184735644143e-01 3.36609587046423e-02 -7.71668568938825e-03 +-7.57575757575758e+00 -4.16320862490726e-01 3.11984229016655e-02 -1.02342715344042e-02 +-6.96969696969697e+00 -3.78533908672691e-01 2.88846280067247e-02 -1.18586821223915e-02 +-6.36363636363636e+00 -3.41308425879108e-01 2.66987274834274e-02 -1.37039177713602e-02 +-5.75757575757576e+00 -3.03292128777548e-01 2.47793566352644e-02 -1.57278639083592e-02 +-5.15151515151515e+00 -2.63917787982752e-01 2.33543465327187e-02 -1.65422055989149e-02 +-4.54545454545454e+00 -2.22824817551322e-01 2.20950859887883e-02 -1.76054229676369e-02 +-3.93939393939394e+00 -1.80668798888092e-01 2.09756580073103e-02 -1.88443435684976e-02 +-3.33333333333333e+00 -1.34176568044395e-01 2.04804489661257e-02 -2.02207166542285e-02 +-2.72727272727273e+00 -7.19453798936780e-02 2.00079017312406e-02 -2.28911294526880e-02 +-2.12121212121212e+00 7.07606911784324e-03 1.96027557312253e-02 -2.63328024672574e-02 +-1.51515151515152e+00 8.73289871843104e-02 1.94248148430849e-02 -2.91753660865235e-02 +-9.09090909090912e-01 1.68214610603894e-01 1.93209749444206e-02 -3.21126237712362e-02 +-3.03030303030302e-01 2.49847575674565e-01 1.93085263731067e-02 -3.50069460021776e-02 + 3.03030303030302e-01 3.32076661864978e-01 1.92708245709109e-02 -3.78355127682451e-02 + 9.09090909090912e-01 4.14967913083368e-01 1.92564396323649e-02 -4.06506905185218e-02 + 1.51515151515152e+00 4.97503403994561e-01 1.93240509371219e-02 -4.34545183162005e-02 + 2.12121212121212e+00 5.78017026165593e-01 1.94699699516029e-02 -4.63887820732702e-02 + 2.72727272727273e+00 6.57982538458257e-01 1.95636992876711e-02 -4.91776418225647e-02 + 3.33333333333333e+00 7.37634840577441e-01 1.96859030314327e-02 -5.19181781483109e-02 + 3.93939393939394e+00 8.17042150325575e-01 1.99153209631174e-02 -5.45755311911616e-02 + 4.54545454545455e+00 8.95773550489732e-01 2.01574613792028e-02 -5.71758300930519e-02 + 5.15151515151515e+00 9.74202606524190e-01 2.04147221937826e-02 -5.98020954890244e-02 + 5.75757575757576e+00 1.05192610299832e+00 2.06935862917398e-02 -6.22831373010045e-02 + 6.36363636363637e+00 1.12864853703975e+00 2.09894711710230e-02 -6.45992855497388e-02 + 6.96969696969697e+00 1.20469677736454e+00 2.13767147820252e-02 -6.68719079346452e-02 + 7.57575757575757e+00 1.27852391355893e+00 2.18254003510820e-02 -6.92881289021872e-02 + 8.18181818181818e+00 1.34843619913274e+00 2.23379405478464e-02 -7.23998694538348e-02 + 8.78787878787879e+00 1.41389258501910e+00 2.29917029483263e-02 -7.57224146801624e-02 + 9.39393939393939e+00 1.47693105199554e+00 2.42669452043504e-02 -7.90940633281295e-02 + 1.00000000000000e+01 1.53866152751405e+00 2.58158538548453e-02 -8.24968128995006e-02 + 1.06060606060606e+01 1.58175634209111e+00 2.78715872133015e-02 -8.63366627353863e-02 + 1.12121212121212e+01 1.60853428444793e+00 2.99227788852005e-02 -9.25178530036142e-02 + 1.18181818181818e+01 1.62618116680780e+00 3.25599114107023e-02 -9.61254605123986e-02 + 1.24242424242424e+01 1.17081115183266e+00 3.76946916781032e-02 -7.96133950050748e-02 + 1.30303030303030e+01 1.07057266006274e+00 4.25731273306023e-02 -7.63714447703372e-02 + 1.36363636363636e+01 1.07323785139661e+00 4.76558461605604e-02 -7.83786809582152e-02 + 1.42424242424242e+01 1.08209790208772e+00 5.26403136632421e-02 -8.07401047567165e-02 + 1.48484848484848e+01 1.10354986974947e+00 5.77455347083801e-02 -8.32982121847380e-02 + 1.54545454545455e+01 1.13090095347719e+00 6.28922160620656e-02 -8.70718045668990e-02 + 1.60606060606061e+01 1.15290331847775e+00 6.85681445746570e-02 -9.13408073485258e-02 + 1.66666666666667e+01 1.13888783926795e+00 7.88844991137046e-02 -9.76066740175176e-02 + 1.72727272727273e+01 1.12569869109310e+00 8.91882738787458e-02 -1.03672038183508e-01 + 1.78787878787879e+01 1.11348996181680e+00 9.94766732049302e-02 -1.09493916588364e-01 + 1.84848484848485e+01 1.10412272552069e+00 1.09722110128521e-01 -1.14392819645911e-01 + 1.90909090909091e+01 1.09417618957362e+00 1.19712328172831e-01 -1.19171119055800e-01 + 1.96969696969697e+01 1.07815671838533e+00 1.28316705476137e-01 -1.24569996191147e-01 + 2.03030303030303e+01 1.06590918336347e+00 1.37862740348452e-01 -1.28927442015208e-01 + 2.09090909090909e+01 1.05744457824252e+00 1.48350486062725e-01 -1.32240940695518e-01 + 2.15151515151515e+01 1.04897922606013e+00 1.58838231776999e-01 -1.35550005581577e-01 + 2.21212121212121e+01 1.04069744082963e+00 1.69372275344167e-01 -1.38809930873424e-01 + 2.27272727272727e+01 1.03315254333471e+00 1.80091462685832e-01 -1.41886753748031e-01 + 2.33333333333333e+01 1.02560734768900e+00 1.90810650027497e-01 -1.44960808190677e-01 + 2.39393939393939e+01 1.01806183295191e+00 2.01529837369162e-01 -1.48032154260591e-01 + 2.45454545454545e+01 1.01108909354267e+00 2.12442749202814e-01 -1.50974394253646e-01 + 2.51515151515151e+01 1.00417741009351e+00 2.23377185516994e-01 -1.53900389859026e-01 + 2.57575757575758e+01 9.97262895226883e-01 2.34311621831173e-01 -1.56824213640932e-01 + 2.63636363636364e+01 9.90602272243490e-01 2.45364880635039e-01 -1.59691865247193e-01 + 2.69696969696970e+01 9.84107677556836e-01 2.56497366741980e-01 -1.62521495117230e-01 + 2.75757575757576e+01 9.77607274768511e-01 2.67629852848922e-01 -1.65349122555614e-01 + 2.81818181818182e+01 9.71183535418784e-01 2.78816002836960e-01 -1.68157082819057e-01 + 2.87878787878788e+01 9.64945123677017e-01 2.90127357806473e-01 -1.70921894375263e-01 + 2.93939393939394e+01 9.58698873686608e-01 3.01438712775986e-01 -1.73684689615452e-01 + 3.00000000000000e+01 9.52444862477794e-01 3.12750067745499e-01 -1.76445418513927e-01 + 3.30000000000000e+01 9.32757112804349e-01 3.78198211323207e-01 -1.87615870546037e-01 + 3.60000000000000e+01 9.13290569721045e-01 4.44496914459934e-01 -1.99008415557536e-01 + 3.90000000000000e+01 8.93393781094339e-01 5.11597466281430e-01 -2.09904410150492e-01 + 4.20000000000000e+01 8.68886648478033e-01 5.81234011749336e-01 -2.20659088173443e-01 + 4.50000000000000e+01 8.42222962046853e-01 6.52015452980456e-01 -2.31358509305899e-01 + 4.80000000000000e+01 8.13311107256429e-01 7.22744238735752e-01 -2.42008926938194e-01 + 5.10000000000000e+01 7.79848244960539e-01 7.92130709003037e-01 -2.52553412425687e-01 + 5.40000000000000e+01 7.37292615749320e-01 8.58832461999884e-01 -2.62871600790229e-01 + 5.70000000000000e+01 6.94732715144264e-01 9.25533705434717e-01 -2.73198801942233e-01 + 6.00000000000000e+01 6.52167283863280e-01 9.92234694090484e-01 -2.83534193702832e-01 + 6.30000000000000e+01 5.95021513422317e-01 1.04694840689101e+00 -2.92939646889504e-01 + 6.60000000000000e+01 5.37873671092777e-01 1.10166201694156e+00 -3.02353620386315e-01 + 6.90000000000000e+01 4.80723120327637e-01 1.15637562699211e+00 -3.11775458141060e-01 + 7.20000000000000e+01 4.16702853573743e-01 1.19874105282597e+00 -3.20152624301910e-01 + 7.50000000000000e+01 3.49248630212311e-01 1.23493263933526e+00 -3.28012827849872e-01 + 7.80000000000000e+01 2.81792775389929e-01 1.27112464057129e+00 -3.35882005640500e-01 + 8.10000000000000e+01 2.13139309353073e-01 1.29974133374152e+00 -3.42992209540911e-01 + 8.40000000000000e+01 1.42093279928522e-01 1.31320793368439e+00 -3.48577487448998e-01 + 8.70000000000000e+01 7.10465847027829e-02 1.32667463650466e+00 -3.54286237278487e-01 + 9.00000000000000e+01 -3.10317978790605e-07 1.34014122266447e+00 -3.60261329275921e-01 + 9.30000000000000e+01 -4.97202158283082e-02 1.32667462272159e+00 -3.60939509181810e-01 + 9.60000000000000e+01 -9.94402497296761e-02 1.31320797134044e+00 -3.62101276854683e-01 + 9.90000000000000e+01 -1.49160540417765e-01 1.29974121708087e+00 -3.63263116762426e-01 + 1.02000000000000e+02 -1.97224219276773e-01 1.27112446528618e+00 -3.61500175595017e-01 + 1.05000000000000e+02 -2.44458666678294e-01 1.23493287877690e+00 -3.58275028210518e-01 + 1.08000000000000e+02 -2.91693025082505e-01 1.19874087754264e+00 -3.55049870683841e-01 + 1.11000000000000e+02 -3.36512597958186e-01 1.15637515301294e+00 -3.50765979419127e-01 + 1.14000000000000e+02 -3.76501801901982e-01 1.10166216993032e+00 -3.44364638786946e-01 + 1.17000000000000e+02 -4.16489600596796e-01 1.04694876887339e+00 -3.37963575060275e-01 + 1.20000000000000e+02 -4.56476301826173e-01 9.92235135380730e-01 -3.31562852852576e-01 + 1.23000000000000e+02 -4.86270063393777e-01 9.25534146724963e-01 -3.23780752167797e-01 + 1.26000000000000e+02 -5.16059865398949e-01 8.58832903295187e-01 -3.15999386352538e-01 + 1.29000000000000e+02 -5.45846532434262e-01 7.92131150298340e-01 -3.08218654603481e-01 + 1.32000000000000e+02 -5.68769160282536e-01 7.22726946114877e-01 -3.01185530669448e-01 + 1.35000000000000e+02 -5.88252908821619e-01 6.51971519548278e-01 -2.94527284921154e-01 + 1.38000000000000e+02 -6.07728072005134e-01 5.81216719268109e-01 -2.87870702883092e-01 + 1.41000000000000e+02 -6.25312980734950e-01 5.11917113827908e-01 -2.82904694585223e-01 + 1.44000000000000e+02 -6.39116027015019e-01 4.45527909875772e-01 -2.81319615496767e-01 + 1.47000000000000e+02 -6.52900940317335e-01 3.79139090101126e-01 -2.79738043324018e-01 + 1.50000000000000e+02 -6.66670110194854e-01 3.12750462408366e-01 -2.78159839410523e-01 + 1.53000000000000e+02 -6.91423868529968e-01 2.58710851852227e-01 -2.92436611808699e-01 + 1.56000000000000e+02 -7.16139659509821e-01 2.04671414989218e-01 -3.06713727094434e-01 + 1.59000000000000e+02 -7.40824462046985e-01 1.50632267952715e-01 -3.20991093106481e-01 + 1.62000000000000e+02 -6.92523326346939e-01 1.14218878924218e-01 -3.60600316892406e-01 + 1.65000000000000e+02 -6.04090178045220e-01 8.66185179666223e-02 -4.12875574153840e-01 + 1.68000000000000e+02 -5.25703495579730e-01 5.90182887830723e-02 -4.65150066961505e-01 + 1.71000000000000e+02 -4.24060615670435e-01 3.72487259247374e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.82706583196469e-01 2.71407679330614e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.40374735896749e-01 2.36166297084173e-02 -1.48954519621935e-01 + 1.80000000000000e+02 0.00000000000000e+00 2.33914127688100e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_08.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_08.dat new file mode 100644 index 00000000..d72fa625 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_08.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF08_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF08_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.094045 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.810318 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-5.789318 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.434702 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.791051 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.013400 Cd0 ! 2D drag coefficient value at 0-lift. +-0.038790 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 4.36560269351644e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.35439946882412e-01 4.36560269351644e-02 1.18726131869253e-01 +-1.74000000000000e+02 2.73681807554892e-01 5.19326935053434e-02 2.39999774321882e-01 +-1.71000000000000e+02 4.10523187830625e-01 7.67629649316860e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.20540196449849e-01 1.06183060966195e-01 3.39345685302513e-01 +-1.65000000000000e+02 6.17416589309490e-01 1.37898015734769e-01 2.48364921181521e-01 +-1.62000000000000e+02 7.20366694799217e-01 1.69613333930037e-01 1.57382975358883e-01 +-1.59000000000000e+02 7.79902956443025e-01 2.09395231609251e-01 1.00198616429354e-01 +-1.56000000000000e+02 7.54094985201384e-01 2.65310015371530e-01 1.10341134086108e-01 +-1.53000000000000e+02 7.28273002358664e-01 3.21224917158275e-01 1.20030838658758e-01 +-1.50000000000000e+02 7.02433949228043e-01 3.77139907333099e-01 1.29188534097997e-01 +-1.47000000000000e+02 6.88056994571163e-01 4.45660752601736e-01 1.38937062638940e-01 +-1.44000000000000e+02 6.73672820323352e-01 5.14181705032495e-01 1.48679864311782e-01 +-1.41000000000000e+02 6.59280196399078e-01 5.82702871795152e-01 1.58415928945197e-01 +-1.38000000000000e+02 6.40870225785841e-01 6.54060157601795e-01 1.69647719764598e-01 +-1.35000000000000e+02 6.20451890084054e-01 7.26835497177056e-01 1.81625021280610e-01 +-1.32000000000000e+02 6.00029188829974e-01 7.99611206996042e-01 1.93595285306556e-01 +-1.29000000000000e+02 5.75956737945601e-01 8.70852261041323e-01 2.05770654480656e-01 +-1.26000000000000e+02 5.44590931294051e-01 9.39023996253647e-01 2.18364183904311e-01 +-1.23000000000000e+02 5.13223602126577e-01 1.00719521066899e+00 2.30949738818684e-01 +-1.20000000000000e+02 4.81854438801891e-01 1.07536616469559e+00 2.43526390646390e-01 +-1.17000000000000e+02 4.39681481271308e-01 1.13061446591332e+00 2.54956685887127e-01 +-1.14000000000000e+02 3.97508111898989e-01 1.18586253082399e+00 2.66377239042142e-01 +-1.11000000000000e+02 3.55334297402172e-01 1.24111017367587e+00 2.77786058750497e-01 +-1.08000000000000e+02 3.08037893527830e-01 1.28321205725494e+00 2.87281519675595e-01 +-1.05000000000000e+02 2.58180351390511e-01 1.31874096109859e+00 2.95813196403833e-01 +-1.02000000000000e+02 2.08323097887283e-01 1.35426945781572e+00 3.04327743613626e-01 +-9.90000000000000e+01 1.57576203402918e-01 1.38176151510008e+00 3.11395522027348e-01 +-9.60000000000000e+01 1.05050834785785e-01 1.39318034541842e+00 3.15588655906570e-01 +-9.30000000000000e+01 5.25255582791447e-02 1.40459908850334e+00 3.19756596609520e-01 +-9.00000000000000e+01 3.27826917023240e-07 1.41601778797233e+00 3.23659461316635e-01 +-8.70000000000000e+01 -5.25255045195490e-02 1.40459910019038e+00 3.22945034933183e-01 +-8.40000000000000e+01 -1.05050981658418e-01 1.39318031348883e+00 3.21791611743605e-01 +-8.10000000000000e+01 -1.57575748382869e-01 1.38176161401983e+00 3.20129918962609e-01 +-7.80000000000000e+01 -2.08322856414832e-01 1.35426962988931e+00 3.17048455458342e-01 +-7.50000000000000e+01 -2.58180681242367e-01 1.31874072604392e+00 3.12905041046394e-01 +-7.20000000000000e+01 -3.08037652060678e-01 1.28321222932679e+00 3.08761210418793e-01 +-6.90000000000000e+01 -3.55333932045767e-01 1.24111065228680e+00 3.03514635390291e-01 +-6.60000000000000e+01 -3.97508229824454e-01 1.18586237634021e+00 2.96062481257706e-01 +-6.30000000000000e+01 -4.39681760287162e-01 1.13061410039362e+00 2.88610017991116e-01 +-6.00000000000000e+01 -4.81854646345531e-01 1.07536571368012e+00 2.81157387364500e-01 +-5.70000000000000e+01 -5.13223809656928e-01 1.00719475965353e+00 2.72212286505312e-01 +-5.40000000000000e+01 -5.44591138813060e-01 9.39023545233018e-01 2.63266996912069e-01 +-5.10000000000000e+01 -5.75956945455947e-01 8.70851810020693e-01 2.54321329847841e-01 +-4.80000000000000e+01 -6.01326324662319e-01 7.99654560229442e-01 2.45618131252866e-01 +-4.50000000000000e+01 -6.23695970153485e-01 7.26944601773029e-01 2.37036162995707e-01 +-4.20000000000000e+01 -6.42168713793076e-01 6.54103510491734e-01 2.29439922053861e-01 +-3.90000000000000e+01 -6.59537045517161e-01 5.81899603350932e-01 2.22338894134465e-01 +-3.60000000000000e+01 -6.74166998306598e-01 5.11590826220192e-01 2.16852610379598e-01 +-3.30000000000000e+01 -6.88095062911521e-01 4.43295420850299e-01 2.13321658336198e-01 +-3.00000000000000e+01 -7.02434061164880e-01 3.77139487001304e-01 2.11949178572412e-01 +-2.93939393939394e+01 -7.06130482490463e-01 3.64852362744942e-01 2.12237605316701e-01 +-2.87878787878788e+01 -7.09824479328829e-01 3.52565238488579e-01 2.12555391583848e-01 +-2.81818181818182e+01 -7.13516027506550e-01 3.40278114232216e-01 2.12872847967098e-01 +-2.75757575757576e+01 -7.17530381434993e-01 3.28305985630029e-01 2.13597061869978e-01 +-2.69696969696970e+01 -7.21682227375692e-01 3.16468866746567e-01 2.14495479961637e-01 +-2.63636363636364e+01 -7.25832258736785e-01 3.04631747863105e-01 2.15393660836009e-01 +-2.57575757575758e+01 -7.30267770470675e-01 2.92993562362201e-01 2.16593296530334e-01 +-2.51515151515151e+01 -7.35132964149189e-01 2.81653730571187e-01 2.18245185960105e-01 +-2.45454545454545e+01 -7.39997274048644e-01 2.70313898780173e-01 2.19896919526772e-01 +-2.39393939393939e+01 -7.44966676859083e-01 2.59028163484346e-01 2.21648566366930e-01 +-2.33333333333333e+01 -7.50889197184390e-01 2.48229307118538e-01 2.24300599299510e-01 +-2.27272727272727e+01 -7.56811618414165e-01 2.37430450752730e-01 2.26952544318588e-01 +-2.21212121212121e+01 -7.62733947044537e-01 2.26631594386922e-01 2.29604411305050e-01 +-2.15151515151515e+01 -7.65543180919198e-01 2.16298421341179e-01 2.33347719604617e-01 +-2.09090909090909e+01 -7.67159390551658e-01 2.06081699080272e-01 2.37363936868452e-01 +-2.03030303030303e+01 -7.70989589899503e-01 1.95864976819365e-01 2.41380122381193e-01 +-1.96969696969697e+01 -7.66408855179284e-01 1.86713082311620e-01 2.37110565273848e-01 +-1.90909090909091e+01 -7.53224334899666e-01 1.78625955319317e-01 2.24555711213706e-01 +-1.84848484848485e+01 -7.40515247767467e-01 1.70539222184923e-01 2.12001402771163e-01 +-1.78787878787879e+01 -7.28073414237448e-01 1.62452465875814e-01 1.99446889701465e-01 +-1.72727272727273e+01 -7.15796412819352e-01 1.54365338883510e-01 1.86891340465851e-01 +-1.66666666666667e+01 -7.03628403601917e-01 1.45137051028637e-01 1.74335949867985e-01 +-1.60606060606061e+01 -6.91536071334431e-01 1.35827440633388e-01 1.61780655103707e-01 +-1.54545454545455e+01 -6.79841375439502e-01 1.27125362674088e-01 1.49225873196518e-01 +-1.48484848484848e+01 -6.68371976472640e-01 1.18756044019379e-01 1.36670824522160e-01 +-1.42424242424242e+01 -6.57525266337486e-01 1.11081575507249e-01 1.24115046890632e-01 +-1.36363636363636e+01 -6.46919349317121e-01 1.03510536591038e-01 1.11559472566631e-01 +-1.30303030303030e+01 -6.36590196575789e-01 9.60197655285123e-02 9.90027923089362e-02 +-1.24242424242424e+01 -6.26616545201912e-01 8.84489364835728e-02 8.64466304336154e-02 +-1.18181818181818e+01 -6.16997647064756e-01 8.07255969659771e-02 7.38892790664918e-02 +-1.12121212121212e+01 -6.07806438992942e-01 7.26223306995905e-02 6.13323781273887e-02 +-1.06060606060606e+01 -5.99288567453162e-01 6.43078358166966e-02 4.87732017593027e-02 +-1.00000000000000e+01 -5.91657873003445e-01 5.59263606591254e-02 3.62141784693746e-02 +-9.39393939393939e+00 -5.79058163807746e-01 4.91379422584400e-02 2.49867487590630e-02 +-8.78787878787879e+00 -5.66700483456983e-01 4.25327427253251e-02 1.37556766416755e-02 +-8.18181818181818e+00 -5.52767057263263e-01 3.51385027365045e-02 2.51431078401171e-03 +-7.57575757575758e+00 -5.16152487631087e-01 3.07167300167049e-02 -3.52520860243561e-03 +-6.96969696969697e+00 -4.69757056162087e-01 2.73460615848954e-02 -7.35433309173912e-03 +-6.36363636363636e+00 -4.23157901477119e-01 2.40466853818601e-02 -1.16480887450771e-02 +-5.75757575757576e+00 -3.74765829542321e-01 2.11022048511000e-02 -1.59084513723056e-02 +-5.15151515151515e+00 -3.23413692430681e-01 1.89550579096399e-02 -1.86750851344994e-02 +-4.54545454545454e+00 -2.68547626763533e-01 1.70622389773778e-02 -2.19719612773405e-02 +-3.93939393939394e+00 -2.11994257260558e-01 1.53692119559176e-02 -2.56157244462441e-02 +-3.33333333333333e+00 -1.48415934878880e-01 1.48139917958905e-02 -2.94968023177144e-02 +-2.72727272727273e+00 -7.89769276979072e-02 1.41624540467447e-02 -3.39437653144343e-02 +-2.12121212121212e+00 -3.46478095391404e-03 1.34145873263993e-02 -3.86035781138906e-02 +-1.51515151515152e+00 7.38291063274909e-02 1.30921930075161e-02 -4.27533487199522e-02 +-9.09090909090912e-01 1.51829760730163e-01 1.28923820998857e-02 -4.69054889010057e-02 +-3.03030303030302e-01 2.30822308320161e-01 1.28050693423605e-02 -5.10801102705995e-02 + 3.03030303030302e-01 3.10463730114934e-01 1.27477575306067e-02 -5.50677649278274e-02 + 9.09090909090912e-01 3.90790263359822e-01 1.27353987638778e-02 -5.88795212672597e-02 + 1.51515151515152e+00 4.71284233730724e-01 1.28776954822189e-02 -6.27273016180439e-02 + 2.12121212121212e+00 5.50963097343411e-01 1.30675735894997e-02 -6.64832475878559e-02 + 2.72727272727273e+00 6.30138935816981e-01 1.32424674678596e-02 -6.95217238202173e-02 + 3.33333333333333e+00 7.08536320290482e-01 1.34717732475649e-02 -7.23228820759458e-02 + 3.93939393939394e+00 7.86307858387585e-01 1.38172159080549e-02 -7.49142757271172e-02 + 4.54545454545455e+00 8.62388339964567e-01 1.42557288224049e-02 -7.75040470102574e-02 + 5.15151515151515e+00 9.37700928676955e-01 1.47059776016534e-02 -8.00049921252249e-02 + 5.75757575757576e+00 1.01125073389474e+00 1.51614417050010e-02 -8.21454604598515e-02 + 6.36363636363637e+00 1.08227624065879e+00 1.57108190803841e-02 -8.39835694506992e-02 + 6.96969696969697e+00 1.15161256120026e+00 1.63448211385627e-02 -8.56439571000181e-02 + 7.57575757575757e+00 1.21596411426272e+00 1.71676404929355e-02 -8.74082304182359e-02 + 8.18181818181818e+00 1.27673300509297e+00 1.80775111046661e-02 -8.94455339298536e-02 + 8.78787878787879e+00 1.33119115050654e+00 1.91750329509376e-02 -9.16003178554933e-02 + 9.39393939393939e+00 1.37956425338417e+00 2.13859354652657e-02 -9.38392678971121e-02 + 1.00000000000000e+01 1.42465603147829e+00 2.40167211153884e-02 -9.61318882807184e-02 + 1.06060606060606e+01 1.44856679840724e+00 2.73518951987084e-02 -9.83269145446295e-02 + 1.12121212121212e+01 1.45643493495683e+00 3.11907783963854e-02 -1.01693563008612e-01 + 1.18181818181818e+01 1.44145511321968e+00 3.67776864017581e-02 -1.04240570768266e-01 + 1.24242424242424e+01 1.25811612577190e+00 4.49502463857501e-02 -9.87981028722830e-02 + 1.30303030303030e+01 1.21783548130362e+00 5.37917825568218e-02 -9.72024540714103e-02 + 1.36363636363636e+01 1.20160458150153e+00 6.40421590933513e-02 -9.82023678961166e-02 + 1.42424242424242e+01 1.18813191525126e+00 7.46618265741957e-02 -9.95181720845514e-02 + 1.48484848484848e+01 1.18027423785320e+00 8.60251229889524e-02 -1.01193555150372e-01 + 1.54545454545455e+01 1.17877779387270e+00 9.81117465457450e-02 -1.05541629489454e-01 + 1.60606060606061e+01 1.17689322444726e+00 1.10556666678342e-01 -1.10785671275185e-01 + 1.66666666666667e+01 1.16581038309829e+00 1.24057053255380e-01 -1.18134261648867e-01 + 1.72727272727273e+01 1.15665660147017e+00 1.37525823660165e-01 -1.25046831531383e-01 + 1.78787878787879e+01 1.14984732933414e+00 1.50955951675739e-01 -1.31427188552528e-01 + 1.84848484848485e+01 1.14985357005765e+00 1.64278673861716e-01 -1.35546000357850e-01 + 1.90909090909091e+01 1.14897293619198e+00 1.76960001690690e-01 -1.39369242924789e-01 + 1.96969696969697e+01 1.13396288213762e+00 1.86157753963698e-01 -1.44719855669495e-01 + 2.03030303030303e+01 1.12113454332556e+00 1.95864976819365e-01 -1.49461918843513e-01 + 2.09090909090909e+01 1.11049287841322e+00 2.06081699080272e-01 -1.53594296036503e-01 + 2.15151515151515e+01 1.09985087842677e+00 2.16298421341179e-01 -1.57724684571442e-01 + 2.21212121212121e+01 1.08964494555376e+00 2.26631594386922e-01 -1.61741842424593e-01 + 2.27272727272727e+01 1.08118409226682e+00 2.37430450752730e-01 -1.65312206684248e-01 + 2.33333333333333e+01 1.07272310525245e+00 2.48229307118538e-01 -1.68881329238900e-01 + 2.39393939393939e+01 1.06426197511829e+00 2.59028163484346e-01 -1.72449237026485e-01 + 2.45454545454545e+01 1.05716247952044e+00 2.70313898780173e-01 -1.75700716715067e-01 + 2.51515151515151e+01 1.05021311424356e+00 2.81653730571187e-01 -1.78916186478768e-01 + 2.57575757575758e+01 1.04326247901123e+00 2.92993562362201e-01 -1.82130682130006e-01 + 2.63636363636364e+01 1.03692547814336e+00 3.04631747863105e-01 -1.85209085023971e-01 + 2.69696969696970e+01 1.03099616857058e+00 3.16468866746567e-01 -1.88196490642796e-01 + 2.75757575757576e+01 1.02506425393147e+00 3.28305985630029e-01 -1.91182998125262e-01 + 2.81818181818182e+01 1.01932894884137e+00 3.40278114232216e-01 -1.94124420358041e-01 + 2.87878787878788e+01 1.01405525818665e+00 3.52565238488579e-01 -1.96961880499345e-01 + 2.93939393939394e+01 1.00877805189828e+00 3.64852362744942e-01 -1.99798436276836e-01 + 3.00000000000000e+01 1.00349736452608e+00 3.77139487001304e-01 -2.02634065252844e-01 + 3.30000000000000e+01 9.82998715735978e-01 4.43295420850300e-01 -2.15352590816283e-01 + 3.60000000000000e+01 9.63089651383735e-01 5.11590826220192e-01 -2.27863925187279e-01 + 3.90000000000000e+01 9.42175986921238e-01 5.81899603350932e-01 -2.39321618575565e-01 + 4.20000000000000e+01 9.17369367761984e-01 6.54103510491734e-01 -2.50662792778012e-01 + 4.50000000000000e+01 8.90994844258789e-01 7.26944601773029e-01 -2.61985791102602e-01 + 4.80000000000000e+01 8.59052634531658e-01 7.99654560229442e-01 -2.73143035398585e-01 + 5.10000000000000e+01 8.22819956247608e-01 8.70851810020694e-01 -2.84140610804423e-01 + 5.40000000000000e+01 7.78010344233567e-01 9.39023545233018e-01 -2.94794033259472e-01 + 5.70000000000000e+01 7.33199012906027e-01 1.00719475965353e+00 -3.05462909314392e-01 + 6.00000000000000e+01 6.88385299195316e-01 1.07536571368012e+00 -3.16145847013128e-01 + 6.30000000000000e+01 6.28130235918108e-01 1.13061410039362e+00 -3.25620798502509e-01 + 6.60000000000000e+01 5.67874167049533e-01 1.18586237634021e+00 -3.35110403637996e-01 + 6.90000000000000e+01 5.07616883385694e-01 1.24111065228680e+00 -3.44613531015476e-01 + 7.20000000000000e+01 4.40053035872077e-01 1.28321222932679e+00 -3.52880607742317e-01 + 7.50000000000000e+01 3.68836397224492e-01 1.31874072604392e+00 -3.60538886626655e-01 + 7.80000000000000e+01 2.97618557438900e-01 1.35426962988931e+00 -3.68212529205940e-01 + 8.10000000000000e+01 2.25125798524460e-01 1.38176161401983e+00 -3.75046689565342e-01 + 8.40000000000000e+01 1.50084444920197e-01 1.39318031348883e+00 -3.80189854624853e-01 + 8.70000000000000e+01 7.50422088870966e-02 1.40459910019038e+00 -3.85401065327424e-01 + 9.00000000000000e+01 -3.27826917250672e-07 1.41601778797233e+00 -3.90743940003956e-01 + 9.30000000000000e+01 -5.25255582791447e-02 1.40459908850334e+00 -3.92409982314967e-01 + 9.60000000000000e+01 -1.05050834785786e-01 1.39318034541842e+00 -3.94293016797664e-01 + 9.90000000000000e+01 -1.57576203402918e-01 1.38176151510008e+00 -3.96176174609728e-01 + 1.02000000000000e+02 -2.08323097887283e-01 1.35426945781572e+00 -3.94964753048719e-01 + 1.05000000000000e+02 -2.58180351390512e-01 1.31874096109859e+00 -3.92206337784692e-01 + 1.08000000000000e+02 -3.08037893527830e-01 1.28321205725494e+00 -3.89447790562342e-01 + 1.11000000000000e+02 -3.55334297402172e-01 1.24111017367587e+00 -3.85534983800253e-01 + 1.14000000000000e+02 -3.97508111898989e-01 1.18586253082399e+00 -3.79313668806810e-01 + 1.17000000000000e+02 -4.39681481271308e-01 1.13061446591332e+00 -3.73092768861011e-01 + 1.20000000000000e+02 -4.81854438801891e-01 1.07536616469558e+00 -3.66872427068639e-01 + 1.23000000000000e+02 -5.13223602126577e-01 1.00719521066899e+00 -3.59027141872641e-01 + 1.26000000000000e+02 -5.44590931294051e-01 9.39023996253647e-01 -3.51183092578474e-01 + 1.29000000000000e+02 -5.75956737945602e-01 8.70852261041322e-01 -3.43340078183588e-01 + 1.32000000000000e+02 -6.00029188829974e-01 7.99611206996042e-01 -3.36135466500916e-01 + 1.35000000000000e+02 -6.20451890084054e-01 7.26835497177056e-01 -3.29251904114765e-01 + 1.38000000000000e+02 -6.40870225785841e-01 6.54060157601795e-01 -3.22371150094234e-01 + 1.41000000000000e+02 -6.59280196399078e-01 5.82702871795151e-01 -3.17195017404215e-01 + 1.44000000000000e+02 -6.73672820323352e-01 5.14181705032495e-01 -3.15427742312397e-01 + 1.47000000000000e+02 -6.88056994571163e-01 4.45660752601736e-01 -3.13666489886140e-01 + 1.50000000000000e+02 -7.02433949228043e-01 3.77139907333099e-01 -3.11911025372031e-01 + 1.53000000000000e+02 -7.28273002358664e-01 3.21224917158276e-01 -3.26779546578991e-01 + 1.56000000000000e+02 -7.54094985201384e-01 2.65310015371530e-01 -3.41648669551904e-01 + 1.59000000000000e+02 -7.79902956443025e-01 2.09395231609251e-01 -3.56518297584456e-01 + 1.62000000000000e+02 -7.15623711897387e-01 1.69995730690300e-01 -3.89180151768352e-01 + 1.65000000000000e+02 -6.04668180255573e-01 1.38854010867083e-01 -4.30738080965074e-01 + 1.68000000000000e+02 -5.04633128784701e-01 1.07712184204155e-01 -4.72295103043239e-01 + 1.71000000000000e+02 -3.90299886270968e-01 7.84829800637506e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.60199626255756e-01 5.30791102629704e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.28700931105444e-01 4.42220543974298e-02 -1.48407664836567e-01 + 1.80000000000000e+02 0.00000000000000e+00 4.36560269351644e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_09.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_09.dat new file mode 100644 index 00000000..709a0e40 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_09.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF09_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF09_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.060385 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.208140 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-7.861323 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.367424 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.824883 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.010934 Cd0 ! 2D drag coefficient value at 0-lift. +-0.049324 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.31472191671717e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.29495037060763e-01 5.31472191671717e-02 1.18521230701205e-01 +-1.74000000000000e+02 2.62196549024508e-01 6.37579530831230e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.93295149394492e-01 9.55905031721947e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.10233340661308e-01 1.28558250585849e-01 3.26000611777352e-01 +-1.65000000000000e+02 6.19785379304123e-01 1.62093583412369e-01 2.15002393125294e-01 +-1.62000000000000e+02 7.31395834011373e-01 1.95629300525583e-01 1.04002855069395e-01 +-1.59000000000000e+02 7.97042839057236e-01 2.36917620123939e-01 3.50287462844128e-02 +-1.56000000000000e+02 7.70832295867696e-01 2.93710882428943e-01 5.00110113837699e-02 +-1.53000000000000e+02 7.44620920477827e-01 3.50504182292723e-01 6.48349471240901e-02 +-1.50000000000000e+02 7.18408694438638e-01 4.07297530590864e-01 7.94722317169135e-02 +-1.47000000000000e+02 7.03823896258865e-01 4.76817027337738e-01 9.22485232622368e-02 +-1.44000000000000e+02 6.89238523528509e-01 5.46336591473471e-01 1.05021570591302e-01 +-1.41000000000000e+02 6.74652275680612e-01 6.15856290391738e-01 1.17790814864596e-01 +-1.38000000000000e+02 6.55921766878216e-01 6.88177317217559e-01 1.31322598661476e-01 +-1.35000000000000e+02 6.35119149734577e-01 7.61899002314359e-01 1.45235182430339e-01 +-1.32000000000000e+02 6.14315531955484e-01 8.35620937733996e-01 1.59144670993128e-01 +-1.29000000000000e+02 5.89758365423619e-01 9.07722303996263e-01 1.73171416661612e-01 +-1.26000000000000e+02 5.57694365436177e-01 9.76582524253020e-01 1.87436089134836e-01 +-1.23000000000000e+02 5.25630147618883e-01 1.04544221845313e+00 2.01697660743594e-01 +-1.20000000000000e+02 4.93565771807661e-01 1.11430164963474e+00 2.15955995381730e-01 +-1.17000000000000e+02 4.50397682635010e-01 1.16980036934638e+00 2.29069583999682e-01 +-1.14000000000000e+02 4.07229711397332e-01 1.22529885093775e+00 2.42179581353683e-01 +-1.11000000000000e+02 3.64062034832866e-01 1.28079690855731e+00 2.55285105310821e-01 +-1.08000000000000e+02 3.15627063533621e-01 1.32277521883958e+00 2.66511224315401e-01 +-1.05000000000000e+02 2.64558413703211e-01 1.35799355250651e+00 2.76794753835721e-01 +-1.02000000000000e+02 2.13490336137694e-01 1.39321148260576e+00 2.87071098135651e-01 +-9.90000000000000e+01 1.61500486209697e-01 1.42017677477570e+00 2.95908817817940e-01 +-9.60000000000000e+01 1.07667090348450e-01 1.43063643362188e+00 3.01875969512173e-01 +-9.30000000000000e+01 5.38337094334587e-02 1.44109601256217e+00 3.07830613812683e-01 +-9.00000000000000e+01 3.35991459655313e-07 1.45155555155023e+00 3.13757307492905e-01 +-8.70000000000000e+01 -5.38336543349781e-02 1.44109602326751e+00 3.15792074690342e-01 +-8.40000000000000e+01 -1.07667240878618e-01 1.43063640437435e+00 3.17709664434913e-01 +-8.10000000000000e+01 -1.61500019858388e-01 1.42017686538628e+00 3.19427985605789e-01 +-7.80000000000000e+01 -2.13490088801890e-01 1.39321165317520e+00 3.18443936149184e-01 +-7.50000000000000e+01 -2.64558751566886e-01 1.35799331950653e+00 3.16050829869962e-01 +-7.20000000000000e+01 -3.15626816200455e-01 1.32277538940729e+00 3.13657156553441e-01 +-6.90000000000000e+01 -3.64061660870620e-01 1.28079738933759e+00 3.10049989411700e-01 +-6.60000000000000e+01 -4.07229832102981e-01 1.22529869575376e+00 3.04015735248115e-01 +-6.30000000000000e+01 -4.50397968233045e-01 1.16980000216993e+00 2.97981084772964e-01 +-6.00000000000000e+01 -4.93565983944208e-01 1.11430119406435e+00 2.91946220973731e-01 +-5.70000000000000e+01 -5.25630359754821e-01 1.04544176288274e+00 2.84141782265212e-01 +-5.40000000000000e+01 -5.57694577570126e-01 9.76582068677410e-01 2.76337115591071e-01 +-5.10000000000000e+01 -5.89758577557172e-01 9.07721848420653e-01 2.68531992982216e-01 +-4.80000000000000e+01 -6.15975377464480e-01 8.35676496789876e-01 2.60891044708829e-01 +-4.50000000000000e+01 -6.39268597360940e-01 7.62038630661659e-01 2.53332180964662e-01 +-4.20000000000000e+01 -6.57581661720133e-01 6.88232875834521e-01 2.47037064737753e-01 +-3.90000000000000e+01 -6.74980379108277e-01 6.14826511890619e-01 2.41247071396765e-01 +-3.60000000000000e+01 -6.89869193378202e-01 5.43015121244335e-01 2.37267768231330e-01 +-3.30000000000000e+01 -7.03872456392545e-01 4.73784534746912e-01 2.35795153182948e-01 +-3.00000000000000e+01 -7.18408799575845e-01 4.07297098236698e-01 2.37089771150360e-01 +-2.93939393939394e+01 -7.21762686347836e-01 3.94552959906465e-01 2.38090915530434e-01 +-2.87878787878788e+01 -7.25116462207148e-01 3.81808821576231e-01 2.39093403016499e-01 +-2.81818181818182e+01 -7.28470126047924e-01 3.69064683245998e-01 2.40095875411411e-01 +-2.75757575757576e+01 -7.32236853727248e-01 3.56724431468315e-01 2.41620187509530e-01 +-2.69696969696970e+01 -7.36180584373604e-01 3.44557288776848e-01 2.43368158185924e-01 +-2.63636363636364e+01 -7.40124232008641e-01 3.32390146085381e-01 2.45116118010372e-01 +-2.57575757575758e+01 -7.44432056142082e-01 3.20478002655761e-01 2.47250782325627e-01 +-2.51515151515151e+01 -7.49286130044737e-01 3.08948298688103e-01 2.49965419735941e-01 +-2.45454545454545e+01 -7.54140163517274e-01 2.97418594720445e-01 2.52680050016007e-01 +-2.39393939393939e+01 -7.59128300719057e-01 2.85958242769248e-01 2.55522930540395e-01 +-2.33333333333333e+01 -7.65323729613723e-01 2.75122072393073e-01 2.59520140578325e-01 +-2.27272727272727e+01 -7.71519153975079e-01 2.64285902016898e-01 2.63517346594489e-01 +-2.21212121212121e+01 -7.77714574100304e-01 2.53449731640723e-01 2.67514549040905e-01 +-2.15151515151515e+01 -7.83978195814861e-01 2.43210638882764e-01 2.72910891584855e-01 +-2.09090909090909e+01 -7.90117542155355e-01 2.33120853936042e-01 2.78657108165319e-01 +-2.03030303030303e+01 -7.97012109620063e-01 2.23031068989321e-01 2.84403323293269e-01 +-1.96969696969697e+01 -7.95415736248302e-01 2.13313352612748e-01 2.80089060137697e-01 +-1.90909090909091e+01 -7.85263277790639e-01 2.03967683758259e-01 2.65714886768838e-01 +-1.84848484848485e+01 -7.75273314466664e-01 1.94622470054976e-01 2.51341410437202e-01 +-1.78787878787879e+01 -7.65374889035412e-01 1.85277229570461e-01 2.36967769403479e-01 +-1.72727272727273e+01 -7.55533108229545e-01 1.75931560715972e-01 2.22592985180729e-01 +-1.66666666666667e+01 -7.45728795354525e-01 1.66196420256137e-01 2.08218526695132e-01 +-1.60606060606061e+01 -7.35950554364156e-01 1.56433343834581e-01 1.93844333165442e-01 +-1.54545454545455e+01 -7.26308463193755e-01 1.46878222014310e-01 1.79470874697127e-01 +-1.48484848484848e+01 -7.16743375686355e-01 1.37436585788465e-01 1.65097285434163e-01 +-1.42424242424242e+01 -7.07390619723189e-01 1.28231667233805e-01 1.50723069814813e-01 +-1.36363636363636e+01 -6.98120667001908e-01 1.19062253074563e-01 1.36349337872941e-01 +-1.30303030303030e+01 -6.88944298853437e-01 1.09919099684084e-01 1.21974646106258e-01 +-1.24242424242424e+01 -6.79890334514997e-01 1.00749731941577e-01 1.07600926861901e-01 +-1.18181818181818e+01 -6.70956348082078e-01 9.15279934171627e-02 9.32263230029353e-02 +-1.12121212121212e+01 -6.62168843237812e-01 8.21771971589323e-02 7.88528466356555e-02 +-1.06060606060606e+01 -6.53611277615254e-01 7.27538640183303e-02 6.44774855298434e-02 +-1.00000000000000e+01 -6.45356230550116e-01 6.33080422182624e-02 5.01034327127313e-02 +-9.39393939393939e+00 -6.36593332900123e-01 5.41963669816850e-02 3.57833738354860e-02 +-8.78787878787879e+00 -6.27918256833836e-01 4.51475416350120e-02 2.14623968040231e-02 +-8.18181818181818e+00 -6.18711373162793e-01 3.58305294547305e-02 7.14198465445491e-03 +-7.57575757575758e+00 -5.80216174573165e-01 3.01489440959233e-02 -5.19349418320715e-04 +-6.96969696969697e+00 -5.28953354241068e-01 2.59835542019697e-02 -5.35572587261972e-03 +-6.36363636363636e+00 -4.73862537653747e-01 2.22211779699908e-02 -1.07634960479835e-02 +-5.75757575757576e+00 -4.16582198644429e-01 1.90003840623066e-02 -1.61245333665883e-02 +-5.15151515151515e+00 -3.55933513528219e-01 1.66928246089848e-02 -2.10369141861243e-02 +-4.54545454545454e+00 -2.91472100196896e-01 1.47078923324148e-02 -2.64604110668977e-02 +-3.93939393939394e+00 -2.25304889231469e-01 1.29545096367512e-02 -3.21126856296872e-02 +-3.33333333333333e+00 -1.54104000261012e-01 1.23887165275606e-02 -3.78462438825610e-02 +-2.72727272727273e+00 -8.16248041858842e-02 1.17323458130580e-02 -4.34613224548195e-02 +-2.12121212121212e+00 -7.62116470645060e-03 1.09678271146517e-02 -4.88326464973399e-02 +-1.51515151515152e+00 6.83134982557210e-02 1.06280353358650e-02 -5.37247752016293e-02 +-9.09090909090912e-01 1.44916946777653e-01 1.04099760350921e-02 -5.85191375679298e-02 +-3.03030303030302e-01 2.22554588237817e-01 1.02931716210053e-02 -6.33281972284231e-02 + 3.03030303030302e-01 3.00795206874542e-01 1.02297528304907e-02 -6.78528768736416e-02 + 9.09090909090912e-01 3.79652000805070e-01 1.02202988420258e-02 -7.20918564811688e-02 + 1.51515151515152e+00 4.59004148697031e-01 1.03956813611896e-02 -7.63468764323537e-02 + 2.12121212121212e+00 5.38292042421047e-01 1.06036731488726e-02 -8.03761253262362e-02 + 2.72727272727273e+00 6.17098027022441e-01 1.08115944967115e-02 -8.34392709248819e-02 + 3.33333333333333e+00 6.94907654704091e-01 1.10839446374173e-02 -8.61737788284095e-02 + 3.93939393939394e+00 7.71913058145968e-01 1.14291538648689e-02 -8.86385535504365e-02 + 4.54545454545455e+00 8.46751947966220e-01 1.18860333393268e-02 -9.11095009974341e-02 + 5.15151515151515e+00 9.20604899194484e-01 1.23569858194089e-02 -9.34332370032627e-02 + 5.75757575757576e+00 9.92199902524323e-01 1.28374739059253e-02 -9.53033834851092e-02 + 6.36363636363637e+00 1.06055718025240e+00 1.34310891694729e-02 -9.68110066273987e-02 + 6.96969696969697e+00 1.12674988698576e+00 1.40997355822941e-02 -9.80785912470612e-02 + 7.57575757575757e+00 1.18666342902678e+00 1.49845781349695e-02 -9.93714676847982e-02 + 8.18181818181818e+00 1.24314989353240e+00 1.59667211082838e-02 -1.00692149985168e-01 + 8.78787878787879e+00 1.29245687180882e+00 1.71544710253729e-02 -1.02035478870500e-01 + 9.39393939393939e+00 1.33396126311506e+00 1.95659937586037e-02 -1.03407560601880e-01 + 1.00000000000000e+01 1.37126009363817e+00 2.25665763961257e-02 -1.04797915194330e-01 + 1.06060606060606e+01 1.38618576553784e+00 2.67311075620441e-02 -1.05641194801641e-01 + 1.12121212121212e+01 1.38519725174546e+00 3.17846622479086e-02 -1.06586637285388e-01 + 1.18181818181818e+01 1.35493629423442e+00 3.87531354728749e-02 -1.07628263634721e-01 + 1.24242424242424e+01 1.31246186473740e+00 4.83484785906573e-02 -1.07847108308056e-01 + 1.30303030303030e+01 1.28680791441048e+00 5.91170543627865e-02 -1.08015031049527e-01 + 1.36363636363636e+01 1.26172678770879e+00 7.17168991472314e-02 -1.08181203384768e-01 + 1.42424242424242e+01 1.23769104210515e+00 8.49758848909100e-02 -1.08605313713084e-01 + 1.48484848484848e+01 1.21528767185958e+00 9.92702312554880e-02 -1.09411818544650e-01 + 1.54545454545455e+01 1.19968194488222e+00 1.14607265848385e-01 -1.13749735842298e-01 + 1.60606060606061e+01 1.18663909270316e+00 1.30222530116573e-01 -1.19428362054540e-01 + 1.66666666666667e+01 1.17688627348101e+00 1.45214198979932e-01 -1.27285721302187e-01 + 1.72727272727273e+01 1.16956684907482e+00 1.60165335729503e-01 -1.34601993519905e-01 + 1.78787878787879e+01 1.16522099838670e+00 1.75066932714929e-01 -1.41256962609131e-01 + 1.84848484848485e+01 1.16952525051625e+00 1.89830940964302e-01 -1.45028799262795e-01 + 1.90909090909091e+01 1.17284535113364e+00 2.03772684613384e-01 -1.48423774647318e-01 + 1.96969696969697e+01 1.15835573662925e+00 2.13248351672080e-01 -1.53767566099225e-01 + 2.03030303030303e+01 1.14530509433480e+00 2.23031068989321e-01 -1.58704075145085e-01 + 2.09090909090909e+01 1.13369372685470e+00 2.33120853936042e-01 -1.63233228331231e-01 + 2.15151515151515e+01 1.12208234404602e+00 2.43210638882764e-01 -1.67762290542514e-01 + 2.21212121212121e+01 1.11102321657310e+00 2.53449731640723e-01 -1.72148946259134e-01 + 2.27272727272727e+01 1.10217259984565e+00 2.64285902016898e-01 -1.75966397581727e-01 + 2.33333333333333e+01 1.09332197700060e+00 2.75122072393073e-01 -1.79783792100215e-01 + 2.39393939393939e+01 1.08447134760827e+00 2.85958242769248e-01 -1.83601131046924e-01 + 2.45454545454545e+01 1.07734542237668e+00 2.97418594720445e-01 -1.87014968760816e-01 + 2.51515151515151e+01 1.07041107379095e+00 3.08948298688103e-01 -1.90383934992330e-01 + 2.57575757575758e+01 1.06347666710874e+00 3.20478002655761e-01 -1.93752856661258e-01 + 2.63636363636364e+01 1.05732236007864e+00 3.32390146085381e-01 -1.96948677634826e-01 + 2.69696969696970e+01 1.05168813342601e+00 3.44557288776848e-01 -2.00029068561270e-01 + 2.75757575757576e+01 1.04605378759977e+00 3.56724431468315e-01 -2.03109418400795e-01 + 2.81818181818182e+01 1.04067256013258e+00 3.69064683245998e-01 -2.06133132039065e-01 + 2.87878787878788e+01 1.03588202408929e+00 3.81808821576232e-01 -2.09024762045095e-01 + 2.93939393939394e+01 1.03109132721680e+00 3.94552959906465e-01 -2.11916350679321e-01 + 3.00000000000000e+01 1.02630047109565e+00 4.07297098236698e-01 -2.14807896915288e-01 + 3.30000000000000e+01 1.00553169528085e+00 4.73784534746913e-01 -2.28328930073073e-01 + 3.60000000000000e+01 9.85527854289020e-01 5.43015121244335e-01 -2.41378773612232e-01 + 3.90000000000000e+01 9.64256669240620e-01 6.14826511890619e-01 -2.53786845019076e-01 + 4.20000000000000e+01 9.39401732187148e-01 6.88232875834521e-01 -2.65971257965397e-01 + 4.50000000000000e+01 9.13241579977801e-01 7.62038630661659e-01 -2.78098314901201e-01 + 4.80000000000000e+01 8.79965823978363e-01 8.35676496789876e-01 -2.89925721686919e-01 + 5.10000000000000e+01 8.42513311869095e-01 9.07721848420653e-01 -3.01541565653910e-01 + 5.40000000000000e+01 7.96707214786344e-01 9.76582068677410e-01 -3.12725809880497e-01 + 5.70000000000000e+01 7.50901373321919e-01 1.04544176288274e+00 -3.23914976497956e-01 + 6.00000000000000e+01 7.05095590005431e-01 1.11430119406435e+00 -3.35108765012171e-01 + 6.30000000000000e+01 6.43426651348128e-01 1.16980000216993e+00 -3.44954018840384e-01 + 6.60000000000000e+01 5.81757536770671e-01 1.22529869575376e+00 -3.54804262733281e-01 + 6.90000000000000e+01 5.20088366620145e-01 1.28079738933759e+00 -3.64659118816904e-01 + 7.20000000000000e+01 4.50895765482209e-01 1.32277538940729e+00 -3.73183031740474e-01 + 7.50000000000000e+01 3.77941618474775e-01 1.35799331950653e+00 -3.81044639026107e-01 + 7.80000000000000e+01 3.04986617856015e-01 1.39321165317520e+00 -3.88911546743740e-01 + 8.10000000000000e+01 2.30715110532685e-01 1.42017686538628e+00 -3.95889296470916e-01 + 8.40000000000000e+01 1.53810733540745e-01 1.43063640437435e+00 -4.01084668321152e-01 + 8.70000000000000e+01 7.69053727306556e-02 1.44109602326751e+00 -4.06287962899012e-01 + 9.00000000000000e+01 -3.35991459889849e-07 1.45155555155023e+00 -4.11502017960891e-01 + 9.30000000000000e+01 -5.38337094334587e-02 1.44109601256217e+00 -4.13894658825039e-01 + 9.60000000000000e+01 -1.07667090348450e-01 1.43063643362188e+00 -4.16297269931508e-01 + 9.90000000000000e+01 -1.61500486209697e-01 1.42017677477570e+00 -4.18699936551505e-01 + 1.02000000000000e+02 -2.13490336137694e-01 1.39321148260576e+00 -4.17907661987286e-01 + 1.05000000000000e+02 -2.64558413703211e-01 1.35799355250651e+00 -4.15518040952612e-01 + 1.08000000000000e+02 -3.15627063533621e-01 1.32277521883958e+00 -4.13127922002446e-01 + 1.11000000000000e+02 -3.64062034832866e-01 1.28079690855731e+00 -4.09526520529020e-01 + 1.14000000000000e+02 -4.07229711397332e-01 1.22529885093775e+00 -4.03502582615359e-01 + 1.17000000000000e+02 -4.50397682635010e-01 1.16980036934638e+00 -3.97478465589571e-01 + 1.20000000000000e+02 -4.93565771807662e-01 1.11430164963474e+00 -3.91454376227199e-01 + 1.23000000000000e+02 -5.25630147618883e-01 1.04544221845313e+00 -3.83664668897240e-01 + 1.26000000000000e+02 -5.57694365436177e-01 9.76582524253020e-01 -3.75875218145706e-01 + 1.29000000000000e+02 -5.89758365423620e-01 9.07722303996263e-01 -3.68085790436742e-01 + 1.32000000000000e+02 -6.14315531955485e-01 8.35620937733996e-01 -3.60884266412265e-01 + 1.35000000000000e+02 -6.35119149734577e-01 7.61899002314359e-01 -3.53977324090480e-01 + 1.38000000000000e+02 -6.55921766878216e-01 6.88177317217558e-01 -3.47071391893562e-01 + 1.41000000000000e+02 -6.74652275680612e-01 6.15856290391737e-01 -3.41901008734909e-01 + 1.44000000000000e+02 -6.89238523528509e-01 5.46336591473471e-01 -3.40201601680046e-01 + 1.47000000000000e+02 -7.03823896258865e-01 4.76817027337738e-01 -3.38504257224453e-01 + 1.50000000000000e+02 -7.18408694438638e-01 4.07297530590864e-01 -3.36808891109050e-01 + 1.53000000000000e+02 -7.44620920477827e-01 3.50504182292723e-01 -3.52050708459141e-01 + 1.56000000000000e+02 -7.70832295867696e-01 2.93710882428943e-01 -3.67292718466256e-01 + 1.59000000000000e+02 -7.97042839057236e-01 2.36917620123939e-01 -3.82534823044658e-01 + 1.62000000000000e+02 -7.25443285329967e-01 1.96119535360957e-01 -4.10092686634208e-01 + 1.65000000000000e+02 -6.04863200846212e-01 1.63319174643805e-01 -4.43808469577462e-01 + 1.68000000000000e+02 -4.87346219362824e-01 1.30518595329125e-01 -4.77523282896420e-01 + 1.71000000000000e+02 -3.66753120134991e-01 9.77955724163158e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.44501896830564e-01 6.52276659281221e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.20729578177091e-01 5.38728696135554e-02 -1.48151538376506e-01 + 1.80000000000000e+02 0.00000000000000e+00 5.31472191671717e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_10.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_10.dat new file mode 100644 index 00000000..3d0828bf --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_10.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF10_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF10_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.064146 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.141003 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-8.373634 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.372191 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.848243 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.010759 Cd0 ! 2D drag coefficient value at 0-lift. +-0.057548 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.30837886627506e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.24966191469559e-01 5.30837886627506e-02 1.18576829157013e-01 +-1.74000000000000e+02 2.52998633091314e-01 6.37003001697374e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.79498286143344e-01 9.55501832215890e-02 3.60000410445527e-01 +-1.68000000000000e+02 4.98757573511548e-01 1.28321372265423e-01 3.22914823147173e-01 +-1.65000000000000e+02 6.15220538714466e-01 1.61553203552249e-01 2.07287957565546e-01 +-1.62000000000000e+02 7.27077094368088e-01 1.94785456665805e-01 9.16599143637722e-02 +-1.59000000000000e+02 7.93230980672808e-01 2.35846387240917e-01 1.84100886242669e-02 +-1.56000000000000e+02 7.68234137241237e-01 2.92564407901613e-01 3.03932586734567e-02 +-1.53000000000000e+02 7.43356372402597e-01 3.49282461855920e-01 4.28162358403718e-02 +-1.50000000000000e+02 7.18478522993120e-01 4.06000562593489e-01 5.56156944862064e-02 +-1.47000000000000e+02 7.03955906925430e-01 4.75651465566945e-01 6.92790833714106e-02 +-1.44000000000000e+02 6.89433035390160e-01 5.45302448258410e-01 8.29503219976363e-02 +-1.41000000000000e+02 6.74909652901486e-01 6.14953590391589e-01 9.66309029164283e-02 +-1.38000000000000e+02 6.56219474668182e-01 6.87418368921680e-01 1.10881678895009e-01 +-1.35000000000000e+02 6.35445907015363e-01 7.61289959942459e-01 1.25418499888186e-01 +-1.32000000000000e+02 6.14671501318397e-01 8.35161838486049e-01 1.39961030153749e-01 +-1.29000000000000e+02 5.90134200485388e-01 9.07415349226177e-01 1.54621277427466e-01 +-1.26000000000000e+02 5.58071091549210e-01 9.76432116678355e-01 1.69509055919750e-01 +-1.23000000000000e+02 5.26007827556163e-01 1.04544835687794e+00 1.84402154814945e-01 +-1.20000000000000e+02 4.93944486037582e-01 1.11446433346109e+00 1.99301684126228e-01 +-1.17000000000000e+02 4.50754244383126e-01 1.17011434599327e+00 2.13130402729061e-01 +-1.14000000000000e+02 4.07564132273452e-01 1.22576411981700e+00 2.26966296053101e-01 +-1.11000000000000e+02 3.64374322762834e-01 1.28141346851316e+00 2.40810540320626e-01 +-1.08000000000000e+02 3.15905431030774e-01 1.32353352870914e+00 2.52837246360334e-01 +-1.05000000000000e+02 2.64796957994024e-01 1.35888884163568e+00 2.63961625640692e-01 +-1.02000000000000e+02 2.13689029593013e-01 1.39424374942488e+00 2.75099894116298e-01 +-9.90000000000000e+01 1.61655412340594e-01 1.42133844008909e+00 2.84836104947235e-01 +-9.60000000000000e+01 1.07770377288908e-01 1.43191233870989e+00 2.91753073560900e-01 +-9.30000000000000e+01 5.38853538885643e-02 1.44248615655205e+00 2.98698830338381e-01 +-9.00000000000000e+01 3.36313787357514e-07 1.45305993400564e+00 3.05684965975821e-01 +-8.70000000000000e+01 -5.38852987372259e-02 1.44248616737432e+00 3.09060154363404e-01 +-8.40000000000000e+01 -1.07770527963470e-01 1.43191230914291e+00 3.12686281197342e-01 +-8.10000000000000e+01 -1.61654945541942e-01 1.42133853168932e+00 3.16767616953733e-01 +-7.80000000000000e+01 -2.13688782064248e-01 1.39424392065773e+00 3.16540498625861e-01 +-7.50000000000000e+01 -2.64797296121353e-01 1.35888860772946e+00 3.14266811229411e-01 +-7.20000000000000e+01 -3.15905183504718e-01 1.32353369994026e+00 3.11992145479124e-01 +-6.90000000000000e+01 -3.64373948609042e-01 1.28141395060407e+00 3.08496020987835e-01 +-6.60000000000000e+01 -4.07564253041044e-01 1.22576396420997e+00 3.02557290547327e-01 +-6.30000000000000e+01 -4.50754530127646e-01 1.17011397781587e+00 2.96617404810894e-01 +-6.00000000000000e+01 -4.93944698166970e-01 1.11446387685501e+00 2.90676423054807e-01 +-5.70000000000000e+01 -5.26008039685552e-01 1.04544790027186e+00 2.82948402317780e-01 +-5.40000000000000e+01 -5.58071303677059e-01 9.76431660067037e-01 2.75218817710457e-01 +-5.10000000000000e+01 -5.90134412613238e-01 9.07414892614858e-01 2.67487195859118e-01 +-4.80000000000000e+01 -6.16349723026200e-01 8.35214742285566e-01 2.59915443758204e-01 +-4.50000000000000e+01 -6.39641228159956e-01 7.61422951679187e-01 2.52421684677788e-01 +-4.20000000000000e+01 -6.57897683242975e-01 6.87471272303016e-01 2.46204422934917e-01 +-3.90000000000000e+01 -6.75245094925222e-01 6.13911269891018e-01 2.40506244340753e-01 +-3.60000000000000e+01 -6.90083088589439e-01 5.41941245231535e-01 2.36695331229210e-01 +-3.30000000000000e+01 -7.04017120189319e-01 4.72583293422338e-01 2.35442916975004e-01 +-3.00000000000000e+01 -7.18478627259844e-01 4.06000129199683e-01 2.37016869904415e-01 +-2.93939393939394e+01 -7.21798350573784e-01 3.93221418404654e-01 2.38091117333048e-01 +-2.87878787878788e+01 -7.25118073887724e-01 3.80442707609625e-01 2.39165364761681e-01 +-2.81818181818182e+01 -7.28437797201663e-01 3.67663996814596e-01 2.40239612190314e-01 +-2.75757575757576e+01 -7.32172588884317e-01 3.55293602246098e-01 2.41847562956378e-01 +-2.69696969696970e+01 -7.36085282271228e-01 3.43098215358386e-01 2.43684263346490e-01 +-2.63636363636364e+01 -7.39997975658139e-01 3.30902828470674e-01 2.45520963736601e-01 +-2.57575757575758e+01 -7.44276884748962e-01 3.18965212168995e-01 2.47753414207092e-01 +-2.51515151515151e+01 -7.49105032044442e-01 3.07414191669665e-01 2.50579397563581e-01 +-2.45454545454545e+01 -7.53933179339923e-01 2.95863171170336e-01 2.53405380920070e-01 +-2.39393939393939e+01 -7.58896243502194e-01 2.84382247917907e-01 2.56362693669404e-01 +-2.33333333333333e+01 -7.65073585586137e-01 2.73532213458751e-01 2.60501996380347e-01 +-2.27272727272727e+01 -7.71250927670079e-01 2.62682178999596e-01 2.64779889466675e-01 +-2.21212121212121e+01 -7.77428269754022e-01 2.51832144540440e-01 2.68945623496597e-01 +-2.15151515151515e+01 -7.90262923140693e-01 2.41893541513143e-01 2.73249028596959e-01 +-2.09090909090909e+01 -8.05906043706644e-01 2.32182854971129e-01 2.77270518618669e-01 +-2.03030303030303e+01 -8.19489198628311e-01 2.22472168429115e-01 2.81192694187527e-01 +-1.96969696969697e+01 -8.24678039235549e-01 2.13080793622121e-01 2.75632215545996e-01 +-1.90909090909091e+01 -8.21619989791241e-01 2.04008712486556e-01 2.60613787847909e-01 +-1.84848484848485e+01 -8.18197356256183e-01 1.95010678250887e-01 2.45586809616841e-01 +-1.78787878787879e+01 -8.14569480885818e-01 1.86007505483073e-01 2.30648571774812e-01 +-1.72727272727273e+01 -8.10814834138077e-01 1.76823863436936e-01 2.15753896541975e-01 +-1.66666666666667e+01 -8.06976123403415e-01 1.68593035533169e-01 2.00859509073193e-01 +-1.60606060606061e+01 -8.03078897629092e-01 1.60454418431078e-01 1.85965357045289e-01 +-1.54545454545455e+01 -7.97000707157957e-01 1.51710915395437e-01 1.71396869835783e-01 +-1.48484848484848e+01 -7.89576615706775e-01 1.42625264033402e-01 1.57006741726859e-01 +-1.42424242424242e+01 -7.78781317063958e-01 1.32791872599405e-01 1.43201565946783e-01 +-1.36363636363636e+01 -7.67357420824222e-01 1.22849813294929e-01 1.29490112449071e-01 +-1.30303030303030e+01 -7.55422617396779e-01 1.12823830974163e-01 1.15644996580170e-01 +-1.24242424242424e+01 -7.42969206287619e-01 1.02890282642851e-01 1.01449124172212e-01 +-1.18181818181818e+01 -7.30244644590558e-01 9.31176217950954e-02 8.72464359531469e-02 +-1.12121212121212e+01 -7.17231543580288e-01 8.37383245063512e-02 7.30648930269649e-02 +-1.06060606060606e+01 -7.03577356362280e-01 7.45798495908964e-02 5.90622202437287e-02 +-1.00000000000000e+01 -6.89105145844174e-01 6.55059849764586e-02 4.51630398367081e-02 +-9.39393939393939e+00 -6.76227800071737e-01 5.54692165142735e-02 3.11059783824235e-02 +-8.78787878787879e+00 -6.64141630347962e-01 4.52369131161758e-02 1.71623095710831e-02 +-8.18181818181818e+00 -6.54216850502614e-01 3.55800439872753e-02 3.42154297533580e-03 +-7.57575757575758e+00 -6.14625042059806e-01 2.91666756670593e-02 -3.86341370860449e-03 +-6.96969696969697e+00 -5.61841937827523e-01 2.43864881766210e-02 -8.43665697005592e-03 +-6.36363636363636e+00 -4.99189572128014e-01 2.06688208542298e-02 -1.37959149818896e-02 +-5.75757575757576e+00 -4.34608760745885e-01 1.76932591752901e-02 -1.92729400057168e-02 +-5.15151515151515e+00 -3.67348413458166e-01 1.56052490200204e-02 -2.57288663338659e-02 +-4.54545454545454e+00 -2.97220789753124e-01 1.38965283846311e-02 -3.24773660126783e-02 +-3.93939393939394e+00 -2.25827092845188e-01 1.24332806711584e-02 -3.91885815676604e-02 +-3.33333333333333e+00 -1.54050456378233e-01 1.19149897769548e-02 -4.56999911417254e-02 +-2.72727272727273e+00 -8.12318984160244e-02 1.13706359706548e-02 -5.16384940099625e-02 +-2.12121212121212e+00 -7.14979346296234e-03 1.07859435280497e-02 -5.70801147069148e-02 +-1.51515151515152e+00 6.87826749054011e-02 1.05033451229781e-02 -6.20466375298444e-02 +-9.09090909090912e-01 1.45369872154627e-01 1.03139004235661e-02 -6.68516603553039e-02 +-3.03030303030302e-01 2.23028758160340e-01 1.02094317053058e-02 -7.16176330178895e-02 + 3.03030303030302e-01 3.01237277028695e-01 1.01564455703337e-02 -7.60536458286783e-02 + 9.09090909090912e-01 3.80006385780218e-01 1.01544863426098e-02 -8.01685273418174e-02 + 1.51515151515152e+00 4.59246642973497e-01 1.03195069670379e-02 -8.42292432054636e-02 + 2.12121212121212e+00 5.38436193741909e-01 1.05158173919170e-02 -8.80305585640893e-02 + 2.72727272727273e+00 6.17086435268518e-01 1.07234607719624e-02 -9.09221588982618e-02 + 3.33333333333333e+00 6.94766649922142e-01 1.09892374201398e-02 -9.34851438113357e-02 + 3.93939393939394e+00 7.71665263445708e-01 1.12674755215391e-02 -9.57801882660128e-02 + 4.54545454545455e+00 8.46424118402375e-01 1.16353662750350e-02 -9.80494154414620e-02 + 5.15151515151515e+00 9.20198652009909e-01 1.20213692284540e-02 -1.00166544091476e-01 + 5.75757575757576e+00 9.91711074228843e-01 1.24325530524450e-02 -1.01849307770008e-01 + 6.36363636363637e+00 1.06002251469050e+00 1.29373530659327e-02 -1.03182589271796e-01 + 6.96969696969697e+00 1.12620049862159e+00 1.35051858034989e-02 -1.04281097204592e-01 + 7.57575757575757e+00 1.18623076703795e+00 1.42446030038888e-02 -1.05323489221343e-01 + 8.18181818181818e+00 1.24304860221996e+00 1.50702587438949e-02 -1.06330821016929e-01 + 8.78787878787879e+00 1.29339454484370e+00 1.60680959350975e-02 -1.07320656167730e-01 + 9.39393939393939e+00 1.33640612125946e+00 1.81467491655883e-02 -1.08107944391156e-01 + 1.00000000000000e+01 1.37469506451432e+00 2.09438769808961e-02 -1.08769953707875e-01 + 1.06060606060606e+01 1.39128542708790e+00 2.53973640660572e-02 -1.08704427997839e-01 + 1.12121212121212e+01 1.39247645190556e+00 3.08345002992362e-02 -1.08511132324392e-01 + 1.18181818181818e+01 1.36506866603177e+00 3.75119498467862e-02 -1.07969033181396e-01 + 1.24242424242424e+01 1.33988550587683e+00 4.76821530474488e-02 -1.09070781012852e-01 + 1.30303030303030e+01 1.28517385394240e+00 5.94392540313143e-02 -1.10747213245403e-01 + 1.36363636363636e+01 1.25643020037597e+00 7.18386529645335e-02 -1.10309370469218e-01 + 1.42424242424242e+01 1.22941101634947e+00 8.49147013682724e-02 -1.10076808850556e-01 + 1.48484848484848e+01 1.20587360276360e+00 9.89301897374668e-02 -1.10132396182924e-01 + 1.54545454545455e+01 1.18936767768177e+00 1.13924838258266e-01 -1.13810701314704e-01 + 1.60606060606061e+01 1.17565898671524e+00 1.29176297116898e-01 -1.19071521356745e-01 + 1.66666666666667e+01 1.16603643374085e+00 1.43801932752626e-01 -1.26420182833845e-01 + 1.72727272727273e+01 1.15901294982273e+00 1.58412873301332e-01 -1.33298298163097e-01 + 1.78787878787879e+01 1.15516613881923e+00 1.73005853001785e-01 -1.39601295567204e-01 + 1.84848484848485e+01 1.16035329239803e+00 1.87605989072833e-01 -1.43318174504004e-01 + 1.90909090909091e+01 1.16482121671689e+00 2.01471765042406e-01 -1.46723090792030e-01 + 1.96969696969697e+01 1.15241186617039e+00 2.11164662608912e-01 -1.52023933649729e-01 + 2.03030303030303e+01 1.14108152143087e+00 2.21109741610071e-01 -1.56986307485845e-01 + 2.09090909090909e+01 1.13083024354155e+00 2.31307016312692e-01 -1.61635219687799e-01 + 2.15151515151515e+01 1.12057896565223e+00 2.41504291015314e-01 -1.66292754579922e-01 + 2.21212121212121e+01 1.11061305902249e+00 2.51832144540440e-01 -1.70802437318188e-01 + 2.27272727272727e+01 1.10178834380504e+00 2.62682178999596e-01 -1.74726995984381e-01 + 2.33333333333333e+01 1.09296362858759e+00 2.73532213458751e-01 -1.78657586333139e-01 + 2.39393939393939e+01 1.08413891337014e+00 2.84382247917907e-01 -1.82623234550793e-01 + 2.45454545454545e+01 1.07704877435898e+00 2.95863171170336e-01 -1.86155882534370e-01 + 2.51515151515151e+01 1.07015136189154e+00 3.07414191669665e-01 -1.89640420415756e-01 + 2.57575757575758e+01 1.06325394942410e+00 3.18965212168995e-01 -1.93124958297141e-01 + 2.63636363636364e+01 1.05714092098968e+00 3.30902828470674e-01 -1.96422469773296e-01 + 2.69696969696970e+01 1.05155089650575e+00 3.43098215358386e-01 -1.99595277603454e-01 + 2.75757575757576e+01 1.04596087202182e+00 3.55293602246098e-01 -2.02768085433612e-01 + 2.81818181818182e+01 1.04062530585900e+00 3.67663996814596e-01 -2.05879229073642e-01 + 2.87878787878788e+01 1.03588342484769e+00 3.80442707609625e-01 -2.08846501945758e-01 + 2.93939393939394e+01 1.03114154383638e+00 3.93221418404654e-01 -2.11813774817874e-01 + 3.00000000000000e+01 1.02639966282507e+00 4.06000129199683e-01 -2.14781047689990e-01 + 3.30000000000000e+01 1.00573804168069e+00 4.72583293422338e-01 -2.28629026765098e-01 + 3.60000000000000e+01 9.85833707743003e-01 5.41941245231535e-01 -2.41944387146083e-01 + 3.90000000000000e+01 9.64635684439964e-01 6.13911269891018e-01 -2.55359517097689e-01 + 4.20000000000000e+01 9.39853820984217e-01 6.87471272303016e-01 -2.68402760096020e-01 + 4.50000000000000e+01 9.13773877837909e-01 7.61422951679187e-01 -2.81321973111748e-01 + 4.80000000000000e+01 8.80499938641377e-01 8.35214742285566e-01 -2.93829895857158e-01 + 5.10000000000000e+01 8.43049140618493e-01 9.07414892614859e-01 -3.06092438249886e-01 + 5.40000000000000e+01 7.97244356422135e-01 9.76431660067036e-01 -3.17878305263492e-01 + 5.70000000000000e+01 7.51439922147286e-01 1.04544790027186e+00 -3.29653788801724e-01 + 6.00000000000000e+01 7.05635662831859e-01 1.11446387685501e+00 -3.41419875328892e-01 + 6.30000000000000e+01 6.43935405201049e-01 1.17011397781587e+00 -3.51824168446815e-01 + 6.60000000000000e+01 5.82235011316305e-01 1.22576396420997e+00 -3.62218653318893e-01 + 6.90000000000000e+01 5.20534617431561e-01 1.28141395060407e+00 -3.72603978485147e-01 + 7.20000000000000e+01 4.51293480954431e-01 1.32353369994026e+00 -3.81654848148536e-01 + 7.50000000000000e+01 3.78282127550152e-01 1.35888860772946e+00 -3.90032025372884e-01 + 7.80000000000000e+01 3.05269896475863e-01 1.39424392065773e+00 -3.98398550132911e-01 + 8.10000000000000e+01 2.30935739780878e-01 1.42133853168932e+00 -4.05862264958857e-01 + 8.40000000000000e+01 1.53957823095881e-01 1.43191230914291e+00 -4.11528875629133e-01 + 8.70000000000000e+01 7.69789183415259e-02 1.44248616737432e+00 -4.17182529414559e-01 + 9.00000000000000e+01 -3.36313787592115e-07 1.45305993400564e+00 -4.22823883213375e-01 + 9.30000000000000e+01 -5.38853538885643e-02 1.44248615655205e+00 -4.25531830444160e-01 + 9.60000000000000e+01 -1.07770377288908e-01 1.43191233870989e+00 -4.28239883474790e-01 + 9.90000000000000e+01 -1.61655412340595e-01 1.42133844008909e+00 -4.30948043344561e-01 + 1.02000000000000e+02 -2.13689029593013e-01 1.39424374942488e+00 -4.30426032722678e-01 + 1.05000000000000e+02 -2.64796957994024e-01 1.35888884163568e+00 -4.28288858720630e-01 + 1.08000000000000e+02 -3.15905431030774e-01 1.32353352870914e+00 -4.26150923676660e-01 + 1.11000000000000e+02 -3.64374322762835e-01 1.28141346851316e+00 -4.22781294573843e-01 + 1.14000000000000e+02 -4.07564132273452e-01 1.22576411981700e+00 -4.16948201170771e-01 + 1.17000000000000e+02 -4.50754244383126e-01 1.17011434599327e+00 -4.11114214652485e-01 + 1.20000000000000e+02 -4.93944486037582e-01 1.11446433346109e+00 -4.05279567496773e-01 + 1.23000000000000e+02 -5.26007827556164e-01 1.04544835687794e+00 -3.97635867656992e-01 + 1.26000000000000e+02 -5.58071091549210e-01 9.76432116678355e-01 -3.89990992242211e-01 + 1.29000000000000e+02 -5.90134200485389e-01 9.07415349226176e-01 -3.82344714919725e-01 + 1.32000000000000e+02 -6.14671501318397e-01 8.35161838486048e-01 -3.75290062239593e-01 + 1.35000000000000e+02 -6.35445907015363e-01 7.61289959942459e-01 -3.68529899569896e-01 + 1.38000000000000e+02 -6.56219474668182e-01 6.87418368921679e-01 -3.61767875968571e-01 + 1.41000000000000e+02 -6.74909652901486e-01 6.14953590391588e-01 -3.56786256817077e-01 + 1.44000000000000e+02 -6.89433035390160e-01 5.45302448258410e-01 -3.55365699643800e-01 + 1.47000000000000e+02 -7.03955906925430e-01 4.75651465566945e-01 -3.53940753692651e-01 + 1.50000000000000e+02 -7.18478522993120e-01 4.06000562593488e-01 -3.52511578047886e-01 + 1.53000000000000e+02 -7.42629245947763e-01 3.49402521602820e-01 -3.67942713897313e-01 + 1.56000000000000e+02 -7.66779899087500e-01 2.92804540889390e-01 -3.83374818114856e-01 + 1.59000000000000e+02 -7.91051572510474e-01 2.36206619897226e-01 -3.98807852435555e-01 + 1.62000000000000e+02 -7.19307409708115e-01 1.95606690636341e-01 -4.23162217489700e-01 + 1.65000000000000e+02 -5.99422550148399e-01 1.63005892539676e-01 -4.51976932817733e-01 + 1.68000000000000e+02 -4.72905933087606e-01 1.30404868023183e-01 -4.80790683446680e-01 + 1.71000000000000e+02 -3.52738917050312e-01 9.78037326537191e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.35159145800089e-01 6.52023755731394e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.16216409329782e-01 5.38259028959444e-02 -1.48221036446267e-01 + 1.80000000000000e+02 0.00000000000000e+00 5.30837886627506e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_11.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_11.dat new file mode 100644 index 00000000..742ec4f5 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_11.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF11_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF11_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.081115 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.269045 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-8.662155 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.400649 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.915233 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.010727 Cd0 ! 2D drag coefficient value at 0-lift. +-0.065156 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.17338093025581e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.20610218452195e-01 5.17338093025581e-02 1.18763338610947e-01 +-1.74000000000000e+02 2.43846180796722e-01 6.20803661366883e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.65769725958049e-01 9.31203763075915e-02 3.60000410445527e-01 +-1.68000000000000e+02 4.84069232089561e-01 1.24885380987671e-01 3.21035049116140e-01 +-1.65000000000000e+02 6.01637542467089e-01 1.57012874460584e-01 2.02588544427697e-01 +-1.62000000000000e+02 7.13153594297870e-01 1.89140896133777e-01 8.41409821795466e-02 +-1.59000000000000e+02 7.80068980000668e-01 2.29356923814875e-01 7.97341748695581e-03 +-1.56000000000000e+02 7.58681265140819e-01 2.85748689900454e-01 1.75916291927228e-02 +-1.53000000000000e+02 7.37716006162308e-01 3.42140486787254e-01 2.79764209288751e-02 +-1.50000000000000e+02 7.16750629236893e-01 3.98532330574024e-01 3.87597184159220e-02 +-1.47000000000000e+02 7.02430836152056e-01 4.68441880461646e-01 5.28948486721724e-02 +-1.44000000000000e+02 6.88110788374351e-01 5.38351550730586e-01 6.70401805724200e-02 +-1.41000000000000e+02 6.73790231192722e-01 6.08261461770758e-01 8.11976416970075e-02 +-1.38000000000000e+02 6.55253757939153e-01 6.81025000549314e-01 9.58313303466701e-02 +-1.35000000000000e+02 6.34609335202059e-01 7.55215347408169e-01 1.10704411230940e-01 +-1.32000000000000e+02 6.13964075900703e-01 8.29406104470313e-01 1.25585263221553e-01 +-1.29000000000000e+02 5.89541757042321e-01 9.01995435488593e-01 1.40592248603482e-01 +-1.26000000000000e+02 5.57565301171594e-01 9.71381906816171e-01 1.55841088781127e-01 +-1.23000000000000e+02 5.25588689582014e-01 1.04076784806681e+00 1.71097114222845e-01 +-1.20000000000000e+02 4.93612000135919e-01 1.11015352428889e+00 1.86361656418168e-01 +-1.17000000000000e+02 4.50478535342387e-01 1.16621180599633e+00 2.00629220653074e-01 +-1.14000000000000e+02 4.07345160141662e-01 1.22226984751125e+00 2.14906094089605e-01 +-1.11000000000000e+02 3.64212007755362e-01 1.27832746077970e+00 2.29193883251082e-01 +-1.08000000000000e+02 3.15783665079539e-01 1.32087403967776e+00 2.41716558401183e-01 +-1.05000000000000e+02 2.64707686941683e-01 1.35666499851025e+00 2.53364833576556e-01 +-1.02000000000000e+02 2.13632134040282e-01 1.39245554721333e+00 2.65031201575310e-01 +-9.90000000000000e+01 1.61623631750871e-01 1.41999044316543e+00 2.75316312995168e-01 +-9.60000000000000e+01 1.07749190274494e-01 1.43101367601985e+00 2.82819378442760e-01 +-9.30000000000000e+01 5.38747603685306e-02 1.44203682466298e+00 2.90359307559513e-01 +-9.00000000000000e+01 3.36247670192969e-07 1.45305993120123e+00 2.97951186065388e-01 +-8.70000000000000e+01 -5.38747052280345e-02 1.44203683594514e+00 3.01753424548436e-01 +-8.40000000000000e+01 -1.07749340919434e-01 1.43101364519643e+00 3.05884772088962e-01 +-8.10000000000000e+01 -1.61623165043989e-01 1.41999053865818e+00 3.10613470732064e-01 +-7.80000000000000e+01 -2.13631886668320e-01 1.39245572055610e+00 3.10674655777832e-01 +-7.50000000000000e+01 -2.64708024854679e-01 1.35666476172186e+00 3.08542976324719e-01 +-7.20000000000000e+01 -3.15783417710861e-01 1.32087421301878e+00 3.06409302975954e-01 +-6.90000000000000e+01 -3.64211634092392e-01 1.27832794640741e+00 3.03044729448568e-01 +-6.60000000000000e+01 -4.07345280750829e-01 1.22226969076263e+00 2.97219713108405e-01 +-6.30000000000000e+01 -4.50478820711274e-01 1.16621143511785e+00 2.91391620398543e-01 +-6.00000000000000e+01 -4.93612211692021e-01 1.11015306523689e+00 2.85560191488404e-01 +-5.70000000000000e+01 -5.25588901138117e-01 1.04076738901481e+00 2.77925669828566e-01 +-5.40000000000000e+01 -5.57565512726151e-01 9.71381447758911e-01 2.70286195661910e-01 +-5.10000000000000e+01 -5.89541968596878e-01 9.01994976431333e-01 2.62640680641497e-01 +-4.80000000000000e+01 -6.15651105875399e-01 8.29449803698678e-01 2.55153878770895e-01 +-4.50000000000000e+01 -6.38826678153933e-01 7.55325331028288e-01 2.47739559108878e-01 +-4.20000000000000e+01 -6.56940774711891e-01 6.81068699431397e-01 2.41608950158798e-01 +-3.90000000000000e+01 -6.74138230588866e-01 6.07210570957826e-01 2.36033756265024e-01 +-3.60000000000000e+01 -6.88800358432074e-01 5.34964795566947e-01 2.32526368115935e-01 +-3.30000000000000e+01 -7.02527481598747e-01 4.65352126226771e-01 2.31660096996564e-01 +-3.00000000000000e+01 -7.16750731841146e-01 3.98531895640176e-01 2.33717011176468e-01 +-2.93939393939394e+01 -7.20014368241707e-01 3.85709000620782e-01 2.34916176725143e-01 +-2.87878787878788e+01 -7.23278004642269e-01 3.72886105601387e-01 2.36115342273819e-01 +-2.81818181818182e+01 -7.26541641042830e-01 3.60063210581993e-01 2.37314507822494e-01 +-2.75757575757576e+01 -7.30215084645349e-01 3.47650566598554e-01 2.39067661935682e-01 +-2.69696969696970e+01 -7.34064174972939e-01 3.35413759571076e-01 2.41058260087479e-01 +-2.63636363636364e+01 -7.37913265300529e-01 3.23176952543597e-01 2.43048858239275e-01 +-2.57575757575758e+01 -7.42124844608794e-01 3.11199070884588e-01 2.45450980247116e-01 +-2.51515151515151e+01 -7.46880072905424e-01 2.99609516932444e-01 2.48470292128175e-01 +-2.45454545454545e+01 -7.51635301202054e-01 2.88019962980301e-01 2.51489604009234e-01 +-2.39393939393939e+01 -7.56524250108274e-01 2.76500794819509e-01 2.54645697570981e-01 +-2.33333333333333e+01 -7.62616710389763e-01 2.65615112407906e-01 2.59032852740507e-01 +-2.27272727272727e+01 -7.68709170671251e-01 2.54729429996303e-01 2.63911099891641e-01 +-2.21212121212121e+01 -7.74801630952739e-01 2.43843747584701e-01 2.68391913865235e-01 +-2.15151515151515e+01 -7.93896255075763e-01 2.34765567487007e-01 2.69219982182975e-01 +-2.09090909090909e+01 -8.19588776751072e-01 2.26139379234369e-01 2.68013679183985e-01 +-2.03030303030303e+01 -8.41755850773015e-01 2.17513190981731e-01 2.66455457580854e-01 +-1.96969696969697e+01 -8.57132969513166e-01 2.09138320990721e-01 2.57323288186467e-01 +-1.90909090909091e+01 -8.65913538616401e-01 2.01014755044168e-01 2.40703240782996e-01 +-1.84848484848485e+01 -8.74215029540216e-01 1.93152415327005e-01 2.24051125011634e-01 +-1.78787878787879e+01 -8.82246941494251e-01 1.85271935431753e-01 2.07713877216966e-01 +-1.72727272727273e+01 -8.90112513417619e-01 1.76753055824415e-01 1.91533915208804e-01 +-1.66666666666667e+01 -8.97867665288278e-01 1.69666716562767e-01 1.75354108708192e-01 +-1.60606060606061e+01 -9.05545956258092e-01 1.62769575158031e-01 1.59174429439710e-01 +-1.54545454545455e+01 -9.05500228357417e-01 1.54709519958352e-01 1.44263287105186e-01 +-1.48484848484848e+01 -9.00650490354814e-01 1.45972869299812e-01 1.30048437843628e-01 +-1.42424242424242e+01 -8.83881928212747e-01 1.35695161200991e-01 1.18061058367204e-01 +-1.36363636363636e+01 -8.65135255067798e-01 1.25196579166224e-01 1.06372832901923e-01 +-1.30303030303030e+01 -8.44949235869776e-01 1.14536353092698e-01 9.41922629526705e-02 +-1.24242424242424e+01 -8.23438097507769e-01 1.04071539255474e-01 8.07476005612591e-02 +-1.18181818181818e+01 -8.01578346336287e-01 9.39351009261381e-02 6.72989309058954e-02 +-1.12121212121212e+01 -7.79436133521223e-01 8.45784112226453e-02 5.39664027575017e-02 +-1.06060606060606e+01 -7.56125420814654e-01 7.56686775243057e-02 4.13015037835521e-02 +-1.00000000000000e+01 -7.31404178229205e-01 6.69542054267392e-02 2.90154450614047e-02 +-9.39393939393939e+00 -7.10908164656284e-01 5.62659422161747e-02 1.61336287291465e-02 +-8.78787878787879e+00 -6.93895499794178e-01 4.51632034246090e-02 3.66630892977488e-03 +-8.18181818181818e+00 -6.82305849045296e-01 3.46949966165822e-02 -8.06490144015382e-03 +-7.57575757575758e+00 -6.41809741158512e-01 2.77831234233813e-02 -1.41096615374045e-02 +-6.96969696969697e+00 -5.88143925838256e-01 2.28417438781606e-02 -1.78405462944423e-02 +-6.36363636363636e+00 -5.18595414594118e-01 1.94965813878357e-02 -2.29439868991729e-02 +-5.75757575757576e+00 -4.47723085873360e-01 1.68485236815072e-02 -2.81966573016451e-02 +-5.15151515151515e+00 -3.75142989396497e-01 1.49610810018752e-02 -3.47182225820690e-02 +-4.54545454545454e+00 -3.00787223897522e-01 1.34635952053030e-02 -4.14011501128667e-02 +-3.93939393939394e+00 -2.25750200730196e-01 1.21953572497309e-02 -4.79556483496797e-02 +-3.33333333333333e+00 -1.53097407752943e-01 1.17061671579090e-02 -5.41961908245246e-02 +-2.72727272727273e+00 -7.95718917516246e-02 1.12293922425528e-02 -5.97874291038278e-02 +-2.12121212121212e+00 -5.03539621814182e-03 1.07440480589344e-02 -6.48477030716386e-02 +-1.51515151515152e+00 7.10741171824617e-02 1.04901796827387e-02 -6.95072912947862e-02 +-9.09090909090912e-01 1.47800523968434e-01 1.03183543231236e-02 -7.40089097305715e-02 +-3.03030303030302e-01 2.25712116064930e-01 1.02530762212861e-02 -7.84452609734865e-02 + 3.03030303030302e-01 3.04012747719234e-01 1.02309881009218e-02 -8.25691600591865e-02 + 9.09090909090912e-01 3.82711307380014e-01 1.02503405435553e-02 -8.63962105538320e-02 + 1.51515151515152e+00 4.61756851424667e-01 1.03813057971860e-02 -9.01104450324160e-02 + 2.12121212121212e+00 5.40685036400329e-01 1.05415949817604e-02 -9.35850435449342e-02 + 2.72727272727273e+00 6.18886227271413e-01 1.07445792627915e-02 -9.62817005798321e-02 + 3.33333333333333e+00 6.96227792951118e-01 1.09887579176491e-02 -9.86711658811812e-02 + 3.93939393939394e+00 7.72883389885004e-01 1.12344879960209e-02 -1.00807961075492e-01 + 4.54545454545455e+00 8.47551890939517e-01 1.15551058195410e-02 -1.02885524901180e-01 + 5.15151515151515e+00 9.21271553826334e-01 1.18923634479442e-02 -1.04819428291073e-01 + 5.75757575757576e+00 9.92784335144794e-01 1.22610882531594e-02 -1.06359973327630e-01 + 6.36363636363637e+00 1.06131473281146e+00 1.27079774642478e-02 -1.07580975239224e-01 + 6.96969696969697e+00 1.12787422242318e+00 1.32063108971969e-02 -1.08587510060800e-01 + 7.57575757575757e+00 1.18885675085141e+00 1.38302419296642e-02 -1.09502885178324e-01 + 8.18181818181818e+00 1.24720837846946e+00 1.45051079826196e-02 -1.10383577044148e-01 + 8.78787878787879e+00 1.30109155320978e+00 1.52650096833159e-02 -1.11295079946526e-01 + 9.39393939393939e+00 1.34910270552171e+00 1.69597298070715e-02 -1.11617299458299e-01 + 1.00000000000000e+01 1.39122211758901e+00 1.92951287014474e-02 -1.11579588588804e-01 + 1.06060606060606e+01 1.41374692668675e+00 2.32087315726581e-02 -1.10700973175584e-01 + 1.12121212121212e+01 1.42235063763216e+00 2.80043073060677e-02 -1.09633362298298e-01 + 1.18181818181818e+01 1.40509952208549e+00 3.36675325297581e-02 -1.08071370626820e-01 + 1.24242424242424e+01 1.36098461886640e+00 4.53311237959958e-02 -1.09677679611616e-01 + 1.30303030303030e+01 1.27121985294027e+00 5.94850170456720e-02 -1.12451230995673e-01 + 1.36363636363636e+01 1.23331688079203e+00 7.12491888525373e-02 -1.11569128322250e-01 + 1.42424242424242e+01 1.19929983782480e+00 8.34701602960147e-02 -1.10866527861742e-01 + 1.48484848484848e+01 1.17429197921907e+00 9.63163863742802e-02 -1.10364535193828e-01 + 1.54545454545455e+01 1.15693155875190e+00 1.09918192046590e-01 -1.12997477778780e-01 + 1.60606060606061e+01 1.14266018641121e+00 1.23724487625457e-01 -1.16993403213071e-01 + 1.66666666666667e+01 1.13325405216419e+00 1.37104753717798e-01 -1.22803327538571e-01 + 1.72727272727273e+01 1.12686629586509e+00 1.50546395471717e-01 -1.28360097087402e-01 + 1.78787878787879e+01 1.12416770644291e+00 1.64063052701384e-01 -1.33607452032450e-01 + 1.84848484848485e+01 1.13139272733087e+00 1.78010604421774e-01 -1.37206719425119e-01 + 1.90909090909091e+01 1.13867731668370e+00 1.91501101195136e-01 -1.40692310188144e-01 + 1.96969696969697e+01 1.13223871836009e+00 2.01790232355546e-01 -1.45868712277606e-01 + 2.03030303030303e+01 1.12592570808589e+00 2.12197188791206e-01 -1.50881669040385e-01 + 2.09090909090909e+01 1.11973829296607e+00 2.22721977167913e-01 -1.55819852215318e-01 + 2.15151515151515e+01 1.11355087784625e+00 2.33246765544621e-01 -1.60788589705368e-01 + 2.21212121212121e+01 1.10686018543461e+00 2.43843747584701e-01 -1.65603019715883e-01 + 2.27272727272727e+01 1.09815690169093e+00 2.54729429996303e-01 -1.69822108656288e-01 + 2.33333333333333e+01 1.08945361794725e+00 2.65615112407906e-01 -1.74062570732705e-01 + 2.39393939393939e+01 1.08075033420357e+00 2.76500794819509e-01 -1.78427259605238e-01 + 2.45454545454545e+01 1.07376593672417e+00 2.88019962980301e-01 -1.82284015244859e-01 + 2.51515151515151e+01 1.06697252249912e+00 2.99609516932444e-01 -1.86084335072627e-01 + 2.57575757575758e+01 1.06017910827406e+00 3.11199070884588e-01 -1.89884654900395e-01 + 2.63636363636364e+01 1.05416214500944e+00 3.23176952543597e-01 -1.93462066542360e-01 + 2.69696969696970e+01 1.04866289615838e+00 3.35413759571076e-01 -1.96890849633946e-01 + 2.75757575757576e+01 1.04316364730731e+00 3.47650566598554e-01 -2.00319632725532e-01 + 2.81818181818182e+01 1.03791578996892e+00 3.60063210581993e-01 -2.03673565505490e-01 + 2.87878787878788e+01 1.03325446250951e+00 3.72886105601387e-01 -2.06852862539969e-01 + 2.93939393939394e+01 1.02859313505011e+00 3.85709000620782e-01 -2.10032159574448e-01 + 3.00000000000000e+01 1.02393180759070e+00 3.98531895640176e-01 -2.13211456608927e-01 + 3.30000000000000e+01 1.00360981651186e+00 4.65352126226771e-01 -2.27906428002545e-01 + 3.60000000000000e+01 9.84001264428555e-01 5.34964795566947e-01 -2.41925534967727e-01 + 3.90000000000000e+01 9.63054591373508e-01 6.07210570957826e-01 -2.55861101384382e-01 + 4.20000000000000e+01 9.38486939161695e-01 6.81068699431397e-01 -2.69396898615722e-01 + 4.50000000000000e+01 9.12610178291857e-01 7.55325331028288e-01 -2.82806077238433e-01 + 4.80000000000000e+01 8.79501806448111e-01 8.29449803698678e-01 -2.95759616602379e-01 + 5.10000000000000e+01 8.42202650323331e-01 9.01994976431333e-01 -3.08464526695633e-01 + 5.40000000000000e+01 7.96521656220475e-01 9.71381447758911e-01 -3.20679850937119e-01 + 5.70000000000000e+01 7.50841011093444e-01 1.04076738901481e+00 -3.32886639691835e-01 + 6.00000000000000e+01 7.05160540452998e-01 1.11015306523690e+00 -3.45085056710935e-01 + 6.30000000000000e+01 6.43541341893905e-01 1.16621143511785e+00 -3.55934491344085e-01 + 6.60000000000000e+01 5.81922006714618e-01 1.22226969076263e+00 -3.66774194260320e-01 + 6.90000000000000e+01 5.20302671535330e-01 1.27832794640741e+00 -3.77604487698421e-01 + 7.20000000000000e+01 4.51119501480277e-01 1.32087421301878e+00 -3.87119214978594e-01 + 7.50000000000000e+01 3.78154568829116e-01 1.35666476172186e+00 -3.95968866317771e-01 + 7.80000000000000e+01 3.05188640011092e-01 1.39245572055610e+00 -4.04806568926510e-01 + 8.10000000000000e+01 2.30890390081552e-01 1.41999053865818e+00 -4.12748066743701e-01 + 8.40000000000000e+01 1.53927589898212e-01 1.43101364519643e+00 -4.18906566709380e-01 + 8.70000000000000e+01 7.69638017609944e-02 1.44203683594514e+00 -4.25049810698846e-01 + 9.00000000000000e+01 -3.36247670426886e-07 1.45305993120123e+00 -4.31178399042578e-01 + 9.30000000000000e+01 -5.38747603685306e-02 1.44203682466298e+00 -4.34104668279932e-01 + 9.60000000000000e+01 -1.07749190274494e-01 1.43101367601985e+00 -4.37031487108267e-01 + 9.90000000000000e+01 -1.61623631750871e-01 1.41999044316543e+00 -4.39958819257674e-01 + 1.02000000000000e+02 -2.13632134040282e-01 1.39245554721333e+00 -4.39636233003905e-01 + 1.05000000000000e+02 -2.64707686941683e-01 1.35666499851025e+00 -4.37688769297266e-01 + 1.08000000000000e+02 -3.15783665079539e-01 1.32087403967776e+00 -4.35740818710456e-01 + 1.11000000000000e+02 -3.64212007755363e-01 1.27832746077970e+00 -4.32550227083959e-01 + 1.14000000000000e+02 -4.07345160141662e-01 1.22226984751125e+00 -4.26873946888224e-01 + 1.17000000000000e+02 -4.50478535342387e-01 1.16621180599633e+00 -4.21196949202848e-01 + 1.20000000000000e+02 -4.93612000135919e-01 1.11015352428889e+00 -4.15519446213869e-01 + 1.23000000000000e+02 -5.25588689582014e-01 1.04076784806681e+00 -4.08013919223535e-01 + 1.26000000000000e+02 -5.57565301171594e-01 9.71381906816171e-01 -4.00507231110389e-01 + 1.29000000000000e+02 -5.89541757042322e-01 9.01995435488592e-01 -3.92999135332578e-01 + 1.32000000000000e+02 -6.13964075900704e-01 8.29406104470312e-01 -3.86098598415459e-01 + 1.35000000000000e+02 -6.34609335202059e-01 7.55215347408169e-01 -3.79500308090265e-01 + 1.38000000000000e+02 -6.55253757939153e-01 6.81025000549314e-01 -3.72899876934706e-01 + 1.41000000000000e+02 -6.73790231192722e-01 6.08261461770757e-01 -3.68126222376485e-01 + 1.44000000000000e+02 -6.88110788374351e-01 5.38351550730586e-01 -3.67006301532646e-01 + 1.47000000000000e+02 -7.02430836152056e-01 4.68441880461646e-01 -3.65881031661847e-01 + 1.50000000000000e+02 -7.16750629236893e-01 3.98532330574024e-01 -3.64750607711192e-01 + 1.53000000000000e+02 -7.34878858674711e-01 3.42608943418167e-01 -3.80350965963448e-01 + 1.56000000000000e+02 -7.53007027741238e-01 2.86685655813922e-01 -3.95955856199125e-01 + 1.59000000000000e+02 -7.71564544817183e-01 2.30762502127974e-01 -4.11565385415533e-01 + 1.62000000000000e+02 -7.00256219005735e-01 1.90909397104532e-01 -4.33416022361716e-01 + 1.65000000000000e+02 -5.83546590903823e-01 1.59091452320285e-01 -4.58385560746469e-01 + 1.68000000000000e+02 -4.58125712100344e-01 1.27273272145471e-01 -4.83354146585932e-01 + 1.71000000000000e+02 -3.41045278744180e-01 9.54550237835969e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.27363439140247e-01 6.36366390444162e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.12541609339478e-01 5.25040908476199e-02 -1.48454173263684e-01 + 1.80000000000000e+02 0.00000000000000e+00 5.17338093025581e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_12.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_12.dat new file mode 100644 index 00000000..43ee56ca --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_12.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF12_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF12_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.104210 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.449404 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-8.941354 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.433280 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.020492 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.010714 Cd0 ! 2D drag coefficient value at 0-lift. +-0.072028 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.02017886725028e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.16814702114733e-01 5.02017886725028e-02 1.18974998388536e-01 +-1.74000000000000e+02 2.35757260050863e-01 6.02419881354083e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.53636476996742e-01 9.03629161351898e-02 3.60000410445527e-01 +-1.68000000000000e+02 4.69829759859863e-01 1.20986055059121e-01 3.19692038335689e-01 +-1.65000000000000e+02 5.86100406969184e-01 1.51860293583585e-01 1.99231033151485e-01 +-1.62000000000000e+02 6.97207018087719e-01 1.82735181026080e-01 7.87690618632042e-02 +-1.59000000000000e+02 7.65053274169454e-01 2.21992372815171e-01 4.59488938113571e-04 +-1.56000000000000e+02 7.47840212628704e-01 2.78013889729193e-01 8.23826475941633e-03 +-1.53000000000000e+02 7.31315050935883e-01 3.34035434615955e-01 1.69033914984109e-02 +-1.50000000000000e+02 7.14789733419415e-01 3.90057026535133e-01 2.57900977189505e-02 +-1.47000000000000e+02 7.00700113478808e-01 4.60260101212902e-01 4.02282514210461e-02 +-1.44000000000000e+02 6.86610239724511e-01 5.30463342418639e-01 5.46749993729137e-02 +-1.41000000000000e+02 6.72519858324716e-01 6.00666916692206e-01 6.91319722248670e-02 +-1.38000000000000e+02 6.54157816774948e-01 6.73769502775919e-01 8.40066813863651e-02 +-1.35000000000000e+02 6.33659953815723e-01 7.48321588883743e-01 9.90913902837609e-02 +-1.32000000000000e+02 6.13161255971681e-01 8.22874224418487e-01 1.14182857514007e-01 +-1.29000000000000e+02 5.88869424113624e-01 8.95844660221988e-01 1.29408668138862e-01 +-1.26000000000000e+02 5.56991306252975e-01 9.65650689048611e-01 1.44894245978222e-01 +-1.23000000000000e+02 5.25113031922222e-01 1.03545618459309e+00 1.60385940835181e-01 +-1.20000000000000e+02 4.93234679359342e-01 1.10526141350648e+00 1.75884859665492e-01 +-1.17000000000000e+02 4.50165647641462e-01 1.16178301844503e+00 1.90450025251094e-01 +-1.14000000000000e+02 4.07096660176995e-01 1.21830438150688e+00 2.05022854430753e-01 +-1.11000000000000e+02 3.64027804983567e-01 1.27482531278278e+00 2.19604660336798e-01 +-1.08000000000000e+02 3.15645479300682e-01 1.31785592534089e+00 2.32463316412531e-01 +-1.05000000000000e+02 2.64606377915867e-01 1.35414127581743e+00 2.44466971927803e-01 +-1.02000000000000e+02 2.13567566267535e-01 1.39042621049931e+00 2.56485516539190e-01 +-9.90000000000000e+01 1.61587565629768e-01 1.41846067229841e+00 2.67134366691667e-01 +-9.60000000000000e+01 1.07725146245282e-01 1.42999383096059e+00 2.75027548957952e-01 +-9.30000000000000e+01 5.38627383393683e-02 1.44152690151593e+00 2.82950978094881e-01 +-9.00000000000000e+01 3.36172637297600e-07 1.45305992801866e+00 2.90917363787953e-01 +-8.70000000000000e+01 -5.38626832111768e-02 1.44152691331999e+00 2.94767512788956e-01 +-8.40000000000000e+01 -1.07725296856606e-01 1.42999379871131e+00 2.98897742164918e-01 +-8.10000000000000e+01 -1.61587099027032e-01 1.41846077220858e+00 3.03536772948404e-01 +-7.80000000000000e+01 -2.13567319073521e-01 1.39042638623652e+00 3.03702648984174e-01 +-7.50000000000000e+01 -2.64606715585627e-01 1.35414103575821e+00 3.01751455652536e-01 +-7.20000000000000e+01 -3.15645232110603e-01 1.31785610107633e+00 2.99797410104482e-01 +-6.90000000000000e+01 -3.64027431877603e-01 1.27482580242423e+00 2.96601873383554e-01 +-6.60000000000000e+01 -4.07096780606374e-01 1.21830422346273e+00 2.90925626936627e-01 +-6.30000000000000e+01 -4.50165932584065e-01 1.16178264450123e+00 2.85244623169737e-01 +-6.00000000000000e+01 -4.93234890264853e-01 1.10526095167874e+00 2.79558323005520e-01 +-5.70000000000000e+01 -5.25113242827733e-01 1.03545572276536e+00 2.72051789581655e-01 +-5.40000000000000e+01 -5.56991517156933e-01 9.65650227215581e-01 2.64537349061016e-01 +-5.10000000000000e+01 -5.88869635017581e-01 8.95844198388958e-01 2.57013385477719e-01 +-4.80000000000000e+01 -6.14858281985569e-01 8.22907477862781e-01 2.49649988716779e-01 +-4.50000000000000e+01 -6.37902288159362e-01 7.48405461801475e-01 2.42355684979480e-01 +-4.20000000000000e+01 -6.55854829508633e-01 6.73802755955525e-01 2.36361332357867e-01 +-3.90000000000000e+01 -6.72882108422873e-01 5.99606299882174e-01 2.30958164591745e-01 +-3.60000000000000e+01 -6.87344655388143e-01 5.27047589477837e-01 2.27795230971316e-01 +-3.30000000000000e+01 -7.00836969047683e-01 4.57145854597990e-01 2.27367173402586e-01 +-3.00000000000000e+01 -7.14789834137016e-01 3.90056589853572e-01 2.29972174924480e-01 +-2.93939393939394e+01 -7.17989820447135e-01 3.77183552479970e-01 2.31313103482737e-01 +-2.87878787878788e+01 -7.21189806757255e-01 3.64310515106369e-01 2.32654032040993e-01 +-2.81818181818182e+01 -7.24389793067374e-01 3.51437477732768e-01 2.33994960599249e-01 +-2.75757575757576e+01 -7.27993615957789e-01 3.38976887108657e-01 2.35912898360177e-01 +-2.69696969696970e+01 -7.31770526515904e-01 3.26693074541322e-01 2.38078146993880e-01 +-2.63636363636364e+01 -7.35547437074019e-01 3.14409261973987e-01 2.40243395627583e-01 +-2.57575757575758e+01 -7.39682607350460e-01 3.02385685277020e-01 2.42838068946369e-01 +-2.51515151515151e+01 -7.44355083707426e-01 2.90752401734336e-01 2.46076779209917e-01 +-2.45454545454545e+01 -7.49027560064392e-01 2.79119118191653e-01 2.49315489473464e-01 +-2.39393939393939e+01 -7.53832399461519e-01 2.67556547894255e-01 2.52697168932637e-01 +-2.33333333333333e+01 -7.59828531846218e-01 2.56630410494836e-01 2.57365598831951e-01 +-2.27272727272727e+01 -7.65824664230917e-01 2.45704273095417e-01 2.62833561583836e-01 +-2.21212121212121e+01 -7.71820796615617e-01 2.34778135695999e-01 2.67654474711527e-01 +-2.15151515151515e+01 -7.96443477215383e-01 2.26676404363075e-01 2.64351420041365e-01 +-2.09090909090909e+01 -8.30849944454416e-01 2.19280956225120e-01 2.57191864213633e-01 +-2.03030303030303e+01 -8.61239798275855e-01 2.11885508087165e-01 2.49459359740882e-01 +-1.96969696969697e+01 -8.86851353917406e-01 2.04664215991167e-01 2.36345486505374e-01 +-1.90909090909091e+01 -9.07849523166766e-01 1.97617070085050e-01 2.17989979126022e-01 +-1.84848484848485e+01 -9.28438728259752e-01 1.90994947917113e-01 1.99581867965191e-01 +-1.78787878787879e+01 -9.48798009848073e-01 1.84343308202159e-01 1.81686497656418e-01 +-1.72727272727273e+01 -9.69015714430469e-01 1.76652563396641e-01 1.64047931232961e-01 +-1.66666666666667e+01 -9.89139234078135e-01 1.70406496274106e-01 1.46409370226095e-01 +-1.60606060606061e+01 -1.00919719372332e+00 1.64405524173896e-01 1.28770813650940e-01 +-1.54545454545455e+01 -1.01540755504446e+00 1.56862910031355e-01 1.13470810022679e-01 +-1.48484848484848e+01 -1.01298433891169e+00 1.48403778032376e-01 9.94548755135208e-02 +-1.42424242424242e+01 -9.89203767259323e-01 1.37794975860024e-01 8.94257900471029e-02 +-1.36363636363636e+01 -9.62014659606293e-01 1.26881241910317e-01 7.98089478777152e-02 +-1.30303030303030e+01 -9.32449292572719e-01 1.15751868266820e-01 6.93414419906876e-02 +-1.24242424242424e+01 -9.00792491049511e-01 1.04900663581092e-01 5.67713948672409e-02 +-1.18181818181818e+01 -8.68848659795491e-01 9.45041039998393e-02 4.42375285802314e-02 +-1.12121212121212e+01 -8.36808576348847e-01 8.51661045609216e-02 3.19958406592258e-02 +-1.06060606060606e+01 -8.03284211237670e-01 7.64433166380479e-02 2.09106002122012e-02 +-1.00000000000000e+01 -7.68096954585546e-01 6.80130732444816e-02 1.04779161942864e-02 +-9.39393939393939e+00 -7.39737601227035e-01 5.68394250941624e-02 -1.00892879318824e-03 +-8.78787878787879e+00 -7.17791627668883e-01 4.50577060106998e-02 -1.17953152141081e-02 +-8.18181818181818e+00 -7.04457618185764e-01 3.35556812007792e-02 -2.13372325268140e-02 +-7.57575757575758e+00 -6.63232806034972e-01 2.62982027978296e-02 -2.60669251138793e-02 +-6.96969696969697e+00 -6.08991380617151e-01 2.14176171488251e-02 -2.89228360247444e-02 +-6.36363636363636e+00 -5.33652028186316e-01 1.85402907866192e-02 -3.37736937247221e-02 +-5.75757575757576e+00 -4.57645786576647e-01 1.62204582639942e-02 -3.87352025598183e-02 +-5.15151515151515e+00 -3.80878183776993e-01 1.45075217386201e-02 -4.47429870829259e-02 +-4.54545454545454e+00 -3.03328576206396e-01 1.31751950655347e-02 -5.08206305818731e-02 +-3.93939393939394e+00 -2.25638938079791e-01 1.20463073814285e-02 -5.67577483907786e-02 +-3.33333333333333e+00 -1.51759128742261e-01 1.15765523813214e-02 -6.23461963393866e-02 +-2.72727272727273e+00 -7.72803618184935e-02 1.11443927588391e-02 -6.73647853995964e-02 +-2.12121212121212e+00 -2.14165309152243e-03 1.07204811423473e-02 -7.19089758691984e-02 +-1.51515151515152e+00 7.42011233954975e-02 1.04829792545349e-02 -7.61446613489007e-02 +-9.09090909090912e-01 1.51109201168349e-01 1.03234088196644e-02 -8.02509486552512e-02 +-3.03030303030302e-01 2.29344027261245e-01 1.03026060888101e-02 -8.42792874035115e-02 + 3.03030303030302e-01 3.07759215649705e-01 1.03155825014327e-02 -8.80359990719921e-02 + 9.09090909090912e-01 3.86363579252603e-01 1.03591204387569e-02 -9.15396518680686e-02 + 1.51515151515152e+00 4.65155136112344e-01 1.04514380417906e-02 -9.48849911388328e-02 + 2.12121212121212e+00 5.43742423609011e-01 1.05708486137771e-02 -9.80280317259123e-02 + 2.72727272727273e+00 6.21355563499191e-01 1.07685455281878e-02 -1.00538334680120e-01 + 3.33333333333333e+00 6.98247696483015e-01 1.09884995827544e-02 -1.02768385980751e-01 + 3.93939393939394e+00 7.74577272776593e-01 1.12160604908465e-02 -1.04764162336771e-01 + 4.54545454545455e+00 8.49123646294387e-01 1.15084433622475e-02 -1.06669894654905e-01 + 5.15151515151515e+00 9.22768835492197e-01 1.18149173971583e-02 -1.08443519681338e-01 + 5.75757575757576e+00 9.94281779511649e-01 1.21556943938836e-02 -1.09866171766382e-01 + 6.36363636363637e+00 1.06310529013751e+00 1.25630225021709e-02 -1.10999261303783e-01 + 6.96969696969697e+00 1.13016792278117e+00 1.30120459327629e-02 -1.11939153730602e-01 + 7.57575757575757e+00 1.19235719212211e+00 1.35489371100261e-02 -1.12757130291620e-01 + 8.18181818181818e+00 1.25253452840185e+00 1.41028478529467e-02 -1.13550777719788e-01 + 8.78787878787879e+00 1.31022818965375e+00 1.46613278249224e-02 -1.14419167648035e-01 + 9.39393939393939e+00 1.36351139175394e+00 1.60081512284208e-02 -1.14359279394763e-01 + 1.00000000000000e+01 1.40997780157282e+00 1.78443424094440e-02 -1.13736890758993e-01 + 1.06060606060606e+01 1.43923730215627e+00 2.09588631373841e-02 -1.12187901895665e-01 + 1.12121212121212e+01 1.45625328102718e+00 2.47924700140119e-02 -1.10420788252029e-01 + 1.18181818181818e+01 1.45052843686856e+00 2.93047053533567e-02 -1.08130034479078e-01 + 1.24242424242424e+01 1.37738927101704e+00 4.26630642527924e-02 -1.10097235207091e-01 + 1.30303030303030e+01 1.25402046394694e+00 5.95100927900937e-02 -1.13671143573967e-01 + 1.36363636363636e+01 1.20642687925599e+00 7.05802370100983e-02 -1.12460113720568e-01 + 1.42424242424242e+01 1.16512824375798e+00 8.18308265484637e-02 -1.11416728271022e-01 + 1.48484848484848e+01 1.13845165437591e+00 9.33501183013086e-02 -1.10513745021243e-01 + 1.54545454545455e+01 1.12012151200243e+00 1.05371259823310e-01 -1.12074593125414e-01 + 1.60606060606061e+01 1.10521158214097e+00 1.17537515544027e-01 -1.14635056143715e-01 + 1.66666666666667e+01 1.09605105013413e+00 1.29504477189816e-01 -1.18698748541531e-01 + 1.72727272727273e+01 1.09038474770029e+00 1.41619143192006e-01 -1.22755992205202e-01 + 1.78787878787879e+01 1.08898921460796e+00 1.53914338613840e-01 -1.26805354000924e-01 + 1.84848484848485e+01 1.09852690400848e+00 1.67121306650109e-01 -1.30271150233030e-01 + 1.90909090909091e+01 1.10900797848342e+00 1.80185918785840e-01 -1.33848294218024e-01 + 1.96969696969697e+01 1.10934527307501e+00 1.91151684117947e-01 -1.38883475019382e-01 + 2.03030303030303e+01 1.10872617200819e+00 2.02082800980853e-01 -1.43953835687333e-01 + 2.09090909090909e+01 1.10715062117621e+00 2.12979267414367e-01 -1.49203757196069e-01 + 2.15151515151515e+01 1.10557507034423e+00 2.23875733847882e-01 -1.54503423314042e-01 + 2.21212121212121e+01 1.10260124642550e+00 2.34778135695999e-01 -1.59652147931712e-01 + 2.27272727272727e+01 1.09403576887978e+00 2.45704273095417e-01 -1.64232639974624e-01 + 2.33333333333333e+01 1.08547029133405e+00 2.56630410494836e-01 -1.68847929010858e-01 + 2.39393939393939e+01 1.07690481378832e+00 2.67556547894255e-01 -1.73665468151725e-01 + 2.45454545454545e+01 1.07004041681628e+00 2.79119118191653e-01 -1.77890036537271e-01 + 2.51515151515151e+01 1.06336502473105e+00 2.90752401734336e-01 -1.82048720700615e-01 + 2.57575757575758e+01 1.05668963264583e+00 3.02385685277020e-01 -1.86207404863960e-01 + 2.63636363636364e+01 1.05078168869387e+00 3.14409261973987e-01 -1.90102460494435e-01 + 2.69696969696970e+01 1.04538545633799e+00 3.26693074541322e-01 -1.93821736457880e-01 + 2.75757575757576e+01 1.03998922398212e+00 3.38976887108657e-01 -1.97541012421324e-01 + 2.81818181818182e+01 1.03484090277918e+00 3.51437477732768e-01 -2.01170473836824e-01 + 2.87878787878788e+01 1.03027099131248e+00 3.64310515106369e-01 -2.04590385950606e-01 + 2.93939393939394e+01 1.02570107984578e+00 3.77183552479970e-01 -2.08010298064387e-01 + 3.00000000000000e+01 1.02113116837907e+00 3.90056589853572e-01 -2.11430210178169e-01 + 3.30000000000000e+01 1.00119460561295e+00 4.57145854597991e-01 -2.27086388641851e-01 + 3.60000000000000e+01 9.81921720811872e-01 5.27047589477837e-01 -2.41904140621254e-01 + 3.90000000000000e+01 9.61260291943995e-01 5.99606299882174e-01 -2.56159440416738e-01 + 4.20000000000000e+01 9.36935736815422e-01 6.73802755955525e-01 -2.70019544874094e-01 + 4.50000000000000e+01 9.11289556833257e-01 7.48405461801475e-01 -2.83768812367968e-01 + 4.80000000000000e+01 8.78369078677083e-01 8.22907477862781e-01 -2.97042946965006e-01 + 5.10000000000000e+01 8.41242012973183e-01 8.95844198388958e-01 -3.10074656049880e-01 + 5.40000000000000e+01 7.95701501741868e-01 9.65650227215581e-01 -3.22614713534726e-01 + 5.70000000000000e+01 7.50161338413173e-01 1.03545572276536e+00 -3.35153534620333e-01 + 6.00000000000000e+01 7.04621349034462e-01 1.10526095167874e+00 -3.47689985564868e-01 + 6.30000000000000e+01 6.43094140155942e-01 1.16178264450123e+00 -3.58895514925207e-01 + 6.60000000000000e+01 5.81566794241577e-01 1.21830422346273e+00 -3.70096619015063e-01 + 6.90000000000000e+01 5.20039448327212e-01 1.27482580242423e+00 -3.81292926550571e-01 + 7.20000000000000e+01 4.50922061318250e-01 1.31785610107633e+00 -3.91197073364813e-01 + 7.50000000000000e+01 3.78009809140240e-01 1.35414103575821e+00 -4.00450410082631e-01 + 7.80000000000000e+01 3.05096426319516e-01 1.39042638623652e+00 -4.09696121786907e-01 + 8.10000000000000e+01 2.30838925091062e-01 1.41846077220858e+00 -4.18058441063076e-01 + 8.40000000000000e+01 1.53893279831030e-01 1.42999379871131e+00 -4.24659851438870e-01 + 8.70000000000000e+01 7.69466467481749e-02 1.44152691331999e+00 -4.31250229720335e-01 + 9.00000000000000e+01 -3.36172637530740e-07 1.45305992801866e+00 -4.37829850424638e-01 + 9.30000000000000e+01 -5.38627383393683e-02 1.44152690151593e+00 -4.40933372026436e-01 + 9.60000000000000e+01 -1.07725146245282e-01 1.42999383096059e+00 -4.44037873446937e-01 + 9.90000000000000e+01 -1.61587565629768e-01 1.41846067229841e+00 -4.47143282683005e-01 + 1.02000000000000e+02 -2.13567566267535e-01 1.39042621049931e+00 -4.46986201155388e-01 + 1.05000000000000e+02 -2.64606377915867e-01 1.35414127581743e+00 -4.45198189623654e-01 + 1.08000000000000e+02 -3.15645479300682e-01 1.31785592534089e+00 -4.43410060853994e-01 + 1.11000000000000e+02 -3.64027804983567e-01 1.27482531278278e+00 -4.40372525830713e-01 + 1.14000000000000e+02 -4.07096660176995e-01 1.21830438150688e+00 -4.34835474017044e-01 + 1.17000000000000e+02 -4.50165647641462e-01 1.16178301844503e+00 -4.29298134131730e-01 + 1.20000000000000e+02 -4.93234679359343e-01 1.10526141350648e+00 -4.23760689165608e-01 + 1.23000000000000e+02 -5.25113031922223e-01 1.03545618459309e+00 -4.16386674177567e-01 + 1.26000000000000e+02 -5.56991306252975e-01 9.65650689048611e-01 -4.09012018270847e-01 + 1.29000000000000e+02 -5.88869424113624e-01 8.95844660221987e-01 -4.01636451380112e-01 + 1.32000000000000e+02 -6.13161255971681e-01 8.22874224418486e-01 -3.94888279932588e-01 + 1.35000000000000e+02 -6.33659953815723e-01 7.48321588883743e-01 -3.88452749684788e-01 + 1.38000000000000e+02 -6.54157816774948e-01 6.73769502775918e-01 -3.82015808693097e-01 + 1.41000000000000e+02 -6.72519858324716e-01 6.00666916692205e-01 -3.77450446527224e-01 + 1.44000000000000e+02 -6.86610239724511e-01 5.30463342418639e-01 -3.76628216553060e-01 + 1.47000000000000e+02 -7.00700113478808e-01 4.60260101212902e-01 -3.75801923510001e-01 + 1.50000000000000e+02 -7.14789733419415e-01 3.90057026535133e-01 -3.74971722702591e-01 + 1.53000000000000e+02 -7.26083351466705e-01 3.34899268561139e-01 -3.90699237662118e-01 + 1.56000000000000e+02 -7.37376919859767e-01 2.79741654709182e-01 -4.06434613881277e-01 + 1.59000000000000e+02 -7.49369636696621e-01 2.24584258977831e-01 -4.22178074951782e-01 + 1.62000000000000e+02 -6.78487565748514e-01 1.85578685533409e-01 -4.41942545112509e-01 + 1.65000000000000e+02 -5.65406079877361e-01 1.54649159831924e-01 -4.63714630913619e-01 + 1.68000000000000e+02 -4.44894229884888e-01 1.23719388559455e-01 -4.85485784604534e-01 + 1.71000000000000e+02 -3.31496503011607e-01 9.27895975192221e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.20997628314192e-01 6.18597669425397e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.09575522573893e-01 5.10040358195194e-02 -1.48718747985670e-01 + 1.80000000000000e+02 0.00000000000000e+00 5.02017886725028e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_13.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_13.dat new file mode 100644 index 00000000..92b13a2b --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_13.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF13_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF13_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.132099 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.682019 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-9.246885 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.467246 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.116975 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.010706 Cd0 ! 2D drag coefficient value at 0-lift. +-0.078417 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 4.87439042124992e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.13601999469549e-01 4.87439042124992e-02 1.19176415715757e-01 +-1.74000000000000e+02 2.28858413112315e-01 5.84925712756744e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.43288316600078e-01 8.77388925055090e-02 3.60000410445527e-01 +-1.68000000000000e+02 4.57070767928178e-01 1.17275421818159e-01 3.18708357160145e-01 +-1.65000000000000e+02 5.71129134749526e-01 1.46957051785061e-01 1.96771841693633e-01 +-1.62000000000000e+02 6.81811167127312e-01 1.76639445546079e-01 7.48344304685462e-02 +-1.59000000000000e+02 7.50644491717964e-01 2.14984200570790e-01 -5.07801650458084e-03 +-1.56000000000000e+02 7.37523770619090e-01 2.70653385079522e-01 1.06132839067504e-03 +-1.53000000000000e+02 7.25223845001242e-01 3.26322594869384e-01 8.04336961373999e-03 +-1.50000000000000e+02 7.12923727515902e-01 3.81991851817702e-01 1.50360358377684e-02 +-1.47000000000000e+02 6.99053142386901e-01 4.52474247296891e-01 2.96995895978959e-02 +-1.44000000000000e+02 6.85182304280847e-01 5.22956853217613e-01 4.43686473866053e-02 +-1.41000000000000e+02 6.71310960202625e-01 5.93439880036427e-01 5.90442691380621e-02 +-1.38000000000000e+02 6.53114909413893e-01 6.66865106551800e-01 7.40923427363092e-02 +-1.35000000000000e+02 6.32756514043044e-01 7.41761426946880e-01 8.93274281204840e-02 +-1.32000000000000e+02 6.12397285385553e-01 8.16658429255323e-01 1.04567050663022e-01 +-1.29000000000000e+02 5.88229626117782e-01 8.89991527762646e-01 1.19947402883451e-01 +-1.26000000000000e+02 5.56445087582313e-01 9.60196811237631e-01 1.35603342201244e-01 +-1.23000000000000e+02 5.24660391861842e-01 1.03040155838038e+00 1.51263206732352e-01 +-1.20000000000000e+02 4.92875617551808e-01 1.10060603736703e+00 1.66927716624602e-01 +-1.17000000000000e+02 4.49867900921898e-01 1.15756854481392e+00 1.81710954488631e-01 +-1.14000000000000e+02 4.06860185400029e-01 1.21453080878140e+00 1.96498840434726e-01 +-1.11000000000000e+02 3.63852515987308e-01 1.27149263759476e+00 2.11292122383483e-01 +-1.08000000000000e+02 3.15513980484258e-01 1.31498386088960e+00 2.24396145865201e-01 +-1.05000000000000e+02 2.64509971345682e-01 1.35173967885259e+00 2.36659399343987e-01 +-1.02000000000000e+02 2.13506123000612e-01 1.38849507562982e+00 2.48931685712608e-01 +-9.90000000000000e+01 1.61553244788091e-01 1.41700492873292e+00 2.59841073682875e-01 +-9.60000000000000e+01 1.07702265733195e-01 1.42902333732993e+00 2.68014448982559e-01 +-9.30000000000000e+01 5.38512980694728e-02 1.44104165411306e+00 2.76206223274710e-01 +-9.00000000000000e+01 3.36101235326894e-07 1.45305992499009e+00 2.84424528048508e-01 +-8.70000000000000e+01 -5.38512429529903e-02 1.44104166641377e+00 2.88179235636605e-01 +-8.40000000000000e+01 -1.07702416312529e-01 1.42902330372378e+00 2.92116238002531e-01 +-8.10000000000000e+01 -1.61552778284462e-01 1.41700503284675e+00 2.96384910251329e-01 +-7.80000000000000e+01 -2.13505875975934e-01 1.38849525364560e+00 2.96589518980285e-01 +-7.50000000000000e+01 -2.64510308783977e-01 1.35173943568081e+00 2.94839423717641e-01 +-7.20000000000000e+01 -3.15513733464136e-01 1.31498403890358e+00 2.93086106067290e-01 +-6.90000000000000e+01 -3.63852143411397e-01 1.27149313105570e+00 2.90081406410839e-01 +-6.60000000000000e+01 -4.06860305658320e-01 1.21453064950441e+00 2.84576673209790e-01 +-6.30000000000000e+01 -4.49868185458844e-01 1.15756816795312e+00 2.79066340953731e-01 +-6.00000000000000e+01 -4.92875827838210e-01 1.10060557289787e+00 2.73549730680385e-01 +-5.70000000000000e+01 -5.24660602148244e-01 1.03040109391122e+00 2.66198212861305e-01 +-5.40000000000000e+01 -5.56445297867155e-01 9.60196346763153e-01 2.58837329083779e-01 +-5.10000000000000e+01 -5.88229836402624e-01 8.89991063288168e-01 2.51465219825159e-01 +-4.80000000000000e+01 -6.14103823719259e-01 8.16681742398572e-01 2.44260248495120e-01 +-4.50000000000000e+01 -6.37022630417404e-01 7.41820452687947e-01 2.37125494405563e-01 +-4.20000000000000e+01 -6.54821434392937e-01 6.66888419508008e-01 2.31318374407913e-01 +-3.90000000000000e+01 -6.71686771395590e-01 5.92370007881034e-01 2.26128186404354e-01 +-3.60000000000000e+01 -6.85959395421995e-01 5.19513505734105e-01 2.23293038777573e-01 +-3.30000000000000e+01 -6.99228262265746e-01 4.49336693515259e-01 2.23281989121863e-01 +-3.00000000000000e+01 -7.12923826438148e-01 3.81991413473000e-01 2.26408555434034e-01 +-2.93939393939394e+01 -7.16063242755988e-01 3.69070660189083e-01 2.27884386933293e-01 +-2.87878787878788e+01 -7.19202659073829e-01 3.56149906905165e-01 2.29360218432552e-01 +-2.81818181818182e+01 -7.22342075391669e-01 3.43229153621248e-01 2.30836049931811e-01 +-2.75757575757576e+01 -7.25879646593120e-01 3.30722936547354e-01 2.32910797277799e-01 +-2.69696969696970e+01 -7.29587870240511e-01 3.18394393090142e-01 2.35242244863728e-01 +-2.63636363636364e+01 -7.33296093887901e-01 3.06065849632931e-01 2.37573692449656e-01 +-2.57575757575758e+01 -7.37358552649944e-01 2.93998789131352e-01 2.40351599308823e-01 +-2.51515151515151e+01 -7.41952281524987e-01 2.82323892121304e-01 2.43799091024856e-01 +-2.45454545454545e+01 -7.46546010400030e-01 2.70648995111257e-01 2.47246582740888e-01 +-2.39393939393939e+01 -7.51270810440089e-01 2.59045122954569e-01 2.50842931746802e-01 +-2.33333333333333e+01 -7.57175276341296e-01 2.48080488228869e-01 2.55779025181128e-01 +-2.27272727272727e+01 -7.63079742242504e-01 2.37115853503168e-01 2.61669103088351e-01 +-2.21212121212121e+01 -7.68984208143711e-01 2.26151218777467e-01 2.66787136053718e-01 +-2.15151515151515e+01 -7.98558741205574e-01 2.18978684775324e-01 2.59268734046189e-01 +-2.09090909090909e+01 -8.39976990506764e-01 2.12754419878834e-01 2.46412877782449e-01 +-2.03030303030303e+01 -8.77626065799621e-01 2.06530154982344e-01 2.32873392185209e-01 +-1.96969696969697e+01 -9.12482277726115e-01 2.00406617873157e-01 2.16079231533506e-01 +-1.90909090909091e+01 -9.44653374099275e-01 1.94383802853063e-01 1.96196944890485e-01 +-1.84848484848485e+01 -9.76556738297402e-01 1.88868061750279e-01 1.76251855690617e-01 +-1.78787878787879e+01 -1.00830988060465e+00 1.83317104202353e-01 1.56918611734039e-01 +-1.72727272727273e+01 -1.03997095936839e+00 1.76526361566991e-01 1.37892024373634e-01 +-1.66666666666667e+01 -1.07157049021422e+00 1.70932183497624e-01 1.18865299601930e-01 +-1.60606060606061e+01 -1.10312717894668e+00 1.65593044673498e-01 9.98384624039651e-02 +-1.54545454545455e+01 -1.11507119669234e+00 1.58446673227857e-01 8.41684149093784e-02 +-1.48484848484848e+01 -1.11477271836942e+00 1.50207476871942e-01 7.03417694480957e-02 +-1.42424242424242e+01 -1.08423257216199e+00 1.39348090503607e-01 6.20173634895011e-02 +-1.36363636363636e+01 -1.04896032877406e+00 1.28119902100447e-01 5.40305604199166e-02 +-1.30303030303030e+01 -1.01046372636334e+00 1.16637431776633e-01 4.49260984726437e-02 +-1.24242424242424e+01 -9.69201936614847e-01 1.05499178414566e-01 3.32219061711730e-02 +-1.18181818181818e+01 -9.27767400425763e-01 9.49119646912448e-02 2.16483145014490e-02 +-1.12121212121212e+01 -8.86480598336731e-01 8.55891565143775e-02 1.06380104995937e-02 +-1.06060606060606e+01 -8.43514329482308e-01 7.70087578463476e-02 1.14934323347435e-03 +-1.00000000000000e+01 -7.98856262424989e-01 6.88029421594717e-02 -7.48514667045178e-03 +-9.39393939393939e+00 -7.63413220908471e-01 5.72619896948118e-02 -1.75515357315967e-02 +-8.78787878787879e+00 -7.36855164567028e-01 4.49241428048966e-02 -2.67299768784618e-02 +-8.18181818181818e+00 -7.21915221248136e-01 3.22666539335863e-02 -3.43270785756021e-02 +-7.57575757575758e+00 -6.80107790322963e-01 2.47696277944221e-02 -3.79455763749705e-02 +-6.96969696969697e+00 -6.25477329057538e-01 2.00640152396707e-02 -4.00917938604969e-02 +-6.36363636363636e+00 -5.45385415536934e-01 1.76703500104717e-02 -4.47595761821227e-02 +-5.75757575757576e+00 -4.65240863542729e-01 1.56676325439870e-02 -4.94624634693340e-02 +-5.15151515151515e+00 -3.85177304810552e-01 1.41170830647471e-02 -5.47806233959061e-02 +-4.54545454545454e+00 -3.05186013364708e-01 1.29299720858053e-02 -6.00838561640560e-02 +-3.93939393939394e+00 -2.25496618815856e-01 1.19194070246950e-02 -6.52622261528225e-02 +-3.33333333333333e+00 -1.50095854632385e-01 1.14661881877472e-02 -7.00888229733615e-02 +-2.72727272727273e+00 -7.44807687769198e-02 1.10712748312864e-02 -7.44803490024561e-02 +-2.12121212121212e+00 1.36241455738510e-03 1.06994983826237e-02 -7.84888091237353e-02 +-1.51515151515152e+00 7.79762724684800e-02 1.04764559842521e-02 -8.22769309796209e-02 +-9.09090909090912e-01 1.55093196357546e-01 1.03282187235360e-02 -8.59707384355398e-02 +-3.03030303030302e-01 2.33690956667381e-01 1.03497391513504e-02 -8.95788413712978e-02 + 3.03030303030302e-01 3.12230375322369e-01 1.03960832854878e-02 -9.29631294177707e-02 + 9.09090909090912e-01 3.90723642801794e-01 1.04626363547074e-02 -9.61417302922719e-02 + 1.51515151515152e+00 4.69223374488536e-01 1.05181765096339e-02 -9.91269841658500e-02 + 2.12121212121212e+00 5.47419021984281e-01 1.05986866302366e-02 -1.01951326898863e-01 + 2.72727272727273e+00 6.24353465324347e-01 1.07913520395363e-02 -1.04285374966365e-01 + 3.33333333333333e+00 7.00719049213690e-01 1.09882631518878e-02 -1.06367221462522e-01 + 3.93939393939394e+00 7.76662113860127e-01 1.11995924883540e-02 -1.08233532083904e-01 + 4.54545454545455e+00 8.51062527788879e-01 1.14677130840408e-02 -1.09981051673887e-01 + 5.15151515151515e+00 9.24618318776539e-01 1.17484143214346e-02 -1.11607861589439e-01 + 5.75757575757576e+00 9.96131045922850e-01 1.20661413484365e-02 -1.12922063002211e-01 + 6.36363636363637e+00 1.06530124476682e+00 1.24411013682114e-02 -1.13971538180268e-01 + 6.96969696969697e+00 1.13294924210721e+00 1.28499924886479e-02 -1.14845663241843e-01 + 7.57575757575757e+00 1.19647826401428e+00 1.33185723521347e-02 -1.15548552499834e-01 + 8.18181818181818e+00 1.25852214595514e+00 1.37822042010170e-02 -1.16225412192196e-01 + 8.78787878787879e+00 1.31953258382690e+00 1.42014660644829e-02 -1.16973536925898e-01 + 9.39393939393939e+00 1.37722282574832e+00 1.52499336492677e-02 -1.16582058795787e-01 + 1.00000000000000e+01 1.42782587729733e+00 1.66203055937069e-02 -1.15506211836930e-01 + 1.06060606060606e+01 1.46349417020859e+00 1.89049864855517e-02 -1.13428166197566e-01 + 1.12121212121212e+01 1.48851533807067e+00 2.17360570752516e-02 -1.11086533657004e-01 + 1.18181818181818e+01 1.49375899629952e+00 2.51530002017571e-02 -1.08182154414350e-01 + 1.24242424242424e+01 1.39019183027460e+00 4.01241150571406e-02 -1.10396226977541e-01 + 1.30303030303030e+01 1.23558289690220e+00 5.95330302498055e-02 -1.14566124306707e-01 + 1.36363636363636e+01 1.17983620766855e+00 6.99436564860179e-02 -1.13107355391663e-01 + 1.42424242424242e+01 1.13261025086269e+00 8.02708219712224e-02 -1.11811426810697e-01 + 1.48484848484848e+01 1.10434568242928e+00 9.05273912159466e-02 -1.10627750277284e-01 + 1.54545454545455e+01 1.08509274406338e+00 1.01044358671353e-01 -1.11196367879537e-01 + 1.60606060606061e+01 1.06957515718470e+00 1.11649937873699e-01 -1.12390832093296e-01 + 1.66666666666667e+01 1.06064834245443e+00 1.22271986435775e-01 -1.14792794654718e-01 + 1.72727272727273e+01 1.05566858193663e+00 1.33123890508199e-01 -1.17423076146692e-01 + 1.78787878787879e+01 1.05551304883942e+00 1.44256732007905e-01 -1.20332417004491e-01 + 1.84848484848485e+01 1.06725149416938e+00 1.56758954022331e-01 -1.23671200892881e-01 + 1.90909090909091e+01 1.08077437232159e+00 1.69418290548337e-01 -1.27335467738334e-01 + 1.96969696969697e+01 1.08755966688782e+00 1.81027946977387e-01 -1.32236261105666e-01 + 2.03030303030303e+01 1.09235894047421e+00 1.92457859565650e-01 -1.37361247840428e-01 + 2.09090909090909e+01 1.09517208072444e+00 2.03708018144370e-01 -1.42882710356362e-01 + 2.15151515151515e+01 1.09798522097467e+00 2.14958176723090e-01 -1.48463527012242e-01 + 2.21212121212121e+01 1.09854840217806e+00 2.26151218777467e-01 -1.53912838053508e-01 + 2.27272727272727e+01 1.09011406223620e+00 2.37115853503168e-01 -1.58878474315141e-01 + 2.33333333333333e+01 1.08167972229433e+00 2.48080488228869e-01 -1.63885629560299e-01 + 2.39393939393939e+01 1.07324538235247e+00 2.59045122954570e-01 -1.69134105044946e-01 + 2.45454545454545e+01 1.06649517893070e+00 2.70648995111257e-01 -1.73708687311479e-01 + 2.51515151515151e+01 1.05993209776363e+00 2.82323892121304e-01 -1.78208394164471e-01 + 2.57575757575758e+01 1.05336901659657e+00 2.93998789131352e-01 -1.82708101017462e-01 + 2.63636363636364e+01 1.04756481639234e+00 3.06065849632931e-01 -1.86905429493079e-01 + 2.69696969696970e+01 1.04226661544969e+00 3.18394393090142e-01 -1.90901141057530e-01 + 2.75757575757576e+01 1.03696841450705e+00 3.30722936547354e-01 -1.94896852621981e-01 + 2.81818181818182e+01 1.03191481277606e+00 3.43229153621248e-01 -1.98788509538092e-01 + 2.87878787878788e+01 1.02743189358122e+00 3.56149906905165e-01 -2.02437393101785e-01 + 2.93939393939394e+01 1.02294897438639e+00 3.69070660189083e-01 -2.06086276665478e-01 + 3.00000000000000e+01 1.01846605519156e+00 3.81991413473000e-01 -2.09735160229171e-01 + 3.30000000000000e+01 9.98896269436472e-01 4.49336693515259e-01 -2.26306031891365e-01 + 3.60000000000000e+01 9.79942808607176e-01 5.19513505734105e-01 -2.41883781570832e-01 + 3.90000000000000e+01 9.59552820645265e-01 5.92370007881034e-01 -2.56418564967551e-01 + 4.20000000000000e+01 9.35459598863631e-01 6.66888419508008e-01 -2.70550711580551e-01 + 4.50000000000000e+01 9.10032841705360e-01 7.41820452687947e-01 -2.84583661386136e-01 + 4.80000000000000e+01 8.77291164853731e-01 8.16681742398572e-01 -2.98125199456282e-01 + 5.10000000000000e+01 8.40327861925211e-01 8.89991063288168e-01 -3.11430203584398e-01 + 5.40000000000000e+01 7.94921035444153e-01 9.60196346763153e-01 -3.24242564733735e-01 + 5.70000000000000e+01 7.49514555844441e-01 1.03040109391122e+00 -3.37060914767786e-01 + 6.00000000000000e+01 7.04108249684082e-01 1.10060557289787e+00 -3.49883096668555e-01 + 6.30000000000000e+01 6.42668579003910e-01 1.15756816795312e+00 -3.61391087463078e-01 + 6.60000000000000e+01 5.81228770892357e-01 1.21453064950441e+00 -3.72900577797390e-01 + 6.90000000000000e+01 5.19788962780805e-01 1.27149313105570e+00 -3.84410594625320e-01 + 7.20000000000000e+01 4.50734175503690e-01 1.31498403890358e+00 -3.94650756300015e-01 + 7.50000000000000e+01 3.77872054532562e-01 1.35173943568081e+00 -4.04254594429255e-01 + 7.80000000000000e+01 3.05008674950305e-01 1.38849525364560e+00 -4.13856378244412e-01 + 8.10000000000000e+01 2.30789950548293e-01 1.41700503284675e+00 -4.22588303462247e-01 + 8.40000000000000e+01 1.53860630065887e-01 1.42902330372378e+00 -4.29581922692123e-01 + 8.70000000000000e+01 7.69303218853695e-02 1.44104166641377e+00 -4.36570514980957e-01 + 9.00000000000000e+01 -3.36101235559296e-07 1.45305992499009e+00 -4.43554018258070e-01 + 9.30000000000000e+01 -5.38512980694728e-02 1.44104165411306e+00 -4.46821429870465e-01 + 9.60000000000000e+01 -1.07702265733195e-01 1.42902333732993e+00 -4.50090063193436e-01 + 9.90000000000000e+01 -1.61553244788092e-01 1.41700492873292e+00 -4.53359826724784e-01 + 1.02000000000000e+02 -2.13506123000612e-01 1.38849507562982e+00 -4.53358356880233e-01 + 1.05000000000000e+02 -2.64509971345682e-01 1.35173967885259e+00 -4.51721761227933e-01 + 1.08000000000000e+02 -3.15513980484258e-01 1.31498386088960e+00 -4.50085315220303e-01 + 1.11000000000000e+02 -3.63852515987308e-01 1.27149263759476e+00 -4.47194708590916e-01 + 1.14000000000000e+02 -4.06860185400029e-01 1.21453080878140e+00 -4.41794921939120e-01 + 1.17000000000000e+02 -4.49867900921898e-01 1.15756854481392e+00 -4.36395234719870e-01 + 1.20000000000000e+02 -4.92875617551808e-01 1.10060603736703e+00 -4.30995807908883e-01 + 1.23000000000000e+02 -5.24660391861842e-01 1.03040155838038e+00 -4.23756434063717e-01 + 1.26000000000000e+02 -5.56445087582313e-01 9.60196811237631e-01 -4.16516996565852e-01 + 1.29000000000000e+02 -5.88229626117782e-01 8.89991527762645e-01 -4.09277210165741e-01 + 1.32000000000000e+02 -6.12397285385553e-01 8.16658429255322e-01 -4.02686723110960e-01 + 1.35000000000000e+02 -6.32756514043044e-01 7.41761426946880e-01 -3.96420479648652e-01 + 1.38000000000000e+02 -6.53114909413893e-01 6.66865106551800e-01 -3.90153798231996e-01 + 1.41000000000000e+02 -6.71310960202625e-01 5.93439880036427e-01 -3.85803144277468e-01 + 1.44000000000000e+02 -6.85182304280847e-01 5.22956853217613e-01 -3.85284327936909e-01 + 1.47000000000000e+02 -6.99053142386901e-01 4.52474247296891e-01 -3.84763389697547e-01 + 1.50000000000000e+02 -7.12923727515902e-01 3.81991851817701e-01 -3.84240435098614e-01 + 1.53000000000000e+02 -7.17713468565102e-01 3.27562673383999e-01 -4.00044506289342e-01 + 1.56000000000000e+02 -7.22503170158526e-01 2.73133681485946e-01 -4.15858223301289e-01 + 1.59000000000000e+02 -7.28127146175927e-01 2.18704987836167e-01 -4.31681847835051e-01 + 1.62000000000000e+02 -6.57546925365099e-01 1.80505932981753e-01 -4.49567289106761e-01 + 1.65000000000000e+02 -5.47955571734396e-01 1.50421834782562e-01 -4.68480081499263e-01 + 1.68000000000000e+02 -4.33508829076636e-01 1.20337481324609e-01 -4.87391973738006e-01 + 1.71000000000000e+02 -3.23710952534405e-01 9.02531541751285e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.15807282191796e-01 6.01688796438182e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.07173368611120e-01 4.95765701106933e-02 -1.48970519644697e-01 + 1.80000000000000e+02 0.00000000000000e+00 4.87439042124992e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_14.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_14.dat new file mode 100644 index 00000000..229833e5 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_14.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF14_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF14_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.166094 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.851014 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-9.637248 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.502705 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.198117 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.010692 Cd0 ! 2D drag coefficient value at 0-lift. +-0.084655 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 4.74971586892991e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.11000230721027e-01 4.74971586892991e-02 1.19348662665291e-01 +-1.74000000000000e+02 2.23249498352695e-01 5.69965146964868e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.34875005612777e-01 8.54948945736924e-02 3.60000410445527e-01 +-1.68000000000000e+02 4.46351865610983e-01 1.14102183123101e-01 3.18009867522619e-01 +-1.65000000000000e+02 5.57999076618718e-01 1.42763924737488e-01 1.95025625752222e-01 +-1.62000000000000e+02 6.68256570415867e-01 1.71426528385083e-01 7.20405402903902e-02 +-1.59000000000000e+02 7.38112012967269e-01 2.08990990812950e-01 -9.03147344265643e-03 +-1.56000000000000e+02 7.28701413125268e-01 2.64358869655133e-01 -4.58368783527860e-03 +-1.53000000000000e+02 7.20014801391652e-01 3.19726771476650e-01 4.84852864421045e-04 +-1.50000000000000e+02 7.11327966966767e-01 3.75094720564407e-01 5.41799540089436e-03 +-1.47000000000000e+02 6.97644694809602e-01 4.45815984052867e-01 2.02835508949186e-02 +-1.44000000000000e+02 6.83961170390853e-01 5.16537495536617e-01 3.51512653382985e-02 +-1.41000000000000e+02 6.70277141430926e-01 5.87259503028655e-01 5.00215815438595e-02 +-1.38000000000000e+02 6.52223041697912e-01 6.60960643393727e-01 6.52179053138514e-02 +-1.35000000000000e+02 6.31983915443519e-01 7.36151344151820e-01 8.05776041224766e-02 +-1.32000000000000e+02 6.11743957269201e-01 8.11342840122296e-01 9.59393162430393e-02 +-1.29000000000000e+02 5.87682487226497e-01 8.84986078503406e-01 1.11444964032245e-01 +-1.26000000000000e+02 5.55977975337812e-01 9.55532794347773e-01 1.27236023845822e-01 +-1.23000000000000e+02 5.24273305652762e-01 1.02607897125153e+00 1.43028582986147e-01 +-1.20000000000000e+02 4.92568557072479e-01 1.09662487869506e+00 1.58822953785748e-01 +-1.17000000000000e+02 4.49613275538441e-01 1.15396443469656e+00 1.73777165711677e-01 +-1.14000000000000e+02 4.06657958215625e-01 1.21130374584807e+00 1.88732854747424e-01 +-1.11000000000000e+02 3.63702613318511e-01 1.26864261896506e+00 2.03690155444885e-01 +-1.08000000000000e+02 3.15401526057875e-01 1.31252774478765e+00 2.16985072342206e-01 +-1.05000000000000e+02 2.64427526911241e-01 1.34968589451878e+00 2.29449925939083e-01 +-1.02000000000000e+02 2.13453578289375e-01 1.38684361845383e+00 2.41917717292569e-01 +-9.90000000000000e+01 1.61523894481612e-01 1.41576001404799e+00 2.53026853626378e-01 +-9.60000000000000e+01 1.07682698904138e-01 1.42819339598511e+00 2.61414906151363e-01 +-9.30000000000000e+01 5.38415146430987e-02 1.44062668293820e+00 2.69809084986757e-01 +-9.00000000000000e+01 3.36040174186750e-07 1.45305992240014e+00 2.78212559061635e-01 +-8.70000000000000e+01 -5.38414595366295e-02 1.44062669566363e+00 2.81853755036713e-01 +-8.40000000000000e+01 -1.07682849456116e-01 1.42819336121861e+00 2.85569122512613e-01 +-8.10000000000000e+01 -1.61523428062735e-01 1.41576012175667e+00 2.89419982005163e-01 +-7.80000000000000e+01 -2.13453331409509e-01 1.38684379841819e+00 2.89665265635515e-01 +-7.50000000000000e+01 -2.64427864151593e-01 1.34968564868523e+00 2.88138738774038e-01 +-7.20000000000000e+01 -3.15401279183096e-01 1.31252792475019e+00 2.86609458179388e-01 +-6.90000000000000e+01 -3.63702241195888e-01 1.26864311569235e+00 2.83820667109906e-01 +-6.60000000000000e+01 -4.06658078327606e-01 1.21130358551679e+00 2.78515251076842e-01 +-6.30000000000000e+01 -4.49613559728479e-01 1.15396405534123e+00 2.73204848612241e-01 +-6.00000000000000e+01 -4.92568766829435e-01 1.09662441196703e+00 2.67888882389067e-01 +-5.70000000000000e+01 -5.24273515409718e-01 1.02607850452350e+00 2.60728337244673e-01 +-5.40000000000000e+01 -5.55978185093202e-01 9.55532327614396e-01 2.53559556903730e-01 +-5.10000000000000e+01 -5.87682696981887e-01 8.84985611770030e-01 2.46380928095060e-01 +-4.80000000000000e+01 -6.13458630295659e-01 8.11357652574190e-01 2.39383508326475e-01 +-4.50000000000000e+01 -6.36270369602626e-01 7.36189121222556e-01 2.32464914094013e-01 +-4.20000000000000e+01 -6.53937701306032e-01 6.60975455724981e-01 2.26919127213316e-01 +-3.90000000000000e+01 -6.70664549725515e-01 5.86181715938499e-01 2.21997712524231e-01 +-3.60000000000000e+01 -6.84774756509486e-01 5.13070549905569e-01 2.19442879100228e-01 +-3.30000000000000e+01 -6.97852537348206e-01 4.42658498578043e-01 2.19788443952018e-01 +-3.00000000000000e+01 -7.11328064353672e-01 3.75094280797430e-01 2.23361039140397e-01 +-2.93939393939394e+01 -7.14415682762428e-01 3.62132722086743e-01 2.24952236186361e-01 +-2.87878787878788e+01 -7.17503301171185e-01 3.49171163376055e-01 2.26543433232325e-01 +-2.81818181818182e+01 -7.20590919579942e-01 3.36209604665368e-01 2.28134630278289e-01 +-2.75757575757576e+01 -7.24071834030542e-01 3.23664369017940e-01 2.30343477172995e-01 +-2.69696969696970e+01 -7.27721318387681e-01 3.11297572847134e-01 2.32817053854427e-01 +-2.63636363636364e+01 -7.31370802744820e-01 2.98930776676328e-01 2.35290630535858e-01 +-2.57575757575758e+01 -7.35371080478430e-01 2.86826529936594e-01 2.38225234034872e-01 +-2.51515151515151e+01 -7.39897466519906e-01 2.75116046152996e-01 2.41851270312120e-01 +-2.45454545454545e+01 -7.44423852561381e-01 2.63405562369399e-01 2.45477306589367e-01 +-2.39393939393939e+01 -7.49080204989271e-01 2.51766369918421e-01 2.49257235504190e-01 +-2.33333333333333e+01 -7.54906280057009e-01 2.40768813263367e-01 2.54422227951541e-01 +-2.27272727272727e+01 -7.60732355124748e-01 2.29771256608312e-01 2.60428793385145e-01 +-2.21212121212121e+01 -7.66558430192487e-01 2.18773699953258e-01 2.65754286761814e-01 +-2.15151515151515e+01 -8.00687554276612e-01 2.12395791755905e-01 2.54131477053226e-01 +-2.09090909090909e+01 -8.47011591503202e-01 2.07173092829286e-01 2.36349555357985e-01 +-2.03030303030303e+01 -8.90594276628836e-01 2.01950393902668e-01 2.17964558879003e-01 +-1.96969696969697e+01 -9.33116480486079e-01 1.96765628796972e-01 1.98214287245217e-01 +-1.90909090909091e+01 -9.74622494568323e-01 1.91618795366269e-01 1.77245579244523e-01 +-1.84848484848485e+01 -1.01601768577475e+00 1.86919414620951e-01 1.56221773196698e-01 +-1.78787878787879e+01 -1.05735116332665e+00 1.82188959514290e-01 1.35737748819307e-01 +-1.72727272727273e+01 -1.09864750288064e+00 1.76364686193561e-01 1.15524161434742e-01 +-1.66666666666667e+01 -1.13991853932663e+00 1.71295280735592e-01 9.53103144961163e-02 +-1.60606060606061e+01 -1.18117196285153e+00 1.66429521167139e-01 7.50962551972795e-02 +-1.54545454545455e+01 -1.19791272454831e+00 1.59575377638483e-01 5.91097556474128e-02 +-1.48484848484848e+01 -1.19934186806973e+00 1.51502853954205e-01 4.54449853411950e-02 +-1.42424242424242e+01 -1.16297897530355e+00 1.40460445425891e-01 3.82990945588821e-02 +-1.36363636363636e+01 -1.12077036373998e+00 1.29002431424042e-01 3.11065404436185e-02 +-1.30303030303030e+01 -1.07463320183473e+00 1.17263267706531e-01 2.26980761363050e-02 +-1.24242424242424e+01 -1.02518157920182e+00 1.05918643160515e-01 1.17933498379386e-02 +-1.18181818181818e+01 -9.75681942398755e-01 9.51959685529269e-02 1.19873623725293e-03 +-1.12121212121212e+01 -9.26571076805030e-01 8.58848934178665e-02 -8.41861521656647e-03 +-1.06060606060606e+01 -8.75664896114804e-01 7.74090431182947e-02 -1.63777998285526e-02 +-1.00000000000000e+01 -8.23237071758609e-01 6.93728235267388e-02 -2.34138528773980e-02 +-9.39393939393939e+00 -7.82111343672048e-01 5.75636308912248e-02 -3.21020160083091e-02 +-8.78787878787879e+00 -7.51375159974407e-01 4.47516034625548e-02 -3.98906956582438e-02 +-8.18181818181818e+00 -7.35088054943470e-01 3.08041630438302e-02 -4.60682064471990e-02 +-7.57575757575758e+00 -6.92836122752420e-01 2.31579933295670e-02 -4.89829934537834e-02 +-6.96969696969697e+00 -6.37949933369482e-01 1.87032507714761e-02 -5.07384454242695e-02 +-6.36363636363636e+00 -5.54161342148495e-01 1.67784052774049e-02 -5.53503816254145e-02 +-5.75757575757576e+00 -4.70840124165288e-01 1.50845427200835e-02 -5.98951476736281e-02 +-5.15151515151515e+00 -3.88292011066822e-01 1.36982538638481e-02 -6.45572843794330e-02 +-4.54545454545454e+00 -3.06502440552051e-01 1.26562227449715e-02 -6.91008881961310e-02 +-3.93939393939394e+00 -2.25310842700356e-01 1.17673191515673e-02 -7.35346491057446e-02 +-3.33333333333333e+00 -1.47988215381915e-01 1.13325276777439e-02 -7.76194041395815e-02 +-2.72727272727273e+00 -7.09984158942061e-02 1.09783067702849e-02 -8.14085077704442e-02 +-2.12121212121212e+00 5.67824274921396e-03 1.06696224794102e-02 -8.49142606714796e-02 +-1.51515151515152e+00 8.26102586756291e-02 1.04667274124626e-02 -8.82711832196438e-02 +-9.09090909090912e-01 1.59969016769918e-01 1.03323320303745e-02 -9.15655050496302e-02 +-3.03030303030302e-01 2.38974448513455e-01 1.03900461416016e-02 -9.47661275562079e-02 + 3.03030303030302e-01 3.17646859605712e-01 1.04649254982203e-02 -9.77901212356652e-02 + 9.09090909090912e-01 3.96007393557534e-01 1.05511605199152e-02 -1.00651121145792e-01 + 1.51515151515152e+00 4.74169429973799e-01 1.05752495413395e-02 -1.03293525376690e-01 + 2.12121212121212e+00 5.51911940760023e-01 1.06224929903068e-02 -1.05813765929291e-01 + 2.72727272727273e+00 6.28056580841275e-01 1.08108555850528e-02 -1.07977517357485e-01 + 3.33333333333333e+00 7.03798053899655e-01 1.09879017716880e-02 -1.09916646422344e-01 + 3.93939393939394e+00 7.79276493869128e-01 1.11758838962833e-02 -1.11658275595353e-01 + 4.54545454545455e+00 8.53499796067138e-01 1.14129478363666e-02 -1.13253311951308e-01 + 5.15151515151515e+00 9.26946560290491e-01 1.16638391697767e-02 -1.14737019623995e-01 + 5.75757575757576e+00 9.98458448466187e-01 1.19568385022413e-02 -1.15939256762654e-01 + 6.36363636363637e+00 1.06804425733062e+00 1.22991453288649e-02 -1.16892495532205e-01 + 6.96969696969697e+00 1.13638020854557e+00 1.26698916273089e-02 -1.17681562497719e-01 + 7.57575757575757e+00 1.20139147533564e+00 1.30839223585554e-02 -1.18207998448365e-01 + 8.18181818181818e+00 1.26525870625966e+00 1.34927417386065e-02 -1.18675618171796e-01 + 8.78787878787879e+00 1.32856174203142e+00 1.38637786532075e-02 -1.19120015634172e-01 + 9.39393939393939e+00 1.38894849360344e+00 1.46729594502212e-02 -1.18422993276735e-01 + 1.00000000000000e+01 1.44308909541765e+00 1.56494510556849e-02 -1.17051335409731e-01 + 1.06060606060606e+01 1.48423802370368e+00 1.71908084497653e-02 -1.14598756389549e-01 + 1.12121212121212e+01 1.51610502455934e+00 1.91222908592098e-02 -1.11779817617528e-01 + 1.18181818181818e+01 1.53072866564893e+00 2.16025680835697e-02 -1.08254794802547e-01 + 1.24242424242424e+01 1.39977849156389e+00 3.79528706066007e-02 -1.10603299151591e-01 + 1.30303030303030e+01 1.21617535220138e+00 5.95675147584135e-02 -1.15202550970118e-01 + 1.36363636363636e+01 1.15533504132719e+00 6.93992690943369e-02 -1.13563572716609e-01 + 1.42424242424242e+01 1.10480169457590e+00 7.89367459341939e-02 -1.12086468683529e-01 + 1.48484848484848e+01 1.07517912705030e+00 8.81134671681645e-02 -1.10736245553130e-01 + 1.54545454545455e+01 1.05513703714054e+00 9.73441034120854e-02 -1.10445332098790e-01 + 1.60606060606061e+01 1.03909979751391e+00 1.06615031950527e-01 -1.10471629053083e-01 + 1.66666666666667e+01 1.03037285182419e+00 1.16086945222589e-01 -1.11452522736188e-01 + 1.72727272727273e+01 1.02598020440334e+00 1.25858967571876e-01 -1.12862502655475e-01 + 1.78787878787879e+01 1.02688508760461e+00 1.35997793709910e-01 -1.14796926748810e-01 + 1.84848484848485e+01 1.04050556314885e+00 1.47897334941441e-01 -1.18027092927592e-01 + 1.90909090909091e+01 1.05662971405014e+00 1.60210090125818e-01 -1.21765865016242e-01 + 1.96969696969697e+01 1.06892917336845e+00 1.72370385761586e-01 -1.26551733685257e-01 + 2.03030303030303e+01 1.07836210245173e+00 1.84226855703769e-01 -1.31723435235985e-01 + 2.09090909090909e+01 1.08492833913008e+00 1.95779482763855e-01 -1.37432962053028e-01 + 2.15151515151515e+01 1.09149457580843e+00 2.07332109823942e-01 -1.43194849094184e-01 + 2.21212121212121e+01 1.09508251337799e+00 2.18773699953258e-01 -1.48870391290255e-01 + 2.27272727272727e+01 1.08676031896276e+00 2.29771256608312e-01 -1.54237881279540e-01 + 2.33333333333333e+01 1.07843812454753e+00 2.40768813263367e-01 -1.59641997918361e-01 + 2.39393939393939e+01 1.07011593013229e+00 2.51766369918421e-01 -1.65258999148450e-01 + 2.45454545454545e+01 1.06346338211567e+00 2.63405562369399e-01 -1.70132904338816e-01 + 2.51515151515151e+01 1.05699634637488e+00 2.75116046152996e-01 -1.74924245078642e-01 + 2.57575757575758e+01 1.05052931063409e+00 2.86826529936594e-01 -1.79715585818468e-01 + 2.63636363636364e+01 1.04481382943098e+00 2.98930776676328e-01 -1.84171410304438e-01 + 2.69696969696970e+01 1.03959946244701e+00 3.11297572847134e-01 -1.88403522528518e-01 + 2.75757575757576e+01 1.03438509546304e+00 3.23664369017940e-01 -1.92635634752598e-01 + 2.81818181818182e+01 1.02941249540321e+00 3.36209604665368e-01 -1.96751514558490e-01 + 2.87878787878788e+01 1.02500396977555e+00 3.49171163376055e-01 -2.00596208653092e-01 + 2.93939393939394e+01 1.02059544414789e+00 3.62132722086743e-01 -2.04440902747695e-01 + 3.00000000000000e+01 1.01618691852022e+00 3.75094280797430e-01 -2.08285596842297e-01 + 3.30000000000000e+01 9.96930791089291e-01 4.42658498578043e-01 -2.25638690746125e-01 + 3.60000000000000e+01 9.78250493475424e-01 5.13070549905569e-01 -2.41866371031337e-01 + 3.90000000000000e+01 9.58092634837620e-01 5.86181715938499e-01 -2.56756566563372e-01 + 4.20000000000000e+01 9.34197243420856e-01 6.60975455724981e-01 -2.71189386382951e-01 + 4.50000000000000e+01 9.08958131052610e-01 7.36189121222556e-01 -2.85513863759938e-01 + 4.80000000000000e+01 8.76369360506042e-01 8.11357652574190e-01 -2.99318564738472e-01 + 5.10000000000000e+01 8.39546103316861e-01 8.84985611770030e-01 -3.12885528690573e-01 + 5.40000000000000e+01 7.94253600616922e-01 9.55532327614396e-01 -3.25953209472103e-01 + 5.70000000000000e+01 7.48961443924963e-01 1.02607850452350e+00 -3.39030396022098e-01 + 6.00000000000000e+01 7.03669460235677e-01 1.09662441196703e+00 -3.52114744115643e-01 + 6.30000000000000e+01 6.42304649985047e-01 1.15396405534123e+00 -3.63896004000846e-01 + 6.60000000000000e+01 5.80939701964786e-01 1.21130358551679e+00 -3.75682451037757e-01 + 6.90000000000000e+01 5.19574753944523e-01 1.26864311569235e+00 -3.87472927093907e-01 + 7.20000000000000e+01 4.50573500357888e-01 1.31252792475019e+00 -3.98011457008727e-01 + 7.50000000000000e+01 3.77754250313412e-01 1.34968564868523e+00 -4.07925210836086e-01 + 7.80000000000000e+01 3.04933632222489e-01 1.38684379841819e+00 -4.17841195787456e-01 + 8.10000000000000e+01 2.30748068771223e-01 1.41576012175667e+00 -4.26898468755288e-01 + 8.40000000000000e+01 1.53832708821342e-01 1.42819336121861e+00 -4.34236382280660e-01 + 8.70000000000000e+01 7.69163612800006e-02 1.44062669566363e+00 -4.41574423427714e-01 + 9.00000000000000e+01 -3.36040174418520e-07 1.45305992240014e+00 -4.48912349036806e-01 + 9.30000000000000e+01 -5.38415146430987e-02 1.44062668293820e+00 -4.52353830558963e-01 + 9.60000000000000e+01 -1.07682698904138e-01 1.42819339598511e+00 -4.55796422926281e-01 + 9.90000000000000e+01 -1.61523894481612e-01 1.41576001404799e+00 -4.59240045315168e-01 + 1.02000000000000e+02 -2.13453578289375e-01 1.38684361845383e+00 -4.59405772291525e-01 + 1.05000000000000e+02 -2.64427526911242e-01 1.34968589451878e+00 -4.57933058035756e-01 + 1.08000000000000e+02 -3.15401526057875e-01 1.31252774478765e+00 -4.56460500541016e-01 + 1.11000000000000e+02 -3.63702613318511e-01 1.26864261896506e+00 -4.53729817735206e-01 + 1.14000000000000e+02 -4.06657958215626e-01 1.21130374584807e+00 -4.48482124934980e-01 + 1.17000000000000e+02 -4.49613275538441e-01 1.15396443469656e+00 -4.43234672446104e-01 + 1.20000000000000e+02 -4.92568557072479e-01 1.09662487869506e+00 -4.37987618819821e-01 + 1.23000000000000e+02 -5.24273305652762e-01 1.02607897125153e+00 -4.30899900449802e-01 + 1.26000000000000e+02 -5.55977975337812e-01 9.55532794347773e-01 -4.23812474118514e-01 + 1.29000000000000e+02 -5.87682487226498e-01 8.84986078503406e-01 -4.16725057602321e-01 + 1.32000000000000e+02 -6.11743957269202e-01 8.11342840122296e-01 -4.10311145379585e-01 + 1.35000000000000e+02 -6.31983915443519e-01 7.36151344151820e-01 -4.04234114284225e-01 + 1.38000000000000e+02 -6.52223041697912e-01 6.60960643393727e-01 -3.98157422646348e-01 + 1.41000000000000e+02 -6.70277141430926e-01 5.87259503028655e-01 -3.94043626890889e-01 + 1.44000000000000e+02 -6.83961170390853e-01 5.16537495536617e-01 -3.93855328257089e-01 + 1.47000000000000e+02 -6.97644694809602e-01 4.45815984052867e-01 -3.93666633192198e-01 + 1.50000000000000e+02 -7.11327966966768e-01 3.75094720564406e-01 -3.93477629010198e-01 + 1.53000000000000e+02 -7.10555758661770e-01 3.21288604729336e-01 -4.09291401293984e-01 + 1.56000000000000e+02 -7.09783519622452e-01 2.67482711700951e-01 -4.25113789480059e-01 + 1.59000000000000e+02 -7.09747287572277e-01 2.13677185443974e-01 -4.40944959963481e-01 + 1.62000000000000e+02 -6.39242744263654e-01 1.76167844671200e-01 -4.56979587409322e-01 + 1.65000000000000e+02 -5.32702098344237e-01 1.46806734460832e-01 -4.73112741890976e-01 + 1.68000000000000e+02 -4.24165693368368e-01 1.17445360706964e-01 -4.89245046545928e-01 + 1.71000000000000e+02 -3.17540377497210e-01 8.80840526647858e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.11693558985589e-01 5.87228760490535e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.05275486594639e-01 4.83558379259246e-02 -1.49185828331614e-01 + 1.80000000000000e+02 0.00000000000000e+00 4.74971586892991e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_15.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_15.dat new file mode 100644 index 00000000..8a6d71ed --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_15.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF15_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF15_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.208961 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.877956 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-10.077196 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.523431 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.245136 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.010644 Cd0 ! 2D drag coefficient value at 0-lift. +-0.090826 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 4.67684423893836e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.09408903050313e-01 4.67684423893836e-02 1.19449340115019e-01 +-1.74000000000000e+02 2.19827919665962e-01 5.61220773758285e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.29742593401240e-01 8.41832894069106e-02 3.60000410445527e-01 +-1.68000000000000e+02 4.39652946023446e-01 1.12247441543861e-01 3.17657026395814e-01 +-1.65000000000000e+02 5.49568920893405e-01 1.40313063699431e-01 1.94143527053385e-01 +-1.62000000000000e+02 6.59436266220261e-01 1.68379605308450e-01 7.06292113109056e-02 +-1.59000000000000e+02 7.30300487636504e-01 2.05487990755536e-01 -1.10385648721879e-02 +-1.56000000000000e+02 7.23544790871733e-01 2.60679757996445e-01 -8.60356910819995e-03 +-1.53000000000000e+02 7.16970142385750e-01 3.15871546871301e-01 -6.03641287104454e-03 +-1.50000000000000e+02 7.10395253192162e-01 3.71063383075396e-01 -3.53054989193793e-03 +-1.47000000000000e+02 6.96821464496714e-01 4.41924263677891e-01 1.15622643794935e-02 +-1.44000000000000e+02 6.83247423957872e-01 5.12785414225651e-01 2.66551539940038e-02 +-1.41000000000000e+02 6.69672879714259e-01 5.83647104683221e-01 4.17481792755350e-02 +-1.38000000000000e+02 6.51701749637977e-01 6.57509515264151e-01 5.71032192754300e-02 +-1.35000000000000e+02 6.31532335564314e-01 7.32872279819475e-01 7.25892986682547e-02 +-1.32000000000000e+02 6.11362090369567e-01 8.08235905809873e-01 8.80756349445296e-02 +-1.29000000000000e+02 5.87362687378832e-01 8.82060419340625e-01 1.03702753521495e-01 +-1.26000000000000e+02 5.55704950650637e-01 9.52806700636205e-01 1.19611333221862e-01 +-1.23000000000000e+02 5.24047055768739e-01 1.02355244146660e+00 1.35519828983413e-01 +-1.20000000000000e+02 4.92389081812946e-01 1.09429791207450e+00 1.51428303263083e-01 +-1.17000000000000e+02 4.49464448320822e-01 1.15185785100299e+00 1.66519076342545e-01 +-1.14000000000000e+02 4.06539757473919e-01 1.20941754428038e+00 1.81609537109452e-01 +-1.11000000000000e+02 3.63614995985125e-01 1.26697679783968e+00 1.96699434164473e-01 +-1.08000000000000e+02 3.15335797028190e-01 1.31109215764924e+00 2.10144017964703e-01 +-1.05000000000000e+02 2.64379338566390e-01 1.34848546821470e+00 2.22765790368656e-01 +-1.02000000000000e+02 2.13422866177849e-01 1.38587835028935e+00 2.35387244205176e-01 +-9.90000000000000e+01 1.61506739379516e-01 1.41503236786356e+00 2.46653165683191e-01 +-9.60000000000000e+01 1.07671262193915e-01 1.42770829956833e+00 2.55208020338782e-01 +-9.30000000000000e+01 5.38357962810632e-02 1.44038413443613e+00 2.63762460154027e-01 +-9.00000000000000e+01 3.36004484266645e-07 1.45305992088633e+00 2.72316549083834e-01 +-8.70000000000000e+01 -5.38357411804466e-02 1.44038414740981e+00 2.75975908689839e-01 +-8.40000000000000e+01 -1.07671412729903e-01 1.42770826412360e+00 2.79637509125723e-01 +-8.10000000000000e+01 -1.61506273010176e-01 1.41503247767341e+00 2.83303463358523e-01 +-7.80000000000000e+01 -2.13422619382625e-01 1.38587853139263e+00 2.83673895090911e-01 +-7.50000000000000e+01 -2.64379675691045e-01 1.34848522082535e+00 2.82397275634580e-01 +-7.20000000000000e+01 -3.15335550238364e-01 1.31109233875070e+00 2.81119990974020e-01 +-6.90000000000000e+01 -3.63614624127447e-01 1.26697729647612e+00 2.78579207220845e-01 +-6.60000000000000e+01 -4.06539877500383e-01 1.20941738333287e+00 2.73511947958626e-01 +-6.30000000000000e+01 -4.49464732308094e-01 1.15185747018962e+00 2.68443139589274e-01 +-6.00000000000000e+01 -4.92389291260444e-01 1.09429744402618e+00 2.63372775517188e-01 +-5.70000000000000e+01 -5.24047265216237e-01 1.02355197341827e+00 2.56458829905844e-01 +-5.40000000000000e+01 -5.55705160096565e-01 9.52806232582514e-01 2.49542806281396e-01 +-5.10000000000000e+01 -5.87362896824760e-01 8.82059951286934e-01 2.42624285718169e-01 +-4.80000000000000e+01 -6.13081518081798e-01 8.08245749651705e-01 2.35914730168143e-01 +-4.50000000000000e+01 -6.35830677053252e-01 7.32897637152475e-01 2.29306703335177e-01 +-4.20000000000000e+01 -6.53421163894653e-01 6.57519359024154e-01 2.24147571871917e-01 +-3.90000000000000e+01 -6.70067066454672e-01 5.82564691354695e-01 2.19583471937992e-01 +-3.60000000000000e+01 -6.84082341201795e-01 5.09304675599610e-01 2.17192480713428e-01 +-3.30000000000000e+01 -6.97048433260438e-01 4.38755128231645e-01 2.17746484897517e-01 +-3.00000000000000e+01 -7.10395349681667e-01 3.71062942477108e-01 2.21579781653519e-01 +-2.93939393939394e+01 -7.13452692480888e-01 3.58077533205854e-01 2.23238409263915e-01 +-2.87878787878788e+01 -7.16510035280109e-01 3.45092123934599e-01 2.24897036874312e-01 +-2.81818181818182e+01 -7.19567378079330e-01 3.32106714663345e-01 2.26555664484708e-01 +-2.75757575757576e+01 -7.23015176952550e-01 3.19538672861810e-01 2.28842891870977e-01 +-2.69696969696970e+01 -7.26630328498820e-01 3.07149518178065e-01 2.31399542272472e-01 +-2.63636363636364e+01 -7.30245480045089e-01 2.94760363494321e-01 2.33956192673967e-01 +-2.57575757575758e+01 -7.34209413289690e-01 2.82634381591017e-01 2.36982384547252e-01 +-2.51515151515151e+01 -7.38696437793794e-01 2.70903097522626e-01 2.40712779195633e-01 +-2.45454545454545e+01 -7.43183462297898e-01 2.59171813454235e-01 2.44443173844013e-01 +-2.39393939393939e+01 -7.47799807451049e-01 2.47511976474211e-01 2.48330404264612e-01 +-2.33333333333333e+01 -7.53580063482705e-01 2.36495177121992e-01 2.53629186999333e-01 +-2.27272727272727e+01 -7.59360319514362e-01 2.25478377769773e-01 2.59138821302601e-01 +-2.21212121212121e+01 -7.65140575546019e-01 2.14461578417554e-01 2.64477816678713e-01 +-2.15151515151515e+01 -8.03302749793657e-01 2.08548124886777e-01 2.49301560239203e-01 +-2.09090909090909e+01 -8.50824045909576e-01 2.03910836081233e-01 2.28513888557106e-01 +-2.03030303030303e+01 -8.97768386898726e-01 1.99273547275689e-01 2.07575119743590e-01 +-1.96969696969697e+01 -9.44678207213724e-01 1.94637489543005e-01 1.86538818608059e-01 +-1.90909090909091e+01 -9.91555050415259e-01 1.90002662813539e-01 1.65441760982968e-01 +-1.84848484848485e+01 -1.03842681336623e+00 1.85480504382984e-01 1.44332068966338e-01 +-1.78787878787879e+01 -1.08529649705215e+00 1.80950527403410e-01 1.23357644166816e-01 +-1.72727272727273e+01 -1.13216603243267e+00 1.76145971766597e-01 1.02450261417032e-01 +-1.66666666666667e+01 -1.17903468591979e+00 1.71473937535991e-01 8.15425477213738e-02 +-1.60606060606061e+01 -1.22590272554085e+00 1.66848907281323e-01 6.06345632546291e-02 +-1.54545454545455e+01 -1.24540579219954e+00 1.60147463320380e-01 4.44630991177370e-02 +-1.48484848484848e+01 -1.24781000746850e+00 1.52164045091083e-01 3.08929440011085e-02 +-1.42424242424242e+01 -1.20802738977228e+00 1.41026803742556e-01 2.37904766410137e-02 +-1.36363636363636e+01 -1.16175523534967e+00 1.29449635840845e-01 1.56762299252564e-02 +-1.30303030303030e+01 -1.11115112057063e+00 1.17578013100753e-01 6.58924652136504e-03 +-1.24242424242424e+01 -1.05692194409935e+00 1.06127950509725e-01 -3.71182830764803e-03 +-1.18181818181818e+01 -1.00272814309195e+00 9.53368098006124e-02 -1.33696206088078e-02 +-1.12121212121212e+01 -9.49076573968545e-01 8.60321040274192e-02 -2.13872923605838e-02 +-1.06060606060606e+01 -8.93581807311589e-01 7.76106753832643e-02 -2.80731947658556e-02 +-1.00000000000000e+01 -8.36985941927378e-01 6.96649134803325e-02 -3.40347701647619e-02 +-9.39393939393939e+00 -7.93166380537571e-01 5.77167470270437e-02 -4.15395521632745e-02 +-8.78787878787879e+00 -7.59169809540880e-01 4.45159809940110e-02 -4.84819804761218e-02 +-8.18181818181818e+00 -7.42105465881365e-01 2.91170572332394e-02 -5.43926186316557e-02 +-7.57575757575758e+00 -6.99614592258827e-01 2.14382481096017e-02 -5.74658684394408e-02 +-6.96969696969697e+00 -6.44608817122756e-01 1.72874428994890e-02 -5.94924254124929e-02 +-6.36363636363636e+00 -5.58802274186132e-01 1.57551020164310e-02 -6.43044689253696e-02 +-5.75757575757576e+00 -4.73764998472755e-01 1.43502448275924e-02 -6.89249208066366e-02 +-5.15151515151515e+00 -3.89894394333158e-01 1.31419672724884e-02 -7.32603190020164e-02 +-4.54545454545454e+00 -3.07166264437107e-01 1.22637086666309e-02 -7.73190401255010e-02 +-3.93939393939394e+00 -2.25054198114775e-01 1.15266148059250e-02 -8.12466599743608e-02 +-3.33333333333333e+00 -1.45172725478899e-01 1.11181586895799e-02 -8.48048561058059e-02 +-2.72727272727273e+00 -6.64481817059381e-02 1.08213328544847e-02 -8.81461929096935e-02 +-2.12121212121212e+00 1.12495325557481e-02 1.06139900247299e-02 -9.12799422030186e-02 +-1.51515151515152e+00 8.85670296087496e-02 1.04479884948180e-02 -9.42942439451978e-02 +-9.09090909090912e-01 1.66213270670549e-01 1.03347362369138e-02 -9.72595244702951e-02 +-3.03030303030302e-01 2.45681839335204e-01 1.04136053686051e-02 -1.00116736668253e-01 + 3.03030303030302e-01 3.24493811021227e-01 1.05051634149457e-02 -1.02832528533338e-01 + 9.09090909090912e-01 4.02689577361445e-01 1.06029024359060e-02 -1.05409582524880e-01 + 1.51515151515152e+00 4.80450558739067e-01 1.06086084327215e-02 -1.07756982884227e-01 + 2.12121212121212e+00 5.57655020416299e-01 1.06364076844461e-02 -1.10007533488911e-01 + 2.72727272727273e+00 6.32854110854688e-01 1.08222553063749e-02 -1.12010805967812e-01 + 3.33333333333333e+00 7.07829104208440e-01 1.09871939917408e-02 -1.13813398304224e-01 + 3.93939393939394e+00 7.82726097125106e-01 1.11313590740197e-02 -1.15433563257352e-01 + 4.54545454545455e+00 8.56725036367504e-01 1.13155452275198e-02 -1.16880352315399e-01 + 5.15151515151515e+00 9.30032793828029e-01 1.15208350124478e-02 -1.18219662619805e-01 + 5.75757575757576e+00 1.00154268140207e+00 1.17795522060827e-02 -1.19293155287934e-01 + 6.36363636363637e+00 1.07164671957996e+00 1.20808443869704e-02 -1.20114824732784e-01 + 6.96969696969697e+00 1.14081776942528e+00 1.24089124959070e-02 -1.20769509296104e-01 + 7.57575757575757e+00 1.20747309170393e+00 1.27841449542467e-02 -1.20984177116947e-01 + 8.18181818181818e+00 1.27293094202657e+00 1.31971119963991e-02 -1.21040387776290e-01 + 8.78787878787879e+00 1.33631723158136e+00 1.36879819805424e-02 -1.20797951715922e-01 + 9.39393939393939e+00 1.39580208572342e+00 1.43634591973061e-02 -1.19814227819290e-01 + 1.00000000000000e+01 1.45201036734241e+00 1.51114679774447e-02 -1.18417062091605e-01 + 1.06060606060606e+01 1.49636269861419e+00 1.62052841025846e-02 -1.15842476045504e-01 + 1.12121212121212e+01 1.53223105339179e+00 1.75945580457730e-02 -1.12669856479682e-01 + 1.18181818181818e+01 1.55233724587327e+00 1.95273589024484e-02 -1.08387441695462e-01 + 1.24242424242424e+01 1.40485306788269e+00 3.66837894727473e-02 -1.10705453199216e-01 + 1.30303030303030e+01 1.19641936134212e+00 5.96341107919704e-02 -1.15524471863464e-01 + 1.36363636363636e+01 1.13694346952033e+00 6.90810774839366e-02 -1.13792452322283e-01 + 1.42424242424242e+01 1.08854773748024e+00 7.81569854013355e-02 -1.12222962444976e-01 + 1.48484848484848e+01 1.05813142651997e+00 8.67025410668526e-02 -1.10869165205536e-01 + 1.54545454545455e+01 1.03762808162079e+00 9.51813233811173e-02 -1.10006355575461e-01 + 1.60606060606061e+01 1.02128710765488e+00 1.03672155520267e-01 -1.09349864817940e-01 + 1.66666666666667e+01 1.01267698438400e+00 1.12471820673251e-01 -1.09500151103095e-01 + 1.72727272727273e+01 1.00862750152695e+00 1.21612657749372e-01 -1.10196871074556e-01 + 1.78787878787879e+01 1.01015219256151e+00 1.31170487057709e-01 -1.11561461369328e-01 + 1.84848484848485e+01 1.02487270501671e+00 1.42717764493646e-01 -1.14728141059506e-01 + 1.90909090909091e+01 1.04251728636470e+00 1.54827944679204e-01 -1.18510461076852e-01 + 1.96969696969697e+01 1.05803974641611e+00 1.67310086078875e-01 -1.23229156855034e-01 + 2.03030303030303e+01 1.07018102313405e+00 1.79415876584770e-01 -1.28428162973701e-01 + 2.09090909090909e+01 1.07894092523283e+00 1.91145294905368e-01 -1.34145582008302e-01 + 2.15151515151515e+01 1.08770082733162e+00 2.02874713225965e-01 -1.39876119614393e-01 + 2.21212121212121e+01 1.09305671932835e+00 2.14461578417554e-01 -1.45612662747519e-01 + 2.27272727272727e+01 1.08480007339250e+00 2.25478377769773e-01 -1.51382551672362e-01 + 2.33333333333333e+01 1.07654342745665e+00 2.36495177121992e-01 -1.57161617206521e-01 + 2.39393939393939e+01 1.06828678152080e+00 2.47511976474211e-01 -1.62994019825784e-01 + 2.45454545454545e+01 1.06169131258261e+00 2.59171813454235e-01 -1.68042877714576e-01 + 2.51515151515151e+01 1.05528041489594e+00 2.70903097522626e-01 -1.73004676950534e-01 + 2.57575757575758e+01 1.04886951720927e+00 2.82634381591017e-01 -1.77966476186493e-01 + 2.63636363636364e+01 1.04320589180274e+00 2.94760363494321e-01 -1.82573390251451e-01 + 2.69696969696970e+01 1.03804052533334e+00 3.07149518178065e-01 -1.86943677436481e-01 + 2.75757575757576e+01 1.03287515886394e+00 3.19538672861810e-01 -1.91313964621511e-01 + 2.81818181818182e+01 1.02794990386129e+00 3.32106714663345e-01 -1.95560901544960e-01 + 2.87878787878788e+01 1.02358486088827e+00 3.45092123934599e-01 -1.99520045880541e-01 + 2.93939393939394e+01 1.01921981791524e+00 3.58077533205854e-01 -2.03479190216121e-01 + 3.00000000000000e+01 1.01485477494222e+00 3.71062942477108e-01 -2.07438334551702e-01 + 3.30000000000000e+01 9.95781979176941e-01 4.38755128231646e-01 -2.25248633303694e-01 + 3.60000000000000e+01 9.77261344047451e-01 5.09304675599610e-01 -2.41856194661193e-01 + 3.90000000000000e+01 9.57239163797111e-01 5.82564691354695e-01 -2.57340269463326e-01 + 4.20000000000000e+01 9.33459403203811e-01 6.57519359024154e-01 -2.72202941735538e-01 + 4.50000000000000e+01 9.08329968243298e-01 7.32897637152475e-01 -2.86898149313765e-01 + 4.80000000000000e+01 8.75830570639952e-01 8.08245749651705e-01 -3.01010122893952e-01 + 5.10000000000000e+01 8.39089169459949e-01 8.82059951286934e-01 -3.14864677792113e-01 + 5.40000000000000e+01 7.93863488417853e-01 9.52806232582514e-01 -3.28197186474091e-01 + 5.70000000000000e+01 7.48638152873260e-01 1.02355197341827e+00 -3.41532795817309e-01 + 6.00000000000000e+01 7.03412990076103e-01 1.09429744402618e+00 -3.54870873320022e-01 + 6.30000000000000e+01 6.42091935358749e-01 1.15185747018962e+00 -3.66903187497261e-01 + 6.60000000000000e+01 5.80770742674055e-01 1.20941738333287e+00 -3.78937520560764e-01 + 6.90000000000000e+01 5.19449549989362e-01 1.26697729647612e+00 -3.90973534083543e-01 + 7.20000000000000e+01 4.50479586567496e-01 1.31109233875070e+00 -4.01764478228043e-01 + 7.50000000000000e+01 3.77685394357568e-01 1.34848522082535e+00 -4.11933663285151e-01 + 7.80000000000000e+01 3.04889770136817e-01 1.38587853139263e+00 -4.22104253439653e-01 + 8.10000000000000e+01 2.30723589089482e-01 1.41503247767341e+00 -4.31419619766910e-01 + 8.40000000000000e+01 1.53816388998543e-01 1.42770826412360e+00 -4.39023497820268e-01 + 8.70000000000000e+01 7.69082013784813e-02 1.44038414740981e+00 -4.46628018116478e-01 + 9.00000000000000e+01 -3.36004484498046e-07 1.45305992088633e+00 -4.54233190688659e-01 + 9.30000000000000e+01 -5.38357962810632e-02 1.44038413443613e+00 -4.57885786719435e-01 + 9.60000000000000e+01 -1.07671262193915e-01 1.42770829956833e+00 -4.61538677552376e-01 + 9.90000000000000e+01 -1.61506739379516e-01 1.41503236786356e+00 -4.65191853174755e-01 + 1.02000000000000e+02 -2.13422866177849e-01 1.38587835028935e+00 -4.65561570743231e-01 + 1.05000000000000e+02 -2.64379338566390e-01 1.34848546821470e+00 -4.64289725865889e-01 + 1.08000000000000e+02 -3.15335797028190e-01 1.31109215764924e+00 -4.63017478275328e-01 + 1.11000000000000e+02 -3.63614995985125e-01 1.26697679783968e+00 -4.60482928481624e-01 + 1.14000000000000e+02 -4.06539757473920e-01 1.20941754428038e+00 -4.55423611669011e-01 + 1.17000000000000e+02 -4.49464448320822e-01 1.15185785100299e+00 -4.50364064972578e-01 + 1.20000000000000e+02 -4.92389081812947e-01 1.09429791207450e+00 -4.45304488017237e-01 + 1.23000000000000e+02 -5.24047055768740e-01 1.02355244146660e+00 -4.38404309098436e-01 + 1.26000000000000e+02 -5.55704950650637e-01 9.52806700636205e-01 -4.31504104372525e-01 + 1.29000000000000e+02 -5.87362687378832e-01 8.82060419340624e-01 -4.24603632838989e-01 + 1.32000000000000e+02 -6.11362090369567e-01 8.08235905809873e-01 -4.18403572366859e-01 + 1.35000000000000e+02 -6.31532335564314e-01 7.32872279819475e-01 -4.12553840848231e-01 + 1.38000000000000e+02 -6.51701749637977e-01 6.57509515264151e-01 -4.06704379408258e-01 + 1.41000000000000e+02 -6.69672879714259e-01 5.83647104683220e-01 -4.02869826230333e-01 + 1.44000000000000e+02 -6.83247423957872e-01 5.12785414225651e-01 -4.03065008320271e-01 + 1.47000000000000e+02 -6.96821464496714e-01 4.41924263677891e-01 -4.03260077987011e-01 + 1.50000000000000e+02 -7.10395253192162e-01 3.71063383075396e-01 -4.03455201443317e-01 + 1.53000000000000e+02 -7.06372114301663e-01 3.17621444101635e-01 -4.19162152168120e-01 + 1.56000000000000e+02 -7.02348949774489e-01 2.64179749134792e-01 -4.34871119537335e-01 + 1.59000000000000e+02 -6.98510217081455e-01 2.10738460990774e-01 -4.50581918807084e-01 + 1.62000000000000e+02 -6.27628255763012e-01 1.73632254525860e-01 -4.64655763669874e-01 + 1.65000000000000e+02 -5.23023338960169e-01 1.44693727049735e-01 -4.77910305590711e-01 + 1.68000000000000e+02 -4.18349440675210e-01 1.15754931187723e-01 -4.91164080985006e-01 + 1.71000000000000e+02 -3.13741957550692e-01 8.68162240683767e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.09161222825938e-01 5.78776944385058e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.04100854082611e-01 4.76423262875679e-02 -1.49311675143774e-01 + 1.80000000000000e+02 0.00000000000000e+00 4.67684423893836e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_16.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_16.dat new file mode 100644 index 00000000..42e6caf1 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_16.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF16_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF16_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.302844 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.519512 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-10.603134 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.490978 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.228842 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.010387 Cd0 ! 2D drag coefficient value at 0-lift. +-0.097277 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 4.74945271221455e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.09026165719319e-01 4.74945271221455e-02 1.19452717008645e-01 +-1.74000000000000e+02 2.19050122417552e-01 5.69933789541972e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.28575719604901e-01 8.54902462894429e-02 3.60000410445527e-01 +-1.68000000000000e+02 4.38106914174825e-01 1.13986527655115e-01 3.17778142294727e-01 +-1.65000000000000e+02 5.47644046044007e-01 1.42482516042840e-01 1.94446315387067e-01 +-1.62000000000000e+02 6.57185375418956e-01 1.70979335776501e-01 7.11135800063474e-02 +-1.59000000000000e+02 7.28986558567270e-01 2.08325862036029e-01 -1.07467958526159e-02 +-1.56000000000000e+02 7.23604309898402e-01 2.63371501965611e-01 -1.08174141591834e-02 +-1.53000000000000e+02 7.17767305056863e-01 3.18417162412815e-01 -1.14148679848354e-02 +-1.50000000000000e+02 7.12445310173410e-01 3.73462869777982e-01 -1.26457400718686e-02 +-1.47000000000000e+02 6.98630831673898e-01 4.44240664843570e-01 2.75536840347873e-03 +-1.44000000000000e+02 6.84816100411641e-01 5.15018714390009e-01 1.81567857412231e-02 +-1.41000000000000e+02 6.71000863605846e-01 5.85797272916321e-01 3.36066126261243e-02 +-1.38000000000000e+02 6.52847363996135e-01 6.59563695332857e-01 4.92127237288619e-02 +-1.35000000000000e+02 6.32524741785104e-01 7.34824043633297e-01 6.48870780422191e-02 +-1.32000000000000e+02 6.12201334294277e-01 8.10085206753381e-01 8.05597032537663e-02 +-1.29000000000000e+02 5.88065552379780e-01 8.83801868347751e-01 9.63550603105852e-02 +-1.26000000000000e+02 5.56305003551198e-01 9.54429519550126e-01 1.12398380329180e-01 +-1.23000000000000e+02 5.24544329085952e-01 1.02505663119359e+00 1.28440896746455e-01 +-1.20000000000000e+02 4.92783591804722e-01 1.09568347306768e+00 1.44482743848553e-01 +-1.17000000000000e+02 4.49791636415260e-01 1.15311205772626e+00 1.59698551465877e-01 +-1.14000000000000e+02 4.06799639145038e-01 1.21054039721062e+00 1.74914207352244e-01 +-1.11000000000000e+02 3.63807602041395e-01 1.26796829798034e+00 1.90129494093679e-01 +-1.08000000000000e+02 3.15480318387913e-01 1.31194660547628e+00 2.03701386725598e-01 +-1.05000000000000e+02 2.64485370834833e-01 1.34920001392269e+00 2.16452268723353e-01 +-1.02000000000000e+02 2.13490407640989e-01 1.38645299548144e+00 2.29203915346582e-01 +-9.90000000000000e+01 1.61544432084705e-01 1.41546560806078e+00 2.40600993496564e-01 +-9.60000000000000e+01 1.07696390610193e-01 1.42799712574756e+00 2.49288387037645e-01 +-9.30000000000000e+01 5.38483605044154e-02 1.44052854770060e+00 2.57977933040283e-01 +-9.00000000000000e+01 3.36082901150735e-07 1.45305992178765e+00 2.66670007912819e-01 +-8.70000000000000e+01 -5.38483053909395e-02 1.44052856052647e+00 2.70653828346413e-01 +-8.40000000000000e+01 -1.07696541181314e-01 1.42799709070664e+00 2.74632091077504e-01 +-8.10000000000000e+01 -1.61543965606523e-01 1.41546571661960e+00 2.78605161493305e-01 +-7.80000000000000e+01 -2.13490160659344e-01 1.38645317590716e+00 2.79287028552001e-01 +-7.50000000000000e+01 -2.64485708214139e-01 1.34919976745892e+00 2.78321604655193e-01 +-7.20000000000000e+01 -3.15480071411678e-01 1.31194678590016e+00 2.77352606273105e-01 +-6.90000000000000e+01 -3.63807229600907e-01 1.26796879547887e+00 2.75114638009095e-01 +-6.60000000000000e+01 -4.06799759359618e-01 1.21054023663040e+00 2.70342633491159e-01 +-6.30000000000000e+01 -4.49791920847929e-01 1.15311167778193e+00 2.65569198485011e-01 +-6.00000000000000e+01 -4.92783801932097e-01 1.09568300580419e+00 2.60795303619874e-01 +-5.70000000000000e+01 -5.24544539213326e-01 1.02505616393010e+00 2.54185204039382e-01 +-5.40000000000000e+01 -5.56305213677325e-01 9.54429052281285e-01 2.47577553322180e-01 +-5.10000000000000e+01 -5.88065762505907e-01 8.83801401078910e-01 2.40973778659848e-01 +-4.80000000000000e+01 -6.13910354720703e-01 8.10097993520892e-01 2.34611596779972e-01 +-4.50000000000000e+01 -6.36797063706404e-01 7.34856757216810e-01 2.28377676012707e-01 +-4.20000000000000e+01 -6.54556371048421e-01 6.59576481995557e-01 2.23680283338938e-01 +-3.90000000000000e+01 -6.71380181626923e-01 5.84717599999870e-01 2.19536883348591e-01 +-3.60000000000000e+01 -6.85604200137604e-01 5.11546160178582e-01 2.17305088035508e-01 +-3.30000000000000e+01 -6.98815713908257e-01 4.41078428348352e-01 2.18054288333084e-01 +-3.00000000000000e+01 -7.12445408634725e-01 3.73462429674547e-01 2.22124678427173e-01 +-2.93939393939394e+01 -7.15569260532856e-01 3.60491220538288e-01 2.23842948054128e-01 +-2.87878787878788e+01 -7.18693112430987e-01 3.47520011402029e-01 2.25561217681083e-01 +-2.81818181818182e+01 -7.21816964329118e-01 3.34548802265771e-01 2.27279487308038e-01 +-2.75757575757576e+01 -7.25337539045798e-01 3.21994339673895e-01 2.29635020906344e-01 +-2.69696969696970e+01 -7.29028152413596e-01 3.09618498066121e-01 2.32263691065060e-01 +-2.63636363636364e+01 -7.32718765781393e-01 2.97242656458348e-01 2.34892361223777e-01 +-2.57575757575758e+01 -7.36762602567382e-01 2.85129614107284e-01 2.37997233303781e-01 +-2.51515151515151e+01 -7.41336192157463e-01 2.73410709392586e-01 2.41816297280826e-01 +-2.45454545454545e+01 -7.45909781747544e-01 2.61691804677889e-01 2.45635361257870e-01 +-2.39393939393939e+01 -7.50627141320397e-01 2.50043674398799e-01 2.49515043488697e-01 +-2.33333333333333e+01 -7.56638458572749e-01 2.39032527742441e-01 2.53940301739542e-01 +-2.27272727272727e+01 -7.62649775825102e-01 2.28021381086083e-01 2.57853785491344e-01 +-2.21212121212121e+01 -7.68661093077454e-01 2.17010234429726e-01 2.62068606039781e-01 +-2.15151515151515e+01 -8.07233018911813e-01 2.10719432824284e-01 2.44666939257051e-01 +-2.09090909090909e+01 -8.50063944721421e-01 2.05609021115132e-01 2.23825168737330e-01 +-2.03030303030303e+01 -8.94818933511164e-01 2.00498609405980e-01 2.03531509688972e-01 +-1.96969696969697e+01 -9.39301590592824e-01 1.95388221736857e-01 1.83458906167973e-01 +-1.90909090909091e+01 -9.83659564135496e-01 1.90277858106401e-01 1.63473959738679e-01 +-1.84848484848485e+01 -1.02835646060585e+00 1.84862741269290e-01 1.43541881926139e-01 +-1.78787878787879e+01 -1.07312022949524e+00 1.79623630734647e-01 1.23006204069627e-01 +-1.72727272727273e+01 -1.11789561032257e+00 1.75305320947758e-01 1.02174031312229e-01 +-1.66666666666667e+01 -1.16291637243167e+00 1.70479646552578e-01 8.13469192385163e-02 +-1.60606060606061e+01 -1.20810673312181e+00 1.65435507128552e-01 6.05261011893848e-02 +-1.54545454545455e+01 -1.22780192188674e+00 1.58414016648205e-01 4.42999154215266e-02 +-1.48484848484848e+01 -1.23148075482471e+00 1.50176007301149e-01 3.06001307793610e-02 +-1.42424242424242e+01 -1.19557688058349e+00 1.38991906593942e-01 2.19117759370747e-02 +-1.36363636363636e+01 -1.15320275631460e+00 1.27391804267069e-01 1.07082871223446e-02 +-1.30303030303030e+01 -1.10624218648539e+00 1.15510306693132e-01 -8.83566244868970e-04 +-1.24242424242424e+01 -1.05404262149901e+00 1.03763709632377e-01 -1.08587103233837e-02 +-1.18181818181818e+01 -1.00136072816888e+00 9.26167355272088e-02 -1.96543223095588e-02 +-1.12121212121212e+01 -9.48585842590762e-01 8.31140514128371e-02 -2.58402153588698e-02 +-1.06060606060606e+01 -8.93667893889375e-01 7.46227143327008e-02 -3.16390840974881e-02 +-1.00000000000000e+01 -8.38065195025141e-01 6.66511845807474e-02 -3.72575661487416e-02 +-9.39393939393939e+00 -7.95410787978230e-01 5.51236226526759e-02 -4.38865668044484e-02 +-8.78787878787879e+00 -7.59114580119346e-01 4.22612717076337e-02 -5.05975414003474e-02 +-8.18181818181818e+00 -7.39908303358907e-01 2.65347518460736e-02 -5.75870121728342e-02 +-7.57575757575758e+00 -6.95515216031812e-01 1.93744036977655e-02 -6.18696615221871e-02 +-6.96969696969697e+00 -6.38970352980065e-01 1.56903682577269e-02 -6.50444957534814e-02 +-6.36363636363636e+00 -5.53050978116223e-01 1.44330515252630e-02 -7.04916309908320e-02 +-5.75757575757576e+00 -4.67855482297821e-01 1.32728500481496e-02 -7.56445389562658e-02 +-5.15151515151515e+00 -3.83761883334006e-01 1.22747621729221e-02 -8.03433974705679e-02 +-4.54545454545454e+00 -3.00853428667449e-01 1.15921315939537e-02 -8.44964464276008e-02 +-3.93939393939394e+00 -2.18316833870855e-01 1.10444241869388e-02 -8.84303296892449e-02 +-3.33333333333333e+00 -1.35802226396340e-01 1.06756393000342e-02 -9.19189227982073e-02 +-2.72727272727273e+00 -5.52401875853970e-02 1.04478510242675e-02 -9.51462086023917e-02 +-2.12121212121212e+00 2.36396912458736e-02 1.03604338233977e-02 -9.81888615779641e-02 +-1.51515151515152e+00 1.01484614889655e-01 1.02452048792184e-02 -1.01004246307992e-01 +-9.09090909090912e-01 1.79466580667274e-01 1.01619214134529e-02 -1.03750330378995e-01 +-3.03030303030302e-01 2.59087622411868e-01 1.02426571705537e-02 -1.06360316407136e-01 + 3.03030303030302e-01 3.37837592391149e-01 1.03303065575862e-02 -1.08843506321385e-01 + 9.09090909090912e-01 4.15789971549744e-01 1.04212147734708e-02 -1.11177829034995e-01 + 1.51515151515152e+00 4.93147895935465e-01 1.04236090925569e-02 -1.13298457665409e-01 + 2.12121212121212e+00 5.69859535842775e-01 1.04645134860512e-02 -1.15323446159398e-01 + 2.72727272727273e+00 6.44307642449725e-01 1.06495299479427e-02 -1.17170718042645e-01 + 3.33333333333333e+00 7.18600940028201e-01 1.08126791422125e-02 -1.18836030380812e-01 + 3.93939393939394e+00 7.92950170251859e-01 1.09043051654465e-02 -1.20329319459463e-01 + 4.54545454545455e+00 8.66750625755535e-01 1.10287283292864e-02 -1.21622097750385e-01 + 5.15151515151515e+00 9.39936884951220e-01 1.11859719302871e-02 -1.22800063053947e-01 + 5.75757575757576e+00 1.01143404956829e+00 1.14111475039848e-02 -1.23696733437718e-01 + 6.36363636363637e+00 1.08182810267221e+00 1.16720384522875e-02 -1.24300128967657e-01 + 6.96969696969697e+00 1.15154797840494e+00 1.19507072068761e-02 -1.24706383395138e-01 + 7.57575757575757e+00 1.21829984832910e+00 1.23111001660822e-02 -1.24318393141766e-01 + 8.18181818181818e+00 1.28284334003200e+00 1.28453551133823e-02 -1.23573477309161e-01 + 8.78787878787879e+00 1.34152950781049e+00 1.37024581751005e-02 -1.22008658301098e-01 + 9.39393939393939e+00 1.39175204718020e+00 1.50501911010927e-02 -1.20764566885121e-01 + 1.00000000000000e+01 1.44072055032551e+00 1.67619493434159e-02 -1.19700808310407e-01 + 1.06060606060606e+01 1.47445006881312e+00 1.86588668153617e-02 -1.17383563054315e-01 + 1.12121212121212e+01 1.50211111367966e+00 2.06442638039865e-02 -1.13986779446044e-01 + 1.18181818181818e+01 1.51849743382808e+00 2.27949008726186e-02 -1.08801154929910e-01 + 1.24242424242424e+01 1.38110104869832e+00 3.91932789258445e-02 -1.10609411291075e-01 + 1.30303030303030e+01 1.17394609485373e+00 6.11116586730917e-02 -1.14753045755195e-01 + 1.36363636363636e+01 1.12719502884985e+00 7.05126133472740e-02 -1.13285854419029e-01 + 1.42424242424242e+01 1.08888194901864e+00 7.96731387425781e-02 -1.11992721439345e-01 + 1.48484848484848e+01 1.06009153338648e+00 8.83736363016277e-02 -1.11029145646405e-01 + 1.54545454545455e+01 1.04088100180195e+00 9.68845274277538e-02 -1.10082901069663e-01 + 1.60606060606061e+01 1.02566184269085e+00 1.05353288508621e-01 -1.09447986832365e-01 + 1.66666666666667e+01 1.01747136523085e+00 1.14011650931451e-01 -1.09533721766659e-01 + 1.72727272727273e+01 1.01393796533581e+00 1.23111695493764e-01 -1.10194974676891e-01 + 1.78787878787879e+01 1.01620977550644e+00 1.32751579382771e-01 -1.11556728709361e-01 + 1.84848484848485e+01 1.03062727147662e+00 1.44357732350225e-01 -1.14737403733058e-01 + 1.90909090909091e+01 1.04771493788588e+00 1.56504624193137e-01 -1.18523866085458e-01 + 1.96969696969697e+01 1.06291878178938e+00 1.68930683382824e-01 -1.23167550096525e-01 + 2.03030303030303e+01 1.07502785257006e+00 1.81134979640342e-01 -1.28324656352032e-01 + 2.09090909090909e+01 1.08382115536938e+00 1.93117500419765e-01 -1.33815690623442e-01 + 2.15151515151515e+01 1.09214908926105e+00 2.05100021199187e-01 -1.39246581437727e-01 + 2.21212121212121e+01 1.09715356486127e+00 2.16895622980487e-01 -1.44828119061210e-01 + 2.27272727272727e+01 1.08886762688942e+00 2.27943741095172e-01 -1.50978244430421e-01 + 2.33333333333333e+01 1.08058168891757e+00 2.38991859209858e-01 -1.57084368281988e-01 + 2.39393939393939e+01 1.07229575094571e+00 2.50039977324543e-01 -1.62956004038701e-01 + 2.45454545454545e+01 1.06558611366856e+00 2.61691804677889e-01 -1.68040941931674e-01 + 2.51515151515151e+01 1.05905161714547e+00 2.73410709392586e-01 -1.73040662366437e-01 + 2.57575757575758e+01 1.05251712062237e+00 2.85129614107284e-01 -1.78042939631076e-01 + 2.63636363636364e+01 1.04673941380572e+00 2.97242656458348e-01 -1.82687214968074e-01 + 2.69696969696970e+01 1.04146631186305e+00 3.09618498066121e-01 -1.87092862759889e-01 + 2.75757575757576e+01 1.03619320992039e+00 3.21994339673895e-01 -1.91500121873642e-01 + 2.81818181818182e+01 1.03116398723408e+00 3.34548802265770e-01 -1.95783309953570e-01 + 2.87878787878788e+01 1.02670376733233e+00 3.47520011402030e-01 -1.99774488550039e-01 + 2.93939393939394e+01 1.02224354743058e+00 3.60491220538288e-01 -2.03766728259228e-01 + 3.00000000000000e+01 1.01778332752883e+00 3.73462429674547e-01 -2.07760038049125e-01 + 3.30000000000000e+01 9.98306668405358e-01 4.41078428348352e-01 -2.25710390737701e-01 + 3.60000000000000e+01 9.79435247436346e-01 5.11546160178582e-01 -2.42439672107783e-01 + 3.90000000000000e+01 9.59115016848787e-01 5.84717599999870e-01 -2.58725778460445e-01 + 4.20000000000000e+01 9.35081102871063e-01 6.59576481995558e-01 -2.74139975914325e-01 + 4.50000000000000e+01 9.09710553576705e-01 7.34856757216810e-01 -2.89288459990168e-01 + 4.80000000000000e+01 8.77014675428035e-01 8.10097993520892e-01 -3.03752712432158e-01 + 5.10000000000000e+01 8.40093342319397e-01 8.83801401078911e-01 -3.17922061767336e-01 + 5.40000000000000e+01 7.94720827645917e-01 9.54429052281285e-01 -3.31525536369943e-01 + 5.70000000000000e+01 7.49348627860369e-01 1.02505616393010e+00 -3.45117992160713e-01 + 6.00000000000000e+01 7.03976585517588e-01 1.09568300580419e+00 -3.58702045370939e-01 + 6.30000000000000e+01 6.42559375800653e-01 1.15311167778193e+00 -3.70952105943644e-01 + 6.60000000000000e+01 5.81142028551168e-01 1.21054023663040e+00 -3.83194946194241e-01 + 6.90000000000000e+01 5.19724681301684e-01 1.26796879547887e+00 -3.95431861953200e-01 + 7.20000000000000e+01 4.50686006342368e-01 1.31194678590016e+00 -4.06412636751425e-01 + 7.50000000000000e+01 3.77836823546866e-01 1.34919976745892e+00 -4.16762432040660e-01 + 7.80000000000000e+01 3.04986205955287e-01 1.38645317590716e+00 -4.27107489371432e-01 + 8.10000000000000e+01 2.30777377649507e-01 1.41546571661960e+00 -4.36589691718973e-01 + 8.40000000000000e+01 1.53852221672675e-01 1.42799709070664e+00 -4.44350170094074e-01 + 8.70000000000000e+01 7.69261097609987e-02 1.44052856052647e+00 -4.52106372914785e-01 + 9.00000000000000e+01 -3.36082901382020e-07 1.45305992178765e+00 -4.59858962710058e-01 + 9.30000000000000e+01 -5.38483605044154e-02 1.44052854770060e+00 -4.63848553313885e-01 + 9.60000000000000e+01 -1.07696390610194e-01 1.42799712574756e+00 -4.67844287195712e-01 + 9.90000000000000e+01 -1.61544432084705e-01 1.41546560806078e+00 -4.71846453257926e-01 + 1.02000000000000e+02 -2.13490407640989e-01 1.38645299548144e+00 -4.72567917825502e-01 + 1.05000000000000e+02 -2.64485370834833e-01 1.34920001392269e+00 -4.71652413145928e-01 + 1.08000000000000e+02 -3.15480318387913e-01 1.31194660547628e+00 -4.70694898637910e-01 + 1.11000000000000e+02 -3.63807602041395e-01 1.26796829798034e+00 -4.68443341138964e-01 + 1.14000000000000e+02 -4.06799639145038e-01 1.21054039721062e+00 -4.63658575489138e-01 + 1.17000000000000e+02 -4.49791636415260e-01 1.15311205772626e+00 -4.58872593540100e-01 + 1.20000000000000e+02 -4.92783591804723e-01 1.09568347306768e+00 -4.54085669273530e-01 + 1.23000000000000e+02 -5.24544329085952e-01 1.02505663119359e+00 -4.47459524176604e-01 + 1.26000000000000e+02 -5.56305003551198e-01 9.54429519550126e-01 -4.40832384971193e-01 + 1.29000000000000e+02 -5.88065552379780e-01 8.83801868347751e-01 -4.34204079889270e-01 + 1.32000000000000e+02 -6.12201334294277e-01 8.10085206753381e-01 -4.28311374168508e-01 + 1.35000000000000e+02 -6.32524741785104e-01 7.34824043633297e-01 -4.22785962751293e-01 + 1.38000000000000e+02 -6.52847363996135e-01 6.59563695332856e-01 -4.17259798695567e-01 + 1.41000000000000e+02 -6.71000863605846e-01 5.85797272916321e-01 -4.13816791549941e-01 + 1.44000000000000e+02 -6.84816100411641e-01 5.15018714390009e-01 -4.14540480801535e-01 + 1.47000000000000e+02 -6.98630831673898e-01 4.44240664843570e-01 -4.15262578060876e-01 + 1.50000000000000e+02 -7.12445310173410e-01 3.73462869777981e-01 -4.15983399559589e-01 + 1.53000000000000e+02 -7.07009533624438e-01 3.20145904015172e-01 -4.31332989170919e-01 + 1.56000000000000e+02 -7.02319196022267e-01 2.66829166731978e-01 -4.46674211305675e-01 + 1.59000000000000e+02 -6.97067607564390e-01 2.13512805022704e-01 -4.61700248148900e-01 + 1.62000000000000e+02 -6.25252484559990e-01 1.76166650176245e-01 -4.73355693794957e-01 + 1.65000000000000e+02 -5.21043473383171e-01 1.46805733824602e-01 -4.83347659534527e-01 + 1.68000000000000e+02 -4.16835056347187e-01 1.17444553927237e-01 -4.93339032716489e-01 + 1.71000000000000e+02 -3.12626441266809e-01 8.80834460119835e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.08417430088600e-01 5.87224820643139e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.03734285731640e-01 4.83552281802738e-02 -1.49315896260807e-01 + 1.80000000000000e+02 0.00000000000000e+00 4.74945271221455e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_17.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_17.dat new file mode 100644 index 00000000..217af07d --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_17.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF17_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF17_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.516492 alpha0 ! 0-lift angle of attack, depends on airfoil. +10.239483 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.166956 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.381088 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.159496 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.009688 Cd0 ! 2D drag coefficient value at 0-lift. +-0.104313 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.02376982549728e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.08718036745927e-01 5.02376982549728e-02 1.19452717008645e-01 +-1.74000000000000e+02 2.18430776525163e-01 6.02851812182215e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.27646531789012e-01 9.04279599581437e-02 3.60000410445527e-01 +-1.68000000000000e+02 4.36869311875493e-01 1.20570256132886e-01 3.18260147906390e-01 +-1.65000000000000e+02 5.46099384730567e-01 1.50712311030671e-01 1.95651323790509e-01 +-1.62000000000000e+02 6.55334540103918e-01 1.80854868202663e-01 7.30412515523047e-02 +-1.59000000000000e+02 7.28010405538067e-01 2.19127710006320e-01 -9.45584975904147e-03 +-1.56000000000000e+02 7.24644310916020e-01 2.73660846032009e-01 -1.21837323981812e-02 +-1.53000000000000e+02 7.21308604937496e-01 3.28193998660095e-01 -1.57136492042310e-02 +-1.50000000000000e+02 7.20052599183224e-01 3.82727196695211e-01 -2.24733180893469e-02 +-1.47000000000000e+02 7.05344979121394e-01 4.53184198414303e-01 -6.72063266750436e-03 +-1.44000000000000e+02 6.90637102885333e-01 5.23641395400969e-01 9.03246882847654e-03 +-1.41000000000000e+02 6.75928714282518e-01 5.94098982936728e-01 2.49798597818277e-02 +-1.38000000000000e+02 6.57098483724279e-01 6.67494798442362e-01 4.09475868870872e-02 +-1.35000000000000e+02 6.36207340549935e-01 7.42359721972419e-01 5.68857580517079e-02 +-1.32000000000000e+02 6.15315579547438e-01 8.17225281824516e-01 7.28165592297191e-02 +-1.29000000000000e+02 5.90673724574305e-01 8.90525522009492e-01 8.88369855206700e-02 +-1.26000000000000e+02 5.58531663885406e-01 9.60695115424263e-01 1.05046529374471e-01 +-1.23000000000000e+02 5.26389596453192e-01 1.03086417277945e+00 1.21252954182462e-01 +-1.20000000000000e+02 4.94247525649446e-01 1.10103296211486e+00 1.37456542318889e-01 +-1.17000000000000e+02 4.51005751931015e-01 1.15795443010112e+00 1.52804706847535e-01 +-1.14000000000000e+02 4.07763995533133e-01 1.21487565475428e+00 1.68151691714967e-01 +-1.11000000000000e+02 3.64522317186419e-01 1.27179644456681e+00 1.83497290780899e-01 +-1.08000000000000e+02 3.16016600929376e-01 1.31524560139462e+00 1.97190287375102e-01 +-1.05000000000000e+02 2.64878825634709e-01 1.35195883914965e+00 2.10057619315569e-01 +-1.02000000000000e+02 2.13741036335945e-01 1.38867165620685e+00 2.22925091726200e-01 +-9.90000000000000e+01 1.61684301770569e-01 1.41713830337121e+00 2.34432883783133e-01 +-9.60000000000000e+01 1.07789636867620e-01 1.42911225356491e+00 2.43221503139034e-01 +-9.30000000000000e+01 5.38949836895802e-02 1.44108611228438e+00 2.52012246779875e-01 +-9.00000000000000e+01 3.36373889682523e-07 1.45305992526757e+00 2.60805612076082e-01 +-8.70000000000000e+01 -5.38949285283857e-02 1.44108612453959e+00 2.65268702964392e-01 +-8.40000000000000e+01 -1.07789787569110e-01 1.42911222008308e+00 2.69705899355330e-01 +-8.10000000000000e+01 -1.61683834888495e-01 1.41713840709990e+00 2.74118148425682e-01 +-7.80000000000000e+01 -2.13740788662556e-01 1.38867183401641e+00 2.75218906403952e-01 +-7.50000000000000e+01 -2.64879163958945e-01 1.35195859625958e+00 2.74653513726577e-01 +-7.20000000000000e+01 -3.16016353261405e-01 1.31524577920238e+00 2.74066661635360e-01 +-6.90000000000000e+01 -3.64521942583287e-01 1.27179693767224e+00 2.72190520318518e-01 +-6.60000000000000e+01 -4.07764116445761e-01 1.21487549559204e+00 2.67758304954097e-01 +-6.30000000000000e+01 -4.51006038016469e-01 1.15795405351184e+00 2.63309723707785e-01 +-6.00000000000000e+01 -4.94247738299703e-01 1.10103249788183e+00 2.58846174876524e-01 +-5.70000000000000e+01 -5.26389809103449e-01 1.03086370854641e+00 2.52537766967854e-01 +-5.40000000000000e+01 -5.58531876535596e-01 9.60694651185909e-01 2.46218241369695e-01 +-5.10000000000000e+01 -5.90673937224495e-01 8.90525057771137e-01 2.39889401901766e-01 +-4.80000000000000e+01 -6.16985978521229e-01 8.17249434089066e-01 2.33807907536728e-01 +-4.50000000000000e+01 -6.40383103818546e-01 7.42420845191650e-01 2.27849917319468e-01 +-4.20000000000000e+01 -6.58768869626067e-01 6.67518950513351e-01 2.23456296897971e-01 +-3.90000000000000e+01 -6.76252856241839e-01 5.93029893358622e-01 2.19662575489263e-01 +-3.60000000000000e+01 -6.91251469843313e-01 5.20200446113040e-01 2.17992553881491e-01 +-3.30000000000000e+01 -7.05373690625492e-01 4.50048605759265e-01 2.19429640986969e-01 +-3.00000000000000e+01 -7.20052704961507e-01 3.82726758502379e-01 2.24334644865001e-01 +-2.93939393939394e+01 -7.23423358758069e-01 3.69810374707743e-01 2.26262638995891e-01 +-2.87878787878788e+01 -7.26794012554631e-01 3.56893990913108e-01 2.28190633126782e-01 +-2.81818181818182e+01 -7.30164666351193e-01 3.43977607118473e-01 2.30118627257672e-01 +-2.75757575757576e+01 -7.33955296036718e-01 3.31475572351972e-01 2.32714210527911e-01 +-2.69696969696970e+01 -7.37925930829896e-01 3.19151130974461e-01 2.35595927974075e-01 +-2.63636363636364e+01 -7.41896565623074e-01 3.06826689596951e-01 2.38477645420239e-01 +-2.57575757575758e+01 -7.46236904909058e-01 2.94763605830315e-01 2.41858864830355e-01 +-2.51515151515151e+01 -7.51131714769935e-01 2.83092497567289e-01 2.45989220771138e-01 +-2.45454545454545e+01 -7.56026524630811e-01 2.71421389304264e-01 2.50119576711921e-01 +-2.39393939393939e+01 -7.61117995847343e-01 2.59818577841106e-01 2.53958515768821e-01 +-2.33333333333333e+01 -7.67979457339360e-01 2.48830450799340e-01 2.55174646451070e-01 +-2.27272727272727e+01 -7.74840918831377e-01 2.37842323757575e-01 2.56491201944605e-01 +-2.21212121212121e+01 -7.81702380323394e-01 2.26854196715809e-01 2.57271002838526e-01 +-2.15151515151515e+01 -8.12448284285856e-01 2.19127250982838e-01 2.39096729103820e-01 +-2.09090909090909e+01 -8.46418529847557e-01 2.12215810350734e-01 2.19171773544913e-01 +-2.03030303030303e+01 -8.82410390516615e-01 2.05304369718630e-01 1.99907002060488e-01 +-1.96969696969697e+01 -9.17302460891263e-01 1.98393040992681e-01 1.80908557885250e-01 +-1.90909090909091e+01 -9.51690757109299e-01 1.91481824166556e-01 1.62015766540326e-01 +-1.84848484848485e+01 -9.87451060932182e-01 1.84488095751064e-01 1.43186155335470e-01 +-1.78787878787879e+01 -1.02348107734750e+00 1.78125103821018e-01 1.23309320342863e-01 +-1.72727272727273e+01 -1.05955430524795e+00 1.72667345635547e-01 1.02937199694708e-01 +-1.66666666666667e+01 -1.09661808800758e+00 1.66429075696717e-01 8.25865362857696e-02 +-1.60606060606061e+01 -1.13436650818888e+00 1.59785188254103e-01 6.22621217533182e-02 +-1.54545454545455e+01 -1.15393444133063e+00 1.51574659183086e-01 4.58165236508863e-02 +-1.48484848484848e+01 -1.16179648627071e+00 1.42415253094923e-01 3.15133238851397e-02 +-1.42424242424242e+01 -1.14050675694352e+00 1.31113076076399e-01 2.06305497523611e-02 +-1.36363636363636e+01 -1.11318982416965e+00 1.19491463618837e-01 6.42328479698607e-03 +-1.30303030303030e+01 -1.08076735917766e+00 1.07643742796169e-01 -7.83926565619422e-03 +-1.24242424242424e+01 -1.03727303023693e+00 9.49346653316282e-02 -1.75014551808433e-02 +-1.18181818181818e+01 -9.91440219649850e-01 8.26304983608341e-02 -2.54111950263429e-02 +-1.12121212121212e+01 -9.43045452072816e-01 7.24323611406984e-02 -2.97310850160300e-02 +-1.06060606060606e+01 -8.91357118244056e-01 6.36793113860100e-02 -3.46811573258460e-02 +-1.00000000000000e+01 -8.38640919151541e-01 5.56031252905086e-02 -4.00042772613043e-02 +-9.39393939393939e+00 -7.97154810810589e-01 4.56286447472684e-02 -4.58057854493708e-02 +-8.78787878787879e+00 -7.57700218153473e-01 3.48441279722901e-02 -5.20559338844009e-02 +-8.18181818181818e+00 -7.29615756802838e-01 2.21903132460571e-02 -5.98183982708405e-02 +-7.57575757575758e+00 -6.77769009447363e-01 1.66725656645290e-02 -6.52314095706447e-02 +-6.96969696969697e+00 -6.15253643707113e-01 1.38193953292020e-02 -6.96903302338436e-02 +-6.36363636363636e+00 -5.29222888480069e-01 1.28208124258429e-02 -7.60443151485867e-02 +-5.75757575757576e+00 -4.43714189157886e-01 1.18605164320041e-02 -8.20746230823483e-02 +-5.15151515151515e+00 -3.59021198798114e-01 1.11014093554157e-02 -8.75040133661531e-02 +-4.54545454545454e+00 -2.75625966933364e-01 1.06136414059815e-02 -9.20337243383322e-02 +-3.93939393939394e+00 -1.92587400034749e-01 1.02273414896665e-02 -9.62397074831400e-02 +-3.33333333333333e+00 -1.09292475701538e-01 9.90518405717358e-03 -9.99005436593104e-02 +-2.72727272727273e+00 -2.77772625212584e-02 9.71093449432091e-03 -1.03217781859456e-01 +-2.12121212121212e+00 5.20911798292055e-02 9.64590630058275e-03 -1.06366269240076e-01 +-1.51515151515152e+00 1.30586446388122e-01 9.55659941113129e-03 -1.09005739501319e-01 +-9.09090909090912e-01 2.08840498658564e-01 9.49982823781086e-03 -1.11539847170668e-01 +-3.03030303030302e-01 2.87578475260949e-01 9.58414006664110e-03 -1.13902065395105e-01 + 3.03030303030302e-01 3.65664552744906e-01 9.65560539372337e-03 -1.16149780563894e-01 + 9.09090909090912e-01 4.43204973276288e-01 9.71978591639622e-03 -1.18219507269873e-01 + 1.51515151515152e+00 5.20281024804697e-01 9.71394548831763e-03 -1.20121864462230e-01 + 2.12121212121212e+00 5.96811467615798e-01 9.80332128304454e-03 -1.21920157367353e-01 + 2.72727272727273e+00 6.71434914937960e-01 9.98488831915120e-03 -1.23594864438980e-01 + 3.33333333333333e+00 7.45656831699806e-01 1.01455835290262e-02 -1.25107525282158e-01 + 3.93939393939394e+00 8.19857800959508e-01 1.02378295152185e-02 -1.26457757043226e-01 + 4.54545454545455e+00 8.93627925198807e-01 1.03669090136902e-02 -1.27577353045154e-01 + 5.15151515151515e+00 9.66788832639503e-01 1.05314448784099e-02 -1.28565417198802e-01 + 5.75757575757576e+00 1.03821639854981e+00 1.07650302198420e-02 -1.29227175957820e-01 + 6.36363636363637e+00 1.10795832677679e+00 1.10272583218359e-02 -1.29514536462203e-01 + 6.96969696969697e+00 1.17694418225097e+00 1.12742209874335e-02 -1.29549901025754e-01 + 7.57575757575757e+00 1.23921531344826e+00 1.16670639800197e-02 -1.28261266809327e-01 + 8.18181818181818e+00 1.29706014706839e+00 1.24490049337565e-02 -1.26386684375794e-01 + 8.78787878787879e+00 1.34554047570179e+00 1.37772189838099e-02 -1.23143424626972e-01 + 9.39393939393939e+00 1.37610897192605e+00 1.75961680761005e-02 -1.21674324726306e-01 + 1.00000000000000e+01 1.39836265121160e+00 2.28583111147752e-02 -1.21039639768622e-01 + 1.06060606060606e+01 1.39287314658036e+00 2.77463509449118e-02 -1.19204194226554e-01 + 1.12121212121212e+01 1.39004598907911e+00 3.19782079487326e-02 -1.15663804195089e-01 + 1.18181818181818e+01 1.39216407137552e+00 3.49921524756390e-02 -1.09850755288886e-01 + 1.24242424242424e+01 1.29370295829420e+00 4.85210271088614e-02 -1.10247193463411e-01 + 1.30303030303030e+01 1.14384582375774e+00 6.62157966012066e-02 -1.11897572147813e-01 + 1.36363636363636e+01 1.11782919778447e+00 7.57838750439830e-02 -1.11408861155646e-01 + 1.42424242424242e+01 1.09289947478728e+00 8.53102626033743e-02 -1.11136178965314e-01 + 1.48484848484848e+01 1.07102348419001e+00 9.46544491998690e-02 -1.11159785150535e-01 + 1.54545454545455e+01 1.05696164008760e+00 1.03374871102944e-01 -1.10493943921915e-01 + 1.60606060606061e+01 1.04604302431932e+00 1.11858598309336e-01 -1.10049366517221e-01 + 1.66666666666667e+01 1.03932307570257e+00 1.20082914343280e-01 -1.09980310610667e-01 + 1.72727272727273e+01 1.03747930790449e+00 1.29111242533919e-01 -1.10591886748552e-01 + 1.78787878787879e+01 1.04205220466167e+00 1.39122262444516e-01 -1.12023579838031e-01 + 1.84848484848485e+01 1.05490344379951e+00 1.50986790721675e-01 -1.15270449343547e-01 + 1.90909090909091e+01 1.06946548085938e+00 1.63292698023894e-01 -1.19065362073820e-01 + 1.96969696969697e+01 1.08276085154215e+00 1.75474320562998e-01 -1.23397138492291e-01 + 2.03030303030303e+01 1.09403365481318e+00 1.88008089241998e-01 -1.28358085737133e-01 + 2.09090909090909e+01 1.10239238595793e+00 2.00894023983065e-01 -1.33614744559156e-01 + 2.15151515151515e+01 1.10887254746938e+00 2.13779958724133e-01 -1.38763402571504e-01 + 2.21212121212121e+01 1.11237585687728e+00 2.26320681259285e-01 -1.44191042062497e-01 + 2.27272727272727e+01 1.10397482083247e+00 2.37480910168700e-01 -1.50693555732446e-01 + 2.33333333333333e+01 1.09557378478766e+00 2.48641139078116e-01 -1.57112728954266e-01 + 2.39393939393939e+01 1.08717274874285e+00 2.59801367987532e-01 -1.63133329944962e-01 + 2.45454545454545e+01 1.08003882943089e+00 2.71421389304264e-01 -1.68354300674623e-01 + 2.51515151515151e+01 1.07304569783844e+00 2.83092497567289e-01 -1.73495272149449e-01 + 2.57575757575758e+01 1.06605256624600e+00 2.94763605830315e-01 -1.78646564861648e-01 + 2.63636363636364e+01 1.05985153546545e+00 3.06826689596951e-01 -1.83426648708445e-01 + 2.69696969696970e+01 1.05417865395407e+00 3.19151130974461e-01 -1.87959534349431e-01 + 2.75757575757576e+01 1.04850577244270e+00 3.31475572351972e-01 -1.92498924465493e-01 + 2.81818181818182e+01 1.04309074438137e+00 3.43977607118473e-01 -1.96910710531247e-01 + 2.87878787878788e+01 1.03827732275955e+00 3.56893990913108e-01 -2.01014545276943e-01 + 2.93939393939394e+01 1.03346390113772e+00 3.69810374707743e-01 -2.05122663450476e-01 + 3.00000000000000e+01 1.02865047951590e+00 3.82726758502379e-01 -2.09235101253211e-01 + 3.30000000000000e+01 1.00767522728702e+00 4.50048605759265e-01 -2.27666231032229e-01 + 3.60000000000000e+01 9.87502112870606e-01 5.20200446113040e-01 -2.44805976520978e-01 + 3.90000000000000e+01 9.66075877033301e-01 5.93029893358622e-01 -2.61539856917676e-01 + 4.20000000000000e+01 9.41098858571731e-01 6.67518950513352e-01 -2.77304866762762e-01 + 4.50000000000000e+01 9.14833592285066e-01 7.42420845191650e-01 -2.92778427054725e-01 + 4.80000000000000e+01 8.81408622533811e-01 8.17249434089067e-01 -3.07497585034756e-01 + 5.10000000000000e+01 8.43819604431597e-01 8.90525057771138e-01 -3.21903684993278e-01 + 5.40000000000000e+01 7.97902221930250e-01 9.60694651185909e-01 -3.35704391970839e-01 + 5.70000000000000e+01 7.51985042501660e-01 1.03086370854641e+00 -3.49495136575764e-01 + 6.00000000000000e+01 7.06067964608676e-01 1.10103249788183e+00 -3.63279172814127e-01 + 6.30000000000000e+01 6.44293944876385e-01 1.15795405351184e+00 -3.75684064171539e-01 + 6.60000000000000e+01 5.82519789224936e-01 1.21487549559204e+00 -3.88081898949555e-01 + 6.90000000000000e+01 5.20745633573486e-01 1.27179693767224e+00 -4.00474177818223e-01 + 7.20000000000000e+01 4.51451982439921e-01 1.31524577920238e+00 -4.11592132530663e-01 + 7.50000000000000e+01 3.78398737499386e-01 1.35195859625958e+00 -4.22069569360111e-01 + 7.80000000000000e+01 3.05344055424385e-01 1.38867183401641e+00 -4.32541989601588e-01 + 8.10000000000000e+01 2.30976975521496e-01 1.41713840709990e+00 -4.42143819760501e-01 + 8.40000000000000e+01 1.53985190557838e-01 1.42911222008308e+00 -4.50008085895448e-01 + 8.70000000000000e+01 7.69925651285527e-02 1.44108612453959e+00 -4.57867677290619e-01 + 9.00000000000000e+01 -3.36373889913427e-07 1.45305992526757e+00 -4.65723360969959e-01 + 9.30000000000000e+01 -5.38949836895802e-02 1.44108611228438e+00 -4.70213156857291e-01 + 9.60000000000000e+01 -1.07789636867620e-01 1.42911225356491e+00 -4.74730592511974e-01 + 9.90000000000000e+01 -1.61684301770570e-01 1.41713830337121e+00 -4.79276533058230e-01 + 1.02000000000000e+02 -2.13741036335945e-01 1.38867165620685e+00 -4.80562246931058e-01 + 1.05000000000000e+02 -2.64878825634710e-01 1.35195883914965e+00 -4.80232757378909e-01 + 1.08000000000000e+02 -3.16016600929376e-01 1.31524560139462e+00 -4.79737782066907e-01 + 1.11000000000000e+02 -3.64522317186419e-01 1.27179644456681e+00 -4.77863421662414e-01 + 1.14000000000000e+02 -4.07763995533133e-01 1.21487565475428e+00 -4.73449633291489e-01 + 1.17000000000000e+02 -4.51005751931015e-01 1.15795443010112e+00 -4.69034472019867e-01 + 1.20000000000000e+02 -4.94247525649446e-01 1.10103296211486e+00 -4.64618222554077e-01 + 1.23000000000000e+02 -5.26389596453192e-01 1.03086417277945e+00 -4.58370282910620e-01 + 1.26000000000000e+02 -5.58531663885406e-01 9.60695115424263e-01 -4.52121193405810e-01 + 1.29000000000000e+02 -5.90673724574306e-01 8.90525522009491e-01 -4.45870794666629e-01 + 1.32000000000000e+02 -6.15315579547438e-01 8.17225281824516e-01 -4.40405924630618e-01 + 1.35000000000000e+02 -6.36207340549935e-01 7.42359721972419e-01 -4.35333210353452e-01 + 1.38000000000000e+02 -6.57098483724280e-01 6.67494798442361e-01 -4.30259571411825e-01 + 1.41000000000000e+02 -6.75928714282518e-01 5.94098982936727e-01 -4.27362077072584e-01 + 1.44000000000000e+02 -6.90637102885333e-01 5.23641395400969e-01 -4.28817330039073e-01 + 1.47000000000000e+02 -7.05344979121394e-01 4.53184198414303e-01 -4.30270852318803e-01 + 1.50000000000000e+02 -7.20052599183224e-01 3.82727196695211e-01 -4.31722931389651e-01 + 1.53000000000000e+02 -7.10181631872742e-01 3.29822360950801e-01 -4.46423672577750e-01 + 1.56000000000000e+02 -7.03319879618389e-01 2.76917694334790e-01 -4.61114380563247e-01 + 1.59000000000000e+02 -6.96086980977297e-01 2.24013284168088e-01 -4.74558545497368e-01 + 1.62000000000000e+02 -6.23394384096259e-01 1.85740697616627e-01 -4.83189489859145e-01 + 1.65000000000000e+02 -5.19495002406176e-01 1.54784146617186e-01 -4.89493605397558e-01 + 1.68000000000000e+02 -4.15596211308916e-01 1.23827350356444e-01 -4.95797422538914e-01 + 1.71000000000000e+02 -3.11697223350018e-01 9.28705619946343e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.07797841658894e-01 6.19137894310576e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.03426007186958e-01 5.10483521183991e-02 -1.49315896260807e-01 + 1.80000000000000e+02 0.00000000000000e+00 5.02376982549728e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_18.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_18.dat new file mode 100644 index 00000000..2754301a --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_18.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF18_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF18_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-2.792370 alpha0 ! 0-lift angle of attack, depends on airfoil. +9.587807 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.610700 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.342044 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-1.062317 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.008843 Cd0 ! 2D drag coefficient value at 0-lift. +-0.109829 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.36137248474854e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.08504173136844e-01 5.36137248474854e-02 1.19452717008645e-01 +-1.74000000000000e+02 2.18001573212032e-01 6.43364093197600e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.27002606158882e-01 9.65048147530414e-02 3.60000410445527e-01 +-1.68000000000000e+02 4.36007303027872e-01 1.28672864881152e-01 3.18853353245729e-01 +-1.65000000000000e+02 5.45015893840642e-01 1.60840737360825e-01 1.97134330215277e-01 +-1.62000000000000e+02 6.54027865395150e-01 1.93008707125421e-01 7.54136410554247e-02 +-1.59000000000000e+02 7.27335195948828e-01 2.32421567454577e-01 -7.86707963484010e-03 +-1.56000000000000e+02 7.26473886558584e-01 2.86323963827313e-01 -1.32688253981472e-02 +-1.53000000000000e+02 7.26401782562124e-01 3.40226371983972e-01 -1.93321617932501e-02 +-1.50000000000000e+02 7.29414906072036e-01 3.94128823688151e-01 -3.04550520731389e-02 +-1.47000000000000e+02 7.13608094775223e-01 4.64191024348164e-01 -1.44069907171891e-02 +-1.44000000000000e+02 6.97801023105656e-01 5.34253347401846e-01 1.64143099960009e-03 +-1.41000000000000e+02 6.81993430671987e-01 6.04315915251604e-01 1.79777655646737e-02 +-1.38000000000000e+02 6.62330345884982e-01 6.77255624037684e-01 3.42196692787287e-02 +-1.35000000000000e+02 6.40739522742596e-01 7.51633897455329e-01 5.03555236432470e-02 +-1.32000000000000e+02 6.19148287855155e-01 8.26012587517633e-01 6.64803246966578e-02 +-1.29000000000000e+02 5.93883607684111e-01 8.98800336981566e-01 8.26682061752675e-02 +-1.26000000000000e+02 5.61272019531039e-01 9.68406197695395e-01 9.89967979935854e-02 +-1.23000000000000e+02 5.28660570956951e-01 1.03801152665627e+00 1.15320660255902e-01 +-1.20000000000000e+02 4.96049192169745e-01 1.10761658975060e+00 1.31640184505148e-01 +-1.17000000000000e+02 4.52499966498427e-01 1.16391394816134e+00 1.47076828299769e-01 +-1.14000000000000e+02 4.08950831006833e-01 1.22021106550486e+00 1.62511306961593e-01 +-1.11000000000000e+02 3.65401918647224e-01 1.27650775277552e+00 1.77943395962959e-01 +-1.08000000000000e+02 3.16676605002551e-01 1.31930568274196e+00 1.91712305326037e-01 +-1.05000000000000e+02 2.65363051300195e-01 1.35535413126937e+00 2.04649708702310e-01 +-1.02000000000000e+02 2.14049485607990e-01 1.39140216671678e+00 2.17585944039292e-01 +-9.90000000000000e+01 1.61856439692740e-01 1.41919689307479e+00 2.29156194914714e-01 +-9.60000000000000e+01 1.07904395236486e-01 1.43048464375975e+00 2.37995669823376e-01 +-9.30000000000000e+01 5.39523629434884e-02 1.44177230821265e+00 2.46835565853370e-01 +-9.00000000000000e+01 3.36732009892260e-07 1.45305992955031e+00 2.55676268872361e-01 +-8.70000000000000e+01 -5.39523077235666e-02 1.44177231976554e+00 2.60546156064344e-01 +-8.40000000000000e+01 -1.07904546098422e-01 1.43048461219668e+00 2.65376218554658e-01 +-8.10000000000000e+01 -1.61855972313595e-01 1.41919699085902e+00 2.70167661087483e-01 +-7.80000000000000e+01 -2.14049237083272e-01 1.39140234130663e+00 2.71634637929492e-01 +-7.50000000000000e+01 -2.65363390787359e-01 1.35535389277745e+00 2.71422475089917e-01 +-7.20000000000000e+01 -3.16676356483258e-01 1.31930585733004e+00 2.71175587395195e-01 +-6.90000000000000e+01 -3.65401541382520e-01 1.27650824047434e+00 2.69624220790176e-01 +-6.60000000000000e+01 -4.08950952778550e-01 1.22021090808774e+00 2.65499895797782e-01 +-6.30000000000000e+01 -4.52500254617964e-01 1.16391357570114e+00 2.61346777314543e-01 +-6.00000000000000e+01 -4.96049407924919e-01 1.10761612924714e+00 2.57166068579216e-01 +-5.70000000000000e+01 -5.28660786712125e-01 1.03801106615281e+00 2.51133429071216e-01 +-5.40000000000000e+01 -5.61272235287598e-01 9.68405737186667e-01 2.45075869286174e-01 +-5.10000000000000e+01 -5.93883823440670e-01 8.98799876472838e-01 2.38994436395362e-01 +-4.80000000000000e+01 -6.20771155324413e-01 8.26050727323750e-01 2.33161030617360e-01 +-4.50000000000000e+01 -6.44796451070394e-01 7.51729984474128e-01 2.27439298824510e-01 +-4.20000000000000e+01 -6.63953200654077e-01 6.77293763541013e-01 2.23291102757799e-01 +-3.90000000000000e+01 -6.82249667333847e-01 6.03259850610683e-01 2.19817265076178e-01 +-3.60000000000000e+01 -6.98201576773723e-01 5.30851294361004e-01 2.18838619571564e-01 +-3.30000000000000e+01 -7.13444606626873e-01 4.61088222324340e-01 2.21122290445851e-01 +-3.00000000000000e+01 -7.29415020855328e-01 3.94128387846700e-01 2.27054455296579e-01 +-2.93939393939394e+01 -7.33089414277251e-01 3.81279477717506e-01 2.29240557823958e-01 +-2.87878787878788e+01 -7.36763807699173e-01 3.68430567588313e-01 2.31426660351336e-01 +-2.81818181818182e+01 -7.40438201121096e-01 3.55581657459119e-01 2.33612762878715e-01 +-2.75757575757576e+01 -7.44561188035578e-01 3.43144145729673e-01 2.36503775794692e-01 +-2.69696969696970e+01 -7.48876445797132e-01 3.30882962725711e-01 2.39696919079866e-01 +-2.63636363636364e+01 -7.53191703558686e-01 3.18621779721749e-01 2.42890062365039e-01 +-2.57575757575758e+01 -7.57896949106898e-01 3.06620180092045e-01 2.46611383026609e-01 +-2.51515151515151e+01 -7.63187085443502e-01 2.95007895024532e-01 2.51124846654346e-01 +-2.45454545454545e+01 -7.68477221780106e-01 2.83395609957020e-01 2.55638310282083e-01 +-2.39393939393939e+01 -7.74029112998335e-01 2.71848572457760e-01 2.59427106627508e-01 +-2.33333333333333e+01 -7.81936848828191e-01 2.60888775705009e-01 2.56693757133074e-01 +-2.27272727272727e+01 -7.89844584658047e-01 2.49928978952259e-01 2.54973507041906e-01 +-2.21212121212121e+01 -7.97752320487903e-01 2.38969182199509e-01 2.51757698493230e-01 +-2.15151515151515e+01 -8.17245649453576e-01 2.29474770810752e-01 2.34218156316905e-01 +-2.09090909090909e+01 -8.40715821523898e-01 2.20346800023089e-01 2.15558365010287e-01 +-2.03030303030303e+01 -8.64893147204684e-01 2.11218829235425e-01 1.97258668465790e-01 +-1.96969696969697e+01 -8.87438946084652e-01 2.02091078490948e-01 1.79104249713839e-01 +-1.90909090909091e+01 -9.09237361854086e-01 1.92963547777208e-01 1.61007469502170e-01 +-1.84848484848485e+01 -9.33071785400616e-01 1.84171846523930e-01 1.42945493987761e-01 +-1.78787878787879e+01 -9.57306241435504e-01 1.76283936647877e-01 1.23884251763747e-01 +-1.72727272727273e+01 -9.81604014520295e-01 1.68616795799771e-01 1.04367473421751e-01 +-1.66666666666667e+01 -1.00737125830751e+00 1.60297507335738e-01 8.48827458147722e-02 +-1.60606060606061e+01 -1.03415415721149e+00 1.51566539016137e-01 6.54371368564537e-02 +-1.54545454545455e+01 -1.05213926667993e+00 1.41887359500634e-01 4.85999555851204e-02 +-1.48484848484848e+01 -1.06411426754698e+00 1.31650218002569e-01 3.32132244253039e-02 +-1.42424242424242e+01 -1.06085920517278e+00 1.20325281854275e-01 1.97519541398105e-02 +-1.36363636363636e+01 -1.05297179510023e+00 1.08818108910721e-01 3.34724170517964e-03 +-1.30303030303030e+01 -1.04038617850512e+00 9.71704693558744e-02 -1.30280274230778e-02 +-1.24242424242424e+01 -1.00963309974379e+00 8.35931628390448e-02 -2.24525867458495e-02 +-1.18181818181818e+01 -9.74392976542105e-01 7.02569290424257e-02 -2.96665236814477e-02 +-1.12121212121212e+01 -9.33183989496999e-01 5.92863820290872e-02 -3.25396861725729e-02 +-1.06060606060606e+01 -8.87095198505282e-01 5.02112419249079e-02 -3.68554806252278e-02 +-1.00000000000000e+01 -8.39030346732209e-01 4.20062550430957e-02 -4.19667667411679e-02 +-9.39393939393939e+00 -7.98355307687373e-01 3.39431550888320e-02 -4.71586015184073e-02 +-8.78787878787879e+00 -7.55075718086549e-01 2.58616329336961e-02 -5.31128483759924e-02 +-8.18181818181818e+00 -7.12760376198709e-01 1.76807004789459e-02 -6.15557949547917e-02 +-7.57575757575758e+00 -6.50212657860430e-01 1.40779977251651e-02 -6.80037285779409e-02 +-6.96969696969697e+00 -5.79316182872428e-01 1.20930353131595e-02 -7.36947785344258e-02 +-6.36363636363636e+00 -4.93332487227875e-01 1.12571113999265e-02 -8.08636763018482e-02 +-5.75757575757576e+00 -4.07625165812638e-01 1.04386697349651e-02 -8.76670243494600e-02 +-5.15151515151515e+00 -3.22375665042248e-01 9.89046924180047e-03 -9.37249643058138e-02 +-4.54545454545454e+00 -2.38569752393226e-01 9.55568172944726e-03 -9.85721042394988e-02 +-3.93939393939394e+00 -1.55278792252772e-01 9.28231334429143e-03 -1.03000270064649e-01 +-3.33333333333333e+00 -7.27588785201134e-02 9.00905966504459e-03 -1.06804167238102e-01 +-2.72727272727273e+00 8.75545142458852e-03 8.82260921114890e-03 -1.10193484668354e-01 +-2.12121212121212e+00 8.90951677107422e-02 8.71711984822585e-03 -1.13439603715240e-01 +-1.51515151515152e+00 1.68020877233593e-01 8.63506810960759e-03 -1.15955900231793e-01 +-9.09090909090912e-01 2.46284645308487e-01 8.59786619783916e-03 -1.18329762049110e-01 +-3.03030303030302e-01 3.23526927130680e-01 8.68469307519355e-03 -1.20499605866875e-01 + 3.03030303030302e-01 4.00568746060339e-01 8.73666462420641e-03 -1.22563336532720e-01 + 9.09090909090912e-01 4.77532382355605e-01 8.76693795829447e-03 -1.24415248851028e-01 + 1.51515151515152e+00 5.54310964834009e-01 8.75563015487188e-03 -1.26154371277845e-01 + 2.12121212121212e+00 6.30748642497307e-01 8.89942708059405e-03 -1.27777288327563e-01 + 2.72727272727273e+00 7.05967166479233e-01 9.07466954914071e-03 -1.29308981144731e-01 + 3.33333333333333e+00 7.80411644410489e-01 9.23152948118853e-03 -1.30694777177827e-01 + 3.93939393939394e+00 8.54634907157449e-01 9.35773501083766e-03 -1.31925075915747e-01 + 4.54545454545455e+00 9.28368090200400e-01 9.52948973845109e-03 -1.32899735261145e-01 + 5.15151515151515e+00 1.00145694605734e+00 9.73306782417346e-03 -1.33724225695198e-01 + 5.75757575757576e+00 1.07270733762567e+00 1.00006966462114e-02 -1.34169484840169e-01 + 6.36363636363637e+00 1.14127724503204e+00 1.02973665103093e-02 -1.34153350705440e-01 + 6.96969696969697e+00 1.20864942903410e+00 1.05582170564899e-02 -1.33827802118801e-01 + 7.57575757575757e+00 1.26443440681650e+00 1.10668993698580e-02 -1.31662626204201e-01 + 8.18181818181818e+00 1.31327712628436e+00 1.21179224024120e-02 -1.28718467346890e-01 + 8.78787878787879e+00 1.34931677106702e+00 1.38745085223537e-02 -1.24009773357878e-01 + 9.39393939393939e+00 1.35685700568352e+00 2.07295073959453e-02 -1.22353831339396e-01 + 1.00000000000000e+01 1.34623269398792e+00 3.03611166129043e-02 -1.22101994507537e-01 + 1.06060606060606e+01 1.29247625354756e+00 3.89303371400334e-02 -1.20772828739056e-01 + 1.12121212121212e+01 1.25212720004798e+00 4.59269172993146e-02 -1.17349872385937e-01 + 1.18181818181818e+01 1.23668533143930e+00 5.00033361654154e-02 -1.11373005101486e-01 + 1.24242424242424e+01 1.18614194111661e+00 6.00007067895342e-02 -1.09801411206576e-01 + 1.30303030303030e+01 1.11590193321859e+00 7.24445919904755e-02 -1.08383334659172e-01 + 1.36363636363636e+01 1.11070643578549e+00 8.22712281118321e-02 -1.09098841523507e-01 + 1.42424242424242e+01 1.10016431536211e+00 9.22478830207050e-02 -1.10082030306725e-01 + 1.48484848484848e+01 1.08932388927719e+00 1.02384259095179e-01 -1.11305168394289e-01 + 1.54545454545455e+01 1.08265839747059e+00 1.11362550974526e-01 -1.11223542069270e-01 + 1.60606060606061e+01 1.07750353752455e+00 1.19864697023678e-01 -1.11093423299158e-01 + 1.66666666666667e+01 1.07245197326073e+00 1.27554831236544e-01 -1.10774119006494e-01 + 1.72727272727273e+01 1.07224113795030e+00 1.36494897934856e-01 -1.11302931932702e-01 + 1.78787878787879e+01 1.07862447668773e+00 1.46962675742666e-01 -1.12850875597998e-01 + 1.84848484848485e+01 1.08861259617754e+00 1.59145187067245e-01 -1.16200177309305e-01 + 1.90909090909091e+01 1.09918905179666e+00 1.71646795036045e-01 -1.20001587294594e-01 + 1.96969696969697e+01 1.10912810899916e+00 1.83527588865384e-01 -1.23816697554203e-01 + 2.03030303030303e+01 1.11825522290028e+00 1.96466839959649e-01 -1.28421649372128e-01 + 2.09090909090909e+01 1.12524803924632e+00 2.10464608199569e-01 -1.33477817053054e-01 + 2.15151515151515e+01 1.12945414332918e+00 2.24462376439488e-01 -1.38427537382908e-01 + 2.21212121212121e+01 1.13110996428679e+00 2.37920120683396e-01 -1.43742831263358e-01 + 2.27272727272727e+01 1.12256727679690e+00 2.49218324588170e-01 -1.50497808264014e-01 + 2.33333333333333e+01 1.11402458930701e+00 2.60516528492943e-01 -1.57166764414652e-01 + 2.39393939393939e+01 1.10548190181713e+00 2.71814732397717e-01 -1.63463059451524e-01 + 2.45454545454545e+01 1.09782581769558e+00 2.83395609957020e-01 -1.68925418413166e-01 + 2.51515151515151e+01 1.09026824294031e+00 2.95007895024532e-01 -1.74308243109077e-01 + 2.57575757575758e+01 1.08271066818504e+00 3.06620180092045e-01 -1.79706378559642e-01 + 2.63636363636364e+01 1.07598865169483e+00 3.18621779721749e-01 -1.84704949130393e-01 + 2.69696969696970e+01 1.06982376061140e+00 3.30882962725711e-01 -1.89437565776199e-01 + 2.75757575757576e+01 1.06365886952798e+00 3.43144145729673e-01 -1.94179831305997e-01 + 2.81818181818182e+01 1.05776902996474e+00 3.55581657459119e-01 -1.98785028498289e-01 + 2.87878787878788e+01 1.05252092222901e+00 3.68430567588313e-01 -2.03055245546250e-01 + 2.93939393939394e+01 1.04727281449329e+00 3.81279477717506e-01 -2.07331816726986e-01 + 3.00000000000000e+01 1.04202470675756e+00 3.94128387846700e-01 -2.11614795742417e-01 + 3.30000000000000e+01 1.01920513278199e+00 4.61088222324340e-01 -2.30709635446696e-01 + 3.60000000000000e+01 9.97430021449977e-01 5.30851294361004e-01 -2.48389635018723e-01 + 3.90000000000000e+01 9.74642622581348e-01 6.03259850610683e-01 -2.65244377392235e-01 + 4.20000000000000e+01 9.48504923410187e-01 6.77293763541014e-01 -2.81146520062724e-01 + 4.50000000000000e+01 9.21138527003474e-01 7.51729984474128e-01 -2.96778859241448e-01 + 4.80000000000000e+01 8.86816262654281e-01 8.26050727323750e-01 -3.11620664341732e-01 + 5.10000000000000e+01 8.48405523199447e-01 8.98799876472838e-01 -3.26146108681646e-01 + 5.40000000000000e+01 8.01817570694549e-01 9.68405737186667e-01 -3.40039290927774e-01 + 5.70000000000000e+01 7.55229683651232e-01 1.03801106615281e+00 -3.53931325023812e-01 + 6.00000000000000e+01 7.08641829338459e-01 1.10761612924715e+00 -3.67824192591327e-01 + 6.30000000000000e+01 6.46428682755529e-01 1.16391357570114e+00 -3.80297188353490e-01 + 6.60000000000000e+01 5.84215402239047e-01 1.22021090808774e+00 -3.92768487627463e-01 + 6.90000000000000e+01 5.22002121722564e-01 1.27650824047434e+00 -4.05238805155188e-01 + 7.20000000000000e+01 4.52394670864868e-01 1.31930585733004e+00 -4.16419077136110e-01 + 7.50000000000000e+01 3.79090286205083e-01 1.35535389277745e+00 -4.26952712546759e-01 + 7.80000000000000e+01 3.05784461532969e-01 1.39140234130664e+00 -4.37484524738100e-01 + 8.10000000000000e+01 2.31222621050345e-01 1.41919699085902e+00 -4.47140901263708e-01 + 8.40000000000000e+01 1.54148835649795e-01 1.43048461219668e+00 -4.55046838069807e-01 + 8.70000000000000e+01 7.70743518918329e-02 1.44177231976554e+00 -4.62950611733494e-01 + 9.00000000000000e+01 -3.36732010122695e-07 1.45305992955031e+00 -4.70852706467098e-01 + 9.30000000000000e+01 -5.39523629434884e-02 1.44177230821265e+00 -4.75763515343477e-01 + 9.60000000000000e+01 -1.07904395236486e-01 1.43048464375975e+00 -4.80716438183718e-01 + 9.90000000000000e+01 -1.61856439692741e-01 1.41919689307479e+00 -4.85712617490280e-01 + 1.02000000000000e+02 -2.14049485607990e-01 1.39140216671678e+00 -4.87463918618097e-01 + 1.05000000000000e+02 -2.65363051300195e-01 1.35535413126937e+00 -4.87615426725982e-01 + 1.08000000000000e+02 -3.16676605002551e-01 1.31930568274196e+00 -4.87522734138826e-01 + 1.11000000000000e+02 -3.65401918647224e-01 1.27650775277552e+00 -4.85996410622861e-01 + 1.14000000000000e+02 -4.08950831006833e-01 1.22021106550486e+00 -4.81927358927190e-01 + 1.17000000000000e+02 -4.52499966498427e-01 1.16391394816134e+00 -4.77857363874255e-01 + 1.20000000000000e+02 -4.96049192169745e-01 1.10761658975060e+00 -4.73786676400946e-01 + 1.23000000000000e+02 -5.28660570956951e-01 1.03801152665627e+00 -4.67894035404986e-01 + 1.26000000000000e+02 -5.61272019531039e-01 9.68406197695395e-01 -4.62000666821961e-01 + 1.29000000000000e+02 -5.93883607684111e-01 8.98800336981565e-01 -4.56106383315202e-01 + 1.32000000000000e+02 -6.19148287855155e-01 8.26012587517633e-01 -4.51045249617514e-01 + 1.35000000000000e+02 -6.40739522742596e-01 7.51633897455329e-01 -4.46400358390250e-01 + 1.38000000000000e+02 -6.62330345884983e-01 6.77255624037683e-01 -4.41754984328411e-01 + 1.41000000000000e+02 -6.81993430671987e-01 6.04315915251604e-01 -4.39372656415041e-01 + 1.44000000000000e+02 -6.97801023105656e-01 5.34253347401846e-01 -4.41516679399736e-01 + 1.47000000000000e+02 -7.13608094775223e-01 4.64191024348164e-01 -4.43659776127911e-01 + 1.50000000000000e+02 -7.29414906072037e-01 3.94128823688151e-01 -4.45802094533083e-01 + 1.53000000000000e+02 -7.15037146111127e-01 3.41731197240688e-01 -4.59822411066617e-01 + 1.56000000000000e+02 -7.05123336765058e-01 2.89333666877955e-01 -4.73837152031237e-01 + 1.59000000000000e+02 -6.95414684317536e-01 2.36936246357618e-01 -4.86012649076484e-01 + 1.62000000000000e+02 -6.22098323807239e-01 1.97523498321224e-01 -4.91995579783009e-01 + 1.65000000000000e+02 -5.18414913187139e-01 1.64603196340870e-01 -4.94997251401146e-01 + 1.68000000000000e+02 -4.14732090684931e-01 1.31682671601892e-01 -4.97998891218103e-01 + 1.71000000000000e+02 -3.11049072145794e-01 9.87620758945397e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.07365661523777e-01 6.58413382471257e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.03210513612473e-01 5.43627855211274e-02 -1.49315896260807e-01 + 1.80000000000000e+02 0.00000000000000e+00 5.36137248474854e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_19.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_19.dat new file mode 100644 index 00000000..de96b588 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_19.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF19_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF19_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-3.045221 alpha0 ! 0-lift angle of attack, depends on airfoil. +9.266236 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.753418 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.340318 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.990977 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.008173 Cd0 ! 2D drag coefficient value at 0-lift. +-0.112549 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.58151028351338e-02 0.00000000000000e+00 +-1.77000000000000e+02 1.08403822920070e-01 5.58151028351338e-02 1.19452717008645e-01 +-1.74000000000000e+02 2.17800459908011e-01 6.69780604209238e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.26700878169450e-01 1.00467299648537e-01 3.60000410445527e-01 +-1.68000000000000e+02 4.35601558622185e-01 1.33956266552371e-01 3.19240159788981e-01 +-1.65000000000000e+02 5.44502718536549e-01 1.67445097297493e-01 1.98101342058805e-01 +-1.62000000000000e+02 6.53405489525881e-01 2.00933761249497e-01 7.69605856327805e-02 +-1.59000000000000e+02 7.27019339407255e-01 2.41089984114099e-01 -6.83110332274381e-03 +-1.56000000000000e+02 7.28728560841196e-01 2.94581099251365e-01 -1.48336824338646e-02 +-1.53000000000000e+02 7.31142347309657e-01 3.48072223030611e-01 -2.31137907275188e-02 +-1.50000000000000e+02 7.35519708784298e-01 4.01563389144863e-01 -3.46869785111124e-02 +-1.47000000000000e+02 7.18996156868714e-01 4.71368155114379e-01 -1.84787848110211e-02 +-1.44000000000000e+02 7.02472341842677e-01 5.41172995959272e-01 -2.27031145595949e-03 +-1.41000000000000e+02 6.85948000576950e-01 6.10977986560267e-01 1.41215595154545e-02 +-1.38000000000000e+02 6.65741843359713e-01 6.83620285576331e-01 3.03710500677338e-02 +-1.35000000000000e+02 6.43694785635686e-01 7.57681233044139e-01 4.65119317299114e-02 +-1.32000000000000e+02 6.21647450545519e-01 8.31742453913374e-01 6.26455676270925e-02 +-1.29000000000000e+02 5.95976649852831e-01 9.04196027753608e-01 7.88432528643242e-02 +-1.26000000000000e+02 5.63058900774808e-01 9.73434299905923e-01 9.51782729473790e-02 +-1.23000000000000e+02 5.30141386686949e-01 1.04267204311347e+00 1.11510014334606e-01 +-1.20000000000000e+02 4.97223990089781e-01 1.11190952185851e+00 1.27838839143617e-01 +-1.17000000000000e+02 4.53474286743658e-01 1.16779992225404e+00 1.43283454610664e-01 +-1.14000000000000e+02 4.09724721085944e-01 1.22369008305982e+00 1.58726450315576e-01 +-1.11000000000000e+02 3.65975473161876e-01 1.27957981690164e+00 1.74167578217843e-01 +-1.08000000000000e+02 3.17106968448641e-01 1.32195310670654e+00 1.87944896444489e-01 +-1.05000000000000e+02 2.65678796360799e-01 1.35756807157142e+00 2.00890123017622e-01 +-1.02000000000000e+02 2.14250613596524e-01 1.39318262832361e+00 2.13833889964470e-01 +-9.90000000000000e+01 1.61968684256675e-01 1.42053922078900e+00 2.25410295218944e-01 +-9.60000000000000e+01 1.07979224785424e-01 1.43137952698492e+00 2.34252955588311e-01 +-9.30000000000000e+01 5.39897777632595e-02 1.44221975036700e+00 2.43094929221455e-01 +-9.00000000000000e+01 3.36965526401992e-07 1.45305993234293e+00 2.51936472308407e-01 +-8.70000000000000e+01 -5.39897225050438e-02 1.44221976146193e+00 2.56931622255970e-01 +-8.40000000000000e+01 -1.07979375751980e-01 1.43137949667301e+00 2.61901020827721e-01 +-8.10000000000000e+01 -1.61968216553408e-01 1.42053931469708e+00 2.66845383648936e-01 +-7.80000000000000e+01 -2.14250364516685e-01 1.39318280081402e+00 2.68479729146681e-01 +-7.50000000000000e+01 -2.65679136606263e-01 1.35756783594738e+00 2.68447877672478e-01 +-7.20000000000000e+01 -3.17106719374234e-01 1.32195327919519e+00 2.68392871736955e-01 +-6.90000000000000e+01 -3.65975094161662e-01 1.27958030107501e+00 2.67043843374306e-01 +-6.60000000000000e+01 -4.09724843417841e-01 1.22368992678063e+00 2.63130341234035e-01 +-6.30000000000000e+01 -4.53474576189544e-01 1.16779955248625e+00 2.59197088106754e-01 +-6.00000000000000e+01 -4.97224207869552e-01 1.11190906378698e+00 2.55244704276654e-01 +-5.70000000000000e+01 -5.30141604466721e-01 1.04267158504194e+00 2.49454887071623e-01 +-5.40000000000000e+01 -5.63059118556911e-01 9.73433841829142e-01 2.43646817884402e-01 +-5.10000000000000e+01 -5.95976867634935e-01 9.04195569676826e-01 2.37820619877023e-01 +-4.80000000000000e+01 -6.23239324536221e-01 8.31789714461067e-01 2.32266352846812e-01 +-4.50000000000000e+01 -6.47674226237690e-01 7.57800118621131e-01 2.26836908914070e-01 +-4.20000000000000e+01 -6.67333704892715e-01 6.83667545750015e-01 2.23029606785968e-01 +-3.90000000000000e+01 -6.86159958788100e-01 6.09930414983374e-01 2.19918132247163e-01 +-3.60000000000000e+01 -7.02733476031370e-01 5.37796305675443e-01 2.19390306691080e-01 +-3.30000000000000e+01 -7.18707342668409e-01 4.68286734608672e-01 2.22226002504236e-01 +-3.00000000000000e+01 -7.35519829439412e-01 4.01562954836658e-01 2.28827939791023e-01 +-2.93939393939394e+01 -7.39392279869158e-01 3.88758041707422e-01 2.31182344944843e-01 +-2.87878787878788e+01 -7.43264730298904e-01 3.75953128578187e-01 2.33536750098664e-01 +-2.81818181818182e+01 -7.47137180728651e-01 3.63148215448951e-01 2.35891155252484e-01 +-2.75757575757576e+01 -7.51476885097161e-01 3.50752776727396e-01 2.38974806555987e-01 +-2.69696969696970e+01 -7.56016858332907e-01 3.38532842092560e-01 2.42371018735316e-01 +-2.63636363636364e+01 -7.60556831568653e-01 3.26312907457723e-01 2.45767230914644e-01 +-2.57575757575758e+01 -7.65500018552221e-01 3.14351399285216e-01 2.49710318611517e-01 +-2.51515151515151e+01 -7.71047932183450e-01 3.02777470576641e-01 2.54473592128438e-01 +-2.45454545454545e+01 -7.76595845814680e-01 2.91203541868066e-01 2.59236865645359e-01 +-2.39393939393939e+01 -7.82447959329456e-01 2.79692872440278e-01 2.62992965843921e-01 +-2.33333333333333e+01 -7.91037930690711e-01 2.68751548786870e-01 2.57684311183680e-01 +-2.27272727272727e+01 -7.99627902051967e-01 2.57810225133461e-01 2.53255349257629e-01 +-2.21212121212121e+01 -8.08217873413222e-01 2.46868901480052e-01 2.47684440936497e-01 +-2.15151515151515e+01 -8.19990478826953e-01 2.36221993248645e-01 2.31504471971342e-01 +-2.09090909090909e+01 -8.34647953216695e-01 2.25648707810846e-01 2.13702005243607e-01 +-2.03030303030303e+01 -8.49132464561041e-01 2.15075422373046e-01 1.95960374750995e-01 +-1.96969696969697e+01 -8.62578663351143e-01 2.04502427490460e-01 1.78243288992263e-01 +-1.90909090909091e+01 -8.75549253302963e-01 1.93929723146649e-01 1.60535941747677e-01 +-1.84848484848485e+01 -8.89815545281606e-01 1.83695365421934e-01 1.42835185458870e-01 +-1.78787878787879e+01 -9.04336378911458e-01 1.74027498768236e-01 1.24649099331343e-01 +-1.72727272727273e+01 -9.18897356865547e-01 1.64194842338135e-01 1.06248581428441e-01 +-1.66666666666667e+01 -9.34393729163051e-01 1.54084754485664e-01 8.78685062390541e-02 +-1.60606060606061e+01 -9.50536639664486e-01 1.43764438001973e-01 6.95133639931887e-02 +-1.54545454545455e+01 -9.64734821551149e-01 1.33117373956884e-01 5.21860598369796e-02 +-1.48484848484848e+01 -9.77391904313972e-01 1.22286093821075e-01 3.54343122342188e-02 +-1.42424242424242e+01 -9.85991220935185e-01 1.11183046356548e-01 1.93441677911052e-02 +-1.36363636363636e+01 -9.92508781462450e-01 1.00022677031595e-01 1.86113773658177e-03 +-1.30303030303030e+01 -9.96614484588265e-01 8.88116806333893e-02 -1.56141016371839e-02 +-1.24242424242424e+01 -9.78086134430020e-01 7.52791871427589e-02 -2.49185975754885e-02 +-1.18181818181818e+01 -9.53932069219898e-01 6.20273381259160e-02 -3.17721050900264e-02 +-1.12121212121212e+01 -9.20876137842797e-01 5.07143911844155e-02 -3.39028634816218e-02 +-1.06060606060606e+01 -8.81577109301206e-01 4.14292282661460e-02 -3.79021056900473e-02 +-1.00000000000000e+01 -8.39208813140256e-01 3.31402553113552e-02 -4.29111295394993e-02 +-9.39393939393939e+00 -7.98914426405686e-01 2.63234936305883e-02 -4.78020739246981e-02 +-8.78787878787879e+00 -7.51657176842035e-01 2.00389695291873e-02 -5.40250476091291e-02 +-8.18181818181818e+00 -6.93679577084241e-01 1.48308481680817e-02 -6.34207316233908e-02 +-7.57575757575758e+00 -6.21203231263108e-01 1.23436646598620e-02 -7.09002799417693e-02 +-6.96969696969697e+00 -5.42846056045475e-01 1.08867824056562e-02 -7.76381592574485e-02 +-6.36363636363636e+00 -4.57248717599494e-01 1.00699499146877e-02 -8.51835466097516e-02 +-5.75757575757576e+00 -3.71772773815341e-01 9.34966265890492e-03 -9.22149694821789e-02 +-5.15151515151515e+00 -2.86510321252854e-01 8.93727471505472e-03 -9.83419419547575e-02 +-4.54545454545454e+00 -2.02800521849721e-01 8.69069179286290e-03 -1.03107031002192e-01 +-3.93939393939394e+00 -1.19779247070242e-01 8.48574750992013e-03 -1.07388031434577e-01 +-3.33333333333333e+00 -3.84842209773342e-02 8.25863893989330e-03 -1.11024512192661e-01 +-2.72727272727273e+00 4.24696095161102e-02 8.07912598948857e-03 -1.14232025558283e-01 +-2.12121212121212e+00 1.22655957049352e-01 7.94212397685742e-03 -1.17344637430821e-01 +-1.51515151515152e+00 2.01513656509836e-01 7.86589688092029e-03 -1.19802686323078e-01 +-9.09090909090912e-01 2.79423697181455e-01 7.84144762810594e-03 -1.22095855725919e-01 +-3.03030303030302e-01 3.55313195985403e-01 7.92627146648238e-03 -1.24166876151792e-01 + 3.03030303030302e-01 4.31348608046625e-01 7.96635081424009e-03 -1.26135660486964e-01 + 9.09090909090912e-01 5.07641470964623e-01 7.97255718827600e-03 -1.27871042553699e-01 + 1.51515151515152e+00 5.83948077422797e-01 7.96669925131739e-03 -1.29528648870106e-01 + 2.12121212121212e+00 6.60075851841618e-01 8.13587472418758e-03 -1.31061713680780e-01 + 2.72727272727273e+00 7.35527633751173e-01 8.30297676364884e-03 -1.32516554910940e-01 + 3.33333333333333e+00 8.09980208614822e-01 8.45480310834448e-03 -1.33834053323750e-01 + 3.93939393939394e+00 8.84045273581437e-01 8.60887609936009e-03 -1.34999421375079e-01 + 4.54545454545455e+00 9.57533521208408e-01 8.81210276724078e-03 -1.35895700708834e-01 + 5.15151515151515e+00 1.03035843997482e+00 9.04375918791339e-03 -1.36630117116849e-01 + 5.75757575757576e+00 1.10131375775296e+00 9.33994000860195e-03 -1.36951375051287e-01 + 6.36363636363637e+00 1.16891066608882e+00 9.67833808285477e-03 -1.36757550838472e-01 + 6.96969696969697e+00 1.23465262669807e+00 1.00087887591604e-02 -1.36219258169966e-01 + 7.57575757575757e+00 1.28575742789560e+00 1.07210657691971e-02 -1.33537358220650e-01 + 8.18181818181818e+00 1.32822847132065e+00 1.19390938706417e-02 -1.29971609720980e-01 + 8.78787878787879e+00 1.35408256195699e+00 1.39481484368526e-02 -1.24516098191203e-01 + 9.39393939393939e+00 1.34430353385980e+00 2.27726382829582e-02 -1.22692829271057e-01 + 1.00000000000000e+01 1.31224074007862e+00 3.52534094952587e-02 -1.22656293137505e-01 + 1.06060606060606e+01 1.22701127443843e+00 4.62229873456646e-02 -1.21636756952509e-01 + 1.12121212121212e+01 1.16219562577377e+00 5.50223378711124e-02 -1.18681954879612e-01 + 1.18181818181818e+01 1.13530358391339e+00 5.97915556707085e-02 -1.12985606092307e-01 + 1.24242424242424e+01 1.11600551029910e+00 6.74861674225558e-02 -1.09510733624339e-01 + 1.30303030303030e+01 1.09983288203511e+00 7.64936470016543e-02 -1.06091834625369e-01 + 1.36363636363636e+01 1.10710335628616e+00 8.65013832514091e-02 -1.07592565956690e-01 + 1.42424242424242e+01 1.10938358437695e+00 9.67716403001183e-02 -1.09394660231539e-01 + 1.48484848484848e+01 1.11061811797752e+00 1.07424572874100e-01 -1.11514011821931e-01 + 1.54545454545455e+01 1.11082268580784e+00 1.16571011915171e-01 -1.12131429881359e-01 + 1.60606060606061e+01 1.11033605299743e+00 1.25085168188146e-01 -1.12361290382414e-01 + 1.66666666666667e+01 1.10609925661839e+00 1.32426982839510e-01 -1.11763403041033e-01 + 1.72727272727273e+01 1.10609074419205e+00 1.41309497589980e-01 -1.12196477228094e-01 + 1.78787878787879e+01 1.11168148131629e+00 1.52075109775884e-01 -1.13878511431696e-01 + 1.84848484848485e+01 1.11799563681487e+00 1.64464965699760e-01 -1.17335103628994e-01 + 1.90909090909091e+01 1.12427870883996e+00 1.77094182598103e-01 -1.21133211985493e-01 + 1.96969696969697e+01 1.13008308302165e+00 1.88778817516490e-01 -1.24354909490447e-01 + 2.03030303030303e+01 1.13565448667379e+00 2.01982468205630e-01 -1.28506406560087e-01 + 2.09090909090909e+01 1.14015133774343e+00 2.16705220601696e-01 -1.33414633720588e-01 + 2.15151515151515e+01 1.14287461583876e+00 2.31427972997762e-01 -1.38269729436345e-01 + 2.21212121212121e+01 1.14332576014604e+00 2.45483672070678e-01 -1.43529989407809e-01 + 2.27272727272727e+01 1.13469070715944e+00 2.56871844199725e-01 -1.50406733035442e-01 + 2.33333333333333e+01 1.12605565417285e+00 2.68260016328771e-01 -1.57238953577331e-01 + 2.39393939393939e+01 1.11742060118626e+00 2.79648188457818e-01 -1.63893422540327e-01 + 2.45454545454545e+01 1.10942403333740e+00 2.91203541868066e-01 -1.69656064509149e-01 + 2.51515151515151e+01 1.10149840675555e+00 3.02777470576641e-01 -1.75327968907266e-01 + 2.57575757575758e+01 1.09357278017371e+00 3.14351399285216e-01 -1.81009617670108e-01 + 2.63636363636364e+01 1.08651104880220e+00 3.26312907457723e-01 -1.86249835379891e-01 + 2.69696969696970e+01 1.08002533707003e+00 3.38532842092560e-01 -1.91196015332576e-01 + 2.75757575757576e+01 1.07353962533786e+00 3.50752776727396e-01 -1.96148336213444e-01 + 2.81818181818182e+01 1.06734017933048e+00 3.63148215448951e-01 -2.00947535149472e-01 + 2.87878787878788e+01 1.06180862938348e+00 3.75953128578187e-01 -2.05379818120139e-01 + 2.93939393939394e+01 1.05627707943649e+00 3.88758041707422e-01 -2.09816145110101e-01 + 3.00000000000000e+01 1.05074552948950e+00 4.01562954836658e-01 -2.14256550297368e-01 + 3.30000000000000e+01 1.02672334375004e+00 4.68286734608673e-01 -2.33923275085492e-01 + 3.60000000000000e+01 1.00390363142049e+00 5.37796305675443e-01 -2.52023342292616e-01 + 3.90000000000000e+01 9.80228670131175e-01 6.09930414983374e-01 -2.68877380086188e-01 + 4.20000000000000e+01 9.53334135403550e-01 6.83667545750015e-01 -2.84801740802117e-01 + 4.50000000000000e+01 9.25249734105174e-01 7.57800118621131e-01 -3.00471220322711e-01 + 4.80000000000000e+01 8.90342378222425e-01 8.31789714461067e-01 -3.15332659299714e-01 + 5.10000000000000e+01 8.51395825660653e-01 9.04195569676826e-01 -3.29875873212572e-01 + 5.40000000000000e+01 8.04370620070051e-01 9.73433841829142e-01 -3.43774687106004e-01 + 5.70000000000000e+01 7.57345390210040e-01 1.04267158504194e+00 -3.57676244146600e-01 + 6.00000000000000e+01 7.10320148215417e-01 1.11190906378698e+00 -3.71581147754796e-01 + 6.30000000000000e+01 6.47820663786416e-01 1.16779955248625e+00 -3.84050834181803e-01 + 6.60000000000000e+01 5.85321046718599e-01 1.22368992678063e+00 -3.96521729786065e-01 + 6.90000000000000e+01 5.22821429650782e-01 1.27958030107501e+00 -4.08993794958095e-01 + 7.20000000000000e+01 4.53009361979119e-01 1.32195327919519e+00 -4.20171504341749e-01 + 7.50000000000000e+01 3.79541218701137e-01 1.35756783594738e+00 -4.30701936371378e-01 + 7.80000000000000e+01 3.06071633534284e-01 1.39318280081402e+00 -4.41232525983427e-01 + 8.10000000000000e+01 2.31382797116840e-01 1.42053931469708e+00 -4.50887242301039e-01 + 8.40000000000000e+01 1.54255542363546e-01 1.43137949667301e+00 -4.58789175569348e-01 + 8.70000000000000e+01 7.71276819161773e-02 1.44221976146193e+00 -4.66690861017101e-01 + 9.00000000000000e+01 -3.36965526632122e-07 1.45305993234293e+00 -4.74592503766813e-01 + 9.30000000000000e+01 -5.39897777632595e-02 1.44221975036700e+00 -4.79614013589955e-01 + 9.60000000000000e+01 -1.07979224785424e-01 1.43137952698492e+00 -4.84662548255213e-01 + 9.90000000000000e+01 -1.61968684256675e-01 1.42053922078900e+00 -4.89738716026789e-01 + 1.02000000000000e+02 -2.14250613596524e-01 1.39318262832361e+00 -4.91556612878414e-01 + 1.05000000000000e+02 -2.65678796360800e-01 1.35756807157142e+00 -4.91759948361478e-01 + 1.08000000000000e+02 -3.17106968448641e-01 1.32195310670654e+00 -4.91808185319412e-01 + 1.11000000000000e+02 -3.65975473161876e-01 1.27957981690164e+00 -4.90481329182113e-01 + 1.14000000000000e+02 -4.09724721085945e-01 1.22369008305982e+00 -4.86610622674850e-01 + 1.17000000000000e+02 -4.53474286743658e-01 1.16779992225404e+00 -4.82739400053527e-01 + 1.20000000000000e+02 -4.97223990089781e-01 1.11190952185851e+00 -4.78867879128044e-01 + 1.23000000000000e+02 -5.30141386686949e-01 1.04267204311347e+00 -4.73180864409918e-01 + 1.26000000000000e+02 -5.63058900774808e-01 9.73434299905923e-01 -4.67493542642030e-01 + 1.29000000000000e+02 -5.95976649852831e-01 9.04196027753607e-01 -4.61805698033490e-01 + 1.32000000000000e+02 -6.21647450545520e-01 8.31742453913373e-01 -4.56978785337660e-01 + 1.35000000000000e+02 -6.43694785635686e-01 7.57681233044139e-01 -4.52582281581552e-01 + 1.38000000000000e+02 -6.65741843359713e-01 6.83620285576330e-01 -4.48185737640142e-01 + 1.41000000000000e+02 -6.85948000576951e-01 6.10977986560267e-01 -4.46102392733155e-01 + 1.44000000000000e+02 -7.02472341842677e-01 5.41172995959272e-01 -4.48645505252371e-01 + 1.47000000000000e+02 -7.18996156868714e-01 4.71368155114379e-01 -4.51188446648819e-01 + 1.50000000000000e+02 -7.35519708784299e-01 4.01563389144863e-01 -4.53731249233545e-01 + 1.53000000000000e+02 -7.20041338298566e-01 3.49496494506179e-01 -4.67335818397252e-01 + 1.56000000000000e+02 -7.07403995417188e-01 2.97429648323240e-01 -4.80939257564229e-01 + 1.59000000000000e+02 -6.95102717992735e-01 2.45362816385929e-01 -4.93374572820376e-01 + 1.62000000000000e+02 -6.21487493690614e-01 2.05206612595701e-01 -4.97977180373460e-01 + 1.65000000000000e+02 -5.17905869149982e-01 1.71005823609649e-01 -4.98735700762325e-01 + 1.68000000000000e+02 -4.14324831560763e-01 1.36804826538108e-01 -4.99494277943921e-01 + 1.71000000000000e+02 -3.10743598323177e-01 1.02603707071835e-01 -4.50000513056908e-01 + 1.74000000000000e+02 -2.07161973779746e-01 6.84023428103841e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.03108758635925e-01 5.65240009423786e-02 -1.49315896260807e-01 + 1.80000000000000e+02 0.00000000000000e+00 5.58151028351338e-02 0.00000000000000e+00 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_20.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_20.dat new file mode 100644 index 00000000..b86dcd63 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_20.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF20_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF20_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-3.223506 alpha0 ! 0-lift angle of attack, depends on airfoil. +9.164046 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.802083 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.346223 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.953798 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.007766 Cd0 ! 2D drag coefficient value at 0-lift. +-0.112979 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.60839860376548e-02 1.47167178040004e-03 +-1.77000000000000e+02 1.08689836995157e-01 5.60839860376548e-02 1.20045412825477e-01 +-1.74000000000000e+02 2.18375213642741e-01 6.73007199605437e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.27563004817197e-01 1.00951289964885e-01 3.60000410445527e-01 +-1.68000000000000e+02 4.36467171182598e-01 1.34633335777690e-01 3.19169994146170e-01 +-1.65000000000000e+02 5.45229528453792e-01 1.68331119127359e-01 1.97925928770713e-01 +-1.62000000000000e+02 6.53993133012884e-01 2.02028691114530e-01 7.66798765295578e-02 +-1.59000000000000e+02 7.27503940714938e-01 2.42310026594573e-01 -7.27450282376270e-03 +-1.56000000000000e+02 7.31110795820098e-01 2.95758666342963e-01 -1.72902036375927e-02 +-1.53000000000000e+02 7.34319596822270e-01 3.49207314408847e-01 -2.71905033085442e-02 +-1.50000000000000e+02 7.36523173539597e-01 4.02656004658303e-01 -3.53620431597287e-02 +-1.47000000000000e+02 7.19881808024148e-01 4.72422936035072e-01 -1.91283433052972e-02 +-1.44000000000000e+02 7.03240180419886e-01 5.42189935051373e-01 -2.89438151512004e-03 +-1.41000000000000e+02 6.86598028619283e-01 6.11957069351567e-01 1.32352052371265e-02 +-1.38000000000000e+02 6.66302604968628e-01 6.84555659899671e-01 2.92408808365066e-02 +-1.35000000000000e+02 6.44180552804007e-01 7.58569972827814e-01 4.52061276876922e-02 +-1.32000000000000e+02 6.22058248103176e-01 8.32584537348692e-01 6.11744715260335e-02 +-1.29000000000000e+02 5.96320693031764e-01 9.04989003183199e-01 7.72346550841547e-02 +-1.26000000000000e+02 5.63352620077395e-01 9.74173264003827e-01 9.34737950291405e-02 +-1.23000000000000e+02 5.30384796680654e-01 1.04335699334894e+00 1.09713844738546e-01 +-1.20000000000000e+02 4.97417098058063e-01 1.11254045696623e+00 1.25955007125395e-01 +-1.17000000000000e+02 4.53634438299479e-01 1.16837104972410e+00 1.41339031769430e-01 +-1.14000000000000e+02 4.09851924952369e-01 1.22420140310934e+00 1.56723518860802e-01 +-1.11000000000000e+02 3.66069746716654e-01 1.28003132998751e+00 1.72108208755073e-01 +-1.08000000000000e+02 3.17177705557324e-01 1.32234220591584e+00 1.85841350669341e-01 +-1.05000000000000e+02 2.65730694027691e-01 1.35789345342785e+00 1.98749244923706e-01 +-1.02000000000000e+02 2.14283672037506e-01 1.39344429355730e+00 2.11656834470358e-01 +-9.90000000000000e+01 1.61987132519313e-01 1.42073648944996e+00 2.23201790003783e-01 +-9.60000000000000e+01 1.07991521148030e-01 1.43151103914374e+00 2.32020842715942e-01 +-9.30000000000000e+01 5.39959252161754e-02 1.44228550652603e+00 2.40839683380319e-01 +-9.00000000000000e+01 3.37003894400466e-07 1.45305993275333e+00 2.49658549004585e-01 +-8.70000000000000e+01 -5.39958699516678e-02 1.44228551755366e+00 2.54494482776028e-01 +-8.40000000000000e+01 -1.07991672131789e-01 1.43151100901570e+00 2.59343605608854e-01 +-8.10000000000000e+01 -1.61986664762753e-01 1.42073658278841e+00 2.64205569719769e-01 +-7.80000000000000e+01 -2.14283422866425e-01 1.39344446573911e+00 2.65795815265371e-01 +-7.50000000000000e+01 -2.65731034397795e-01 1.35789321822535e+00 2.65755918593268e-01 +-7.20000000000000e+01 -3.17177456391675e-01 1.32234237809590e+00 2.65727119737369e-01 +-6.90000000000000e+01 -3.66069367431166e-01 1.28003181364278e+00 2.64438345067420e-01 +-6.60000000000000e+01 -4.09852047376346e-01 1.22420124699738e+00 2.60617266085316e-01 +-6.30000000000000e+01 -4.53634727963402e-01 1.16837068035199e+00 2.56805932797703e-01 +-6.00000000000000e+01 -4.97417316170630e-01 1.11253999925206e+00 2.53004344403069e-01 +-5.70000000000000e+01 -5.30385014793222e-01 1.04335653563477e+00 2.47400711870632e-01 +-5.40000000000000e+01 -5.63352838192439e-01 9.74172806284381e-01 2.41806514160262e-01 +-5.10000000000000e+01 -5.96320911146808e-01 9.04988545463753e-01 2.36221437763850e-01 +-4.80000000000000e+01 -6.23645028218618e-01 8.32633137744547e-01 2.30956513607567e-01 +-4.50000000000000e+01 -6.48147258055512e-01 7.58692207540872e-01 2.25857970172168e-01 +-4.20000000000000e+01 -6.67889372666217e-01 6.84604259911055e-01 2.22474982226598e-01 +-3.90000000000000e+01 -6.86802709568193e-01 6.10910749328229e-01 2.19736387390917e-01 +-3.60000000000000e+01 -7.03478405910380e-01 5.38816968440485e-01 2.19280528126823e-01 +-3.30000000000000e+01 -7.19572395319055e-01 4.69344655336830e-01 2.22204576432948e-01 +-3.00000000000000e+01 -7.36523295159899e-01 4.02655570575433e-01 2.28913832317185e-01 +-2.93939393939394e+01 -7.40428301639941e-01 3.89857123435579e-01 2.31295215800378e-01 +-2.87878787878788e+01 -7.44333308119982e-01 3.77058676295725e-01 2.33676599283572e-01 +-2.81818181818182e+01 -7.48238314600024e-01 3.64260229155871e-01 2.36057982766765e-01 +-2.75757575757576e+01 -7.52613641879506e-01 3.51870974153269e-01 2.39172506623836e-01 +-2.69696969696970e+01 -7.57190552507842e-01 3.39657102253967e-01 2.42601260453133e-01 +-2.63636363636364e+01 -7.61767463136177e-01 3.27443230354664e-01 2.46030014282430e-01 +-2.57575757575758e+01 -7.66749761722573e-01 3.15487613973748e-01 2.50008630333910e-01 +-2.51515151515151e+01 -7.72340047765258e-01 3.03919320680690e-01 2.54811911566304e-01 +-2.45454545454545e+01 -7.77930333807944e-01 2.92351027387632e-01 2.59615192798699e-01 +-2.39393939393939e+01 -7.83831337974498e-01 2.80845692169765e-01 2.63368296589326e-01 +-2.33333333333333e+01 -7.92528865412384e-01 2.69906991817601e-01 2.57669600084677e-01 +-2.27272727272727e+01 -8.01226392850269e-01 2.58968291465437e-01 2.51477123925418e-01 +-2.21212121212121e+01 -8.09923920288154e-01 2.48029591113273e-01 2.45907124300863e-01 +-2.15151515151515e+01 -8.20235783478513e-01 2.37173728120076e-01 2.31168860674295e-01 +-2.09090909090909e+01 -8.29622622700524e-01 2.26338579795089e-01 2.13713746850245e-01 +-2.03030303030303e+01 -8.39213259378848e-01 2.15503431470102e-01 1.96258633026194e-01 +-1.96969696969697e+01 -8.49342921178197e-01 2.04670828846016e-01 1.78811743339257e-01 +-1.90909090909091e+01 -8.59723555494070e-01 1.93840771778819e-01 1.61373077324190e-01 +-1.84848484848485e+01 -8.69355568885329e-01 1.82817117288920e-01 1.43848790063230e-01 +-1.78787878787879e+01 -8.78841519111643e-01 1.71507191312464e-01 1.26522966331281e-01 +-1.72727272727273e+01 -8.88304094365764e-01 1.60344653968440e-01 1.09264562513686e-01 +-1.66666666666667e+01 -8.97226846531499e-01 1.49299202250655e-01 9.19320215375475e-02 +-1.60606060606061e+01 -9.05768732409721e-01 1.38352219033920e-01 7.45346221583764e-02 +-1.54545454545455e+01 -9.14769264432095e-01 1.27532003288276e-01 5.67050762225817e-02 +-1.48484848484848e+01 -9.24224518221895e-01 1.16781059230677e-01 3.86315588318540e-02 +-1.42424242424242e+01 -9.34933174803990e-01 1.06107627638312e-01 2.02903974043766e-02 +-1.36363636363636e+01 -9.46580047643885e-01 9.54549647670512e-02 2.58155653624406e-03 +-1.30303030303030e+01 -9.59376519315215e-01 8.48210475936575e-02 -1.51277660357559e-02 +-1.24242424242424e+01 -9.49137204600254e-01 7.23014208476810e-02 -2.45207730999593e-02 +-1.18181818181818e+01 -9.33511315858133e-01 6.03072372984705e-02 -3.14401400294280e-02 +-1.12121212121212e+01 -9.07412559417457e-01 4.91969779770790e-02 -3.36076468476470e-02 +-1.06060606060606e+01 -8.74358654564795e-01 3.98750651939524e-02 -3.77019772884650e-02 +-1.00000000000000e+01 -8.37436227745362e-01 3.15713217351823e-02 -4.28344259088231e-02 +-9.39393939393939e+00 -7.97360016762257e-01 2.49748326421447e-02 -4.78167321636766e-02 +-8.78787878787879e+00 -7.46918091090845e-01 1.90106766562991e-02 -5.49142422548264e-02 +-8.18181818181818e+00 -6.76385235190348e-01 1.41430349552736e-02 -6.55740988464556e-02 +-7.57575757575758e+00 -5.97548773054335e-01 1.16500159105889e-02 -7.40578404001251e-02 +-6.96969696969697e+00 -5.14687150181851e-01 1.02794635432385e-02 -8.15694642369420e-02 +-6.36363636363636e+00 -4.29783331561822e-01 9.37100611916169e-03 -8.89972589526919e-02 +-5.75757575757576e+00 -3.44985681028980e-01 8.72254512466363e-03 -9.56743162334849e-02 +-5.15151515151515e+00 -2.60342088083212e-01 8.36628808560654e-03 -1.01294050980689e-01 +-4.54545454545454e+00 -1.77283987129221e-01 8.15049198443473e-03 -1.05574157964945e-01 +-3.93939393939394e+00 -9.49967516754283e-02 7.98399273984275e-03 -1.09327817332233e-01 +-3.33333333333333e+00 -1.45488178579448e-02 7.79517199106549e-03 -1.12477093218156e-01 +-2.72727272727273e+00 6.57363122021591e-02 7.63446498473685e-03 -1.15244192981836e-01 +-2.12121212121212e+00 1.45332789615814e-01 7.51105279420149e-03 -1.17982678474176e-01 +-1.51515151515152e+00 2.23672723468766e-01 7.44827862315605e-03 -1.20431702659156e-01 +-9.09090909090912e-01 3.00978847690010e-01 7.43157561421629e-03 -1.22712093550068e-01 +-3.03030303030302e-01 3.76098908531403e-01 7.51006367733051e-03 -1.24767379670863e-01 + 3.03030303030302e-01 4.51444826699281e-01 7.54938811200737e-03 -1.26721030186769e-01 + 9.09090909090912e-01 5.27096787476172e-01 7.54812362715996e-03 -1.28437544066459e-01 + 1.51515151515152e+00 6.02777798759360e-01 7.55798597733358e-03 -1.30082417308287e-01 + 2.12121212121212e+00 6.78328119290960e-01 7.71509624311103e-03 -1.31599798151816e-01 + 2.72727272727273e+00 7.53369580256120e-01 7.87416012848208e-03 -1.33039382183475e-01 + 3.33333333333333e+00 8.27436011075852e-01 8.02072404030208e-03 -1.34343039337526e-01 + 3.93939393939394e+00 9.01064324481151e-01 8.17634754573474e-03 -1.35496483033582e-01 + 4.54545454545455e+00 9.74097640300264e-01 8.37626659639857e-03 -1.36379157527485e-01 + 5.15151515151515e+00 1.04648944718360e+00 8.60497543451105e-03 -1.37098870871982e-01 + 5.75757575757576e+00 1.11709742972339e+00 8.90798254151872e-03 -1.37401161602970e-01 + 6.36363636363637e+00 1.18428988344244e+00 9.27589711393541e-03 -1.37179374672226e-01 + 6.96969696969697e+00 1.24896889274954e+00 9.70884746672005e-03 -1.36604163101376e-01 + 7.57575757575757e+00 1.29881944271375e+00 1.06632766664296e-02 -1.33835538319740e-01 + 8.18181818181818e+00 1.33958725078695e+00 1.19126582890210e-02 -1.30168176642310e-01 + 8.78787878787879e+00 1.36005346559897e+00 1.39779508814557e-02 -1.24720046583824e-01 + 9.39393939393939e+00 1.34301374720075e+00 2.30914396203260e-02 -1.22744826084420e-01 + 1.00000000000000e+01 1.30753093113672e+00 3.60092777128439e-02 -1.22742898670035e-01 + 1.06060606060606e+01 1.21740138674990e+00 4.73489216901772e-02 -1.21777727655646e-01 + 1.12121212121212e+01 1.14876626618267e+00 5.64290043026546e-02 -1.19509336453563e-01 + 1.18181818181818e+01 1.12008684609046e+00 6.13613926416215e-02 -1.14351014023090e-01 + 1.24242424242424e+01 1.10641679635825e+00 6.86990657706108e-02 -1.09572759572039e-01 + 1.30303030303030e+01 1.10001146588234e+00 7.71321227342433e-02 -1.05827721623316e-01 + 1.36363636363636e+01 1.10899885123525e+00 8.72204117979317e-02 -1.07475148520177e-01 + 1.42424242424242e+01 1.12008882355609e+00 9.75650647021123e-02 -1.09425019423431e-01 + 1.48484848484848e+01 1.13075597639677e+00 1.08294194106513e-01 -1.11906001460801e-01 + 1.54545454545455e+01 1.13516931068150e+00 1.17464255427677e-01 -1.13115892870182e-01 + 1.60606060606061e+01 1.13676837338324e+00 1.25978158509963e-01 -1.13656640925689e-01 + 1.66666666666667e+01 1.13211072570407e+00 1.33262514337462e-01 -1.12840862880448e-01 + 1.72727272727273e+01 1.13058655438625e+00 1.42129358900706e-01 -1.13195774561728e-01 + 1.78787878787879e+01 1.13267144501086e+00 1.52930376429612e-01 -1.14987235036101e-01 + 1.84848484848485e+01 1.13534488348534e+00 1.65326800303123e-01 -1.18507779175190e-01 + 1.90909090909091e+01 1.13808110384824e+00 1.77947867911582e-01 -1.22278286215279e-01 + 1.96969696969697e+01 1.13996942404966e+00 1.89581788465173e-01 -1.25014693335627e-01 + 2.03030303030303e+01 1.14136257005177e+00 2.02809939468738e-01 -1.28759059263829e-01 + 2.09090909090909e+01 1.14278916134738e+00 2.17632411113615e-01 -1.33592215797638e-01 + 2.15151515151515e+01 1.14520088380394e+00 2.32454882758493e-01 -1.38449866850649e-01 + 2.21212121212121e+01 1.14534623034980e+00 2.46593134049512e-01 -1.43713984431992e-01 + 2.27272727272727e+01 1.13669195126191e+00 2.57995207937436e-01 -1.50603549902548e-01 + 2.33333333333333e+01 1.12803767217403e+00 2.69397281825361e-01 -1.57514015684770e-01 + 2.39393939393939e+01 1.11938339308615e+00 2.80799355713285e-01 -1.64504480543572e-01 + 2.45454545454545e+01 1.11133045136127e+00 2.92351027387632e-01 -1.70538137552357e-01 + 2.51515151515151e+01 1.10334432346167e+00 3.03919320680690e-01 -1.76461209319149e-01 + 2.57575757575758e+01 1.09535819556207e+00 3.15487613973748e-01 -1.82379292873812e-01 + 2.63636363636364e+01 1.08824062881607e+00 3.27443230354664e-01 -1.87812657912168e-01 + 2.69696969696970e+01 1.08170219282164e+00 3.39657102253967e-01 -1.92922675867797e-01 + 2.75757575757576e+01 1.07516375682721e+00 3.51870974153269e-01 -1.98029550237023e-01 + 2.81818181818182e+01 1.06891342259585e+00 3.64260229155871e-01 -2.02965263331226e-01 + 2.87878787878788e+01 1.06333526814667e+00 3.77058676295725e-01 -2.07506580463469e-01 + 2.93939393939394e+01 1.05775711369748e+00 3.89857123435579e-01 -2.12045827432426e-01 + 3.00000000000000e+01 1.05217895924830e+00 4.02655570575433e-01 -2.16582986742122e-01 + 3.30000000000000e+01 1.02795917310136e+00 4.69344655336830e-01 -2.36555351110227e-01 + 3.60000000000000e+01 1.00496772750934e+00 5.38816968440485e-01 -2.54825361123685e-01 + 3.90000000000000e+01 9.81146869188920e-01 6.10910749328229e-01 -2.71702784264139e-01 + 4.20000000000000e+01 9.54127928885481e-01 6.84604259911056e-01 -2.87623690411183e-01 + 4.50000000000000e+01 9.25925507989752e-01 7.58692207540872e-01 -3.03272921560484e-01 + 4.80000000000000e+01 8.90921980696787e-01 8.32633137744547e-01 -3.18102995823141e-01 + 5.10000000000000e+01 8.51887356225999e-01 9.04988545463753e-01 -3.32607858873096e-01 + 5.40000000000000e+01 8.04790278249480e-01 9.74172806284381e-01 -3.46467861120541e-01 + 5.70000000000000e+01 7.57693159426409e-01 1.04335653563477e+00 -3.60325018324970e-01 + 6.00000000000000e+01 7.10596020180217e-01 1.11253999925206e+00 -3.74179542354393e-01 + 6.30000000000000e+01 6.48049471053151e-01 1.16837068035199e+00 -3.86611182558364e-01 + 6.60000000000000e+01 5.85502788028442e-01 1.22420124699738e+00 -3.99041445615547e-01 + 6.90000000000000e+01 5.22956102060375e-01 1.28003181364278e+00 -4.11470147230388e-01 + 7.20000000000000e+01 4.53110398690217e-01 1.32234237809590e+00 -4.22612100063294e-01 + 7.50000000000000e+01 3.79615336039622e-01 1.35789321822535e+00 -4.33110599511480e-01 + 7.80000000000000e+01 3.06118835606714e-01 1.39344446573911e+00 -4.43608014083683e-01 + 8.10000000000000e+01 2.31409126413095e-01 1.42073658278841e+00 -4.53232613764225e-01 + 8.40000000000000e+01 1.54273083446276e-01 1.43151100901570e+00 -4.61112452060330e-01 + 8.70000000000000e+01 7.71364489011903e-02 1.44228551755366e+00 -4.68991671868026e-01 + 9.00000000000000e+01 -3.37003894630567e-07 1.45305993275333e+00 -4.76870426093284e-01 + 9.30000000000000e+01 -5.39959252161754e-02 1.44228550652603e+00 -4.81692680238558e-01 + 9.60000000000000e+01 -1.07991521148031e-01 1.43151103914374e+00 -4.86490823116468e-01 + 9.90000000000000e+01 -1.61987132519313e-01 1.42073648944996e+00 -4.91273974428200e-01 + 1.02000000000000e+02 -2.14283672037506e-01 1.39344429355730e+00 -4.92759271498875e-01 + 1.05000000000000e+02 -2.65730694027692e-01 1.35789345342785e+00 -4.92588207197183e-01 + 1.08000000000000e+02 -3.17177705557324e-01 1.32234220591584e+00 -4.92507133962652e-01 + 1.11000000000000e+02 -3.66069746716655e-01 1.28003132998751e+00 -4.91213114955779e-01 + 1.14000000000000e+02 -4.09851924952369e-01 1.22420140310934e+00 -4.87375141860954e-01 + 1.17000000000000e+02 -4.53634438299479e-01 1.16837104972410e+00 -4.83536739448328e-01 + 1.20000000000000e+02 -4.97417098058063e-01 1.11254045696623e+00 -4.79698118822128e-01 + 1.23000000000000e+02 -5.30384796680655e-01 1.04335699334894e+00 -4.74045178392828e-01 + 1.26000000000000e+02 -5.63352620077395e-01 9.74173264003827e-01 -4.68392016442808e-01 + 1.29000000000000e+02 -5.96320693031764e-01 9.04989003183198e-01 -4.62734898551017e-01 + 1.32000000000000e+02 -6.22058248103176e-01 8.32584537348691e-01 -4.57940896727791e-01 + 1.35000000000000e+02 -6.44180552804007e-01 7.58569972827814e-01 -4.53579623270348e-01 + 1.38000000000000e+02 -6.66302604968628e-01 6.84555659899671e-01 -4.49218395373695e-01 + 1.41000000000000e+02 -6.86598028619283e-01 6.11957069351566e-01 -4.47177800534488e-01 + 1.44000000000000e+02 -7.03240180419886e-01 5.42189935051373e-01 -4.49778490640875e-01 + 1.47000000000000e+02 -7.19881808024148e-01 4.72422936035072e-01 -4.52379161521216e-01 + 1.50000000000000e+02 -7.36523173539597e-01 4.02656004658303e-01 -4.54979822788877e-01 + 1.53000000000000e+02 -7.23995989268374e-01 3.50606387738054e-01 -4.68570401665813e-01 + 1.56000000000000e+02 -7.10014434000594e-01 2.98556810596401e-01 -4.82106047676863e-01 + 1.59000000000000e+02 -6.95822993804938e-01 2.46507230442391e-01 -4.96319099842072e-01 + 1.62000000000000e+02 -6.22266685072149e-01 2.06230353085240e-01 -5.00873829028078e-01 + 1.65000000000000e+02 -5.18715046462665e-01 1.71839926690689e-01 -5.00546173646419e-01 + 1.68000000000000e+02 -4.15163994460962e-01 1.37449294383709e-01 -5.00218470478517e-01 + 1.71000000000000e+02 -3.11516836116274e-01 1.03069943092153e-01 -4.50000513056908e-01 + 1.74000000000000e+02 -2.07677460598702e-01 6.87131543581221e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.03365251644600e-01 5.67869836313884e-02 -1.48723200443975e-01 + 1.80000000000000e+02 0.00000000000000e+00 5.60839860376548e-02 1.47167178040004e-03 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_21.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_21.dat new file mode 100644 index 00000000..b3de07d8 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_21.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF21_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF21_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-3.391748 alpha0 ! 0-lift angle of attack, depends on airfoil. +9.217593 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.634112 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.356958 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.907795 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.007422 Cd0 ! 2D drag coefficient value at 0-lift. +-0.113062 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.43028798119170e-02 2.26615932282131e-02 +-1.77000000000000e+02 1.13025106629939e-01 5.43028798119170e-02 1.28579365822585e-01 +-1.74000000000000e+02 2.27085486936604e-01 6.51633944994418e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.40628485406802e-01 9.77452951033210e-02 3.60000410445527e-01 +-1.68000000000000e+02 4.49810292581463e-01 1.30815585114068e-01 3.17166481479515e-01 +-1.65000000000000e+02 5.56811555009885e-01 1.64130064128025e-01 1.92917170488019e-01 +-1.62000000000000e+02 6.63814055955440e-01 1.97444368137118e-01 6.86658789432206e-02 +-1.59000000000000e+02 7.35163378078923e-01 2.37618358711485e-01 -1.63189555213320e-02 +-1.56000000000000e+02 7.36658480852925e-01 2.91511490364540e-01 -2.43269386035842e-02 +-1.53000000000000e+02 7.37191671747579e-01 3.45404633730741e-01 -3.20559725750530e-02 +-1.50000000000000e+02 7.35295872691298e-01 3.99297820213560e-01 -3.53001565756154e-02 +-1.47000000000000e+02 7.18798588287585e-01 4.69181021715765e-01 -1.90934045495720e-02 +-1.44000000000000e+02 7.02301063534926e-01 5.39064308687913e-01 -2.88639524111870e-03 +-1.41000000000000e+02 6.85803058067216e-01 6.08947766606052e-01 1.29498269612823e-02 +-1.38000000000000e+02 6.65616813110053e-01 6.81680698854136e-01 2.86882702662571e-02 +-1.35000000000000e+02 6.43586455890160e-01 7.55838362486724e-01 4.44546354620422e-02 +-1.32000000000000e+02 6.21555858594649e-01 8.29996331514374e-01 6.02291708250731e-02 +-1.29000000000000e+02 5.95899961956707e-01 9.02551799836887e-01 7.61226856194456e-02 +-1.26000000000000e+02 5.62993449444218e-01 9.71902259143020e-01 9.22427459258282e-02 +-1.23000000000000e+02 5.30087151245601e-01 1.04125214332386e+00 1.08365878635908e-01 +-1.20000000000000e+02 4.97180960199916e-01 1.11060173995280e+00 1.24492137036960e-01 +-1.17000000000000e+02 4.53438556744641e-01 1.16661616454686e+00 1.39794623246837e-01 +-1.14000000000000e+02 4.09696303308865e-01 1.22263034910072e+00 1.55098596191987e-01 +-1.11000000000000e+02 3.65954392283428e-01 1.27864410574316e+00 1.70403792833604e-01 +-1.08000000000000e+02 3.17091142370324e-01 1.32114669115373e+00 1.84082975431326e-01 +-1.05000000000000e+02 2.65667184017510e-01 1.35689358806697e+00 1.96954679095920e-01 +-1.02000000000000e+02 2.14243214939976e-01 1.39264007535569e+00 2.09826696172051e-01 +-9.90000000000000e+01 1.61964542361192e-01 1.42013008159586e+00 2.21340640675138e-01 +-9.60000000000000e+01 1.07976425758201e-01 1.43110676810732e+00 2.30136989903572e-01 +-9.30000000000000e+01 5.39883669172201e-02 1.44208337076307e+00 2.38933482205731e-01 +-9.00000000000000e+01 3.36956720911094e-07 1.45305993149174e+00 2.47730362549832e-01 +-8.70000000000000e+01 -5.39883116604485e-02 1.44208338199759e+00 2.52366652228794e-01 +-8.40000000000000e+01 -1.07976576721003e-01 1.43110673741406e+00 2.57034873165347e-01 +-8.10000000000000e+01 -1.61964074669558e-01 1.42013017668539e+00 2.61734177795205e-01 +-7.80000000000000e+01 -2.14242965880546e-01 1.39264024848507e+00 2.63181349488851e-01 +-7.50000000000000e+01 -2.65667524235096e-01 1.35689335157008e+00 2.63016349820918e-01 +-7.20000000000000e+01 -3.17090893316325e-01 1.32114686428136e+00 2.62879007650853e-01 +-6.90000000000000e+01 -3.65954013346774e-01 1.27864459099094e+00 2.61500645209288e-01 +-6.60000000000000e+01 -4.09696425620247e-01 1.22263019247474e+00 2.57610540723508e-01 +-6.30000000000000e+01 -4.53438846142231e-01 1.16661579395854e+00 2.53744590647427e-01 +-6.00000000000000e+01 -4.97181177905552e-01 1.11060128113950e+00 2.49902512739027e-01 +-5.70000000000000e+01 -5.30087368951238e-01 1.04125168451056e+00 2.44282377435672e-01 +-5.40000000000000e+01 -5.62993667151980e-01 9.71901800324015e-01 2.38685350754697e-01 +-5.10000000000000e+01 -5.95900179664471e-01 9.02551341017881e-01 2.33110985323929e-01 +-4.80000000000000e+01 -6.23148878462794e-01 8.30040803802850e-01 2.27879411582758e-01 +-4.50000000000000e+01 -6.47568761333111e-01 7.55950278420295e-01 2.22834475134647e-01 +-4.20000000000000e+01 -6.67209820511491e-01 6.81725170790388e-01 2.19541528712913e-01 +-3.90000000000000e+01 -6.86016653934843e-01 6.07897658893372e-01 2.16860523607545e-01 +-3.60000000000000e+01 -7.02567434351865e-01 5.35679831809432e-01 2.16283272016665e-01 +-3.30000000000000e+01 -7.18514395643352e-01 4.66093046844495e-01 2.19061994245276e-01 +-3.00000000000000e+01 -7.35295993131416e-01 3.99297385438155e-01 2.25596659795295e-01 +-2.93939393939394e+01 -7.39161194393161e-01 3.86479064937486e-01 2.27934329427074e-01 +-2.87878787878788e+01 -7.43026395654906e-01 3.73660744436817e-01 2.30271999058854e-01 +-2.81818181818182e+01 -7.46891596916650e-01 3.60842423936148e-01 2.32609668690633e-01 +-2.75757575757576e+01 -7.51223361563041e-01 3.48434171659383e-01 2.35674061206088e-01 +-2.69696969696970e+01 -7.55755099099513e-01 3.36201677983836e-01 2.39049933104880e-01 +-2.63636363636364e+01 -7.60286836635986e-01 3.23969184308288e-01 2.42425805003671e-01 +-2.57575757575758e+01 -7.65221306359447e-01 3.11995455491433e-01 2.46346530788199e-01 +-2.51515151515151e+01 -7.70759780501553e-01 3.00409813654186e-01 2.51084410416232e-01 +-2.45454545454545e+01 -7.76298254643659e-01 2.88824171816938e-01 2.55822290044264e-01 +-2.39393939393939e+01 -7.82132311059061e-01 2.77302256598583e-01 2.59616206109365e-01 +-2.33333333333333e+01 -7.90626665160274e-01 2.66353893288030e-01 2.54914267352217e-01 +-2.27272727272727e+01 -7.99121019261486e-01 2.55405529977478e-01 2.49019152637843e-01 +-2.21212121212121e+01 -8.07615373362699e-01 2.44457166666925e-01 2.44656741536136e-01 +-2.15151515151515e+01 -8.17117669056492e-01 2.33552006854907e-01 2.32819418554197e-01 +-2.09090909090909e+01 -8.23661297618886e-01 2.22657650696563e-01 2.18130675248769e-01 +-2.03030303030303e+01 -8.30697385161204e-01 2.11763294538219e-01 2.03441931943341e-01 +-1.96969696969697e+01 -8.39130226130645e-01 2.00903773822104e-01 1.88879827702874e-01 +-1.90909090909091e+01 -8.48263760915409e-01 1.90079086577562e-01 1.74444355363349e-01 +-1.84848484848485e+01 -8.54491663822831e-01 1.78820853261852e-01 1.58678068289752e-01 +-1.78787878787879e+01 -8.60163856305434e-01 1.66900896684023e-01 1.43105400370003e-01 +-1.72727272727273e+01 -8.65742368749698e-01 1.55433036053471e-01 1.27344882544298e-01 +-1.66666666666667e+01 -8.69217768752512e-01 1.44247604332767e-01 1.10578705840612e-01 +-1.60606060606061e+01 -8.71119382404463e-01 1.33299705468418e-01 9.29795736467647e-02 +-1.54545454545455e+01 -8.74590802382996e-01 1.22693011692481e-01 7.42553100122313e-02 +-1.48484848484848e+01 -8.79448011540517e-01 1.12275192353923e-01 5.48980138044471e-02 +-1.42424242424242e+01 -8.88041287646387e-01 1.02097518094139e-01 3.47904219734257e-02 +-1.36363636363636e+01 -8.99011386472906e-01 9.19774216439529e-02 1.62310520565996e-02 +-1.30303030303030e+01 -9.12832326690409e-01 8.19089384860160e-02 -2.31248158698626e-03 +-1.24242424242424e+01 -9.05837733998151e-01 7.05955147275284e-02 -1.32519999298020e-02 +-1.18181818181818e+01 -8.94149738372733e-01 6.00304976315857e-02 -2.19483169052786e-02 +-1.12121212121212e+01 -8.72289143999857e-01 4.92518839816106e-02 -2.63426664394142e-02 +-1.06060606060606e+01 -8.43836935503105e-01 3.99601622843484e-02 -3.25182305032108e-02 +-1.00000000000000e+01 -8.11533667684698e-01 3.16634689071838e-02 -3.96531690559947e-02 +-9.39393939393939e+00 -7.73775299793918e-01 2.50351497976403e-02 -4.66232350387770e-02 +-8.78787878787879e+00 -7.24386153510650e-01 1.90363399048990e-02 -5.58158243641951e-02 +-8.18181818181818e+00 -6.51350581746786e-01 1.39307768873385e-02 -6.82565719779272e-02 +-7.57575757575758e+00 -5.70259292800422e-01 1.11966451026731e-02 -7.78318201646995e-02 +-6.96969696969697e+00 -4.84863483201162e-01 9.80210985000549e-03 -8.59002125918137e-02 +-6.36363636363636e+00 -4.01260274507495e-01 8.79364513160939e-03 -9.27920938216900e-02 +-5.75757575757576e+00 -3.17829037962407e-01 8.21072836680058e-03 -9.88413955927494e-02 +-5.15151515151515e+00 -2.34560631356565e-01 7.89417831655769e-03 -1.03830189790787e-01 +-4.54545454545454e+00 -1.52768219821946e-01 7.69629272463115e-03 -1.07609067491263e-01 +-3.93939393939394e+00 -7.17446885276158e-02 7.55980850277901e-03 -1.10714124632562e-01 +-3.33333333333333e+00 7.65266106535894e-03 7.40740590680152e-03 -1.13312526310592e-01 +-2.72727272727273e+00 8.69540435134952e-02 7.26852935125166e-03 -1.15619076304701e-01 +-2.12121212121212e+00 1.65602650506344e-01 7.16999070079818e-03 -1.17974728073125e-01 +-1.51515151515152e+00 2.43153008832856e-01 7.12240036540634e-03 -1.20398358450422e-01 +-9.09090909090912e-01 3.19690083645440e-01 7.11221121992558e-03 -1.22659469489510e-01 +-3.03030303030302e-01 3.94185583692908e-01 7.18341302084739e-03 -1.24698324985504e-01 + 3.03030303030302e-01 4.68902411410735e-01 7.22469085552886e-03 -1.26637855769298e-01 + 9.09090909090912e-01 5.43881635947123e-01 7.21999237311871e-03 -1.28343787287290e-01 + 1.51515151515152e+00 6.18852988644897e-01 7.24722163406657e-03 -1.29976534377553e-01 + 2.12121212121212e+00 6.93718405482782e-01 7.38406188230317e-03 -1.31468930098195e-01 + 2.72727272727273e+00 7.68149611769229e-01 7.53516389223080e-03 -1.32869142821252e-01 + 3.33333333333333e+00 8.41715172859199e-01 7.67641621971856e-03 -1.34133903242727e-01 + 3.93939393939394e+00 9.14829634658937e-01 7.82676312299375e-03 -1.35268602227928e-01 + 4.54545454545455e+00 9.87354918951398e-01 8.01392970071129e-03 -1.36139906970678e-01 + 5.15151515151515e+00 1.05927746446687e+00 8.23073134973320e-03 -1.36861989320736e-01 + 5.75757575757576e+00 1.12953343156332e+00 8.53450625263956e-03 -1.37191762867414e-01 + 6.36363636363637e+00 1.19646607280768e+00 8.93008691845142e-03 -1.37002644214539e-01 + 6.96969696969697e+00 1.26024731016983e+00 9.47027625942907e-03 -1.36418678279720e-01 + 7.57575757575757e+00 1.30971003050197e+00 1.06647324108263e-02 -1.33671247589578e-01 + 8.18181818181818e+00 1.35040217332210e+00 1.19527461931973e-02 -1.30058175517731e-01 + 8.78787878787879e+00 1.37091316495312e+00 1.39974785904022e-02 -1.24857926363025e-01 + 9.39393939393939e+00 1.35667712683307e+00 2.24354236046123e-02 -1.22733114545900e-01 + 1.00000000000000e+01 1.32700007053080e+00 3.43303944973221e-02 -1.22710273741457e-01 + 1.06060606060606e+01 1.24713203043916e+00 4.48348853319247e-02 -1.21775958563809e-01 + 1.12121212121212e+01 1.18632667549810e+00 5.33280007969130e-02 -1.20204637608153e-01 + 1.18181818181818e+01 1.16131302771668e+00 5.88308583503445e-02 -1.15957794313766e-01 + 1.24242424242424e+01 1.14844752198994e+00 6.69420911628980e-02 -1.11212235524214e-01 + 1.30303030303030e+01 1.14161039119524e+00 7.59411805359307e-02 -1.07908924395850e-01 + 1.36363636363636e+01 1.14446202808895e+00 8.67113082553106e-02 -1.09652277516758e-01 + 1.42424242424242e+01 1.15360925201834e+00 9.73732500785179e-02 -1.11627155262551e-01 + 1.48484848484848e+01 1.16355448827020e+00 1.07873104416001e-01 -1.14134059252607e-01 + 1.54545454545455e+01 1.16664773714290e+00 1.16951528881583e-01 -1.15612411766512e-01 + 1.60606060606061e+01 1.16661013255713e+00 1.25430946902501e-01 -1.16354027535650e-01 + 1.66666666666667e+01 1.15970818612903e+00 1.32782384020419e-01 -1.15612441871561e-01 + 1.72727272727273e+01 1.15449556243335e+00 1.41571380936791e-01 -1.15991269265136e-01 + 1.78787878787879e+01 1.15081418671560e+00 1.52117413613284e-01 -1.17753256291338e-01 + 1.84848484848485e+01 1.14958568526759e+00 1.64075993230739e-01 -1.21043159594879e-01 + 1.90909090909091e+01 1.14892881211198e+00 1.76252052672837e-01 -1.24587774021336e-01 + 1.96969696969697e+01 1.14714298858187e+00 1.87659451395701e-01 -1.27408729102206e-01 + 2.03030303030303e+01 1.14429050732898e+00 2.00561453897594e-01 -1.31242484394764e-01 + 2.09090909090909e+01 1.14266964540886e+00 2.14958144733618e-01 -1.36284282472763e-01 + 2.15151515151515e+01 1.14423506135131e+00 2.29354835569642e-01 -1.41385269444278e-01 + 2.21212121212121e+01 1.14307069922354e+00 2.43146307939168e-01 -1.46827329115247e-01 + 2.27272727272727e+01 1.13437676569340e+00 2.54517529167918e-01 -1.53633328645347e-01 + 2.33333333333333e+01 1.12568283216327e+00 2.65888750396669e-01 -1.60489831976375e-01 + 2.39393939393939e+01 1.11698889863313e+00 2.77259971625421e-01 -1.67539646177715e-01 + 2.45454545454545e+01 1.10899853924541e+00 2.88824171816938e-01 -1.73613983027854e-01 + 2.51515151515151e+01 1.10108635308077e+00 3.00409813654186e-01 -1.79569604350001e-01 + 2.57575757575758e+01 1.09317416691613e+00 3.11995455491433e-01 -1.85513172087669e-01 + 2.63636363636364e+01 1.08612496192253e+00 3.23969184308288e-01 -1.90961864811472e-01 + 2.69696969696970e+01 1.07965116711405e+00 3.36201677983836e-01 -1.96080224256372e-01 + 2.75757575757576e+01 1.07317737230558e+00 3.48434171659383e-01 -2.01190987495797e-01 + 2.81818181818182e+01 1.06698932003423e+00 3.60842423936148e-01 -2.06125820524907e-01 + 2.87878787878788e+01 1.06146794315678e+00 3.73660744436817e-01 -2.10662136737585e-01 + 2.93939393939394e+01 1.05594656627932e+00 3.86479064937486e-01 -2.15193450579188e-01 + 3.00000000000000e+01 1.05042518940186e+00 3.99297385438155e-01 -2.19719719772206e-01 + 3.30000000000000e+01 1.02644827609649e+00 4.66093046844495e-01 -2.39615606337711e-01 + 3.60000000000000e+01 1.00366641718899e+00 5.35679831809432e-01 -2.57787676201759e-01 + 3.90000000000000e+01 9.80023910642716e-01 6.07897658893372e-01 -2.74564735422046e-01 + 4.20000000000000e+01 9.53157091193240e-01 6.81725170790389e-01 -2.90390686664731e-01 + 4.50000000000000e+01 9.25099031707945e-01 7.55950278420295e-01 -3.05940905817259e-01 + 4.80000000000000e+01 8.90213156909925e-01 8.30040803802850e-01 -3.20687232891725e-01 + 5.10000000000000e+01 8.51286270268613e-01 9.02551341017882e-01 -3.35111108629908e-01 + 5.40000000000000e+01 8.04277100153241e-01 9.71901800324015e-01 -3.48903550668194e-01 + 5.70000000000000e+01 7.57267880913182e-01 1.04125168451056e+00 -3.62689866471288e-01 + 6.00000000000000e+01 7.10258637110966e-01 1.11060128113950e+00 -3.76470193714150e-01 + 6.30000000000000e+01 6.47769674730578e-01 1.16661579395854e+00 -3.88852281816777e-01 + 6.60000000000000e+01 5.85280557002702e-01 1.22263019247474e+00 -4.01231358690575e-01 + 6.90000000000000e+01 5.22791393951418e-01 1.27864459099094e+00 -4.13607260555449e-01 + 7.20000000000000e+01 4.52986794514127e-01 1.32114686428136e+00 -4.24708378476078e-01 + 7.50000000000000e+01 3.79524626640559e-01 1.35689335157008e+00 -4.35171875987646e-01 + 7.80000000000000e+01 3.06061084931655e-01 1.39264024848507e+00 -4.45633420993565e-01 + 8.10000000000000e+01 2.31376934566227e-01 1.42013017668539e+00 -4.55226551749704e-01 + 8.40000000000000e+01 1.54251651146622e-01 1.43110673741406e+00 -4.63084866775445e-01 + 8.70000000000000e+01 7.71257414576533e-02 1.44208338199759e+00 -4.70942168414430e-01 + 9.00000000000000e+01 -3.36956721141558e-07 1.45305993149174e+00 -4.78798611378502e-01 + 9.30000000000000e+01 -5.39883669172201e-02 1.44208337076307e+00 -4.83401960300538e-01 + 9.60000000000000e+01 -1.07976425758202e-01 1.43110676810732e+00 -4.87843492281115e-01 + 9.90000000000000e+01 -1.61964542361192e-01 1.42013008159586e+00 -4.92246671349029e-01 + 1.02000000000000e+02 -2.14243214939976e-01 1.39264007535569e+00 -4.93334961576679e-01 + 1.05000000000000e+02 -2.65667184017510e-01 1.35689358806697e+00 -4.92747792758473e-01 + 1.08000000000000e+02 -3.17091142370324e-01 1.32114669115373e+00 -4.92489218692733e-01 + 1.11000000000000e+02 -3.65954392283428e-01 1.27864410574316e+00 -4.91167327902475e-01 + 1.14000000000000e+02 -4.09696303308866e-01 1.22263034910072e+00 -4.87302639052758e-01 + 1.17000000000000e+02 -4.53438556744641e-01 1.16661616454686e+00 -4.83437520681149e-01 + 1.20000000000000e+02 -4.97180960199916e-01 1.11060173995280e+00 -4.79572183996746e-01 + 1.23000000000000e+02 -5.30087151245601e-01 1.04125214332386e+00 -4.73893974859065e-01 + 1.26000000000000e+02 -5.62993449444218e-01 9.71902259143020e-01 -4.68215548654545e-01 + 1.29000000000000e+02 -5.95899961956708e-01 9.02551799836887e-01 -4.62491545543420e-01 + 1.32000000000000e+02 -6.21555858594649e-01 8.29996331514373e-01 -4.57600132450428e-01 + 1.35000000000000e+02 -6.43586455890160e-01 7.55838362486724e-01 -4.53140066017817e-01 + 1.38000000000000e+02 -6.65616813110053e-01 6.81680698854136e-01 -4.48679982709285e-01 + 1.41000000000000e+02 -6.85803058067216e-01 6.08947766606052e-01 -4.46525550737110e-01 + 1.44000000000000e+02 -7.02301063534926e-01 5.39064308687913e-01 -4.48982440146784e-01 + 1.47000000000000e+02 -7.18798588287585e-01 4.69181021715765e-01 -4.51439319035616e-01 + 1.50000000000000e+02 -7.35295872691298e-01 3.99297820213560e-01 -4.53896192664215e-01 + 1.53000000000000e+02 -7.28330506319376e-01 3.46647734139971e-01 -4.68325381164791e-01 + 1.56000000000000e+02 -7.17850798388541e-01 2.93997685207009e-01 -4.82051328896962e-01 + 1.59000000000000e+02 -7.06863743588803e-01 2.41347630242394e-01 -4.98256732246163e-01 + 1.62000000000000e+02 -6.34811170157550e-01 2.01242252961188e-01 -5.03086039127970e-01 + 1.65000000000000e+02 -5.31470448900505e-01 1.67409320614642e-01 -5.01928907588892e-01 + 1.68000000000000e+02 -4.28130311834334e-01 1.33576175967328e-01 -5.00771566637685e-01 + 1.71000000000000e+02 -3.23313093840734e-01 9.99186368162403e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.15541645031820e-01 6.66123168560943e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.07279423135448e-01 5.50240468507236e-02 -1.40189247446868e-01 + 1.80000000000000e+02 0.00000000000000e+00 5.43028798119170e-02 2.26615932282131e-02 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_22.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_22.dat new file mode 100644 index 00000000..c2189748 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_22.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF22_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF22_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-3.566308 alpha0 ! 0-lift angle of attack, depends on airfoil. +9.412539 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-11.254245 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.372317 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.851187 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.007099 Cd0 ! 2D drag coefficient value at 0-lift. +-0.113167 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 5.07556742159798e-02 6.34072788301272e-02 +-1.77000000000000e+02 1.21373168046836e-01 5.07556742159798e-02 1.44989137166855e-01 +-1.74000000000000e+02 2.43858124753276e-01 6.09067517869507e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.65787584521499e-01 9.13603177509608e-02 3.60000410445527e-01 +-1.68000000000000e+02 4.75515174866590e-01 1.23180858733612e-01 3.13292467675056e-01 +-1.65000000000000e+02 5.79141972913914e-01 1.55684871270972e-01 1.83232181192322e-01 +-1.62000000000000e+02 6.82769984990416e-01 1.88188793392151e-01 5.31699414433441e-02 +-1.59000000000000e+02 7.49929094529181e-01 2.28115056904519e-01 -3.37679356965932e-02 +-1.56000000000000e+02 7.45401898546715e-01 2.82885752112716e-01 -3.57982585441417e-02 +-1.53000000000000e+02 7.40045790863415e-01 3.37656465738121e-01 -3.75882513662505e-02 +-1.50000000000000e+02 7.32596618631745e-01 3.92427224341668e-01 -3.50272634037363e-02 +-1.47000000000000e+02 7.16416220992227e-01 4.62548307459531e-01 -1.89393396903141e-02 +-1.44000000000000e+02 7.00235624959091e-01 5.32669512974126e-01 -2.85117921368804e-03 +-1.41000000000000e+02 6.84054632124555e-01 6.02790963290924e-01 1.27311247792732e-02 +-1.38000000000000e+02 6.64108508380734e-01 6.75798748422820e-01 2.82558445968883e-02 +-1.35000000000000e+02 6.42279826820249e-01 7.50249695107020e-01 4.38571814291932e-02 +-1.32000000000000e+02 6.20450921675678e-01 8.24701058603098e-01 5.94656947948800e-02 +-1.29000000000000e+02 5.94974616376641e-01 8.97565459936934e-01 7.52120953201059e-02 +-1.26000000000000e+02 5.62203493473854e-01 9.67255929411789e-01 9.12244354642672e-02 +-1.23000000000000e+02 5.29432511812518e-01 1.03694573967196e+00 1.07239613164941e-01 +-1.20000000000000e+02 4.96661600769268e-01 1.10663522033711e+00 1.23257579300455e-01 +-1.17000000000000e+02 4.53007747800845e-01 1.16302575005567e+00 1.38481557370608e-01 +-1.14000000000000e+02 4.09354049149219e-01 1.21941603836822e+00 1.53706780948661e-01 +-1.11000000000000e+02 3.65700701685022e-01 1.27580589589615e+00 1.68932988096397e-01 +-1.08000000000000e+02 3.16900772369631e-01 1.31870071696580e+00 1.82560097851392e-01 +-1.05000000000000e+02 2.65527512940554e-01 1.35484791704772e+00 1.95399125304991e-01 +-1.02000000000000e+02 2.14154242205798e-01 1.39099470291805e+00 2.08238303928547e-01 +-9.90000000000000e+01 1.61914865702625e-01 1.41888942602526e+00 2.19722912577175e-01 +-9.60000000000000e+01 1.07943240147024e-01 1.43027966616597e+00 2.28497123718656e-01 +-9.30000000000000e+01 5.39717537188113e-02 1.44166981929167e+00 2.37271383106753e-01 +-9.00000000000000e+01 3.36853033223878e-07 1.45305992891065e+00 2.46045939350736e-01 +-8.70000000000000e+01 -5.39716984790431e-02 1.44166983094945e+00 2.50473302115734e-01 +-8.40000000000000e+01 -1.07943391063713e-01 1.43027963431632e+00 2.54928173585132e-01 +-8.10000000000000e+01 -1.61914398153851e-01 1.41888952469734e+00 2.59409826519098e-01 +-7.80000000000000e+01 -2.14153993391912e-01 1.39099487798618e+00 2.60637456906859e-01 +-7.50000000000000e+01 -2.65527852822723e-01 1.35484767790248e+00 2.60250041617006e-01 +-7.20000000000000e+01 -3.16900523561175e-01 1.31870089203215e+00 2.59886362685276e-01 +-6.90000000000000e+01 -3.65700323515595e-01 1.27580638440210e+00 2.58282671903770e-01 +-6.60000000000000e+01 -4.09354171212959e-01 1.21941588069058e+00 2.54173349716066e-01 +-6.30000000000000e+01 -4.53008036612590e-01 1.16302537697905e+00 2.50084873782204e-01 +-6.00000000000000e+01 -4.96661817579899e-01 1.10663475927516e+00 2.46016982651216e-01 +-5.70000000000000e+01 -5.29432728623149e-01 1.03694527861001e+00 2.40180820587871e-01 +-5.40000000000000e+01 -5.62203710285886e-01 9.67255468343294e-01 2.34364534434322e-01 +-5.10000000000000e+01 -5.94974833188673e-01 8.97564998868439e-01 2.28567701938433e-01 +-4.80000000000000e+01 -6.22057662441151e-01 8.24737086109294e-01 2.23106850479156e-01 +-4.50000000000000e+01 -6.46296436287407e-01 7.50340502131161e-01 2.17827122416360e-01 +-4.20000000000000e+01 -6.65715236572083e-01 6.75834775642757e-01 2.14270938724142e-01 +-3.90000000000000e+01 -6.84287831284676e-01 6.01733100265088e-01 2.11324975236861e-01 +-3.60000000000000e+01 -7.00563864724568e-01 5.29261493580405e-01 2.10489244413362e-01 +-3.30000000000000e+01 -7.16187489056336e-01 4.59440503480610e-01 2.12957840755690e-01 +-3.00000000000000e+01 -7.32596736476158e-01 3.92426788149384e-01 2.19119564417483e-01 +-2.93939393939394e+01 -7.36374389172812e-01 3.79567808225057e-01 2.21363823380573e-01 +-2.87878787878788e+01 -7.40152041869467e-01 3.66708828300729e-01 2.23608082343664e-01 +-2.81818181818182e+01 -7.43929694566121e-01 3.53849848376402e-01 2.25852341306755e-01 +-2.75757575757576e+01 -7.48165648451628e-01 3.41402728220191e-01 2.28809630520161e-01 +-2.69696969696970e+01 -7.52598033982392e-01 3.29132134535727e-01 2.32072530342035e-01 +-2.63636363636364e+01 -7.57030419513156e-01 3.16861540851264e-01 2.35335430163909e-01 +-2.57575757575758e+01 -7.61859695409693e-01 3.04850755726473e-01 2.39132514207883e-01 +-2.51515151515151e+01 -7.67284214354563e-01 2.93229622889516e-01 2.43730750086607e-01 +-2.45454545454545e+01 -7.72708733299433e-01 2.81608490052560e-01 2.48328985965330e-01 +-2.39393939393939e+01 -7.78397371018865e-01 2.70052672159968e-01 2.52203196387113e-01 +-2.33333333333333e+01 -7.86463128844015e-01 2.59084701411948e-01 2.49561037521642e-01 +-2.27272727272727e+01 -7.94528886669166e-01 2.48116730663927e-01 2.45890720916381e-01 +-2.21212121212121e+01 -8.02594644494317e-01 2.37148759915907e-01 2.43586283408853e-01 +-2.15151515151515e+01 -8.10907795657620e-01 2.26212863295167e-01 2.36219129070528e-01 +-2.09090909090909e+01 -8.16516141250483e-01 2.15284987269397e-01 2.26807332042050e-01 +-2.03030303030303e+01 -8.22548837928087e-01 2.04357111243626e-01 2.17395535013573e-01 +-1.96969696969697e+01 -8.30002084619816e-01 1.93526156053271e-01 2.08338072839810e-01 +-1.90909090909091e+01 -8.38276075640665e-01 1.82792116215481e-01 1.99634925475900e-01 +-1.84848484848485e+01 -8.41525789425216e-01 1.71763238665119e-01 1.87206613897995e-01 +-1.78787878787879e+01 -8.43830658066113e-01 1.60232706599968e-01 1.74288223907780e-01 +-1.72727272727273e+01 -8.45969420405482e-01 1.49310415673877e-01 1.60399611180235e-01 +-1.66666666666667e+01 -8.44462724081164e-01 1.38631475065992e-01 1.43746150937375e-01 +-1.60606060606061e+01 -8.40100015006392e-01 1.28157201231612e-01 1.24821818047702e-01 +-1.54545454545455e+01 -8.37817603025782e-01 1.18032218056081e-01 1.04802159358542e-01 +-1.48484848484848e+01 -8.37183712471984e-01 1.08103958885772e-01 8.41678532118364e-02 +-1.42424242424242e+01 -8.40890120256044e-01 9.84661435612030e-02 6.27214130589554e-02 +-1.36363636363636e+01 -8.46817406852861e-01 8.88896748069138e-02 4.26434421043484e-02 +-1.30303030303030e+01 -8.55315988459211e-01 7.93654273525520e-02 2.26015400198430e-02 +-1.24242424242424e+01 -8.47245180473497e-01 6.91820678235402e-02 8.67599048926910e-03 +-1.18181818181818e+01 -8.35432683112564e-01 5.98195535661050e-02 -3.47219937244458e-03 +-1.12121212121212e+01 -8.15393459831635e-01 4.94939958051427e-02 -1.22220313441137e-02 +-1.06060606060606e+01 -7.90094798205374e-01 4.03354037886031e-02 -2.24327341739879e-02 +-1.00000000000000e+01 -7.61704104709643e-01 3.20697982337656e-02 -3.34296643848299e-02 +-9.39393939393939e+00 -7.28357715972300e-01 2.53011224655095e-02 -4.42541982301917e-02 +-8.78787878787879e+00 -6.84142454187570e-01 1.91495037741205e-02 -5.66943316671589e-02 +-8.18181818181818e+00 -6.17979429458198e-01 1.37667951514698e-02 -7.13770363239650e-02 +-7.57575757575758e+00 -5.38103979710377e-01 1.08227708003567e-02 -8.21189162256499e-02 +-6.96969696969697e+00 -4.51631211888217e-01 9.39164055487013e-03 -9.05502975056676e-02 +-6.36363636363636e+00 -3.69904831929908e-01 8.28680451711851e-03 -9.65427316699646e-02 +-5.75757575757576e+00 -2.88476726756192e-01 7.76135087915599e-03 -1.01757959286034e-01 +-5.15151515151515e+00 -2.07260475931238e-01 7.47535721667608e-03 -1.06060127684791e-01 +-4.54545454545454e+00 -1.27279930853378e-01 7.28615916745306e-03 -1.09371226057769e-01 +-3.93939393939394e+00 -4.80058499406509e-02 7.17092890724474e-03 -1.11865483581015e-01 +-3.33333333333333e+00 2.99773467049867e-02 7.05390574872594e-03 -1.13980246411455e-01 +-2.72727272727273e+00 1.07925041765181e-01 6.93627094208034e-03 -1.15908672907983e-01 +-2.12121212121212e+00 1.85286698580458e-01 6.86333451961630e-03 -1.17939670229949e-01 +-1.51515151515152e+00 2.61818679801486e-01 6.83016135377631e-03 -1.20251324856380e-01 +-9.09090909090912e-01 3.37437336745196e-01 6.82527631097856e-03 -1.22427420055716e-01 +-3.03030303030302e-01 4.11339964275432e-01 6.88875118426107e-03 -1.24393823575531e-01 + 3.03030303030302e-01 4.85425194785723e-01 6.93305859100922e-03 -1.26271092424251e-01 + 9.09090909090912e-01 5.59688748393245e-01 6.92641095940415e-03 -1.27930360286602e-01 + 1.51515151515152e+00 6.33889422008781e-01 6.97145778583218e-03 -1.29509636273062e-01 + 2.12121212121212e+00 7.08007295477312e-01 7.08503567582370e-03 -1.30948866987131e-01 + 2.72727272727273e+00 7.81743944095907e-01 7.22808542364998e-03 -1.32280278589569e-01 + 3.33333333333333e+00 8.54768718499635e-01 7.36394317569994e-03 -1.33476357648126e-01 + 3.93939393939394e+00 9.27343605653137e-01 7.50800878324420e-03 -1.34580752920963e-01 + 4.54545454545455e+00 9.99337144270299e-01 7.68025178023798e-03 -1.35437140997352e-01 + 5.15151515151515e+00 1.07077533588784e+00 7.88250770331053e-03 -1.36171448237875e-01 + 5.75757575757576e+00 1.14067573993544e+00 8.18560595986809e-03 -1.36563716920552e-01 + 6.36363636363637e+00 1.20738594989603e+00 8.61082274432950e-03 -1.36450536130407e-01 + 6.96969696969697e+00 1.27030534457503e+00 9.26154940433015e-03 -1.35865188748459e-01 + 7.57575757575757e+00 1.31967720204744e+00 1.06711516164033e-02 -1.33196036139163e-01 + 8.18181818181818e+00 1.36117901696138e+00 1.20457201580521e-02 -1.29734082098160e-01 + 8.78787878787879e+00 1.38645164475349e+00 1.40141299367242e-02 -1.24969368476653e-01 + 9.39393939393939e+00 1.38364788675440e+00 2.10604272519143e-02 -1.22681471706985e-01 + 1.00000000000000e+01 1.36632615029107e+00 3.08301921000425e-02 -1.22594505197778e-01 + 1.06060606060606e+01 1.30793900793488e+00 3.95953728731437e-02 -1.21768157631026e-01 + 1.12121212121212e+01 1.26354919483254e+00 4.68596237969062e-02 -1.20824315241689e-01 + 1.18181818181818e+01 1.24622078267823e+00 5.34209201004403e-02 -1.17862121865541e-01 + 1.24242424242424e+01 1.23316572300737e+00 6.31476016531568e-02 -1.14380907459069e-01 + 1.30303030303030e+01 1.22283883104523e+00 7.34240891191203e-02 -1.12038188702533e-01 + 1.36363636363636e+01 1.21302095714098e+00 8.54972535339130e-02 -1.13922354181064e-01 + 1.42424242424242e+01 1.20995851746224e+00 9.67529857851515e-02 -1.15899802821485e-01 + 1.48484848484848e+01 1.20957781975123e+00 1.06783261680667e-01 -1.18176308348192e-01 + 1.54545454545455e+01 1.20628232400092e+00 1.15676133910572e-01 -1.19630275206793e-01 + 1.60606060606061e+01 1.20129649682940e+00 1.24088573760305e-01 -1.20475625038284e-01 + 1.66666666666667e+01 1.19049649901642e+00 1.31588359571251e-01 -1.20087718033958e-01 + 1.72727272727273e+01 1.17964142895866e+00 1.40230863472286e-01 -1.20588628022729e-01 + 1.78787878787879e+01 1.16825933056011e+00 1.50270037306760e-01 -1.22187730969383e-01 + 1.84848484848485e+01 1.16279372315999e+00 1.61375170677979e-01 -1.24959559895277e-01 + 1.90909090909091e+01 1.15872202145603e+00 1.72688440191291e-01 -1.28082765397647e-01 + 1.96969696969697e+01 1.15339844517572e+00 1.83671166909384e-01 -1.31533890864235e-01 + 2.03030303030303e+01 1.14667353640152e+00 1.95931329664752e-01 -1.35939723395958e-01 + 2.09090909090909e+01 1.14214263161388e+00 2.09469000726538e-01 -1.41468507832042e-01 + 2.15151515151515e+01 1.14163199846552e+00 2.23006671788323e-01 -1.47048295239323e-01 + 2.21212121212121e+01 1.13801617834194e+00 2.36098095781483e-01 -1.52838501078495e-01 + 2.27272727272727e+01 1.12925112767887e+00 2.47404990655498e-01 -1.59470164140170e-01 + 2.33333333333333e+01 1.12048607701580e+00 2.58711885529513e-01 -1.66145346243189e-01 + 2.39393939393939e+01 1.11172102635272e+00 2.70018780403529e-01 -1.72987104001955e-01 + 2.45454545454545e+01 1.10386992919784e+00 2.81608490052560e-01 -1.78880886757862e-01 + 2.51515151515151e+01 1.09612038024829e+00 2.93229622889516e-01 -1.84660438598366e-01 + 2.57575757575758e+01 1.08837083129873e+00 3.04850755726473e-01 -1.90429603885151e-01 + 2.63636363636364e+01 1.08147195893053e+00 3.16861540851264e-01 -1.95726297856203e-01 + 2.69696969696970e+01 1.07514029241291e+00 3.29132134535727e-01 -2.00707647194441e-01 + 2.75757575757576e+01 1.06880862589528e+00 3.41402728220191e-01 -2.05682450895045e-01 + 2.81818181818182e+01 1.06275754212664e+00 3.53849848376402e-01 -2.10489790164498e-01 + 2.87878787878788e+01 1.05736109527898e+00 3.66708828300730e-01 -2.14916711454757e-01 + 2.93939393939394e+01 1.05196464843131e+00 3.79567808225057e-01 -2.19339322210173e-01 + 3.00000000000000e+01 1.04656820158365e+00 3.92426788149384e-01 -2.23757586000285e-01 + 3.30000000000000e+01 1.02312514415356e+00 4.59440503480610e-01 -2.43238943532748e-01 + 3.60000000000000e+01 1.00080435367758e+00 5.29261493580405e-01 -2.61084484698553e-01 + 3.90000000000000e+01 9.77554126454961e-01 6.01733100265088e-01 -2.77608856801414e-01 + 4.20000000000000e+01 9.51021881685284e-01 6.75834775642758e-01 -2.93234977723852e-01 + 4.50000000000000e+01 9.23281318212600e-01 7.50340502131161e-01 -3.08601809213403e-01 + 4.80000000000000e+01 8.88654194131487e-01 8.24737086109295e-01 -3.23208356054975e-01 + 5.10000000000000e+01 8.49964254625460e-01 8.97564998868439e-01 -3.37506814180089e-01 + 5.40000000000000e+01 8.03148423080423e-01 9.67255468343294e-01 -3.51200699120049e-01 + 5.70000000000000e+01 7.56332531480030e-01 1.03694527861001e+00 -3.64889313118346e-01 + 6.00000000000000e+01 7.09516609852189e-01 1.10663475927516e+00 -3.78572770796720e-01 + 6.30000000000000e+01 6.47154294385920e-01 1.16302537697905e+00 -3.90891753454121e-01 + 6.60000000000000e+01 5.84791782254718e-01 1.21941588069058e+00 -4.03208150894803e-01 + 6.90000000000000e+01 5.22429143308335e-01 1.27580638440210e+00 -4.15521834280170e-01 + 7.20000000000000e+01 4.52714954299060e-01 1.31870089203215e+00 -4.26575704118960e-01 + 7.50000000000000e+01 3.79325140754361e-01 1.35484767790248e+00 -4.36999473643461e-01 + 7.80000000000000e+01 3.05934076441010e-01 1.39099487798618e+00 -4.47421477951532e-01 + 8.10000000000000e+01 2.31306131004083e-01 1.41888952469734e+00 -4.56980574222415e-01 + 8.40000000000000e+01 1.54204508701838e-01 1.43027963431632e+00 -4.64815596729305e-01 + 8.70000000000000e+01 7.71021882732242e-02 1.44166983094945e+00 -4.72649698806517e-01 + 9.00000000000000e+01 -3.36853033455059e-07 1.45305992891065e+00 -4.80483033427282e-01 + 9.30000000000000e+01 -5.39717537188113e-02 1.44166981929167e+00 -4.84882001487256e-01 + 9.60000000000000e+01 -1.07943240147024e-01 1.43027966616597e+00 -4.88977291312720e-01 + 9.90000000000000e+01 -1.61914865702625e-01 1.41888942602526e+00 -4.93035304646623e-01 + 1.02000000000000e+02 -2.14154242205798e-01 1.39099470291805e+00 -4.93786567296916e-01 + 1.05000000000000e+02 -2.65527512940555e-01 1.35484791704772e+00 -4.92868936308638e-01 + 1.08000000000000e+02 -3.16900772369631e-01 1.31870071696580e+00 -4.92410220071252e-01 + 1.11000000000000e+02 -3.65700701685022e-01 1.27580589589615e+00 -4.90965426724924e-01 + 1.14000000000000e+02 -4.09354049149220e-01 1.21941603836822e+00 -4.86982932906717e-01 + 1.17000000000000e+02 -4.53007747800845e-01 1.16302575005567e+00 -4.83000008666658e-01 + 1.20000000000000e+02 -4.96661600769268e-01 1.10663522033711e+00 -4.79016865676293e-01 + 1.23000000000000e+02 -5.29432511812518e-01 1.03694573967196e+00 -4.73227232421762e-01 + 1.26000000000000e+02 -5.62203493473854e-01 9.67255929411789e-01 -4.67437401740092e-01 + 1.29000000000000e+02 -5.94974616376641e-01 8.97565459936934e-01 -4.61550294565979e-01 + 1.32000000000000e+02 -6.20450921675679e-01 8.24701058603098e-01 -4.56453890288661e-01 + 1.35000000000000e+02 -6.42279826820249e-01 7.50249695107020e-01 -4.51785141239963e-01 + 1.38000000000000e+02 -6.64108508380734e-01 6.75798748422819e-01 -4.47116255471473e-01 + 1.41000000000000e+02 -6.84054632124555e-01 6.02790963290923e-01 -4.44720379804122e-01 + 1.44000000000000e+02 -7.00235624959091e-01 5.32669512974126e-01 -4.46870542783319e-01 + 1.47000000000000e+02 -7.16416220992227e-01 4.62548307459531e-01 -4.49020707038669e-01 + 1.50000000000000e+02 -7.32596618631745e-01 3.92427224341668e-01 -4.51170871932074e-01 + 1.53000000000000e+02 -7.33272841626932e-01 3.38604126000068e-01 -4.67244946323259e-01 + 1.56000000000000e+02 -7.30920747814166e-01 2.84781062373784e-01 -4.81810042653382e-01 + 1.59000000000000e+02 -7.28131423029985e-01 2.30957992223316e-01 -4.99843304573404e-01 + 1.62000000000000e+02 -6.59004284451097e-01 1.91223709907543e-01 -5.04964107373118e-01 + 1.65000000000000e+02 -5.56057205936165e-01 1.58533940661002e-01 -5.03102799944957e-01 + 1.68000000000000e+02 -4.53110707101343e-01 1.25843946014156e-01 -5.01241125772289e-01 + 1.71000000000000e+02 -3.46031678268841e-01 9.36455360526948e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.30687396505613e-01 6.24303184126113e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.14817786337317e-01 5.15140111366759e-02 -1.23779476102597e-01 + 1.80000000000000e+02 0.00000000000000e+00 5.07556742159798e-02 6.34072788301272e-02 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_23.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_23.dat new file mode 100644 index 00000000..1d9534a4 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_23.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF23_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF23_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-3.734961 alpha0 ! 0-lift angle of attack, depends on airfoil. +9.697795 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-10.684389 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.401232 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.842106 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006818 Cd0 ! 2D drag coefficient value at 0-lift. +-0.113242 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 4.63087218239101e-02 1.12294918356446e-01 +-1.77000000000000e+02 1.31407871834538e-01 4.63087218239101e-02 1.64677969845384e-01 +-1.74000000000000e+02 2.64019510355404e-01 5.55704139343663e-02 2.39999774321882e-01 +-1.71000000000000e+02 3.96029843973720e-01 8.33557943190768e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.06430868461261e-01 1.13562290370517e-01 3.08610785372619e-01 +-1.65000000000000e+02 6.06027490595898e-01 1.44979315997335e-01 1.71528030078362e-01 +-1.62000000000000e+02 7.05625285482958e-01 1.76396375603631e-01 3.44433778978911e-02 +-1.59000000000000e+02 7.67703923736826e-01 2.15960936619897e-01 -5.47934885866511e-02 +-1.56000000000000e+02 7.55397723550236e-01 2.71820224837142e-01 -4.90352678454869e-02 +-1.53000000000000e+02 7.42659054409641e-01 3.27679539787795e-01 -4.31517727134676e-02 +-1.50000000000000e+02 7.28828504793094e-01 3.83538902055256e-01 -3.44596878302946e-02 +-1.47000000000000e+02 7.13090480114408e-01 4.53967729130364e-01 -1.86189086211220e-02 +-1.44000000000000e+02 6.97352307618548e-01 5.24396727029221e-01 -2.77793532551869e-03 +-1.41000000000000e+02 6.81613839477788e-01 5.94826066587771e-01 1.25927965767874e-02 +-1.38000000000000e+02 6.62002920890116e-01 6.68189421819665e-01 2.79774029417006e-02 +-1.35000000000000e+02 6.40455784934676e-01 7.43019778936259e-01 4.34673885521046e-02 +-1.32000000000000e+02 6.18908433527060e-01 8.17850698969113e-01 5.89612242447798e-02 +-1.29000000000000e+02 5.93682830023854e-01 8.91114749342423e-01 7.46038609930899e-02 +-1.26000000000000e+02 5.61100704888174e-01 9.61245052954708e-01 9.05389699091404e-02 +-1.23000000000000e+02 5.28518625044670e-01 1.03137459621631e+00 1.06475722031366e-01 +-1.20000000000000e+02 4.95936567846408e-01 1.10150375931678e+00 1.22414010239834e-01 +-1.17000000000000e+02 4.52406347782145e-01 1.15838084536770e+00 1.37579477845402e-01 +-1.14000000000000e+02 4.08876283070132e-01 1.21525768824574e+00 1.52745471209185e-01 +-1.11000000000000e+02 3.65346571871469e-01 1.27213409662221e+00 1.67911731135092e-01 +-1.08000000000000e+02 3.16635035430310e-01 1.31553636143885e+00 1.81492961378994e-01 +-1.05000000000000e+02 2.65332546911451e-01 1.35220145187604e+00 1.94295080678717e-01 +-1.02000000000000e+02 2.14030046275947e-01 1.38886612216712e+00 2.07096904272415e-01 +-9.90000000000000e+01 1.61845527217881e-01 1.41728443461560e+00 2.18547504691698e-01 +-9.60000000000000e+01 1.07896933109836e-01 1.42920967418575e+00 2.27294974831625e-01 +-9.30000000000000e+01 5.39485757284989e-02 1.44113482265378e+00 2.36042235203500e-01 +-9.00000000000000e+01 3.36708372806976e-07 1.45305992557158e+00 2.44789532965389e-01 +-8.70000000000000e+01 -5.39485205124533e-02 1.44113483485913e+00 2.48978944307922e-01 +-8.40000000000000e+01 -1.07897083962124e-01 1.42920964084012e+00 2.53182684189232e-01 +-8.10000000000000e+01 -1.61845059868626e-01 1.41728453792232e+00 2.57400380355460e-01 +-7.80000000000000e+01 -2.14029797804819e-01 1.38886629974350e+00 2.58354097127670e-01 +-7.50000000000000e+01 -2.65332886325409e-01 1.35220120930450e+00 2.57682039063764e-01 +-7.20000000000000e+01 -3.16634786964608e-01 1.31553653901342e+00 2.57022063927401e-01 +-6.90000000000000e+01 -3.65346194773105e-01 1.27213458934316e+00 2.55116538347366e-01 +-6.60000000000000e+01 -4.08876404788159e-01 1.21525752920760e+00 2.50706504502961e-01 +-6.30000000000000e+01 -4.52406635775942e-01 1.15838046907205e+00 2.46307312278457e-01 +-6.00000000000000e+01 -4.95936783407592e-01 1.10150329534591e+00 2.41918834523807e-01 +-5.70000000000000e+01 -5.28518840605854e-01 1.03137413224544e+00 2.35766279929407e-01 +-5.40000000000000e+01 -5.61100920449807e-01 9.61244588976293e-01 2.29623980263181e-01 +-5.10000000000000e+01 -5.93683045585487e-01 8.91114285364008e-01 2.23491601843586e-01 +-4.80000000000000e+01 -6.20534325092436e-01 8.17875803160575e-01 2.17675688732665e-01 +-4.50000000000000e+01 -6.44520273887822e-01 7.43083281614397e-01 2.12024856819171e-01 +-4.20000000000000e+01 -6.63628799731457e-01 6.68214525810191e-01 2.08040444001537e-01 +-3.90000000000000e+01 -6.81874399513891e-01 5.93758161928647e-01 2.04674544610408e-01 +-3.60000000000000e+01 -6.97766871415788e-01 5.20958260992169e-01 2.03489583532797e-01 +-3.30000000000000e+01 -7.12939161093519e-01 4.50834279245390e-01 2.05538204979316e-01 +-3.00000000000000e+01 -7.28828619013840e-01 3.83538464029985e-01 2.11194373081700e-01 +-2.93939393939394e+01 -7.32484050886326e-01 3.70626883995265e-01 2.13311958401767e-01 +-2.87878787878788e+01 -7.36139482758811e-01 3.57715303960545e-01 2.15429543721834e-01 +-2.81818181818182e+01 -7.39794914631297e-01 3.44803723925826e-01 2.17547129041902e-01 +-2.75757575757576e+01 -7.43897116047021e-01 3.32306320069088e-01 2.20359205164668e-01 +-2.69696969696970e+01 -7.48190806550193e-01 3.19986435516351e-01 2.23468945736725e-01 +-2.63636363636364e+01 -7.52484497053364e-01 3.07666550963613e-01 2.26578686308783e-01 +-2.57575757575758e+01 -7.57166921645990e-01 2.95607827569598e-01 2.30208187650959e-01 +-2.51515151515151e+01 -7.62432356773396e-01 2.83940785046750e-01 2.34617209011481e-01 +-2.45454545454545e+01 -7.67697791900801e-01 2.72273742523902e-01 2.39026230372002e-01 +-2.39393939393939e+01 -7.73185913789781e-01 2.60674093105127e-01 2.42999615685138e-01 +-2.33333333333333e+01 -7.80678259646152e-01 2.49680994670638e-01 2.43052192230589e-01 +-2.27272727272727e+01 -7.88170605502522e-01 2.38687896236150e-01 2.42568426653275e-01 +-2.21212121212121e+01 -7.95662951358893e-01 2.27694797801661e-01 2.42847201975787e-01 +-2.15151515151515e+01 -8.03122917039084e-01 2.16821981366589e-01 2.40650679427694e-01 +-2.09090909090909e+01 -8.09131542492648e-01 2.05979243168443e-01 2.37504038302243e-01 +-2.03030303030303e+01 -8.15361532190997e-01 1.95136504970297e-01 2.34357397176791e-01 +-1.96969696969697e+01 -8.22724297362875e-01 1.84465173018459e-01 2.31838282654647e-01 +-1.90909090909091e+01 -8.30906925089566e-01 1.73965237616411e-01 2.29946659236386e-01 +-1.84848484848485e+01 -8.31918112583414e-01 1.63453683142057e-01 2.21457087959307e-01 +-1.78787878787879e+01 -8.31595126485506e-01 1.52804171278659e-01 2.11525887706305e-01 +-1.72727272727273e+01 -8.31031369674327e-01 1.42866609967544e-01 1.99629022620351e-01 +-1.66666666666667e+01 -8.25256436764452e-01 1.33056030411927e-01 1.82862818294272e-01 +-1.60606060606061e+01 -8.15283902136340e-01 1.23352246439714e-01 1.62108086965354e-01 +-1.54545454545455e+01 -8.07202667770935e-01 1.13892061964644e-01 1.40642855087825e-01 +-1.48484848484848e+01 -8.00484816929381e-01 1.04572113067813e-01 1.18780315352772e-01 +-1.42424242424242e+01 -7.97273008609856e-01 9.54960779870226e-02 9.63104203643558e-02 +-1.36363636363636e+01 -7.95411303466245e-01 8.64650864864851e-02 7.45927649489055e-02 +-1.30303030303030e+01 -7.95017738651442e-01 7.74696737429739e-02 5.29180621304360e-02 +-1.24242424242424e+01 -7.83491668219477e-01 6.82294219737490e-02 3.53906464364337e-02 +-1.18181818181818e+01 -7.69390633326341e-01 5.96867612177415e-02 1.90461834027338e-02 +-1.12121212121212e+01 -7.49852461255598e-01 4.99975509367422e-02 4.95579546151236e-03 +-1.06060606060606e+01 -7.26864172133525e-01 4.11158480572885e-02 -1.01481331303818e-02 +-1.00000000000000e+01 -7.01883025098080e-01 3.29149003627515e-02 -2.57966293458753e-02 +-9.39393939393939e+00 -6.73760079004400e-01 2.58543044614024e-02 -4.12961616654669e-02 +-8.78787878787879e+00 -6.36634699427489e-01 1.93848671125434e-02 -5.74839914192587e-02 +-8.18181818181818e+00 -5.81874634591272e-01 1.36623501221776e-02 -7.45539130446945e-02 +-7.57575757575758e+00 -5.05150686435173e-01 1.05716894357738e-02 -8.64279283248293e-02 +-6.96969696969697e+00 -4.18595232643061e-01 9.10734541656171e-03 -9.50674159963851e-02 +-6.36363636363636e+00 -3.38986978205484e-01 7.90162668231047e-03 -9.99599652998083e-02 +-5.75757575757576e+00 -2.59840510197803e-01 7.41964713494604e-03 -1.04208933106189e-01 +-5.15151515151515e+00 -1.80988998184422e-01 7.14720887337387e-03 -1.07763832355698e-01 +-4.54545454545454e+00 -1.03071489415176e-01 6.95243839815077e-03 -1.10602747534693e-01 +-3.93939393939394e+00 -2.57708400834061e-02 6.84633480589618e-03 -1.12642875373749e-01 +-3.33333333333333e+00 5.06291120206322e-02 6.76146535162503e-03 -1.14417763754454e-01 +-2.72727272727273e+00 1.27032191349935e-01 6.66325312920406e-03 -1.16093113518882e-01 +-2.12121212121212e+00 2.02920139434825e-01 6.61583701230752e-03 -1.17866755340555e-01 +-1.51515151515152e+00 2.78307232368702e-01 6.59553135545088e-03 -1.19945517730907e-01 +-9.09090909090912e-01 3.52936192696077e-01 6.59403346409144e-03 -1.21944793137844e-01 +-3.03030303030302e-01 4.26320562661541e-01 6.64943771563519e-03 -1.23760507757517e-01 + 3.03030303030302e-01 4.99818577478435e-01 6.69818073560818e-03 -1.25508281414915e-01 + 9.09090909090912e-01 5.73376543665411e-01 6.69183344611623e-03 -1.27070496093681e-01 + 1.51515151515152e+00 6.46799556143286e-01 6.75524511750563e-03 -1.28538560457679e-01 + 2.12121212121212e+00 7.20154880913483e-01 6.84155940142869e-03 -1.29906010197320e-01 + 2.72727272727273e+00 7.93147472633957e-01 6.97678572298154e-03 -1.31165648253112e-01 + 3.33333333333333e+00 8.65616018748002e-01 7.10739240893340e-03 -1.32288860283965e-01 + 3.93939393939394e+00 9.37648112828365e-01 7.24422887006074e-03 -1.33365853998558e-01 + 4.54545454545455e+00 1.00910358732349e+00 7.39983874217581e-03 -1.34215184053867e-01 + 5.15151515151515e+00 1.08005492256340e+00 7.58558750578516e-03 -1.34976127499023e-01 + 5.75757575757576e+00 1.14960510771521e+00 7.88653428093343e-03 -1.35458436688932e-01 + 6.36363636363637e+00 1.21615416551218e+00 8.34153340579227e-03 -1.35456842953982e-01 + 6.96969696969697e+00 1.27828480587284e+00 9.10488091440775e-03 -1.34893951393780e-01 + 7.57575757575757e+00 1.32797468584652e+00 1.06845025707761e-02 -1.32377276048360e-01 + 8.18181818181818e+00 1.37107050025369e+00 1.21820686740787e-02 -1.29169553035756e-01 + 8.78787878787879e+00 1.40369513738070e+00 1.40255937471439e-02 -1.25043047898281e-01 + 9.39393939393939e+00 1.41709683794245e+00 1.92334681728973e-02 -1.22574062592608e-01 + 1.00000000000000e+01 1.41645872036543e+00 2.62062454721527e-02 -1.22372841879845e-01 + 1.06060606060606e+01 1.38657460264657e+00 3.26763717983368e-02 -1.21751932897855e-01 + 1.12121212121212e+01 1.36400259487080e+00 3.83098431246971e-02 -1.21315233753301e-01 + 1.18181818181818e+01 1.35688821281416e+00 4.60809911460502e-02 -1.19819418114883e-01 + 1.24242424242424e+01 1.34089573725963e+00 5.79456504379348e-02 -1.18207966359576e-01 + 1.30303030303030e+01 1.32223161769021e+00 7.00497051047743e-02 -1.17191325445144e-01 + 1.36363636363636e+01 1.29585304328532e+00 8.36737099489719e-02 -1.19176336444020e-01 + 1.42424242424242e+01 1.27550502164861e+00 9.56164211836313e-02 -1.21085843980632e-01 + 1.48484848484848e+01 1.26031280258829e+00 1.05038483493522e-01 -1.22965364533929e-01 + 1.54545454545455e+01 1.24817918569169e+00 1.13694141927813e-01 -1.24250481062770e-01 + 1.60606060606061e+01 1.23659506592632e+00 1.22025178103146e-01 -1.25145411447740e-01 + 1.66666666666667e+01 1.22112439263804e+00 1.29733166820717e-01 -1.25238540045732e-01 + 1.72727272727273e+01 1.20372487247866e+00 1.38204896553668e-01 -1.25906002656970e-01 + 1.78787878787879e+01 1.18372803528903e+00 1.47610097212096e-01 -1.27281617838633e-01 + 1.84848484848485e+01 1.17400652248468e+00 1.57673262028419e-01 -1.29411130817857e-01 + 1.90909090909091e+01 1.16668752601417e+00 1.67940267889330e-01 -1.32031130540839e-01 + 1.96969696969697e+01 1.15802631000889e+00 1.78430476422176e-01 -1.36362103439965e-01 + 2.03030303030303e+01 1.14825771518914e+00 1.89897612594817e-01 -1.41556026190695e-01 + 2.09090909090909e+01 1.14104652446381e+00 2.02341731675555e-01 -1.47700684953726e-01 + 2.15151515151515e+01 1.13734479071489e+00 2.14785850756294e-01 -1.53871949597139e-01 + 2.21212121212121e+01 1.13089213779505e+00 2.26985477991913e-01 -1.60089208840245e-01 + 2.27272727272727e+01 1.12204977020079e+00 2.38207389411154e-01 -1.66490399157068e-01 + 2.33333333333333e+01 1.11320740260652e+00 2.49429300830395e-01 -1.72914291335786e-01 + 2.39393939393939e+01 1.10436503501225e+00 2.60651212249636e-01 -1.79425078294699e-01 + 2.45454545454545e+01 1.09671055899213e+00 2.72273742523902e-01 -1.85035919192311e-01 + 2.51515151515151e+01 1.08918806808547e+00 2.83940785046750e-01 -1.90542124148107e-01 + 2.57575757575758e+01 1.08166557717880e+00 2.95607827569598e-01 -1.96042910921405e-01 + 2.63636363636364e+01 1.07497654178085e+00 3.07666550963613e-01 -2.01108325476125e-01 + 2.69696969696970e+01 1.06884322973428e+00 3.19986435516351e-01 -2.05883282560142e-01 + 2.75757575757576e+01 1.06270991768772e+00 3.32306320069088e-01 -2.10654825089128e-01 + 2.81818181818182e+01 1.05685002491795e+00 3.44803723925826e-01 -2.15273237837376e-01 + 2.87878787878788e+01 1.05162805573452e+00 3.57715303960546e-01 -2.19539750840593e-01 + 2.93939393939394e+01 1.04640608655109e+00 3.70626883995265e-01 -2.23804015238057e-01 + 3.00000000000000e+01 1.04118411736767e+00 3.83538464029985e-01 -2.28066012025690e-01 + 3.30000000000000e+01 1.01848589840269e+00 4.50834279245390e-01 -2.46961206869889e-01 + 3.60000000000000e+01 9.96808909621796e-01 5.20958260992169e-01 -2.64359434793424e-01 + 3.90000000000000e+01 9.74106328942832e-01 5.93758161928647e-01 -2.80547282143363e-01 + 4.20000000000000e+01 9.48041157048807e-01 6.68214525810192e-01 -2.95913378121082e-01 + 4.50000000000000e+01 9.20743807181201e-01 7.43083281614397e-01 -3.11045980331182e-01 + 4.80000000000000e+01 8.86477884798320e-01 8.17875803160575e-01 -3.25477187585035e-01 + 5.10000000000000e+01 8.48118712495052e-01 8.91114285364008e-01 -3.39620328980538e-01 + 5.40000000000000e+01 8.01572777205266e-01 9.61244588976293e-01 -3.53193383869185e-01 + 5.70000000000000e+01 7.55026776527843e-01 1.03137413224544e+00 -3.66763595394112e-01 + 6.00000000000000e+01 7.08480743156850e-01 1.10150329534591e+00 -3.80331070227688e-01 + 6.30000000000000e+01 6.46295216458993e-01 1.15838046907205e+00 -3.92574049260776e-01 + 6.60000000000000e+01 5.84109443410254e-01 1.21525752920760e+00 -4.04815652134246e-01 + 6.90000000000000e+01 5.21923445770576e-01 1.27213458934316e+00 -4.17055794570706e-01 + 7.20000000000000e+01 4.52335480264868e-01 1.31553653901342e+00 -4.28053298659701e-01 + 7.50000000000000e+01 3.79046682354287e-01 1.35220120930450e+00 -4.38429394598601e-01 + 7.80000000000000e+01 3.05756781496138e-01 1.38886629974350e+00 -4.48804321680909e-01 + 8.10000000000000e+01 2.31207286740326e-01 1.41728453792232e+00 -4.58322686478495e-01 + 8.40000000000000e+01 1.54138691138483e-01 1.42920964084012e+00 -4.66128863644011e-01 + 8.70000000000000e+01 7.70693031576111e-02 1.44113483485913e+00 -4.73934397736458e-01 + 9.00000000000000e+01 -3.36708373039042e-07 1.45305992557158e+00 -4.81739438540332e-01 + 9.30000000000000e+01 -5.39485757284989e-02 1.44113482265378e+00 -4.85914001849487e-01 + 9.60000000000000e+01 -1.07896933109837e-01 1.42920967418575e+00 -4.89748119107250e-01 + 9.90000000000000e+01 -1.61845527217882e-01 1.41728443461560e+00 -4.93557987335880e-01 + 1.02000000000000e+02 -2.14030046275947e-01 1.38886612216712e+00 -4.94077965350438e-01 + 1.05000000000000e+02 -2.65332546911451e-01 1.35220145187604e+00 -4.92944920029321e-01 + 1.08000000000000e+02 -3.16635035430310e-01 1.31553636143885e+00 -4.92245915161826e-01 + 1.11000000000000e+02 -3.65346571871470e-01 1.27213409662221e+00 -4.90545503515274e-01 + 1.14000000000000e+02 -4.08876283070132e-01 1.21525768824574e+00 -4.86317993590270e-01 + 1.17000000000000e+02 -4.52406347782145e-01 1.15838084536770e+00 -4.82090051371639e-01 + 1.20000000000000e+02 -4.95936567846409e-01 1.10150375931678e+00 -4.77861889492743e-01 + 1.23000000000000e+02 -5.28518625044671e-01 1.03137459621631e+00 -4.71840511315534e-01 + 1.26000000000000e+02 -5.61100704888174e-01 9.61245052954708e-01 -4.65818976558725e-01 + 1.29000000000000e+02 -5.93682830023854e-01 8.91114749342422e-01 -4.59682348306178e-01 + 1.32000000000000e+02 -6.18908433527060e-01 8.17850698969113e-01 -4.54312399338742e-01 + 1.35000000000000e+02 -6.40455784934676e-01 7.43019778936259e-01 -4.49364062058548e-01 + 1.38000000000000e+02 -6.62002920890116e-01 6.68189421819664e-01 -4.44415444601716e-01 + 1.41000000000000e+02 -6.81613839477788e-01 5.94826066587770e-01 -4.41694691787043e-01 + 1.44000000000000e+02 -6.97352307618548e-01 5.24396727029221e-01 -4.43429686334623e-01 + 1.47000000000000e+02 -7.13090480114408e-01 4.53967729130364e-01 -4.45164688600493e-01 + 1.50000000000000e+02 -7.28828504793094e-01 3.83538902055256e-01 -4.46899694725369e-01 + 1.53000000000000e+02 -7.38250770119389e-01 3.28279710588330e-01 -4.64997809025810e-01 + 1.56000000000000e+02 -7.46093272753856e-01 2.73020555057756e-01 -4.81308204600343e-01 + 1.59000000000000e+02 -7.53707623020192e-01 2.17761400703393e-01 -5.00902986460923e-01 + 1.62000000000000e+02 -6.88143441383303e-01 1.78536848703957e-01 -5.06252966573203e-01 + 1.65000000000000e+02 -5.85650053883360e-01 1.47329733490110e-01 -5.03908411641623e-01 + 1.68000000000000e+02 -4.83157240864670e-01 1.16122375886185e-01 -5.01563371955391e-01 + 1.71000000000000e+02 -3.73345827031091e-01 8.57857267499245e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.48896869884329e-01 5.71905351997449e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.23881031171309e-01 4.71151394500337e-02 -1.04090643424068e-01 + 1.80000000000000e+02 0.00000000000000e+00 4.63087218239101e-02 1.12294918356446e-01 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_24.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_24.dat new file mode 100644 index 00000000..59306058 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_24.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF24_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF24_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-3.881348 alpha0 ! 0-lift angle of attack, depends on airfoil. +10.220205 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-10.228661 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.447089 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.835242 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006598 Cd0 ! 2D drag coefficient value at 0-lift. +-0.113186 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 4.20239297897650e-02 1.57138208863316e-01 +-1.77000000000000e+02 1.40632365655801e-01 4.20239297897650e-02 1.82737995898986e-01 +-1.74000000000000e+02 2.82553053900608e-01 5.04286683283111e-02 2.39999774321882e-01 +-1.71000000000000e+02 4.23830336360153e-01 7.56431598642469e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.34869114486967e-01 1.04245693608263e-01 3.04280258541825e-01 +-1.65000000000000e+02 6.30788993375323e-01 1.34542208912873e-01 1.60701763545007e-01 +-1.62000000000000e+02 7.26709994336859e-01 1.64838896980479e-01 1.71214488498863e-02 +-1.59000000000000e+02 7.84071397760670e-01 2.04002209021424e-01 -7.41764661492530e-02 +-1.56000000000000e+02 7.64500626823811e-01 2.60898469061760e-01 -6.11103531608993e-02 +-1.53000000000000e+02 7.44806596412559e-01 3.17794763757350e-01 -4.80087218730144e-02 +-1.50000000000000e+02 7.24801607355001e-01 3.74691108028256e-01 -3.36803071761103e-02 +-1.47000000000000e+02 7.09536340567078e-01 4.45426278146463e-01 -1.81789006503532e-02 +-1.44000000000000e+02 6.94270972610212e-01 5.16161667949901e-01 -2.67735864084869e-03 +-1.41000000000000e+02 6.79005402308234e-01 5.86897497139490e-01 1.25267866649444e-02 +-1.38000000000000e+02 6.59752709771772e-01 6.60614800800240e-01 2.78426345762092e-02 +-1.35000000000000e+02 6.38506464206380e-01 7.35822835648326e-01 4.32768039375504e-02 +-1.32000000000000e+02 6.17259998089925e-01 8.11031580816670e-01 5.87121989579576e-02 +-1.29000000000000e+02 5.92302309505059e-01 8.84693447887175e-01 7.43012013825991e-02 +-1.26000000000000e+02 5.59922158385802e-01 9.55261551412121e-01 9.01959583834699e-02 +-1.23000000000000e+02 5.27541955630656e-01 1.02582880155467e+00 1.06091386661389e-01 +-1.20000000000000e+02 4.95161727058530e-01 1.09639562502197e+00 1.21987354023941e-01 +-1.17000000000000e+02 4.51763647235390e-01 1.15375704715292e+00 1.37121497118599e-01 +-1.14000000000000e+02 4.08365719274480e-01 1.21111822435222e+00 1.52255604498479e-01 +-1.11000000000000e+02 3.64968138119650e-01 1.26847896334996e+00 1.67389419062474e-01 +-1.08000000000000e+02 3.16351063621799e-01 1.31238637614246e+00 1.80934520183943e-01 +-1.05000000000000e+02 2.65124202709162e-01 1.34956702339128e+00 1.93694959616565e-01 +-1.02000000000000e+02 2.13897328813262e-01 1.38674724458622e+00 2.06454767299050e-01 +-9.90000000000000e+01 1.61771435376163e-01 1.41568677594618e+00 2.17866871578471e-01 +-9.60000000000000e+01 1.07847463915400e-01 1.42814457068853e+00 2.26583332591711e-01 +-9.30000000000000e+01 5.39238186798111e-02 1.44060227026035e+00 2.35299390910874e-01 +-9.00000000000000e+01 3.36553857038623e-07 1.45305992224777e+00 2.44015288398801e-01 +-8.70000000000000e+01 -5.39237634891041e-02 1.44060228301076e+00 2.47951662237116e-01 +-8.40000000000000e+01 -1.07847614698837e-01 1.42814453585376e+00 2.51892083934148e-01 +-8.10000000000000e+01 -1.61770968240210e-01 1.41568688386634e+00 2.55836458741642e-01 +-7.80000000000000e+01 -2.13897080708414e-01 1.38674742465954e+00 2.56509498151152e-01 +-7.50000000000000e+01 -2.65124541622777e-01 1.34956677740889e+00 2.55548599134485e-01 +-7.20000000000000e+01 -3.16350815522372e-01 1.31238655621395e+00 2.54590706463430e-01 +-6.90000000000000e+01 -3.64967762165930e-01 1.26847946026667e+00 2.52383955015723e-01 +-6.60000000000000e+01 -4.08365840623045e-01 1.21111806395980e+00 2.47675595024712e-01 +-6.30000000000000e+01 -4.51763934354955e-01 1.15375666765293e+00 2.42970286422080e-01 +-6.00000000000000e+01 -4.95161941284426e-01 1.09639515815556e+00 2.38268000115941e-01 +-5.70000000000000e+01 -5.27542169856552e-01 1.02582833468826e+00 2.31806506435537e-01 +-5.40000000000000e+01 -5.59922372611185e-01 9.55261084537245e-01 2.25347767167551e-01 +-5.10000000000000e+01 -5.92302523730443e-01 8.84692981012299e-01 2.18891521602934e-01 +-4.80000000000000e+01 -6.18906352581358e-01 8.11045812993734e-01 2.12734135842278e-01 +-4.50000000000000e+01 -6.42622113131780e-01 7.35859162213287e-01 2.06728126759377e-01 +-4.20000000000000e+01 -6.61399051379004e-01 6.60629032861292e-01 2.02335706314512e-01 +-3.90000000000000e+01 -6.79295197663792e-01 5.85819587866301e-01 1.98564860746646e-01 +-3.60000000000000e+01 -6.94777748193317e-01 5.12692903825368e-01 1.97017430019138e-01 +-3.30000000000000e+01 -7.09467742340985e-01 4.42267305815927e-01 1.98629231822253e-01 +-3.00000000000000e+01 -7.24801717703120e-01 3.74690668178350e-01 2.03759075670758e-01 +-2.93939393939394e+01 -7.28326530814462e-01 3.61726727869206e-01 2.05744738406902e-01 +-2.87878787878788e+01 -7.31851343925804e-01 3.48762787560061e-01 2.07730401143047e-01 +-2.81818181818182e+01 -7.35376157037146e-01 3.35798847250917e-01 2.09716063879191e-01 +-2.75757575757576e+01 -7.39335418161425e-01 3.23251387701133e-01 2.12376937449998e-01 +-2.69696969696970e+01 -7.43480887264291e-01 3.10882435217812e-01 2.15327211917801e-01 +-2.63636363636364e+01 -7.47626356367156e-01 2.98513482734492e-01 2.18277486385603e-01 +-2.57575757575758e+01 -7.52151842029857e-01 2.86407040228379e-01 2.21732543995886e-01 +-2.51515151515151e+01 -7.57247263964635e-01 2.74694301506801e-01 2.25944658673781e-01 +-2.45454545454545e+01 -7.62342685899414e-01 2.62981562785224e-01 2.30156773351676e-01 +-2.39393939393939e+01 -7.67618823549025e-01 2.51338309217338e-01 2.34224184613365e-01 +-2.33333333333333e+01 -7.74521437619550e-01 2.40320435485340e-01 2.36989237113918e-01 +-2.27272727272727e+01 -7.81424051690076e-01 2.29302561753342e-01 2.39601565570627e-01 +-2.21212121212121e+01 -7.88326665760601e-01 2.18284688021344e-01 2.42470674291164e-01 +-2.15151515151515e+01 -7.95622047703425e-01 2.07577437194191e-01 2.45095428001552e-01 +-2.09090909090909e+01 -8.02604681726082e-01 1.96947862073894e-01 2.47624260079401e-01 +-2.03030303030303e+01 -8.09650349475145e-01 1.86318286953598e-01 2.50153092157250e-01 +-1.96969696969697e+01 -8.17637506447164e-01 1.75928434913981e-01 2.53560038839616e-01 +-1.90909090909091e+01 -8.26477015311138e-01 1.65778292393816e-01 2.57845050451215e-01 +-1.84848484848485e+01 -8.26084809962742e-01 1.55849503459699e-01 2.52897003259897e-01 +-1.78787878787879e+01 -8.23983493243247e-01 1.46076930679257e-01 2.45664651306383e-01 +-1.72727272727273e+01 -8.21570138202451e-01 1.37130650088349e-01 2.35566574130545e-01 +-1.66666666666667e+01 -8.12443964880370e-01 1.28220565266013e-01 2.18667326209765e-01 +-1.60606060606061e+01 -7.97844348659724e-01 1.19340921345769e-01 1.96202242311259e-01 +-1.54545454545455e+01 -7.84422413764076e-01 1.10579594948523e-01 1.73424826407758e-01 +-1.48484848484848e+01 -7.71787584327422e-01 1.01887960544163e-01 1.50473470711618e-01 +-1.42424242424242e+01 -7.61134965931686e-01 9.33387624500803e-02 1.27203383377638e-01 +-1.36363636363636e+01 -7.51019037969479e-01 8.48128124492238e-02 1.04178189645314e-01 +-1.30303030303030e+01 -7.41421130409000e-01 7.63034135314191e-02 8.11835234005733e-02 +-1.24242424242424e+01 -7.26117069582958e-01 6.77522789215004e-02 6.03315753701249e-02 +-1.18181818181818e+01 -7.09450417189115e-01 5.96236347309660e-02 4.00791186975229e-02 +-1.12121212121212e+01 -6.90082557893989e-01 5.06890203132416e-02 2.09663498148639e-02 +-1.06060606060606e+01 -6.69006785525034e-01 4.21875347068638e-02 1.31821761243166e-03 +-1.00000000000000e+01 -6.46973736816406e-01 3.40753735771777e-02 -1.86162729145852e-02 +-9.39393939393939e+00 -6.23566521153584e-01 2.66139202130595e-02 -3.84582682239768e-02 +-8.78787878787879e+00 -5.93143909692991e-01 1.97080621922025e-02 -5.81227331911647e-02 +-8.18181818181818e+00 -5.49437129950642e-01 1.36122296354314e-02 -7.73434792653389e-02 +-7.57575757575758e+00 -4.76129595933123e-01 1.04462591632936e-02 -9.01887084685705e-02 +-6.96969696969697e+00 -3.89923494054396e-01 8.96219583042148e-03 -9.89373513292037e-02 +-6.36363636363636e+00 -3.12270511910677e-01 7.65469409261513e-03 -1.02756750711562e-01 +-5.75757575757576e+00 -2.35244495718475e-01 7.20033215041447e-03 -1.06054556847806e-01 +-5.15151515151515e+00 -1.58611001142337e-01 6.92443690785538e-03 -1.08867710719892e-01 +-4.54545454545454e+00 -8.26264788487249e-02 6.71182503055839e-03 -1.11241902473054e-01 +-3.93939393939394e+00 -7.17505732470964e-03 6.60399736858371e-03 -1.13032741919541e-01 +-3.33333333333333e+00 6.77399244143484e-02 6.54568110870987e-03 -1.14632383709498e-01 +-2.72727272727273e+00 1.42670380661859e-01 6.46364824529083e-03 -1.16181617095474e-01 +-2.12121212121212e+00 2.17139817585866e-01 6.43953237954945e-03 -1.17766630428816e-01 +-1.51515151515152e+00 2.91428740135327e-01 6.42972618595009e-03 -1.19525590995757e-01 +-9.09090909090912e-01 3.65128859297927e-01 6.42967209033216e-03 -1.21282061863669e-01 +-3.03030303030302e-01 4.38105121735726e-01 6.47736400956553e-03 -1.22890854235333e-01 + 3.03030303030302e-01 5.11112071056141e-01 6.53139868052610e-03 -1.24460808318302e-01 + 9.09090909090912e-01 5.84048322897008e-01 6.52730920651946e-03 -1.25889751980391e-01 + 1.51515151515152e+00 6.56771187401434e-01 6.60828592671719e-03 -1.27205103311759e-01 + 2.12121212121212e+00 7.29431355319300e-01 6.66584266708599e-03 -1.28498098736987e-01 + 2.72727272727273e+00 8.01715099938977e-01 6.79410605892685e-03 -1.29703511469116e-01 + 3.33333333333333e+00 8.73667737101458e-01 6.92003913189438e-03 -1.30770162129486e-01 + 3.93939393939394e+00 9.45203779381055e-01 7.04950954145510e-03 -1.31831672743512e-01 + 4.54545454545455e+00 1.01616262246952e+00 7.18868096099871e-03 -1.32686207865223e-01 + 5.15151515151515e+00 1.08666504585964e+00 7.35805565558534e-03 -1.33484479795433e-01 + 5.75757575757576e+00 1.15589713891403e+00 7.65596176371924e-03 -1.34065604697579e-01 + 6.36363636363637e+00 1.22235143346160e+00 8.13782849850763e-03 -1.34188428144082e-01 + 6.96969696969697e+00 1.28381732514628e+00 9.00700508163636e-03 -1.33672116338428e-01 + 7.57575757575757e+00 1.33414824858160e+00 1.07028357691023e-02 -1.31358398670661e-01 + 8.18181818181818e+00 1.37921530349790e+00 1.23338548134546e-02 -1.28462440465876e-01 + 8.78787878787879e+00 1.41929596248767e+00 1.40314224567824e-02 -1.25079434784614e-01 + 9.39393939393939e+00 1.44895179840671e+00 1.73667127363230e-02 -1.22426571069460e-01 + 1.00000000000000e+01 1.46562058968523e+00 2.15076283531428e-02 -1.22080342259589e-01 + 1.06060606060606e+01 1.46482275209920e+00 2.56482444467929e-02 -1.21729653497994e-01 + 1.12121212121212e+01 1.46455008673655e+00 2.96173727205461e-02 -1.21654814919871e-01 + 1.18181818181818e+01 1.46787480330173e+00 3.84335406340759e-02 -1.21545340375698e-01 + 1.24242424242424e+01 1.44626795909455e+00 5.24745071699755e-02 -1.21745587084181e-01 + 1.30303030303030e+01 1.41548464258938e+00 6.65727041455837e-02 -1.22132303153946e-01 + 1.36363636363636e+01 1.37245053342376e+00 8.16057042391146e-02 -1.24136435674557e-01 + 1.42424242424242e+01 1.33537840735922e+00 9.41511245499718e-02 -1.25907093812210e-01 + 1.48484848484848e+01 1.30613659580939e+00 1.02967015650268e-01 -1.27351580700688e-01 + 1.54545454545455e+01 1.28553302955425e+00 1.11389370579920e-01 -1.28462528314075e-01 + 1.60606060606061e+01 1.26758424346921e+00 1.19644615010785e-01 -1.29390414755028e-01 + 1.66666666666667e+01 1.24771591748635e+00 1.27576133928679e-01 -1.29935088016977e-01 + 1.72727272727273e+01 1.22417688851766e+00 1.35896595584476e-01 -1.30758578064231e-01 + 1.78787878787879e+01 1.19608311119412e+00 1.44692436629616e-01 -1.31924607905431e-01 + 1.84848484848485e+01 1.18255480628068e+00 1.53780455374608e-01 -1.33460435656660e-01 + 1.90909090909091e+01 1.17242740863741e+00 1.63075826898732e-01 -1.35618139566060e-01 + 1.96969696969697e+01 1.16082579219221e+00 1.73132593582544e-01 -1.40776664039364e-01 + 2.03030303030303e+01 1.14904324940101e+00 1.83847599384671e-01 -1.46705689236554e-01 + 2.09090909090909e+01 1.13954137740033e+00 1.95220881544062e-01 -1.53430242057478e-01 + 2.15151515151515e+01 1.13215807394264e+00 2.06594163703453e-01 -1.60162370933814e-01 + 2.21212121212121e+01 1.12321585235273e+00 2.17919889776365e-01 -1.66781417553110e-01 + 2.27272727272727e+01 1.11431119585911e+00 2.29055440435074e-01 -1.72948251497559e-01 + 2.33333333333333e+01 1.10540653936549e+00 2.40190991093782e-01 -1.79121549823611e-01 + 2.39393939393939e+01 1.09650188287188e+00 2.51326541752491e-01 -1.85319591539483e-01 + 2.45454545454545e+01 1.08905958113101e+00 2.62981562785224e-01 -1.90662311121533e-01 + 2.51515151515151e+01 1.08177975975634e+00 2.74694301506801e-01 -1.95908674546375e-01 + 2.57575757575758e+01 1.07449993838168e+00 2.86407040228379e-01 -2.01153495137443e-01 + 2.63636363636364e+01 1.06803512793561e+00 2.98513482734492e-01 -2.05997699680956e-01 + 2.69696969696970e+01 1.06211374254334e+00 3.10882435217812e-01 -2.10574738593792e-01 + 2.75757575757576e+01 1.05619235715106e+00 3.23251387701133e-01 -2.15150805208106e-01 + 2.81818181818182e+01 1.05053677218194e+00 3.35798847250917e-01 -2.19587044062714e-01 + 2.87878787878788e+01 1.04550133499893e+00 3.48762787560062e-01 -2.23698575936724e-01 + 2.93939393939394e+01 1.04046589781592e+00 3.61726727869206e-01 -2.27809467517628e-01 + 3.00000000000000e+01 1.03543046063291e+00 3.74690668178350e-01 -2.31919713393992e-01 + 3.30000000000000e+01 1.01352784881378e+00 4.42267305815928e-01 -2.50242753909780e-01 + 3.60000000000000e+01 9.92539022396652e-01 5.12692903825368e-01 -2.67200657190209e-01 + 3.90000000000000e+01 9.70421727927888e-01 5.85819587866301e-01 -2.83055031736328e-01 + 4.20000000000000e+01 9.44855717457034e-01 6.60629032861292e-01 -2.98162017656836e-01 + 4.50000000000000e+01 9.18032014729747e-01 7.35859162213287e-01 -3.13059792814360e-01 + 4.80000000000000e+01 8.84152091109475e-01 8.11045812993735e-01 -3.27314348631916e-01 + 5.10000000000000e+01 8.46146395641528e-01 8.84692981012299e-01 -3.41300099207024e-01 + 5.40000000000000e+01 7.99888891241725e-01 9.55261084537245e-01 -3.54749948670230e-01 + 5.70000000000000e+01 7.53631324948729e-01 1.02582833468826e+00 -3.68198870181370e-01 + 6.00000000000000e+01 7.07373727709371e-01 1.09639515815556e+00 -3.81646953266444e-01 + 6.30000000000000e+01 6.45377123529131e-01 1.15375666765293e+00 -3.93810500184529e-01 + 6.60000000000000e+01 5.83380227301456e-01 1.21111806395980e+00 -4.05973624922660e-01 + 6.90000000000000e+01 5.21383016795821e-01 1.26847946026667e+00 -4.18136288721357e-01 + 7.20000000000000e+01 4.51929954630524e-01 1.31238655621395e+00 -4.29073410119878e-01 + 7.50000000000000e+01 3.78749119266611e-01 1.34956677740889e+00 -4.39397752827040e-01 + 7.80000000000000e+01 3.05567316722722e-01 1.38674742465954e+00 -4.49721404047000e-01 + 8.10000000000000e+01 2.31101650731069e-01 1.41568688386634e+00 -4.59194843301813e-01 + 8.40000000000000e+01 1.54068346468134e-01 1.42814453585376e+00 -4.66968167272936e-01 + 8.70000000000000e+01 7.70341547111549e-02 1.44060228301076e+00 -4.74741064431118e-01 + 9.00000000000000e+01 -3.36553857271529e-07 1.45305992224777e+00 -4.82513681756923e-01 + 9.30000000000000e+01 -5.39238186798111e-02 1.44060227026035e+00 -4.86445774433152e-01 + 9.60000000000000e+01 -1.07847463915400e-01 1.42814457068853e+00 -4.90136599398835e-01 + 9.90000000000000e+01 -1.61771435376163e-01 1.41568677594618e+00 -4.93816587592719e-01 + 1.02000000000000e+02 -2.13897328813262e-01 1.38674724458622e+00 -4.94219233630832e-01 + 1.05000000000000e+02 -2.65124202709163e-01 1.34956702339128e+00 -4.92980933650800e-01 + 1.08000000000000e+02 -3.16351063621799e-01 1.31238637614246e+00 -4.92020295748683e-01 + 1.11000000000000e+02 -3.64968138119650e-01 1.26847896334996e+00 -4.89968875412941e-01 + 1.14000000000000e+02 -4.08365719274481e-01 1.21111822435222e+00 -4.85404915466942e-01 + 1.17000000000000e+02 -4.51763647235390e-01 1.15375704715292e+00 -4.80840520657040e-01 + 1.20000000000000e+02 -4.95161727058530e-01 1.09639562502197e+00 -4.76275904937341e-01 + 1.23000000000000e+02 -5.27541955630656e-01 1.02582880155467e+00 -4.69936300398934e-01 + 1.26000000000000e+02 -5.59922158385802e-01 9.55261551412121e-01 -4.63596595371752e-01 + 1.29000000000000e+02 -5.92302309505059e-01 8.84693447887175e-01 -4.57173092895786e-01 + 1.32000000000000e+02 -6.17259998089925e-01 8.11031580816670e-01 -4.51522499663600e-01 + 1.35000000000000e+02 -6.38506464206380e-01 7.35822835648326e-01 -4.46286234978398e-01 + 1.38000000000000e+02 -6.59752709771772e-01 6.60614800800239e-01 -4.41049558888129e-01 + 1.41000000000000e+02 -6.79005402308234e-01 5.86897497139489e-01 -4.37992891545696e-01 + 1.44000000000000e+02 -6.94270972610212e-01 5.16161667949901e-01 -4.39296259388551e-01 + 1.47000000000000e+02 -7.09536340567078e-01 4.45426278146463e-01 -4.40599632549160e-01 + 1.50000000000000e+02 -7.24801607355002e-01 3.74691108028256e-01 -4.41903008368551e-01 + 1.53000000000000e+02 -7.42599775012969e-01 3.18083719972620e-01 -4.61912096005589e-01 + 1.56000000000000e+02 -7.59948055761679e-01 2.61476373424413e-01 -4.80619093073397e-01 + 1.59000000000000e+02 -7.77231254388352e-01 2.04869044049550e-01 -5.01430259356238e-01 + 1.62000000000000e+02 -7.14992328958953e-01 1.66181531595306e-01 -5.06906825399297e-01 + 1.65000000000000e+02 -6.12895046906355e-01 1.36454079153225e-01 -5.04317113525236e-01 + 1.68000000000000e+02 -5.10798334796026e-01 1.06726367365571e-01 -5.01726853472064e-01 + 1.71000000000000e+02 -3.98460526443325e-01 7.82171286957471e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.65640047479978e-01 5.21448931484207e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.32214471307849e-01 4.28782038261505e-02 -8.60306173704663e-02 + 1.80000000000000e+02 0.00000000000000e+00 4.20239297897650e-02 1.57138208863316e-01 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_25.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_25.dat new file mode 100644 index 00000000..5afdaa9e --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_25.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF25_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF25_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-3.985066 alpha0 ! 0-lift angle of attack, depends on airfoil. +10.901847 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-9.933710 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.525701 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.831442 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006462 Cd0 ! 2D drag coefficient value at 0-lift. +-0.113020 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 3.88896555692602e-02 1.88439381768847e-01 +-1.77000000000000e+02 1.47085076149199e-01 3.88896555692602e-02 1.95344118058902e-01 +-1.74000000000000e+02 2.95517626324669e-01 4.66675428003909e-02 2.39999774321882e-01 +-1.71000000000000e+02 4.43277326259944e-01 7.00014598350941e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.54775230424015e-01 9.73983403883863e-02 3.01232293768575e-01 +-1.65000000000000e+02 6.48142659931080e-01 1.26826655280201e-01 1.53081887186124e-01 +-1.62000000000000e+02 7.41511167200111e-01 1.56255257014288e-01 4.92973254323252e-03 +-1.59000000000000e+02 7.95540100041439e-01 1.95090056664802e-01 -8.77735264750430e-02 +-1.56000000000000e+02 7.70906453274779e-01 2.52736933946693e-01 -6.95971986266622e-02 +-1.53000000000000e+02 7.46262520842411e-01 3.10383851618106e-01 -5.14181728633164e-02 +-1.50000000000000e+02 7.21593009442639e-01 3.68030820520305e-01 -3.29558765859875e-02 +-1.47000000000000e+02 7.06704434537952e-01 4.38996595677444e-01 -1.77699153461743e-02 +-1.44000000000000e+02 6.91815791203747e-01 5.09962627721908e-01 -2.58387309352737e-03 +-1.41000000000000e+02 6.76927011005616e-01 5.80929173559367e-01 1.25078923479111e-02 +-1.38000000000000e+02 6.57959749926485e-01 6.54912916084138e-01 2.78036722103928e-02 +-1.35000000000000e+02 6.36953256680495e-01 7.30405250831853e-01 4.32213182447573e-02 +-1.32000000000000e+02 6.15946530568564e-01 8.05898408123014e-01 5.86392271290690e-02 +-1.29000000000000e+02 5.91202311709038e-01 8.79859730223254e-01 7.42120371863231e-02 +-1.26000000000000e+02 5.58983089632388e-01 9.50757374661013e-01 9.00945304458618e-02 +-1.23000000000000e+02 5.26763742046105e-01 1.02165410059611e+00 1.05977334757586e-01 +-1.20000000000000e+02 4.94544331707351e-01 1.09255036729705e+00 1.21860311283846e-01 +-1.17000000000000e+02 4.51251550031352e-01 1.15027637837716e+00 1.36984793751777e-01 +-1.14000000000000e+02 4.07958914685959e-01 1.20800214320170e+00 1.52109035307253e-01 +-1.11000000000000e+02 3.64666615300881e-01 1.26572746703947e+00 1.67232779609297e-01 +-1.08000000000000e+02 3.16124806380124e-01 1.31001514786660e+00 1.80754313543723e-01 +-1.05000000000000e+02 2.64958202719693e-01 1.34758390486677e+00 1.93478045106979e-01 +-1.02000000000000e+02 2.13791585385510e-01 1.38515223136569e+00 2.06201034298060e-01 +-9.90000000000000e+01 1.61712404778857e-01 1.41448412769015e+00 2.17579378110101e-01 +-9.60000000000000e+01 1.07808058099348e-01 1.42734280690261e+00 2.26268358308198e-01 +-9.30000000000000e+01 5.39041000974291e-02 1.44020138788200e+00 2.34956873390276e-01 +-9.00000000000000e+01 3.36430787768757e-07 1.45305991974575e+00 2.43645159242670e-01 +-8.70000000000000e+01 -5.39040449269041e-02 1.44020140104271e+00 2.47370504797659e-01 +-8.40000000000000e+01 -1.07808208827910e-01 1.42734277094688e+00 2.51096140965095e-01 +-8.10000000000000e+01 -1.61711937812911e-01 1.41448423908313e+00 2.54822075502831e-01 +-7.80000000000000e+01 -2.13791337572500e-01 1.38515241331870e+00 2.55274888244729e-01 +-7.50000000000000e+01 -2.64958541234654e-01 1.34758365631669e+00 2.54091230125327e-01 +-7.20000000000000e+01 -3.16124558572532e-01 1.31001532981777e+00 2.52907274609395e-01 +-6.90000000000000e+01 -3.64666240259218e-01 1.26572796711458e+00 2.50475282099874e-01 +-6.60000000000000e+01 -4.07959035740134e-01 1.20800198178982e+00 2.45546802529565e-01 +-6.30000000000000e+01 -4.51251836454270e-01 1.15027599646507e+00 2.40618557245280e-01 +-6.00000000000000e+01 -4.94544544869283e-01 1.09254989825106e+00 2.35690538113475e-01 +-5.70000000000000e+01 -5.26763955208036e-01 1.02165363155013e+00 2.29009342263561e-01 +-5.40000000000000e+01 -5.58983302793074e-01 9.50756905605912e-01 2.22328163344933e-01 +-5.10000000000000e+01 -5.91202524869724e-01 8.79859261168152e-01 2.15646770887959e-01 +-4.80000000000000e+01 -6.17609187893117e-01 8.05904457214662e-01 2.09254779518151e-01 +-4.50000000000000e+01 -6.41109664805937e-01 7.30421122636189e-01 2.03007644172430e-01 +-4.20000000000000e+01 -6.59622394239239e-01 6.54918965123690e-01 1.98342023604304e-01 +-3.90000000000000e+01 -6.77240098048986e-01 5.79843727554838e-01 1.94293653388780e-01 +-3.60000000000000e+01 -6.92396015978899e-01 5.06471062583234e-01 1.92463840058657e-01 +-3.30000000000000e+01 -7.06701742382219e-01 4.35818415197548e-01 1.93734767779497e-01 +-3.00000000000000e+01 -7.21593116705023e-01 3.68030379296879e-01 1.98453590087422e-01 +-2.93939393939394e+01 -7.25013851405679e-01 3.55027024133188e-01 2.00336203048920e-01 +-2.87878787878788e+01 -7.28434586106336e-01 3.42023668969498e-01 2.02218816010418e-01 +-2.81818181818182e+01 -7.31855320806992e-01 3.29020313805808e-01 2.04101428971916e-01 +-2.75757575757576e+01 -7.35700687071979e-01 3.16435173390334e-01 2.06644209454419e-01 +-2.69696969696970e+01 -7.39728053905235e-01 3.04029283243158e-01 2.09469943146406e-01 +-2.63636363636364e+01 -7.43755420738490e-01 2.91623393095983e-01 2.12295676838393e-01 +-2.57575757575758e+01 -7.48155857417494e-01 2.79481029799510e-01 2.15614520779263e-01 +-2.51515151515151e+01 -7.53115811916466e-01 2.67733895360822e-01 2.19672915167868e-01 +-2.45454545454545e+01 -7.58075766415437e-01 2.55986760922134e-01 2.23731309556473e-01 +-2.39393939393939e+01 -7.63184374708742e-01 2.44310701465517e-01 2.27866482494864e-01 +-2.33333333333333e+01 -7.69630895931130e-01 2.33274330608002e-01 2.32692677246016e-01 +-2.27272727272727e+01 -7.76077417153518e-01 2.22237959750487e-01 2.37506340633904e-01 +-2.21212121212121e+01 -7.82523938375906e-01 2.11201588892972e-01 2.42358034603878e-01 +-2.15151515151515e+01 -7.90135337461922e-01 2.00684998703353e-01 2.48462729786897e-01 +-2.09090909090909e+01 -7.98004310296648e-01 1.90298387115310e-01 2.54903342970304e-01 +-2.03030303030303e+01 -8.05878455195337e-01 1.79911775527268e-01 2.61343956153712e-01 +-1.96969696969697e+01 -8.14697917585567e-01 1.69812568423152e-01 2.68837595176999e-01 +-1.90909090909091e+01 -8.24455334435024e-01 1.60000749544382e-01 2.77384200470083e-01 +-1.84848484848485e+01 -8.23371484569383e-01 1.50522208073122e-01 2.74858417075755e-01 +-1.78787878787879e+01 -8.20283137594642e-01 1.41330694311538e-01 2.69517114356924e-01 +-1.72727272727273e+01 -8.16827722657021e-01 1.33081595034303e-01 2.60706462733926e-01 +-1.66666666666667e+01 -8.05487645465897e-01 1.24835482427222e-01 2.43743487370455e-01 +-1.60606060606061e+01 -7.87698090979399e-01 1.16591881249401e-01 2.20110391522602e-01 +-1.54545454545455e+01 -7.70279194203751e-01 1.08379515150144e-01 1.96405027014696e-01 +-1.48484848484848e+01 -7.53095337434051e-01 1.00185501796409e-01 1.72659305608295e-01 +-1.42424242424242e+01 -7.36494264951863e-01 9.20339115415058e-02 1.48824706874429e-01 +-1.36363636363636e+01 -7.20003204011376e-01 8.38888551728098e-02 1.25023839281306e-01 +-1.30303030303030e+01 -7.03596374099641e-01 7.57475802314855e-02 1.01231760751629e-01 +-1.24242424242424e+01 -6.85592076723291e-01 6.76111043119601e-02 7.80448576791677e-02 +-1.18181818181818e+01 -6.67194751585540e-01 5.96056150740760e-02 5.50235291976979e-02 +-1.12121212121212e+01 -6.48063815783503e-01 5.13317377912542e-02 3.23188744507143e-02 +-1.06060606060606e+01 -6.28468277340486e-01 4.31836623215413e-02 9.45993928821119e-03 +-1.00000000000000e+01 -6.08620538268602e-01 3.51540278791994e-02 -1.34796433221792e-02 +-9.39393939393939e+00 -5.88452257587033e-01 2.73199794208228e-02 -3.63905317831286e-02 +-8.78787878787879e+00 -5.62689873667493e-01 2.00084704728355e-02 -5.85506772245690e-02 +-8.18181818181818e+00 -5.26523769001160e-01 1.35978263788546e-02 -7.93058161363485e-02 +-7.57575757575758e+00 -4.55695305492732e-01 1.04092109922848e-02 -9.28284077848926e-02 +-6.96969696969697e+00 -3.69845487410935e-01 8.91871368739218e-03 -1.01630482628221e-01 +-6.36363636363636e+00 -2.93598733915834e-01 7.52845137064097e-03 -1.04647217860029e-01 +-5.75757575757576e+00 -2.18105319246992e-01 7.08800169590747e-03 -1.07214517170429e-01 +-5.15151515151515e+00 -1.43086395099137e-01 6.80050156749210e-03 -1.09441582594168e-01 +-4.54545454545454e+00 -6.85129984815250e-02 6.56750484797770e-03 -1.11442618030446e-01 +-3.93939393939394e+00 5.58385912432804e-03 6.45301670656877e-03 -1.13148191085356e-01 +-3.33333333333333e+00 7.94070262060676e-02 6.41289348325262e-03 -1.14695006520256e-01 +-2.72727272727273e+00 1.53241011838806e-01 6.34203948696765e-03 -1.16207049641120e-01 +-2.12121212121212e+00 2.26643908165568e-01 6.33526268400175e-03 -1.17673564802273e-01 +-1.51515151515152e+00 3.00105384199722e-01 6.33260375138770e-03 -1.19135271104034e-01 +-9.09090909090912e-01 3.73112750667490e-01 6.33272155108629e-03 -1.20666056314306e-01 +-3.03030303030302e-01 4.45821550130321e-01 6.37447853784405e-03 -1.22082515446199e-01 + 3.03030303030302e-01 5.18490342544224e-01 6.43313505799646e-03 -1.23487187085283e-01 + 9.09090909090912e-01 5.90981181373800e-01 6.43182319665414e-03 -1.24792255974836e-01 + 1.51515151515152e+00 6.63194082651710e-01 6.52639345810673e-03 -1.25965661272832e-01 + 2.12121212121212e+00 7.35342582721669e-01 6.56033089540737e-03 -1.27200682447364e-01 + 2.72727272727273e+00 8.07087488554538e-01 6.68351242329311e-03 -1.28376340413356e-01 + 3.33333333333333e+00 8.78653932202791e-01 6.80603711634661e-03 -1.29410676299065e-01 + 3.93939393939394e+00 9.49821767187520e-01 6.92963005547727e-03 -1.30468108847082e-01 + 4.54545454545455e+00 1.02040859265783e+00 7.05596856935910e-03 -1.31334420191275e-01 + 5.15151515151515e+00 1.09057426257294e+00 7.21258284329372e-03 -1.32167739152710e-01 + 5.75757575757576e+00 1.15956993076019e+00 7.50770133128459e-03 -1.32829150435812e-01 + 6.36363636363637e+00 1.22598231576016e+00 8.00921749308073e-03 -1.33054200393040e-01 + 6.96969696969697e+00 1.28698208452707e+00 8.95907167395873e-03 -1.32588516874154e-01 + 7.57575757575757e+00 1.33798080221868e+00 1.07198763892550e-02 -1.30460457192223e-01 + 8.18181818181818e+00 1.38474488602779e+00 1.24584314382430e-02 -1.27836892595172e-01 + 8.78787878787879e+00 1.43030567824273e+00 1.40331639261087e-02 -1.25090100383291e-01 + 9.39393939393939e+00 1.47200490845414e+00 1.59305690309036e-02 -1.22289478404177e-01 + 1.00000000000000e+01 1.50215101421504e+00 1.79091658579838e-02 -1.21813999638841e-01 + 1.06060606060606e+01 1.52370646388859e+00 2.02673536853439e-02 -1.21708944902389e-01 + 1.12121212121212e+01 1.54059319776331e+00 2.29572858937563e-02 -1.21848482617505e-01 + 1.18181818181818e+01 1.55195059906285e+00 3.24577496194005e-02 -1.22761051253168e-01 + 1.24242424242424e+01 1.52438898981163e+00 4.81678475665162e-02 -1.24233830041100e-01 + 1.30303030303030e+01 1.48202855383678e+00 6.38795341948320e-02 -1.25730475238576e-01 + 1.36363636363636e+01 1.42634733955077e+00 7.98865843582198e-02 -1.27696791571033e-01 + 1.42424242424242e+01 1.37740933666151e+00 9.28335727033232e-02 -1.29317173288097e-01 + 1.48484848484848e+01 1.33848755611934e+00 1.01192691262027e-01 -1.30420940714982e-01 + 1.54545454545455e+01 1.31190755280546e+00 1.09441241406769e-01 -1.31424351641477e-01 + 1.60606060606061e+01 1.28938235719693e+00 1.17642799704135e-01 -1.32380797174879e-01 + 1.66666666666667e+01 1.26634018563845e+00 1.25753041098846e-01 -1.33237196626024e-01 + 1.72727272727273e+01 1.23834102937778e+00 1.33971665700699e-01 -1.34168012171228e-01 + 1.78787878787879e+01 1.20427767029161e+00 1.42322760041168e-01 -1.35189926091386e-01 + 1.84848484848485e+01 1.18799320204888e+00 1.50716604683360e-01 -1.36311946607811e-01 + 1.90909090909091e+01 1.17586795447335e+00 1.59325448714249e-01 -1.38145765919180e-01 + 1.96969696969697e+01 1.16211889516567e+00 1.69092448832339e-01 -1.43872565373133e-01 + 2.03030303030303e+01 1.14927412966545e+00 1.79265230696872e-01 -1.50302804965374e-01 + 2.09090909090909e+01 1.13814235040425e+00 1.89843817264378e-01 -1.57438574430759e-01 + 2.15151515151515e+01 1.12766323714321e+00 2.00422403831884e-01 -1.64574965529124e-01 + 2.21212121212121e+01 1.11706175944146e+00 2.11099174825611e-01 -1.71481480893725e-01 + 2.27272727272727e+01 1.10811964282661e+00 2.22168582499681e-01 -1.77468729848466e-01 + 2.33333333333333e+01 1.09917752621176e+00 2.33237990173751e-01 -1.83456509220763e-01 + 2.39393939393939e+01 1.09023540959691e+00 2.44307397847821e-01 -1.89446318845786e-01 + 2.45454545454545e+01 1.08296339319592e+00 2.55986760922134e-01 -1.94609075142135e-01 + 2.51515151515151e+01 1.07587693949360e+00 2.67733895360822e-01 -1.99679830094226e-01 + 2.57575757575758e+01 1.06879048579128e+00 2.79481029799510e-01 -2.04750458453214e-01 + 2.63636363636364e+01 1.06250432210796e+00 2.91623393095983e-01 -2.09443081756152e-01 + 2.69696969696970e+01 1.05675176801362e+00 3.04029283243158e-01 -2.13883658690320e-01 + 2.75757575757576e+01 1.05099921391928e+00 3.16435173390334e-01 -2.18324155845132e-01 + 2.81818181818182e+01 1.04550641150444e+00 3.29020313805808e-01 -2.22633305796399e-01 + 2.87878787878788e+01 1.04061964435123e+00 3.42023668969498e-01 -2.26636130753221e-01 + 2.93939393939394e+01 1.03573287719801e+00 3.55027024133188e-01 -2.30638903172504e-01 + 3.00000000000000e+01 1.03084611004479e+00 3.68030379296879e-01 -2.34641622610226e-01 + 3.30000000000000e+01 1.00957720103222e+00 4.35818415197548e-01 -2.52554076744310e-01 + 3.60000000000000e+01 9.89136784047915e-01 5.06471062583234e-01 -2.69189950621486e-01 + 3.90000000000000e+01 9.67485857943026e-01 5.79843727554838e-01 -2.84796609339440e-01 + 4.20000000000000e+01 9.42317581833575e-01 6.54918965123690e-01 -2.99708632363911e-01 + 4.50000000000000e+01 9.15871274073578e-01 7.30421122636189e-01 -3.14427587661614e-01 + 4.80000000000000e+01 8.82298905466505e-01 8.05904457214662e-01 -3.28546217819211e-01 + 5.10000000000000e+01 8.44574853445087e-01 8.79859261168152e-01 -3.42409667613951e-01 + 5.40000000000000e+01 7.98547167692681e-01 9.50756905605912e-01 -3.55762881953981e-01 + 5.70000000000000e+01 7.52519428332893e-01 1.02165363155013e+00 -3.69115906506285e-01 + 6.00000000000000e+01 7.06491662169616e-01 1.09254989825106e+00 -3.82468805440661e-01 + 6.30000000000000e+01 6.44645585302091e-01 1.15027599646507e+00 -3.94568162072562e-01 + 6.60000000000000e+01 5.82799184406010e-01 1.20800198178982e+00 -4.06667464188502e-01 + 6.90000000000000e+01 5.20952406629315e-01 1.26572796711458e+00 -4.18766708415905e-01 + 7.20000000000000e+01 4.51606840984605e-01 1.31001532981777e+00 -4.29653737684229e-01 + 7.50000000000000e+01 3.78512034916063e-01 1.34758365631669e+00 -4.39934681615426e-01 + 7.80000000000000e+01 3.05416356557281e-01 1.38515241331870e+00 -4.50215120171697e-01 + 8.10000000000000e+01 2.31017478817704e-01 1.41448423908313e+00 -4.59650318443595e-01 + 8.40000000000000e+01 1.54012292275277e-01 1.42734277094688e+00 -4.67395115002369e-01 + 8.70000000000000e+01 7.70061458096371e-02 1.44020140104271e+00 -4.75139563653944e-01 + 9.00000000000000e+01 -3.36430788002270e-07 1.45305991974575e+00 -4.82883809780470e-01 + 9.30000000000000e+01 -5.39041000974291e-02 1.44020138788200e+00 -4.86608736540749e-01 + 9.60000000000000e+01 -1.07808058099348e-01 1.42734280690261e+00 -4.90252008054739e-01 + 9.90000000000000e+01 -1.61712404778857e-01 1.41448412769015e+00 -4.93892480524254e-01 + 1.02000000000000e+02 -2.13791585385510e-01 1.38515223136569e+00 -4.94260121211006e-01 + 1.05000000000000e+02 -2.64958202719694e-01 1.34758390486677e+00 -4.92991191870403e-01 + 1.08000000000000e+02 -3.16124806380124e-01 1.31001514786660e+00 -4.91810583583353e-01 + 1.11000000000000e+02 -3.64666615300881e-01 1.26572746703946e+00 -4.89432902349955e-01 + 1.14000000000000e+02 -4.07958914685959e-01 1.20800214320170e+00 -4.84556213718753e-01 + 1.17000000000000e+02 -4.51251550031352e-01 1.15027637837716e+00 -4.79679087834588e-01 + 1.20000000000000e+02 -4.94544331707352e-01 1.09255036729705e+00 -4.74801739879191e-01 + 1.23000000000000e+02 -5.26763742046105e-01 1.02165410059611e+00 -4.68166345460196e-01 + 1.26000000000000e+02 -5.58983089632388e-01 9.50757374661013e-01 -4.61530902688578e-01 + 1.29000000000000e+02 -5.91202311709038e-01 8.79859730223253e-01 -4.54866722642821e-01 + 1.32000000000000e+02 -6.15946530568564e-01 8.05898408123014e-01 -4.48999508288356e-01 + 1.35000000000000e+02 -6.36953256680495e-01 7.30405250831853e-01 -4.43540325890876e-01 + 1.38000000000000e+02 -6.57959749926485e-01 6.54912916084137e-01 -4.38080640740675e-01 + 1.41000000000000e+02 -6.76927011005616e-01 5.80929173559366e-01 -4.34763066576705e-01 + 1.44000000000000e+02 -6.91815791203747e-01 5.09962627721908e-01 -4.35729731767291e-01 + 1.47000000000000e+02 -7.06704434537952e-01 4.38996595677444e-01 -4.36696394806281e-01 + 1.50000000000000e+02 -7.21593009442639e-01 3.68030820520304e-01 -4.37663056769512e-01 + 1.53000000000000e+02 -7.45653551873146e-01 3.10460824874659e-01 -4.59043940512908e-01 + 1.56000000000000e+02 -7.69677114596338e-01 2.52890877728508e-01 -4.79978567205265e-01 + 1.59000000000000e+02 -7.93695164530012e-01 1.95320965150743e-01 -5.01585589518735e-01 + 1.62000000000000e+02 -7.33817088309609e-01 1.57056754662604e-01 -5.07101903167502e-01 + 1.65000000000000e+02 -6.31982311416204e-01 1.28445558491906e-01 -5.04439049525879e-01 + 1.68000000000000e+02 -5.30148101457015e-01 9.98340901844233e-02 -5.01775628100030e-01 + 1.71000000000000e+02 -4.16032857149841e-01 7.26838423842623e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.77354970782234e-01 4.84561038187240e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.38045242443721e-01 3.97799508651227e-02 -7.34244952105506e-02 + 1.80000000000000e+02 0.00000000000000e+00 3.88896555692602e-02 1.88439381768847e-01 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_26.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_26.dat new file mode 100644 index 00000000..dbffc457 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_26.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF26_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF26_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-4.024504 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.306876 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-9.832558 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.557234 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.830241 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006417 Cd0 ! 2D drag coefficient value at 0-lift. +-0.112920 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 3.76960235595695e-02 1.99999773877240e-01 +-1.77000000000000e+02 1.49471735352601e-01 3.76960235595695e-02 1.99999908932130e-01 +-1.74000000000000e+02 3.00312823771888e-01 4.52351857356452e-02 2.39999774321882e-01 +-1.71000000000000e+02 4.50470172837611e-01 6.78529197680463e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.62141155839517e-01 9.47828831363562e-02 3.00100260054970e-01 +-1.65000000000000e+02 6.54569405002126e-01 1.23868910842549e-01 1.50251816114612e-01 +-1.62000000000000e+02 7.46998713314856e-01 1.52955271849131e-01 4.01655036174478e-04 +-1.59000000000000e+02 7.99786871669241e-01 1.91656566827607e-01 -9.28122671239639e-02 +-1.56000000000000e+02 7.73294071101042e-01 2.49587404486670e-01 -7.27556273551054e-02 +-1.53000000000000e+02 7.46801068143765e-01 3.07518284704543e-01 -5.26992343631414e-02 +-1.50000000000000e+02 7.20307991381284e-01 3.65449216784473e-01 -3.26429713183966e-02 +-1.47000000000000e+02 7.05570279118452e-01 4.36504377442686e-01 -1.75932612156202e-02 +-1.44000000000000e+02 6.90832510562523e-01 5.07559809506317e-01 -2.54349362777964e-03 +-1.41000000000000e+02 6.76094629416376e-01 5.78615784400165e-01 1.25063869759018e-02 +-1.38000000000000e+02 6.57241681367617e-01 6.52702801625277e-01 2.78005506087723e-02 +-1.35000000000000e+02 6.36331208215415e-01 7.28305333867222e-01 4.32168556727977e-02 +-1.32000000000000e+02 6.15420495447980e-01 8.03908732446007e-01 5.86333373939491e-02 +-1.29000000000000e+02 5.90761768946044e-01 8.77986125240427e-01 7.42048196933668e-02 +-1.26000000000000e+02 5.58606997203396e-01 9.49011499212308e-01 9.00863038811510e-02 +-1.23000000000000e+02 5.26452071104699e-01 1.02003593058481e+00 1.05968066745090e-01 +-1.20000000000000e+02 4.94297067830864e-01 1.09105989067524e+00 1.21849968941896e-01 +-1.17000000000000e+02 4.51046459413193e-01 1.14892722035528e+00 1.36973650595313e-01 +-1.14000000000000e+02 4.07795994504977e-01 1.20679430326659e+00 1.52097072994041e-01 +-1.11000000000000e+02 3.64545860001903e-01 1.26466094411154e+00 1.67219979864857e-01 +-1.08000000000000e+02 3.16034194150131e-01 1.30909602388533e+00 1.80733002070115e-01 +-1.05000000000000e+02 2.64891722560637e-01 1.34681522084817e+00 1.93441069750703e-01 +-1.02000000000000e+02 2.13749237020859e-01 1.38453398558587e+00 2.06148391816051e-01 +-9.90000000000000e+01 1.61688764627702e-01 1.41401796960994e+00 2.17512374667702e-01 +-9.60000000000000e+01 1.07792278764948e-01 1.42703203551508e+00 2.26189620904871e-01 +-9.30000000000000e+01 5.38962046405121e-02 1.44004600200010e+00 2.34866400852709e-01 +-9.00000000000000e+01 3.36381509980986e-07 1.45305991877594e+00 2.43542947660101e-01 +-8.70000000000000e+01 -5.38961494780680e-02 1.44004601531985e+00 2.47180800161873e-01 +-8.40000000000000e+01 -1.07792429471529e-01 1.42703199912486e+00 2.50818607319856e-01 +-8.10000000000000e+01 -1.61688297729853e-01 1.41401808234901e+00 2.54456386687213e-01 +-7.80000000000000e+01 -2.13748989324725e-01 1.38453416826749e+00 2.54821414135407e-01 +-7.50000000000000e+01 -2.64892060915943e-01 1.34681497130280e+00 2.53550009143848e-01 +-7.20000000000000e+01 -3.16033946459415e-01 1.30909620656510e+00 2.52278018725637e-01 +-6.90000000000000e+01 -3.64545485325515e-01 1.26466144541088e+00 2.49759250841147e-01 +-6.60000000000000e+01 -4.07796115441250e-01 1.20679414145955e+00 2.44746825927138e-01 +-6.30000000000000e+01 -4.51046745557096e-01 1.14892683750823e+00 2.39734401012678e-01 +-6.00000000000000e+01 -4.94297280566681e-01 1.09105942078444e+00 2.34721961096712e-01 +-5.70000000000000e+01 -5.26452283840516e-01 1.02003546069401e+00 2.27959404332693e-01 +-5.40000000000000e+01 -5.58607209937681e-01 9.49011029312154e-01 2.21196621737505e-01 +-5.10000000000000e+01 -5.90761981680330e-01 8.77985655340273e-01 2.14433387476536e-01 +-4.80000000000000e+01 -6.17089681519895e-01 8.03911609903610e-01 2.07957006233653e-01 +-4.50000000000000e+01 -6.40503939057214e-01 7.28313277731023e-01 2.01624046889681e-01 +-4.20000000000000e+01 -6.58910854376636e-01 6.52705679055557e-01 1.96862418589880e-01 +-3.90000000000000e+01 -6.76417043986716e-01 5.77527415759156e-01 1.92714525781683e-01 +-3.60000000000000e+01 -6.91442145788392e-01 5.04059407890188e-01 1.90773036499847e-01 +-3.30000000000000e+01 -7.05593980685524e-01 4.33318752640849e-01 1.91909028051921e-01 +-3.00000000000000e+01 -7.20308097407842e-01 3.65448775028654e-01 1.96465078139101e-01 +-2.93939393939394e+01 -7.23687148982083e-01 3.52430142214952e-01 1.98306875240709e-01 +-2.87878787878788e+01 -7.27066200556324e-01 3.39411509401249e-01 2.00148672342317e-01 +-2.81818181818182e+01 -7.30445252130566e-01 3.26392876587547e-01 2.01990469443925e-01 +-2.75757575757576e+01 -7.34245004132877e-01 3.13793130446363e-01 2.04486479544941e-01 +-2.69696969696970e+01 -7.38225071786241e-01 3.01372922565738e-01 2.07262890698687e-01 +-2.63636363636364e+01 -7.42205139439605e-01 2.88952714685113e-01 2.10039301852433e-01 +-2.57575757575758e+01 -7.46555494689374e-01 2.76796428164473e-01 2.13304205864706e-01 +-2.51515151515151e+01 -7.51461195033535e-01 2.65035962173593e-01 2.17301735315320e-01 +-2.45454545454545e+01 -7.56366895377697e-01 2.53275496182714e-01 2.21299264765933e-01 +-2.39393939393939e+01 -7.61408712929841e-01 2.41586724908869e-01 2.25459999520073e-01 +-2.33333333333333e+01 -7.67675611706775e-01 2.30543219968779e-01 2.31089613603274e-01 +-2.27272727272727e+01 -7.73942510483708e-01 2.19499715028689e-01 2.36719227686470e-01 +-2.21212121212121e+01 -7.80209409260641e-01 2.08456210088599e-01 2.42348842244097e-01 +-2.15151515151515e+01 -7.88045843131190e-01 1.98028913518013e-01 2.49772937268922e-01 +-2.09090909090909e+01 -7.96274761734597e-01 1.87755708677063e-01 2.57645768551195e-01 +-2.03030303030303e+01 -8.04503680338007e-01 1.77482503836112e-01 2.65518599833468e-01 +-1.96969696969697e+01 -8.13721581766036e-01 1.67514312390042e-01 2.74509055953088e-01 +-1.90909090909091e+01 -8.23928410071538e-01 1.57851117084127e-01 2.84617073685583e-01 +-1.84848484848485e+01 -8.22646776262130e-01 1.48546940538688e-01 2.82973389715262e-01 +-1.78787878787879e+01 -8.19241192016627e-01 1.39555178352410e-01 2.78335523489406e-01 +-1.72727272727273e+01 -8.15446589363820e-01 1.31559887902139e-01 2.70012950129364e-01 +-1.66666666666667e+01 -8.03296483777369e-01 1.23564597452339e-01 2.53038201146750e-01 +-1.60606060606061e+01 -7.84310128533453e-01 1.15569307002924e-01 2.28984472824905e-01 +-1.54545454545455e+01 -7.65324759977866e-01 1.07574974865435e-01 2.04931438081052e-01 +-1.48484848484848e+01 -7.46339081540475e-01 9.95804834752580e-02 1.80878286802668e-01 +-1.42424242424242e+01 -7.27352144425903e-01 9.15851948410960e-02 1.56824554692099e-01 +-1.36363636363636e+01 -7.08366589041831e-01 8.35901811716822e-02 1.32771649802369e-01 +-1.30303030303030e+01 -6.89379329405081e-01 7.55946407967314e-02 1.08716220908226e-01 +-1.24242424242424e+01 -6.70394070681262e-01 6.75996503421858e-02 8.46633366461469e-02 +-1.18181818181818e+01 -6.51407025524249e-01 5.96041815994357e-02 6.06090692018439e-02 +-1.12121212121212e+01 -6.32421761536482e-01 5.16093484929349e-02 3.65561615953677e-02 +-1.06060606060606e+01 -6.13435225841655e-01 4.36139224210943e-02 1.25016108288645e-02 +-1.00000000000000e+01 -5.94449142982321e-01 3.56199339544178e-02 -1.15512079994493e-02 +-9.39393939393939e+00 -5.75463842145924e-01 2.76249494874552e-02 -3.56050262327576e-02 +-8.78787878787879e+00 -5.51403957680999e-01 2.01382266354268e-02 -5.87079502546054e-02 +-8.18181818181818e+00 -5.17926474912583e-01 1.35966762681344e-02 -8.00434679031281e-02 +-7.57575757575758e+00 -4.48013073952105e-01 1.04062079021587e-02 -9.38202181483299e-02 +-6.96969696969697e+00 -3.62306704515139e-01 8.91516259682469e-03 -1.02639355883834e-01 +-6.36363636363636e+00 -2.86592646559465e-01 7.49092009640339e-03 -1.05345389259135e-01 +-5.75757575757576e+00 -2.11681427543666e-01 7.05454354406601e-03 -1.07624248784689e-01 +-5.15151515151515e+00 -1.37278368249321e-01 6.76061495526902e-03 -1.09615083165669e-01 +-4.54545454545454e+00 -6.32446849221684e-02 6.51817990062387e-03 -1.11463657718864e-01 +-3.93939393939394e+00 1.03326039502837e-02 6.40000102450966e-03 -1.13157562089362e-01 +-3.33333333333333e+00 8.37357402666289e-02 6.36666345248257e-03 -1.14700049263230e-01 +-2.72727272727273e+00 1.57144890016423e-01 6.30000080854981e-03 -1.16209080405868e-01 +-2.12121212121212e+00 2.30132013733438e-01 6.30000067359949e-03 -1.17633366714045e-01 +-1.51515151515152e+00 3.03270133033896e-01 6.30000062134854e-03 -1.18966679175655e-01 +-9.09090909090912e-01 3.76007831012725e-01 6.30000062466049e-03 -1.20399983368341e-01 +-3.03030303030302e-01 4.48619593833060e-01 6.33939706788298e-03 -1.21733367482865e-01 + 3.03030303030302e-01 5.21162110305859e-01 6.40000063237506e-03 -1.23066648228140e-01 + 9.09090909090912e-01 5.93482962845902e-01 6.40000060506645e-03 -1.24318211551559e-01 + 1.51515151515152e+00 6.65499465508473e-01 6.50000049630823e-03 -1.25430305714767e-01 + 2.12121212121212e+00 7.37449721921112e-01 6.52424015611961e-03 -1.26642406027256e-01 + 2.72727272727273e+00 8.08982255779155e-01 6.64545608432346e-03 -1.27809109728731e-01 + 3.33333333333333e+00 8.80397540133069e-01 6.76666331848451e-03 -1.28833312226978e-01 + 3.93939393939394e+00 9.51421795343730e-01 6.88788064407856e-03 -1.29890930275742e-01 + 4.54545454545455e+00 1.02186277965824e+00 7.00909038513147e-03 -1.30763637928484e-01 + 5.15151515151515e+00 1.09189625174699e+00 7.16061521492726e-03 -1.31612160993914e-01 + 5.75757575757576e+00 1.16079950494080e+00 7.45454396592225e-03 -1.32306067865226e-01 + 6.36363636363637e+00 1.22720136736217e+00 7.96365014632842e-03 -1.32572739637886e-01 + 6.96969696969697e+00 1.28802461132675e+00 8.94546191359972e-03 -1.32130308376179e-01 + 7.57575757575757e+00 1.33932328366435e+00 1.07272367904880e-02 -1.30081875964063e-01 + 8.18181818181818e+00 1.38679182149843e+00 1.25091238234984e-02 -1.27572684159305e-01 + 8.78787878787879e+00 1.43442621343129e+00 1.40333059500536e-02 -1.25090961368079e-01 + 9.39393939393939e+00 1.48072468189907e+00 1.53666957749600e-02 -1.22230263597817e-01 + 1.00000000000000e+01 1.51619948622988e+00 1.65000203201040e-02 -1.21700002321685e-01 + 1.06060606060606e+01 1.54652613869201e+00 1.81605911900563e-02 -1.21700000182581e-01 + 1.12121212121212e+01 1.57015106631391e+00 2.03485522545774e-02 -1.21912123883377e-01 + 1.18181818181818e+01 1.58466270949876e+00 3.00903977018941e-02 -1.23218106611257e-01 + 1.24242424242424e+01 1.55439005671114e+00 4.64546703161752e-02 -1.25157568402582e-01 + 1.30303030303030e+01 1.50697011272490e+00 6.28179584205508e-02 -1.27096913764242e-01 + 1.36363636363636e+01 1.44636122440245e+00 7.91823777231142e-02 -1.29036401923583e-01 + 1.42424242424242e+01 1.39302933029550e+00 9.22728672271796e-02 -1.30587869102437e-01 + 1.48484848484848e+01 1.35060444483994e+00 1.00454826054870e-01 -1.31557584992825e-01 + 1.54545454545455e+01 1.32181783503487e+00 1.08636431096634e-01 -1.32527257164245e-01 + 1.60606060606061e+01 1.29757628829158e+00 1.16817964892734e-01 -1.33496920105626e-01 + 1.66666666666667e+01 1.27333348139179e+00 1.24999918769171e-01 -1.34466631124069e-01 + 1.72727272727273e+01 1.24363607861721e+00 1.33181874793555e-01 -1.35436343590531e-01 + 1.78787878787879e+01 1.20727187838534e+00 1.41363833443233e-01 -1.36406057826813e-01 + 1.84848484848485e+01 1.18992975180798e+00 1.49497904111867e-01 -1.37375729577547e-01 + 1.90909090909091e+01 1.17704327758037e+00 1.57851104306908e-01 -1.39089566615125e-01 + 1.96969696969697e+01 1.16246123156071e+00 1.67514298578136e-01 -1.45021783264679e-01 + 2.03030303030303e+01 1.14929279501434e+00 1.77482491349607e-01 -1.51632325921770e-01 + 2.09090909090909e+01 1.13753806488326e+00 1.87755699876179e-01 -1.58921232961736e-01 + 2.15151515151515e+01 1.12578334814572e+00 1.98028908402751e-01 -1.66210140001703e-01 + 2.21212121212121e+01 1.11458879313232e+00 2.08456208053037e-01 -1.73224589305943e-01 + 2.27272727272727e+01 1.10563435435787e+00 2.19499713649760e-01 -1.79141490064069e-01 + 2.33333333333333e+01 1.09667991558342e+00 2.30543219246483e-01 -1.85058390822194e-01 + 2.39393939393939e+01 1.08772547680897e+00 2.41586724843207e-01 -1.90975291580320e-01 + 2.45454545454545e+01 1.08052192847356e+00 2.53275496182714e-01 -1.96074563757929e-01 + 2.51515151515151e+01 1.07351291933540e+00 2.65035962173593e-01 -2.01082990269719e-01 + 2.57575757575758e+01 1.06650391019725e+00 2.76796428164473e-01 -2.06091416781509e-01 + 2.63636363636364e+01 1.06028929009176e+00 2.88952714685113e-01 -2.10729582407184e-01 + 2.69696969696970e+01 1.05460434497302e+00 3.01372922565738e-01 -2.15120869083270e-01 + 2.75757575757576e+01 1.04891939985428e+00 3.13793130446363e-01 -2.19512155759356e-01 + 2.81818181818182e+01 1.04349178876274e+00 3.26392876587547e-01 -2.23774943907361e-01 + 2.87878787878788e+01 1.03866457222799e+00 3.39411509401249e-01 -2.27737927876115e-01 + 2.93939393939394e+01 1.03383735569325e+00 3.52430142214952e-01 -2.31700911844869e-01 + 3.00000000000000e+01 1.02901013915851e+00 3.65448775028654e-01 -2.35663895813623e-01 + 3.30000000000000e+01 1.00799497239599e+00 4.33318752640849e-01 -2.53423032735973e-01 + 3.60000000000000e+01 9.87774208309456e-01 5.04059407890188e-01 -2.69936839647807e-01 + 3.90000000000000e+01 9.66310062840480e-01 5.77527415759156e-01 -2.85448460530465e-01 + 4.20000000000000e+01 9.41301077680331e-01 6.52705679055557e-01 -3.00284956735113e-01 + 4.50000000000000e+01 9.15005912938840e-01 7.28313277731023e-01 -3.14934033957096e-01 + 4.80000000000000e+01 8.81556716458514e-01 8.03911609903610e-01 -3.28999148408511e-01 + 5.10000000000000e+01 8.43945459545643e-01 8.77985655340274e-01 -3.42814120520528e-01 + 5.40000000000000e+01 7.98009814198267e-01 9.49011029312154e-01 -3.56128791872664e-01 + 5.70000000000000e+01 7.52074119773438e-01 1.02003546069401e+00 -3.69443361508008e-01 + 6.00000000000000e+01 7.06138400810069e-01 1.09105942078444e+00 -3.82757880285344e-01 + 6.30000000000000e+01 6.44352607936286e-01 1.14892683750823e+00 -3.94831155449636e-01 + 6.60000000000000e+01 5.82566479201223e-01 1.20679414145955e+00 -4.06904419974219e-01 + 6.90000000000000e+01 5.20779950464649e-01 1.26466144541088e+00 -4.18977684498238e-01 + 7.20000000000000e+01 4.51477437795751e-01 1.30909620656510e+00 -4.29844047643928e-01 + 7.50000000000000e+01 3.78417087022892e-01 1.34681497130280e+00 -4.40106984807332e-01 + 7.80000000000000e+01 3.05355899035943e-01 1.38453416826749e+00 -4.50369439573171e-01 + 8.10000000000000e+01 2.30983768185259e-01 1.41401808234901e+00 -4.59788640889162e-01 + 8.40000000000000e+01 1.53989842100278e-01 1.42703199912486e+00 -4.67521393514335e-01 + 8.70000000000000e+01 7.69949278241990e-02 1.44004601531985e+00 -4.75253805212904e-01 + 9.00000000000000e+01 -3.36381510214729e-07 1.45305991877594e+00 -4.82986020891325e-01 + 9.30000000000000e+01 -5.38962046405121e-02 1.44004600200010e+00 -4.86623800258682e-01 + 9.60000000000000e+01 -1.07792278764948e-01 1.42703203551508e+00 -4.90261391797100e-01 + 9.90000000000000e+01 -1.61688764627702e-01 1.41401796960994e+00 -4.93898611078009e-01 + 1.02000000000000e+02 -2.13749237020859e-01 1.38453398558587e+00 -4.94263399100741e-01 + 1.05000000000000e+02 -2.64891722560637e-01 1.34681522084817e+00 -4.92992006930170e-01 + 1.08000000000000e+02 -3.16034194150131e-01 1.30909602388533e+00 -4.91720002039579e-01 + 1.11000000000000e+02 -3.64545860001904e-01 1.26466094411154e+00 -4.89201398052675e-01 + 1.14000000000000e+02 -4.07795994504977e-01 1.20679430326659e+00 -4.84189631673154e-01 + 1.17000000000000e+02 -4.51046459413193e-01 1.14892722035528e+00 -4.79177427008757e-01 + 1.20000000000000e+02 -4.94297067830864e-01 1.09105989067524e+00 -4.74164999771467e-01 + 1.23000000000000e+02 -5.26452071104699e-01 1.02003593058481e+00 -4.67401844027926e-01 + 1.26000000000000e+02 -5.58606997203396e-01 9.49011499212308e-01 -4.60638662451069e-01 + 1.29000000000000e+02 -5.90761768946045e-01 8.77986125240427e-01 -4.53875428596403e-01 + 1.32000000000000e+02 -6.15420495447981e-01 8.03908732446007e-01 -4.47922999380913e-01 + 1.35000000000000e+02 -6.36331208215415e-01 7.28305333867222e-01 -4.42375971721764e-01 + 1.38000000000000e+02 -6.57241681367618e-01 6.52702801625276e-01 -4.36828407635875e-01 + 1.41000000000000e+02 -6.76094629416376e-01 5.78615784400164e-01 -4.33407828184422e-01 + 1.44000000000000e+02 -6.90832510562523e-01 5.07559809506317e-01 -4.34241235261194e-01 + 1.47000000000000e+02 -7.05570279118452e-01 4.36504377442686e-01 -4.35074635971279e-01 + 1.50000000000000e+02 -7.20307991381284e-01 3.65449216784472e-01 -4.35908033498135e-01 + 1.53000000000000e+02 -7.46801056114916e-01 3.07518286202364e-01 -4.57805090339867e-01 + 1.56000000000000e+02 -7.73294047043302e-01 2.49587407482254e-01 -4.79701903131578e-01 + 1.59000000000000e+02 -7.99786835582591e-01 1.91656571320831e-01 -5.01598162643685e-01 + 1.62000000000000e+02 -7.40790686340429e-01 1.53560875453361e-01 -5.07117800599876e-01 + 1.65000000000000e+02 -6.39049345205277e-01 1.25382917483086e-01 -5.04448986449598e-01 + 1.68000000000000e+02 -5.37308569933658e-01 9.72046824115369e-02 -5.01779602888075e-01 + 1.71000000000000e+02 -4.22533354527340e-01 7.05773220395183e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.81688650312917e-01 4.70517834722228e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.40202209005507e-01 3.86002803503690e-02 -6.87687043373218e-02 + 1.80000000000000e+02 0.00000000000000e+00 3.76960235595695e-02 1.99999773877240e-01 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_27.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_27.dat new file mode 100644 index 00000000..e92595fb --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_27.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF27_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF27_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-4.024505 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.306884 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-9.832557 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.557235 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.830241 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006417 Cd0 ! 2D drag coefficient value at 0-lift. +-0.112920 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 3.76960000000000e-02 2.00000000000000e-01 +-1.77000000000000e+02 1.49471782056503e-01 3.76960000000000e-02 2.00000000000000e-01 +-1.74000000000000e+02 3.00312917607843e-01 4.52351574641884e-02 2.39999774321882e-01 +-1.71000000000000e+02 4.50470313592540e-01 6.78528773607728e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.62141300000530e-01 9.47828314689296e-02 3.00100237874998e-01 +-1.65000000000000e+02 6.54569530813285e-01 1.23868852352745e-01 1.50251760664942e-01 +-1.62000000000000e+02 7.46998820775784e-01 1.52955206537882e-01 4.01566317437541e-04 +-1.59000000000000e+02 7.99786954801670e-01 1.91656498833410e-01 -9.28123657821359e-02 +-1.56000000000000e+02 7.73294117948629e-01 2.49587342086377e-01 -7.27556892942309e-02 +-1.53000000000000e+02 7.46801078706125e-01 3.07518227898197e-01 -5.26992595835046e-02 +-1.50000000000000e+02 7.20307965658325e-01 3.65449165572087e-01 -3.26429649313102e-02 +-1.47000000000000e+02 7.05570256415403e-01 4.36504328003481e-01 -1.75932576097200e-02 +-1.44000000000000e+02 6.90832490879619e-01 5.07559761840581e-01 -2.54349280354572e-03 +-1.41000000000000e+02 6.76094612754094e-01 5.78615738508475e-01 1.25063869759013e-02 +-1.38000000000000e+02 6.57241666993606e-01 6.52702757782292e-01 2.78005506087711e-02 +-1.35000000000000e+02 6.36331195763501e-01 7.28305292210269e-01 4.32168556727960e-02 +-1.32000000000000e+02 6.15420484918018e-01 8.03908692975958e-01 5.86333373939468e-02 +-1.29000000000000e+02 5.90761760127430e-01 8.77986088072914e-01 7.42048196933640e-02 +-1.26000000000000e+02 5.58606989674918e-01 9.49011464578596e-01 9.00863038811478e-02 +-1.23000000000000e+02 5.26452064865786e-01 1.02003589848443e+00 1.05968066745086e-01 +-1.20000000000000e+02 4.94297062881228e-01 1.09105986110795e+00 1.21849968941892e-01 +-1.17000000000000e+02 4.51046455307775e-01 1.14892719359139e+00 1.36973650595308e-01 +-1.14000000000000e+02 4.07795991243718e-01 1.20679427930608e+00 1.52097072994036e-01 +-1.11000000000000e+02 3.64545857584686e-01 1.26466092295440e+00 1.67219979864852e-01 +-1.08000000000000e+02 3.16034192336304e-01 1.30909600565222e+00 1.80733001904303e-01 +-1.05000000000000e+02 2.64891721229873e-01 1.34681520559943e+00 1.93441069265733e-01 +-1.02000000000000e+02 2.13749236173153e-01 1.38453397332146e+00 2.06148391012093e-01 +-9.90000000000000e+01 1.61688764154489e-01 1.41401796036258e+00 2.17512373571396e-01 +-9.60000000000000e+01 1.07792278449096e-01 1.42703202935019e+00 2.26189619569497e-01 +-9.30000000000000e+01 5.38962044824732e-02 1.44004599891764e+00 2.34866399278379e-01 +-9.00000000000000e+01 3.36381508994621e-07 1.45305991877593e+00 2.43542945846872e-01 +-8.70000000000000e+01 -5.38961493200293e-02 1.44004601223740e+00 2.47180796579284e-01 +-8.40000000000000e+01 -1.07792429155678e-01 1.42703199295995e+00 2.50818601967904e-01 +-8.10000000000000e+01 -1.61688297256642e-01 1.41401807310167e+00 2.54456379565910e-01 +-7.80000000000000e+01 -2.13748988477021e-01 1.38453415600310e+00 2.54821405258420e-01 +-7.50000000000000e+01 -2.64892059585176e-01 1.34681495605404e+00 2.53549998518008e-01 +-7.20000000000000e+01 -3.16033944645590e-01 1.30909618833200e+00 2.52278006351131e-01 +-6.90000000000000e+01 -3.64545482908305e-01 1.26466142425377e+00 2.49759236748571e-01 +-6.60000000000000e+01 -4.07796112179989e-01 1.20679411749904e+00 2.44746810177687e-01 +-6.30000000000000e+01 -4.51046741451673e-01 1.14892681074432e+00 2.39734383606802e-01 +-6.00000000000000e+01 -4.94297275617037e-01 1.09105939121714e+00 2.34721942034639e-01 +-5.70000000000000e+01 -5.26452277601595e-01 1.02003542859361e+00 2.27959383679512e-01 +-5.40000000000000e+01 -5.58607202409195e-01 9.49010994678426e-01 2.21196599493265e-01 +-5.10000000000000e+01 -5.90761972861707e-01 8.77985618172743e-01 2.14433363641336e-01 +-4.80000000000000e+01 -6.17089671120620e-01 8.03911570370645e-01 2.07956980763680e-01 +-4.50000000000000e+01 -6.40503926932036e-01 7.28313235916803e-01 2.01624019763027e-01 +-4.20000000000000e+01 -6.58910840133311e-01 6.52705635149657e-01 1.96862389618034e-01 +-3.90000000000000e+01 -6.76417027511146e-01 5.77527369809482e-01 1.92714494884031e-01 +-3.60000000000000e+01 -6.91442126694186e-01 5.04059360049167e-01 1.90773003374389e-01 +-3.30000000000000e+01 -7.05593958510807e-01 4.33318703053973e-01 1.91908992233939e-01 +-3.00000000000000e+01 -7.20308071684859e-01 3.65448723816258e-01 1.96465039072780e-01 +-2.93939393939394e+01 -7.23687122424702e-01 3.52430090699486e-01 1.98306835359819e-01 +-2.87878787878788e+01 -7.27066173164544e-01 3.39411457582714e-01 2.00148631646857e-01 +-2.81818181818182e+01 -7.30445223904387e-01 3.26392824465942e-01 2.01990427933895e-01 +-2.75757575757576e+01 -7.34244974993610e-01 3.13793078035017e-01 2.04486437101527e-01 +-2.69696969696970e+01 -7.38225041700157e-01 3.01372869870364e-01 2.07262847270964e-01 +-2.63636363636364e+01 -7.42205108406705e-01 2.88952661705710e-01 2.10039257440401e-01 +-2.57575757575758e+01 -7.46555462653963e-01 2.76796374908870e-01 2.13304160376248e-01 +-2.51515151515151e+01 -7.51461161912085e-01 2.65035908653530e-01 2.17301688612281e-01 +-2.45454545454545e+01 -7.56366861170206e-01 2.53275442398190e-01 2.21299216848314e-01 +-2.39393939393939e+01 -7.61408677387006e-01 2.41586670872199e-01 2.25459952105595e-01 +-2.33333333333333e+01 -7.67675572584808e-01 2.30543165790786e-01 2.31089582151761e-01 +-2.27272727272727e+01 -7.73942467782610e-01 2.19499660709374e-01 2.36719212197927e-01 +-2.21212121212121e+01 -7.80209362980412e-01 2.08456155627962e-01 2.42348842244093e-01 +-2.15151515151515e+01 -7.88045801889462e-01 1.98028860914946e-01 2.49772963288095e-01 +-2.09090909090909e+01 -7.96274727686348e-01 1.87755658431417e-01 2.57645822511188e-01 +-2.03030303030303e+01 -8.04503653483233e-01 1.77482455947888e-01 2.65518681734281e-01 +-1.96969696969697e+01 -8.13721563222721e-01 1.67514267203666e-01 2.74509167058282e-01 +-1.90909090909091e+01 -8.23928400957602e-01 1.57851074944005e-01 2.84617215258648e-01 +-1.84848484848485e+01 -8.22646763588942e-01 1.48546901850923e-01 2.82973548468764e-01 +-1.78787878787879e+01 -8.19241173382965e-01 1.39555143470384e-01 2.78335696038153e-01 +-1.72727272727273e+01 -8.15446564330172e-01 1.31559857952983e-01 2.70013132308244e-01 +-1.66666666666667e+01 -8.03296442896411e-01 1.23564572435581e-01 2.53038383173389e-01 +-1.60606060606061e+01 -7.84310064075638e-01 1.15569286918180e-01 2.28984646695628e-01 +-1.54545454545455e+01 -7.65324664303493e-01 1.07574959135167e-01 2.04931605118311e-01 +-1.48484848484848e+01 -7.46338949873589e-01 9.95804717419686e-02 1.80878447733115e-01 +-1.42424242424242e+01 -7.27351964982053e-01 9.15851862245671e-02 1.56824711255353e-01 +-1.36363636363636e+01 -7.08366360011050e-01 8.35901755495681e-02 1.32771801638210e-01 +-1.30303030303030e+01 -6.89379049576426e-01 7.55946380877238e-02 1.08716367776058e-01 +-1.24242424242424e+01 -6.70393771825338e-01 6.75996503421813e-02 8.46634665540094e-02 +-1.18181818181818e+01 -6.51406715493019e-01 5.96041815994351e-02 6.06091788446317e-02 +-1.12121212121212e+01 -6.32421454753742e-01 5.16093541595814e-02 3.65562447387649e-02 +-1.06060606060606e+01 -6.13434931389144e-01 4.36139312036515e-02 1.25016705283901e-02 +-1.00000000000000e+01 -5.94448865749824e-01 3.56199434645880e-02 -1.15511700947924e-02 +-9.39393939393939e+00 -5.75463587974779e-01 2.76249557125666e-02 -3.56050107398163e-02 +-8.78787878787879e+00 -5.51403736673166e-01 2.01382292840361e-02 -5.87079533337773e-02 +-8.18181818181818e+00 -5.17926305822838e-01 1.35966762681340e-02 -8.00434824257992e-02 +-7.57575757575758e+00 -4.48012922709353e-01 1.04062079021576e-02 -9.38202376741164e-02 +-6.96969696969697e+00 -3.62306556115099e-01 8.91516259682331e-03 -1.02639375733790e-01 +-6.36363636363636e+00 -2.86592508663283e-01 7.49091941073086e-03 -1.05345402946346e-01 +-5.75757575757576e+00 -2.11681301136276e-01 7.05454293237208e-03 -1.07624256716558e-01 +-5.15151515151515e+00 -1.37278254009080e-01 6.76061420557612e-03 -1.09615086355391e-01 +-4.54545454545454e+00 -6.32445813538124e-02 6.51817895525840e-03 -1.11463657835562e-01 +-3.93939393939394e+00 1.03326972358679e-02 6.40000000000000e-03 -1.13157562089366e-01 +-3.33333333333333e+00 8.37358252318253e-02 6.36666256139732e-03 -1.14700049263232e-01 +-2.72727272727273e+00 1.57144966549608e-01 6.30000000000000e-03 -1.16209080405869e-01 +-2.12121212121212e+00 2.30132082000148e-01 6.30000000000000e-03 -1.17633365893514e-01 +-1.51515151515152e+00 3.03270194866406e-01 6.30000000000000e-03 -1.18966675734322e-01 +-9.09090909090912e-01 3.76007887483945e-01 6.30000000000000e-03 -1.20399977937206e-01 +-3.03030303030302e-01 4.48619648411214e-01 6.33939639599868e-03 -1.21733360355986e-01 + 3.03030303030302e-01 5.21162162400790e-01 6.40000000000000e-03 -1.23066639644014e-01 + 9.09090909090912e-01 5.93483011578421e-01 6.40000000000000e-03 -1.24318201875268e-01 + 1.51515151515152e+00 6.65499510346614e-01 6.50000000000000e-03 -1.25430294786980e-01 + 2.12121212121212e+00 7.37449762821818e-01 6.52423946422604e-03 -1.26642394642260e-01 + 2.72727272727273e+00 8.08982292442682e-01 6.64545535339469e-03 -1.27809098180552e-01 + 3.33333333333333e+00 8.80397573785818e-01 6.76666256139732e-03 -1.28833300491179e-01 + 3.93939393939394e+00 9.51421826139261e-01 6.88787983927956e-03 -1.29890918553516e-01 + 4.54545454545455e+00 1.02186280754731e+00 7.00908947762920e-03 -1.30763626343404e-01 + 5.15151515151515e+00 1.09189627700035e+00 7.16061420557612e-03 -1.31612149719516e-01 + 5.75757575757576e+00 1.16079952835358e+00 7.45454293237208e-03 -1.32306057243163e-01 + 6.36363636363637e+00 1.22720139059598e+00 7.96364926341358e-03 -1.32572729852683e-01 + 6.96969696969697e+00 1.28802463107430e+00 8.94546166938641e-03 -1.32130299072563e-01 + 7.57575757575757e+00 1.33932330958836e+00 1.07272369407300e-02 -1.30081868282978e-01 + 8.18181818181818e+00 1.38679186165234e+00 1.25091248425769e-02 -1.27572678796319e-01 + 8.78787878787879e+00 1.43442629439737e+00 1.40333059500537e-02 -1.25090961368079e-01 + 9.39393939393939e+00 1.48072485366775e+00 1.53666845487907e-02 -1.22230262389112e-01 + 1.00000000000000e+01 1.51619976429293e+00 1.64999922859505e-02 -1.21700000000000e-01 + 1.06060606060606e+01 1.54652659135150e+00 1.81605492792916e-02 -1.21700000000000e-01 + 1.12121212121212e+01 1.57015165312925e+00 2.03485003516014e-02 -1.21912125087900e-01 + 1.18181818181818e+01 1.58466335911404e+00 3.00903504536651e-02 -1.23218115609323e-01 + 1.24242424242424e+01 1.55439065028940e+00 4.64546360854226e-02 -1.25157586499013e-01 + 1.30303030303030e+01 1.50697060273102e+00 6.28179372626244e-02 -1.27096940712607e-01 + 1.36363636363636e+01 1.44636161651328e+00 7.91823635414146e-02 -1.29036428271575e-01 + 1.42424242424242e+01 1.39302963646758e+00 9.22728558241098e-02 -1.30587894023598e-01 + 1.48484848484848e+01 1.35060468299441e+00 1.00454811136793e-01 -1.31557607245842e-01 + 1.54545454545455e+01 1.32181803006545e+00 1.08636414852911e-01 -1.32527278797382e-01 + 1.60606060606061e+01 1.29757644961134e+00 1.16817948256172e-01 -1.33496942015546e-01 + 1.66666666666667e+01 1.27333361905524e+00 1.24999903568856e-01 -1.34466655237790e-01 + 1.72727272727273e+01 1.24363618274871e+00 1.33181858881539e-01 -1.35436368460034e-01 + 1.78787878787879e+01 1.20727193691457e+00 1.41363814194223e-01 -1.36406081682278e-01 + 1.84848484848485e+01 1.18992978938591e+00 1.49497879761678e-01 -1.37375750456550e-01 + 1.90909090909091e+01 1.17704330010331e+00 1.57851074944005e-01 -1.39089585145003e-01 + 1.96969696969697e+01 1.16246123752382e+00 1.67514267203666e-01 -1.45021805782080e-01 + 2.03030303030303e+01 1.14929279501435e+00 1.77482455947888e-01 -1.51632351934001e-01 + 2.09090909090909e+01 1.13753805254846e+00 1.87755658431417e-01 -1.58921261976074e-01 + 2.15151515151515e+01 1.12578331008257e+00 1.98028860914946e-01 -1.66210172018147e-01 + 2.21212121212121e+01 1.11458874358451e+00 2.08456155627962e-01 -1.73224623443957e-01 + 2.27272727272727e+01 1.10563430457793e+00 2.19499660709374e-01 -1.79141522802416e-01 + 2.33333333333333e+01 1.09667986557135e+00 2.30543165790786e-01 -1.85058422160874e-01 + 2.39393939393939e+01 1.08772542656477e+00 2.41586670872199e-01 -1.90975321519332e-01 + 2.45454545454545e+01 1.08052187960139e+00 2.53275442398190e-01 -1.96074592475065e-01 + 2.51515151515151e+01 1.07351287201350e+00 2.65035908653530e-01 -2.01083017784734e-01 + 2.57575757575758e+01 1.06650386442561e+00 2.76796374908870e-01 -2.06091443094404e-01 + 2.63636363636364e+01 1.06028924575223e+00 2.88952661705710e-01 -2.10729607665482e-01 + 2.69696969696970e+01 1.05460430198682e+00 3.01372869870364e-01 -2.15120893385337e-01 + 2.75757575757576e+01 1.04891935822142e+00 3.13793078035017e-01 -2.19512179105193e-01 + 2.81818181818182e+01 1.04349174843484e+00 3.26392824465942e-01 -2.23774966350859e-01 + 2.87878787878788e+01 1.03866453309221e+00 3.39411457582714e-01 -2.27737949543009e-01 + 2.93939393939394e+01 1.03383731774957e+00 3.52430090699486e-01 -2.31700932735158e-01 + 3.00000000000000e+01 1.02901010240694e+00 3.65448723816258e-01 -2.35663915927308e-01 + 3.30000000000000e+01 1.00799494072346e+00 4.33318703053973e-01 -2.53423049843193e-01 + 3.60000000000000e+01 9.87774181033947e-01 5.04059360049167e-01 -2.69936854350083e-01 + 3.90000000000000e+01 9.66310039303889e-01 5.77527369809482e-01 -2.85448473353340e-01 + 4.20000000000000e+01 9.41301057332367e-01 6.52705635149657e-01 -3.00284968060017e-01 + 4.50000000000000e+01 9.15005895616392e-01 7.28313235916803e-01 -3.14934043892456e-01 + 4.80000000000000e+01 8.81556701601667e-01 8.03911570370646e-01 -3.28999157277327e-01 + 5.10000000000000e+01 8.43945446946677e-01 8.77985618172744e-01 -3.42814128421300e-01 + 5.40000000000000e+01 7.98009803441727e-01 9.49010994678426e-01 -3.56128799002399e-01 + 5.70000000000000e+01 7.52074110859421e-01 1.02003542859361e+00 -3.69443367867275e-01 + 6.00000000000000e+01 7.06138393738624e-01 1.09105939121714e+00 -3.82757885874428e-01 + 6.30000000000000e+01 6.44352602071576e-01 1.14892681074432e+00 -3.94831160514253e-01 + 6.60000000000000e+01 5.82566474543015e-01 1.20679411749904e+00 -4.06904424514653e-01 + 6.90000000000000e+01 5.20779947012492e-01 1.26466142425377e+00 -4.18977688515053e-01 + 7.20000000000000e+01 4.51477435205418e-01 1.30909618833200e+00 -4.29844051243441e-01 + 7.50000000000000e+01 3.78417085122278e-01 1.34681495605404e+00 -4.40106988042700e-01 + 7.80000000000000e+01 3.05355897825734e-01 1.38453415600310e+00 -4.50369442444556e-01 + 8.10000000000000e+01 2.30983767510451e-01 1.41401807310167e+00 -4.59788643436343e-01 + 8.40000000000000e+01 1.53989841650875e-01 1.42703199295995e+00 -4.67521395816866e-01 + 8.70000000000000e+01 7.69949275996385e-02 1.44004601223740e+00 -4.75253807270785e-01 + 9.00000000000000e+01 -3.36381509228363e-07 1.45305991877593e+00 -4.82986022704544e-01 + 9.30000000000000e+01 -5.38962044824732e-02 1.44004599891764e+00 -4.86623800302551e-01 + 9.60000000000000e+01 -1.07792278449097e-01 1.42703202935019e+00 -4.90261391797104e-01 + 9.90000000000000e+01 -1.61688764154490e-01 1.41401796036258e+00 -4.93898611078011e-01 + 1.02000000000000e+02 -2.13749236173153e-01 1.38453397332146e+00 -4.94263399100743e-01 + 1.05000000000000e+02 -2.64891721229873e-01 1.34681520559943e+00 -4.92992006930171e-01 + 1.08000000000000e+02 -3.16034192336304e-01 1.30909600565222e+00 -4.91720000190610e-01 + 1.11000000000000e+02 -3.64545857584686e-01 1.26466092295440e+00 -4.89201393327162e-01 + 1.14000000000000e+02 -4.07795991243718e-01 1.20679427930608e+00 -4.84189624190406e-01 + 1.17000000000000e+02 -4.51046455307775e-01 1.14892719359139e+00 -4.79177416768754e-01 + 1.20000000000000e+02 -4.94297062881228e-01 1.09105986110795e+00 -4.74164986774198e-01 + 1.23000000000000e+02 -5.26452064865786e-01 1.02003589848443e+00 -4.67401828422766e-01 + 1.26000000000000e+02 -5.58606989674918e-01 9.49011464578596e-01 -4.60638644238479e-01 + 1.29000000000000e+02 -5.90761760127430e-01 8.77986088072913e-01 -4.53875408386550e-01 + 1.32000000000000e+02 -6.15420484918018e-01 8.03908692975958e-01 -4.47922977473614e-01 + 1.35000000000000e+02 -6.36331195763501e-01 7.28305292210269e-01 -4.42375948063776e-01 + 1.38000000000000e+02 -6.57241666993606e-01 6.52702757782291e-01 -4.36828382226539e-01 + 1.41000000000000e+02 -6.76094612754094e-01 5.78615738508474e-01 -4.33407800721224e-01 + 1.44000000000000e+02 -6.90832490879619e-01 5.07559761840581e-01 -4.34241205139103e-01 + 1.47000000000000e+02 -7.05570256415403e-01 4.36504328003481e-01 -4.35074603190205e-01 + 1.50000000000000e+02 -7.20307965658325e-01 3.65449165572087e-01 -4.35907998058031e-01 + 1.53000000000000e+02 -7.46801078706125e-01 3.07518227898197e-01 -4.57805065052203e-01 + 1.56000000000000e+02 -7.73294117948629e-01 2.49587342086377e-01 -4.79701897484255e-01 + 1.59000000000000e+02 -7.99786954801670e-01 1.91656498833410e-01 -5.01598162643690e-01 + 1.62000000000000e+02 -7.40790822868899e-01 1.53560806333696e-01 -5.07117800599882e-01 + 1.65000000000000e+02 -6.39049483540701e-01 1.25382856960915e-01 -5.04448986449602e-01 + 1.68000000000000e+02 -5.37308710076014e-01 9.72046304867630e-02 -5.01779602888076e-01 + 1.71000000000000e+02 -4.22533481739914e-01 7.05772804657932e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.81688735121593e-01 4.70517557569334e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.40202251216632e-01 3.86002570677554e-02 -6.87686132694523e-02 + 1.80000000000000e+02 0.00000000000000e+00 3.76960000000000e-02 2.00000000000000e-01 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_28.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_28.dat new file mode 100644 index 00000000..1adeee56 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_28.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF28_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF28_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-4.024505 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.306884 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-9.832557 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.557235 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.830241 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006417 Cd0 ! 2D drag coefficient value at 0-lift. +-0.112920 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 3.76960000000000e-02 2.00000000000000e-01 +-1.77000000000000e+02 1.49471782056503e-01 3.76960000000000e-02 2.00000000000000e-01 +-1.74000000000000e+02 3.00312917607843e-01 4.52351574641884e-02 2.39999774321882e-01 +-1.71000000000000e+02 4.50470313592540e-01 6.78528773607728e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.62141300000530e-01 9.47828314689296e-02 3.00100237874998e-01 +-1.65000000000000e+02 6.54569530813285e-01 1.23868852352745e-01 1.50251760664942e-01 +-1.62000000000000e+02 7.46998820775784e-01 1.52955206537882e-01 4.01566317437541e-04 +-1.59000000000000e+02 7.99786954801670e-01 1.91656498833410e-01 -9.28123657821359e-02 +-1.56000000000000e+02 7.73294117948629e-01 2.49587342086377e-01 -7.27556892942309e-02 +-1.53000000000000e+02 7.46801078706125e-01 3.07518227898197e-01 -5.26992595835046e-02 +-1.50000000000000e+02 7.20307965658325e-01 3.65449165572087e-01 -3.26429649313102e-02 +-1.47000000000000e+02 7.05570256415403e-01 4.36504328003481e-01 -1.75932576097200e-02 +-1.44000000000000e+02 6.90832490879619e-01 5.07559761840581e-01 -2.54349280354572e-03 +-1.41000000000000e+02 6.76094612754094e-01 5.78615738508475e-01 1.25063869759013e-02 +-1.38000000000000e+02 6.57241666993606e-01 6.52702757782292e-01 2.78005506087711e-02 +-1.35000000000000e+02 6.36331195763501e-01 7.28305292210269e-01 4.32168556727960e-02 +-1.32000000000000e+02 6.15420484918018e-01 8.03908692975958e-01 5.86333373939468e-02 +-1.29000000000000e+02 5.90761760127430e-01 8.77986088072914e-01 7.42048196933640e-02 +-1.26000000000000e+02 5.58606989674918e-01 9.49011464578596e-01 9.00863038811478e-02 +-1.23000000000000e+02 5.26452064865786e-01 1.02003589848443e+00 1.05968066745086e-01 +-1.20000000000000e+02 4.94297062881228e-01 1.09105986110795e+00 1.21849968941892e-01 +-1.17000000000000e+02 4.51046455307775e-01 1.14892719359139e+00 1.36973650595308e-01 +-1.14000000000000e+02 4.07795991243718e-01 1.20679427930608e+00 1.52097072994036e-01 +-1.11000000000000e+02 3.64545857584686e-01 1.26466092295440e+00 1.67219979864852e-01 +-1.08000000000000e+02 3.16034192336304e-01 1.30909600565222e+00 1.80733001904303e-01 +-1.05000000000000e+02 2.64891721229873e-01 1.34681520559943e+00 1.93441069265733e-01 +-1.02000000000000e+02 2.13749236173153e-01 1.38453397332146e+00 2.06148391012093e-01 +-9.90000000000000e+01 1.61688764154489e-01 1.41401796036258e+00 2.17512373571396e-01 +-9.60000000000000e+01 1.07792278449096e-01 1.42703202935019e+00 2.26189619569497e-01 +-9.30000000000000e+01 5.38962044824732e-02 1.44004599891764e+00 2.34866399278379e-01 +-9.00000000000000e+01 3.36381508994621e-07 1.45305991877593e+00 2.43542945846872e-01 +-8.70000000000000e+01 -5.38961493200293e-02 1.44004601223740e+00 2.47180796579284e-01 +-8.40000000000000e+01 -1.07792429155678e-01 1.42703199295995e+00 2.50818601967904e-01 +-8.10000000000000e+01 -1.61688297256642e-01 1.41401807310167e+00 2.54456379565910e-01 +-7.80000000000000e+01 -2.13748988477021e-01 1.38453415600310e+00 2.54821405258420e-01 +-7.50000000000000e+01 -2.64892059585176e-01 1.34681495605404e+00 2.53549998518008e-01 +-7.20000000000000e+01 -3.16033944645590e-01 1.30909618833200e+00 2.52278006351131e-01 +-6.90000000000000e+01 -3.64545482908305e-01 1.26466142425377e+00 2.49759236748571e-01 +-6.60000000000000e+01 -4.07796112179989e-01 1.20679411749904e+00 2.44746810177687e-01 +-6.30000000000000e+01 -4.51046741451673e-01 1.14892681074432e+00 2.39734383606802e-01 +-6.00000000000000e+01 -4.94297275617037e-01 1.09105939121714e+00 2.34721942034639e-01 +-5.70000000000000e+01 -5.26452277601595e-01 1.02003542859361e+00 2.27959383679512e-01 +-5.40000000000000e+01 -5.58607202409195e-01 9.49010994678426e-01 2.21196599493265e-01 +-5.10000000000000e+01 -5.90761972861707e-01 8.77985618172743e-01 2.14433363641336e-01 +-4.80000000000000e+01 -6.17089671120620e-01 8.03911570370645e-01 2.07956980763680e-01 +-4.50000000000000e+01 -6.40503926932036e-01 7.28313235916803e-01 2.01624019763027e-01 +-4.20000000000000e+01 -6.58910840133311e-01 6.52705635149657e-01 1.96862389618034e-01 +-3.90000000000000e+01 -6.76417027511146e-01 5.77527369809482e-01 1.92714494884031e-01 +-3.60000000000000e+01 -6.91442126694186e-01 5.04059360049167e-01 1.90773003374389e-01 +-3.30000000000000e+01 -7.05593958510807e-01 4.33318703053973e-01 1.91908992233939e-01 +-3.00000000000000e+01 -7.20308071684859e-01 3.65448723816258e-01 1.96465039072780e-01 +-2.93939393939394e+01 -7.23687122424702e-01 3.52430090699486e-01 1.98306835359819e-01 +-2.87878787878788e+01 -7.27066173164544e-01 3.39411457582714e-01 2.00148631646857e-01 +-2.81818181818182e+01 -7.30445223904387e-01 3.26392824465942e-01 2.01990427933895e-01 +-2.75757575757576e+01 -7.34244974993610e-01 3.13793078035017e-01 2.04486437101527e-01 +-2.69696969696970e+01 -7.38225041700157e-01 3.01372869870364e-01 2.07262847270964e-01 +-2.63636363636364e+01 -7.42205108406705e-01 2.88952661705710e-01 2.10039257440401e-01 +-2.57575757575758e+01 -7.46555462653963e-01 2.76796374908870e-01 2.13304160376248e-01 +-2.51515151515151e+01 -7.51461161912085e-01 2.65035908653530e-01 2.17301688612281e-01 +-2.45454545454545e+01 -7.56366861170206e-01 2.53275442398190e-01 2.21299216848314e-01 +-2.39393939393939e+01 -7.61408677387006e-01 2.41586670872199e-01 2.25459952105595e-01 +-2.33333333333333e+01 -7.67675572584808e-01 2.30543165790786e-01 2.31089582151761e-01 +-2.27272727272727e+01 -7.73942467782610e-01 2.19499660709374e-01 2.36719212197927e-01 +-2.21212121212121e+01 -7.80209362980412e-01 2.08456155627962e-01 2.42348842244093e-01 +-2.15151515151515e+01 -7.88045801889462e-01 1.98028860914946e-01 2.49772963288095e-01 +-2.09090909090909e+01 -7.96274727686348e-01 1.87755658431417e-01 2.57645822511188e-01 +-2.03030303030303e+01 -8.04503653483233e-01 1.77482455947888e-01 2.65518681734281e-01 +-1.96969696969697e+01 -8.13721563222721e-01 1.67514267203666e-01 2.74509167058282e-01 +-1.90909090909091e+01 -8.23928400957602e-01 1.57851074944005e-01 2.84617215258648e-01 +-1.84848484848485e+01 -8.22646763588942e-01 1.48546901850923e-01 2.82973548468764e-01 +-1.78787878787879e+01 -8.19241173382965e-01 1.39555143470384e-01 2.78335696038153e-01 +-1.72727272727273e+01 -8.15446564330172e-01 1.31559857952983e-01 2.70013132308244e-01 +-1.66666666666667e+01 -8.03296442896411e-01 1.23564572435581e-01 2.53038383173389e-01 +-1.60606060606061e+01 -7.84310064075638e-01 1.15569286918180e-01 2.28984646695628e-01 +-1.54545454545455e+01 -7.65324664303493e-01 1.07574959135167e-01 2.04931605118311e-01 +-1.48484848484848e+01 -7.46338949873589e-01 9.95804717419686e-02 1.80878447733115e-01 +-1.42424242424242e+01 -7.27351964982053e-01 9.15851862245671e-02 1.56824711255353e-01 +-1.36363636363636e+01 -7.08366360011050e-01 8.35901755495681e-02 1.32771801638210e-01 +-1.30303030303030e+01 -6.89379049576426e-01 7.55946380877238e-02 1.08716367776058e-01 +-1.24242424242424e+01 -6.70393771825338e-01 6.75996503421813e-02 8.46634665540094e-02 +-1.18181818181818e+01 -6.51406715493019e-01 5.96041815994351e-02 6.06091788446317e-02 +-1.12121212121212e+01 -6.32421454753742e-01 5.16093541595814e-02 3.65562447387649e-02 +-1.06060606060606e+01 -6.13434931389144e-01 4.36139312036515e-02 1.25016705283901e-02 +-1.00000000000000e+01 -5.94448865749824e-01 3.56199434645880e-02 -1.15511700947924e-02 +-9.39393939393939e+00 -5.75463587974779e-01 2.76249557125666e-02 -3.56050107398163e-02 +-8.78787878787879e+00 -5.51403736673166e-01 2.01382292840361e-02 -5.87079533337773e-02 +-8.18181818181818e+00 -5.17926305822838e-01 1.35966762681340e-02 -8.00434824257992e-02 +-7.57575757575758e+00 -4.48012922709353e-01 1.04062079021576e-02 -9.38202376741164e-02 +-6.96969696969697e+00 -3.62306556115099e-01 8.91516259682331e-03 -1.02639375733790e-01 +-6.36363636363636e+00 -2.86592508663283e-01 7.49091941073086e-03 -1.05345402946346e-01 +-5.75757575757576e+00 -2.11681301136276e-01 7.05454293237208e-03 -1.07624256716558e-01 +-5.15151515151515e+00 -1.37278254009080e-01 6.76061420557612e-03 -1.09615086355391e-01 +-4.54545454545454e+00 -6.32445813538124e-02 6.51817895525840e-03 -1.11463657835562e-01 +-3.93939393939394e+00 1.03326972358679e-02 6.40000000000000e-03 -1.13157562089366e-01 +-3.33333333333333e+00 8.37358252318253e-02 6.36666256139732e-03 -1.14700049263232e-01 +-2.72727272727273e+00 1.57144966549608e-01 6.30000000000000e-03 -1.16209080405869e-01 +-2.12121212121212e+00 2.30132082000148e-01 6.30000000000000e-03 -1.17633365893514e-01 +-1.51515151515152e+00 3.03270194866406e-01 6.30000000000000e-03 -1.18966675734322e-01 +-9.09090909090912e-01 3.76007887483945e-01 6.30000000000000e-03 -1.20399977937206e-01 +-3.03030303030302e-01 4.48619648411214e-01 6.33939639599868e-03 -1.21733360355986e-01 + 3.03030303030302e-01 5.21162162400790e-01 6.40000000000000e-03 -1.23066639644014e-01 + 9.09090909090912e-01 5.93483011578421e-01 6.40000000000000e-03 -1.24318201875268e-01 + 1.51515151515152e+00 6.65499510346614e-01 6.50000000000000e-03 -1.25430294786980e-01 + 2.12121212121212e+00 7.37449762821818e-01 6.52423946422604e-03 -1.26642394642260e-01 + 2.72727272727273e+00 8.08982292442682e-01 6.64545535339469e-03 -1.27809098180552e-01 + 3.33333333333333e+00 8.80397573785818e-01 6.76666256139732e-03 -1.28833300491179e-01 + 3.93939393939394e+00 9.51421826139261e-01 6.88787983927956e-03 -1.29890918553516e-01 + 4.54545454545455e+00 1.02186280754731e+00 7.00908947762920e-03 -1.30763626343404e-01 + 5.15151515151515e+00 1.09189627700035e+00 7.16061420557612e-03 -1.31612149719516e-01 + 5.75757575757576e+00 1.16079952835358e+00 7.45454293237208e-03 -1.32306057243163e-01 + 6.36363636363637e+00 1.22720139059598e+00 7.96364926341358e-03 -1.32572729852683e-01 + 6.96969696969697e+00 1.28802463107430e+00 8.94546166938641e-03 -1.32130299072563e-01 + 7.57575757575757e+00 1.33932330958836e+00 1.07272369407300e-02 -1.30081868282978e-01 + 8.18181818181818e+00 1.38679186165234e+00 1.25091248425769e-02 -1.27572678796319e-01 + 8.78787878787879e+00 1.43442629439737e+00 1.40333059500537e-02 -1.25090961368079e-01 + 9.39393939393939e+00 1.48072485366775e+00 1.53666845487907e-02 -1.22230262389112e-01 + 1.00000000000000e+01 1.51619976429293e+00 1.64999922859505e-02 -1.21700000000000e-01 + 1.06060606060606e+01 1.54652659135150e+00 1.81605492792916e-02 -1.21700000000000e-01 + 1.12121212121212e+01 1.57015165312925e+00 2.03485003516014e-02 -1.21912125087900e-01 + 1.18181818181818e+01 1.58466335911404e+00 3.00903504536651e-02 -1.23218115609323e-01 + 1.24242424242424e+01 1.55439065028940e+00 4.64546360854226e-02 -1.25157586499013e-01 + 1.30303030303030e+01 1.50697060273102e+00 6.28179372626244e-02 -1.27096940712607e-01 + 1.36363636363636e+01 1.44636161651328e+00 7.91823635414146e-02 -1.29036428271575e-01 + 1.42424242424242e+01 1.39302963646758e+00 9.22728558241098e-02 -1.30587894023598e-01 + 1.48484848484848e+01 1.35060468299441e+00 1.00454811136793e-01 -1.31557607245842e-01 + 1.54545454545455e+01 1.32181803006545e+00 1.08636414852911e-01 -1.32527278797382e-01 + 1.60606060606061e+01 1.29757644961134e+00 1.16817948256172e-01 -1.33496942015546e-01 + 1.66666666666667e+01 1.27333361905524e+00 1.24999903568856e-01 -1.34466655237790e-01 + 1.72727272727273e+01 1.24363618274871e+00 1.33181858881539e-01 -1.35436368460034e-01 + 1.78787878787879e+01 1.20727193691457e+00 1.41363814194223e-01 -1.36406081682278e-01 + 1.84848484848485e+01 1.18992978938591e+00 1.49497879761678e-01 -1.37375750456550e-01 + 1.90909090909091e+01 1.17704330010331e+00 1.57851074944005e-01 -1.39089585145003e-01 + 1.96969696969697e+01 1.16246123752382e+00 1.67514267203666e-01 -1.45021805782080e-01 + 2.03030303030303e+01 1.14929279501435e+00 1.77482455947888e-01 -1.51632351934001e-01 + 2.09090909090909e+01 1.13753805254846e+00 1.87755658431417e-01 -1.58921261976074e-01 + 2.15151515151515e+01 1.12578331008257e+00 1.98028860914946e-01 -1.66210172018147e-01 + 2.21212121212121e+01 1.11458874358451e+00 2.08456155627962e-01 -1.73224623443957e-01 + 2.27272727272727e+01 1.10563430457793e+00 2.19499660709374e-01 -1.79141522802416e-01 + 2.33333333333333e+01 1.09667986557135e+00 2.30543165790786e-01 -1.85058422160874e-01 + 2.39393939393939e+01 1.08772542656477e+00 2.41586670872199e-01 -1.90975321519332e-01 + 2.45454545454545e+01 1.08052187960139e+00 2.53275442398190e-01 -1.96074592475065e-01 + 2.51515151515151e+01 1.07351287201350e+00 2.65035908653530e-01 -2.01083017784734e-01 + 2.57575757575758e+01 1.06650386442561e+00 2.76796374908870e-01 -2.06091443094404e-01 + 2.63636363636364e+01 1.06028924575223e+00 2.88952661705710e-01 -2.10729607665482e-01 + 2.69696969696970e+01 1.05460430198682e+00 3.01372869870364e-01 -2.15120893385337e-01 + 2.75757575757576e+01 1.04891935822142e+00 3.13793078035017e-01 -2.19512179105193e-01 + 2.81818181818182e+01 1.04349174843484e+00 3.26392824465942e-01 -2.23774966350859e-01 + 2.87878787878788e+01 1.03866453309221e+00 3.39411457582714e-01 -2.27737949543009e-01 + 2.93939393939394e+01 1.03383731774957e+00 3.52430090699486e-01 -2.31700932735158e-01 + 3.00000000000000e+01 1.02901010240694e+00 3.65448723816258e-01 -2.35663915927308e-01 + 3.30000000000000e+01 1.00799494072346e+00 4.33318703053973e-01 -2.53423049843193e-01 + 3.60000000000000e+01 9.87774181033947e-01 5.04059360049167e-01 -2.69936854350083e-01 + 3.90000000000000e+01 9.66310039303889e-01 5.77527369809482e-01 -2.85448473353340e-01 + 4.20000000000000e+01 9.41301057332367e-01 6.52705635149657e-01 -3.00284968060017e-01 + 4.50000000000000e+01 9.15005895616392e-01 7.28313235916803e-01 -3.14934043892456e-01 + 4.80000000000000e+01 8.81556701601667e-01 8.03911570370646e-01 -3.28999157277327e-01 + 5.10000000000000e+01 8.43945446946677e-01 8.77985618172744e-01 -3.42814128421300e-01 + 5.40000000000000e+01 7.98009803441727e-01 9.49010994678426e-01 -3.56128799002399e-01 + 5.70000000000000e+01 7.52074110859421e-01 1.02003542859361e+00 -3.69443367867275e-01 + 6.00000000000000e+01 7.06138393738624e-01 1.09105939121714e+00 -3.82757885874428e-01 + 6.30000000000000e+01 6.44352602071576e-01 1.14892681074432e+00 -3.94831160514253e-01 + 6.60000000000000e+01 5.82566474543015e-01 1.20679411749904e+00 -4.06904424514653e-01 + 6.90000000000000e+01 5.20779947012492e-01 1.26466142425377e+00 -4.18977688515053e-01 + 7.20000000000000e+01 4.51477435205418e-01 1.30909618833200e+00 -4.29844051243441e-01 + 7.50000000000000e+01 3.78417085122278e-01 1.34681495605404e+00 -4.40106988042700e-01 + 7.80000000000000e+01 3.05355897825734e-01 1.38453415600310e+00 -4.50369442444556e-01 + 8.10000000000000e+01 2.30983767510451e-01 1.41401807310167e+00 -4.59788643436343e-01 + 8.40000000000000e+01 1.53989841650875e-01 1.42703199295995e+00 -4.67521395816866e-01 + 8.70000000000000e+01 7.69949275996385e-02 1.44004601223740e+00 -4.75253807270785e-01 + 9.00000000000000e+01 -3.36381509228363e-07 1.45305991877593e+00 -4.82986022704544e-01 + 9.30000000000000e+01 -5.38962044824732e-02 1.44004599891764e+00 -4.86623800302551e-01 + 9.60000000000000e+01 -1.07792278449097e-01 1.42703202935019e+00 -4.90261391797104e-01 + 9.90000000000000e+01 -1.61688764154490e-01 1.41401796036258e+00 -4.93898611078011e-01 + 1.02000000000000e+02 -2.13749236173153e-01 1.38453397332146e+00 -4.94263399100743e-01 + 1.05000000000000e+02 -2.64891721229873e-01 1.34681520559943e+00 -4.92992006930171e-01 + 1.08000000000000e+02 -3.16034192336304e-01 1.30909600565222e+00 -4.91720000190610e-01 + 1.11000000000000e+02 -3.64545857584686e-01 1.26466092295440e+00 -4.89201393327162e-01 + 1.14000000000000e+02 -4.07795991243718e-01 1.20679427930608e+00 -4.84189624190406e-01 + 1.17000000000000e+02 -4.51046455307775e-01 1.14892719359139e+00 -4.79177416768754e-01 + 1.20000000000000e+02 -4.94297062881228e-01 1.09105986110795e+00 -4.74164986774198e-01 + 1.23000000000000e+02 -5.26452064865786e-01 1.02003589848443e+00 -4.67401828422766e-01 + 1.26000000000000e+02 -5.58606989674918e-01 9.49011464578596e-01 -4.60638644238479e-01 + 1.29000000000000e+02 -5.90761760127430e-01 8.77986088072913e-01 -4.53875408386550e-01 + 1.32000000000000e+02 -6.15420484918018e-01 8.03908692975958e-01 -4.47922977473614e-01 + 1.35000000000000e+02 -6.36331195763501e-01 7.28305292210269e-01 -4.42375948063776e-01 + 1.38000000000000e+02 -6.57241666993606e-01 6.52702757782291e-01 -4.36828382226539e-01 + 1.41000000000000e+02 -6.76094612754094e-01 5.78615738508474e-01 -4.33407800721224e-01 + 1.44000000000000e+02 -6.90832490879619e-01 5.07559761840581e-01 -4.34241205139103e-01 + 1.47000000000000e+02 -7.05570256415403e-01 4.36504328003481e-01 -4.35074603190205e-01 + 1.50000000000000e+02 -7.20307965658325e-01 3.65449165572087e-01 -4.35907998058031e-01 + 1.53000000000000e+02 -7.46801078706125e-01 3.07518227898197e-01 -4.57805065052203e-01 + 1.56000000000000e+02 -7.73294117948629e-01 2.49587342086377e-01 -4.79701897484255e-01 + 1.59000000000000e+02 -7.99786954801670e-01 1.91656498833410e-01 -5.01598162643690e-01 + 1.62000000000000e+02 -7.40790822868899e-01 1.53560806333696e-01 -5.07117800599882e-01 + 1.65000000000000e+02 -6.39049483540701e-01 1.25382856960915e-01 -5.04448986449602e-01 + 1.68000000000000e+02 -5.37308710076014e-01 9.72046304867630e-02 -5.01779602888076e-01 + 1.71000000000000e+02 -4.22533481739914e-01 7.05772804657932e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.81688735121593e-01 4.70517557569334e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.40202251216632e-01 3.86002570677554e-02 -6.87686132694523e-02 + 1.80000000000000e+02 0.00000000000000e+00 3.76960000000000e-02 2.00000000000000e-01 diff --git a/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_29.dat b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_29.dat new file mode 100644 index 00000000..31764aed --- /dev/null +++ b/Test_Cases/NREL_2p8_127/Airfoils/NREL-2p8-127_AeroDyn15_Polar_29.dat @@ -0,0 +1,254 @@ +! ------------ AirfoilInfo v1.01.x Input File ---------------------------------- +! AeroElasticSE FAST driver +! line +! line +! ------------------------------------------------------------------------------ +DEFAULT InterpOrd ! Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] +1 NonDimArea ! The non-dimensional area of the airfoil (area/chord^2) (set to 1.0 if unsure or unneeded) +@"NREL-2p8-127_AF29_Coords.txt" NumCoords ! The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. +AF29_BL.txt BL_file ! The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. +1 NumTabs ! Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. +! ------------------------------------------------------------------------------ +! data for table 1 +! ------------------------------------------------------------------------------ +6.000000 Re ! Reynolds number in millions +0 Ctrl ! Control setting (must be 0 for current AirfoilInfo) +True InclUAdata ! Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coefficients below this line +!........................................ +-4.024505 alpha0 ! 0-lift angle of attack, depends on airfoil. +11.306884 alpha1 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. (deg) +-9.832557 alpha2 ! Angle of attack at f=0.7, (approximately the stall angle) for AOA1] +0.000000 S2 ! Constant in the f curve best-fit for AOA> alpha1; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S3 ! Constant in the f curve best-fit for alpha2<=AOA< alpha0; by definition it depends on the airfoil. [ignored if UAMod<>1] +0.000000 S4 ! Constant in the f curve best-fit for AOA< alpha2; by definition it depends on the airfoil. [ignored if UAMod<>1] +1.557235 Cn1 ! Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. +-0.830241 Cn2 ! As Cn1 for negative AOAs. +Default St_sh ! Strouhal's shedding frequency constant. [default = 0.19] +0.006417 Cd0 ! 2D drag coefficient value at 0-lift. +-0.112920 Cm0 ! 2D pitching moment coefficient about 1/4-chord location, at 0-lift, positive if nose up. [If the aerodynamics coefficients table does not include a column for Cm, this needs to be set to 0.0] +0.000000 k0 ! Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). [ignored if UAMod<>1] +0.000000 k1 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k2 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k3 ! Constant in the \hat(x)_cp curve best-fit. [ignored if UAMod<>1] +0.000000 k1_hat ! Constant in the expression of Cc due to leading edge vortex effects. [ignored if UAMod<>1] +Default x_cp_bar ! Constant in the expression of \hat(x)_cp^v. [ignored if UAMod<>1, default = 0.2] +Default UACutout ! Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] +Default filtCutOff ! Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] +!........................................ +! Table of aerodynamics coefficients +200 NumAlf ! Number of data lines in the following table +! Alpha Cl Cd Cm +! (deg) (-) (-) (-) +-1.80000000000000e+02 0.00000000000000e+00 3.76960000000000e-02 2.00000000000000e-01 +-1.77000000000000e+02 1.49471782056503e-01 3.76960000000000e-02 2.00000000000000e-01 +-1.74000000000000e+02 3.00312917607843e-01 4.52351574641884e-02 2.39999774321882e-01 +-1.71000000000000e+02 4.50470313592540e-01 6.78528773607728e-02 3.60000410445527e-01 +-1.68000000000000e+02 5.62141300000530e-01 9.47828314689296e-02 3.00100237874998e-01 +-1.65000000000000e+02 6.54569530813285e-01 1.23868852352745e-01 1.50251760664942e-01 +-1.62000000000000e+02 7.46998820775784e-01 1.52955206537882e-01 4.01566317437541e-04 +-1.59000000000000e+02 7.99786954801670e-01 1.91656498833410e-01 -9.28123657821359e-02 +-1.56000000000000e+02 7.73294117948629e-01 2.49587342086377e-01 -7.27556892942309e-02 +-1.53000000000000e+02 7.46801078706125e-01 3.07518227898197e-01 -5.26992595835046e-02 +-1.50000000000000e+02 7.20307965658325e-01 3.65449165572087e-01 -3.26429649313102e-02 +-1.47000000000000e+02 7.05570256415403e-01 4.36504328003481e-01 -1.75932576097200e-02 +-1.44000000000000e+02 6.90832490879619e-01 5.07559761840581e-01 -2.54349280354572e-03 +-1.41000000000000e+02 6.76094612754094e-01 5.78615738508475e-01 1.25063869759013e-02 +-1.38000000000000e+02 6.57241666993606e-01 6.52702757782292e-01 2.78005506087711e-02 +-1.35000000000000e+02 6.36331195763501e-01 7.28305292210269e-01 4.32168556727960e-02 +-1.32000000000000e+02 6.15420484918018e-01 8.03908692975958e-01 5.86333373939468e-02 +-1.29000000000000e+02 5.90761760127430e-01 8.77986088072914e-01 7.42048196933640e-02 +-1.26000000000000e+02 5.58606989674918e-01 9.49011464578596e-01 9.00863038811478e-02 +-1.23000000000000e+02 5.26452064865786e-01 1.02003589848443e+00 1.05968066745086e-01 +-1.20000000000000e+02 4.94297062881228e-01 1.09105986110795e+00 1.21849968941892e-01 +-1.17000000000000e+02 4.51046455307775e-01 1.14892719359139e+00 1.36973650595308e-01 +-1.14000000000000e+02 4.07795991243718e-01 1.20679427930608e+00 1.52097072994036e-01 +-1.11000000000000e+02 3.64545857584686e-01 1.26466092295440e+00 1.67219979864852e-01 +-1.08000000000000e+02 3.16034192336304e-01 1.30909600565222e+00 1.80733001904303e-01 +-1.05000000000000e+02 2.64891721229873e-01 1.34681520559943e+00 1.93441069265733e-01 +-1.02000000000000e+02 2.13749236173153e-01 1.38453397332146e+00 2.06148391012093e-01 +-9.90000000000000e+01 1.61688764154489e-01 1.41401796036258e+00 2.17512373571396e-01 +-9.60000000000000e+01 1.07792278449096e-01 1.42703202935019e+00 2.26189619569497e-01 +-9.30000000000000e+01 5.38962044824732e-02 1.44004599891764e+00 2.34866399278379e-01 +-9.00000000000000e+01 3.36381508994621e-07 1.45305991877593e+00 2.43542945846872e-01 +-8.70000000000000e+01 -5.38961493200293e-02 1.44004601223740e+00 2.47180796579284e-01 +-8.40000000000000e+01 -1.07792429155678e-01 1.42703199295995e+00 2.50818601967904e-01 +-8.10000000000000e+01 -1.61688297256642e-01 1.41401807310167e+00 2.54456379565910e-01 +-7.80000000000000e+01 -2.13748988477021e-01 1.38453415600310e+00 2.54821405258420e-01 +-7.50000000000000e+01 -2.64892059585176e-01 1.34681495605404e+00 2.53549998518008e-01 +-7.20000000000000e+01 -3.16033944645590e-01 1.30909618833200e+00 2.52278006351131e-01 +-6.90000000000000e+01 -3.64545482908305e-01 1.26466142425377e+00 2.49759236748571e-01 +-6.60000000000000e+01 -4.07796112179989e-01 1.20679411749904e+00 2.44746810177687e-01 +-6.30000000000000e+01 -4.51046741451673e-01 1.14892681074432e+00 2.39734383606802e-01 +-6.00000000000000e+01 -4.94297275617037e-01 1.09105939121714e+00 2.34721942034639e-01 +-5.70000000000000e+01 -5.26452277601595e-01 1.02003542859361e+00 2.27959383679512e-01 +-5.40000000000000e+01 -5.58607202409195e-01 9.49010994678426e-01 2.21196599493265e-01 +-5.10000000000000e+01 -5.90761972861707e-01 8.77985618172743e-01 2.14433363641336e-01 +-4.80000000000000e+01 -6.17089671120620e-01 8.03911570370645e-01 2.07956980763680e-01 +-4.50000000000000e+01 -6.40503926932036e-01 7.28313235916803e-01 2.01624019763027e-01 +-4.20000000000000e+01 -6.58910840133311e-01 6.52705635149657e-01 1.96862389618034e-01 +-3.90000000000000e+01 -6.76417027511146e-01 5.77527369809482e-01 1.92714494884031e-01 +-3.60000000000000e+01 -6.91442126694186e-01 5.04059360049167e-01 1.90773003374389e-01 +-3.30000000000000e+01 -7.05593958510807e-01 4.33318703053973e-01 1.91908992233939e-01 +-3.00000000000000e+01 -7.20308071684859e-01 3.65448723816258e-01 1.96465039072780e-01 +-2.93939393939394e+01 -7.23687122424702e-01 3.52430090699486e-01 1.98306835359819e-01 +-2.87878787878788e+01 -7.27066173164544e-01 3.39411457582714e-01 2.00148631646857e-01 +-2.81818181818182e+01 -7.30445223904387e-01 3.26392824465942e-01 2.01990427933895e-01 +-2.75757575757576e+01 -7.34244974993610e-01 3.13793078035017e-01 2.04486437101527e-01 +-2.69696969696970e+01 -7.38225041700157e-01 3.01372869870364e-01 2.07262847270964e-01 +-2.63636363636364e+01 -7.42205108406705e-01 2.88952661705710e-01 2.10039257440401e-01 +-2.57575757575758e+01 -7.46555462653963e-01 2.76796374908870e-01 2.13304160376248e-01 +-2.51515151515151e+01 -7.51461161912085e-01 2.65035908653530e-01 2.17301688612281e-01 +-2.45454545454545e+01 -7.56366861170206e-01 2.53275442398190e-01 2.21299216848314e-01 +-2.39393939393939e+01 -7.61408677387006e-01 2.41586670872199e-01 2.25459952105595e-01 +-2.33333333333333e+01 -7.67675572584808e-01 2.30543165790786e-01 2.31089582151761e-01 +-2.27272727272727e+01 -7.73942467782610e-01 2.19499660709374e-01 2.36719212197927e-01 +-2.21212121212121e+01 -7.80209362980412e-01 2.08456155627962e-01 2.42348842244093e-01 +-2.15151515151515e+01 -7.88045801889462e-01 1.98028860914946e-01 2.49772963288095e-01 +-2.09090909090909e+01 -7.96274727686348e-01 1.87755658431417e-01 2.57645822511188e-01 +-2.03030303030303e+01 -8.04503653483233e-01 1.77482455947888e-01 2.65518681734281e-01 +-1.96969696969697e+01 -8.13721563222721e-01 1.67514267203666e-01 2.74509167058282e-01 +-1.90909090909091e+01 -8.23928400957602e-01 1.57851074944005e-01 2.84617215258648e-01 +-1.84848484848485e+01 -8.22646763588942e-01 1.48546901850923e-01 2.82973548468764e-01 +-1.78787878787879e+01 -8.19241173382965e-01 1.39555143470384e-01 2.78335696038153e-01 +-1.72727272727273e+01 -8.15446564330172e-01 1.31559857952983e-01 2.70013132308244e-01 +-1.66666666666667e+01 -8.03296442896411e-01 1.23564572435581e-01 2.53038383173389e-01 +-1.60606060606061e+01 -7.84310064075638e-01 1.15569286918180e-01 2.28984646695628e-01 +-1.54545454545455e+01 -7.65324664303493e-01 1.07574959135167e-01 2.04931605118311e-01 +-1.48484848484848e+01 -7.46338949873589e-01 9.95804717419686e-02 1.80878447733115e-01 +-1.42424242424242e+01 -7.27351964982053e-01 9.15851862245671e-02 1.56824711255353e-01 +-1.36363636363636e+01 -7.08366360011050e-01 8.35901755495681e-02 1.32771801638210e-01 +-1.30303030303030e+01 -6.89379049576426e-01 7.55946380877238e-02 1.08716367776058e-01 +-1.24242424242424e+01 -6.70393771825338e-01 6.75996503421813e-02 8.46634665540094e-02 +-1.18181818181818e+01 -6.51406715493019e-01 5.96041815994351e-02 6.06091788446317e-02 +-1.12121212121212e+01 -6.32421454753742e-01 5.16093541595814e-02 3.65562447387649e-02 +-1.06060606060606e+01 -6.13434931389144e-01 4.36139312036515e-02 1.25016705283901e-02 +-1.00000000000000e+01 -5.94448865749824e-01 3.56199434645880e-02 -1.15511700947924e-02 +-9.39393939393939e+00 -5.75463587974779e-01 2.76249557125666e-02 -3.56050107398163e-02 +-8.78787878787879e+00 -5.51403736673166e-01 2.01382292840361e-02 -5.87079533337773e-02 +-8.18181818181818e+00 -5.17926305822838e-01 1.35966762681340e-02 -8.00434824257992e-02 +-7.57575757575758e+00 -4.48012922709353e-01 1.04062079021576e-02 -9.38202376741164e-02 +-6.96969696969697e+00 -3.62306556115099e-01 8.91516259682331e-03 -1.02639375733790e-01 +-6.36363636363636e+00 -2.86592508663283e-01 7.49091941073086e-03 -1.05345402946346e-01 +-5.75757575757576e+00 -2.11681301136276e-01 7.05454293237208e-03 -1.07624256716558e-01 +-5.15151515151515e+00 -1.37278254009080e-01 6.76061420557612e-03 -1.09615086355391e-01 +-4.54545454545454e+00 -6.32445813538124e-02 6.51817895525840e-03 -1.11463657835562e-01 +-3.93939393939394e+00 1.03326972358679e-02 6.40000000000000e-03 -1.13157562089366e-01 +-3.33333333333333e+00 8.37358252318253e-02 6.36666256139732e-03 -1.14700049263232e-01 +-2.72727272727273e+00 1.57144966549608e-01 6.30000000000000e-03 -1.16209080405869e-01 +-2.12121212121212e+00 2.30132082000148e-01 6.30000000000000e-03 -1.17633365893514e-01 +-1.51515151515152e+00 3.03270194866406e-01 6.30000000000000e-03 -1.18966675734322e-01 +-9.09090909090912e-01 3.76007887483945e-01 6.30000000000000e-03 -1.20399977937206e-01 +-3.03030303030302e-01 4.48619648411214e-01 6.33939639599868e-03 -1.21733360355986e-01 + 3.03030303030302e-01 5.21162162400790e-01 6.40000000000000e-03 -1.23066639644014e-01 + 9.09090909090912e-01 5.93483011578421e-01 6.40000000000000e-03 -1.24318201875268e-01 + 1.51515151515152e+00 6.65499510346614e-01 6.50000000000000e-03 -1.25430294786980e-01 + 2.12121212121212e+00 7.37449762821818e-01 6.52423946422604e-03 -1.26642394642260e-01 + 2.72727272727273e+00 8.08982292442682e-01 6.64545535339469e-03 -1.27809098180552e-01 + 3.33333333333333e+00 8.80397573785818e-01 6.76666256139732e-03 -1.28833300491179e-01 + 3.93939393939394e+00 9.51421826139261e-01 6.88787983927956e-03 -1.29890918553516e-01 + 4.54545454545455e+00 1.02186280754731e+00 7.00908947762920e-03 -1.30763626343404e-01 + 5.15151515151515e+00 1.09189627700035e+00 7.16061420557612e-03 -1.31612149719516e-01 + 5.75757575757576e+00 1.16079952835358e+00 7.45454293237208e-03 -1.32306057243163e-01 + 6.36363636363637e+00 1.22720139059598e+00 7.96364926341358e-03 -1.32572729852683e-01 + 6.96969696969697e+00 1.28802463107430e+00 8.94546166938641e-03 -1.32130299072563e-01 + 7.57575757575757e+00 1.33932330958836e+00 1.07272369407300e-02 -1.30081868282978e-01 + 8.18181818181818e+00 1.38679186165234e+00 1.25091248425769e-02 -1.27572678796319e-01 + 8.78787878787879e+00 1.43442629439737e+00 1.40333059500537e-02 -1.25090961368079e-01 + 9.39393939393939e+00 1.48072485366775e+00 1.53666845487907e-02 -1.22230262389112e-01 + 1.00000000000000e+01 1.51619976429293e+00 1.64999922859505e-02 -1.21700000000000e-01 + 1.06060606060606e+01 1.54652659135150e+00 1.81605492792916e-02 -1.21700000000000e-01 + 1.12121212121212e+01 1.57015165312925e+00 2.03485003516014e-02 -1.21912125087900e-01 + 1.18181818181818e+01 1.58466335911404e+00 3.00903504536651e-02 -1.23218115609323e-01 + 1.24242424242424e+01 1.55439065028940e+00 4.64546360854226e-02 -1.25157586499013e-01 + 1.30303030303030e+01 1.50697060273102e+00 6.28179372626244e-02 -1.27096940712607e-01 + 1.36363636363636e+01 1.44636161651328e+00 7.91823635414146e-02 -1.29036428271575e-01 + 1.42424242424242e+01 1.39302963646758e+00 9.22728558241098e-02 -1.30587894023598e-01 + 1.48484848484848e+01 1.35060468299441e+00 1.00454811136793e-01 -1.31557607245842e-01 + 1.54545454545455e+01 1.32181803006545e+00 1.08636414852911e-01 -1.32527278797382e-01 + 1.60606060606061e+01 1.29757644961134e+00 1.16817948256172e-01 -1.33496942015546e-01 + 1.66666666666667e+01 1.27333361905524e+00 1.24999903568856e-01 -1.34466655237790e-01 + 1.72727272727273e+01 1.24363618274871e+00 1.33181858881539e-01 -1.35436368460034e-01 + 1.78787878787879e+01 1.20727193691457e+00 1.41363814194223e-01 -1.36406081682278e-01 + 1.84848484848485e+01 1.18992978938591e+00 1.49497879761678e-01 -1.37375750456550e-01 + 1.90909090909091e+01 1.17704330010331e+00 1.57851074944005e-01 -1.39089585145003e-01 + 1.96969696969697e+01 1.16246123752382e+00 1.67514267203666e-01 -1.45021805782080e-01 + 2.03030303030303e+01 1.14929279501435e+00 1.77482455947888e-01 -1.51632351934001e-01 + 2.09090909090909e+01 1.13753805254846e+00 1.87755658431417e-01 -1.58921261976074e-01 + 2.15151515151515e+01 1.12578331008257e+00 1.98028860914946e-01 -1.66210172018147e-01 + 2.21212121212121e+01 1.11458874358451e+00 2.08456155627962e-01 -1.73224623443957e-01 + 2.27272727272727e+01 1.10563430457793e+00 2.19499660709374e-01 -1.79141522802416e-01 + 2.33333333333333e+01 1.09667986557135e+00 2.30543165790786e-01 -1.85058422160874e-01 + 2.39393939393939e+01 1.08772542656477e+00 2.41586670872199e-01 -1.90975321519332e-01 + 2.45454545454545e+01 1.08052187960139e+00 2.53275442398190e-01 -1.96074592475065e-01 + 2.51515151515151e+01 1.07351287201350e+00 2.65035908653530e-01 -2.01083017784734e-01 + 2.57575757575758e+01 1.06650386442561e+00 2.76796374908870e-01 -2.06091443094404e-01 + 2.63636363636364e+01 1.06028924575223e+00 2.88952661705710e-01 -2.10729607665482e-01 + 2.69696969696970e+01 1.05460430198682e+00 3.01372869870364e-01 -2.15120893385337e-01 + 2.75757575757576e+01 1.04891935822142e+00 3.13793078035017e-01 -2.19512179105193e-01 + 2.81818181818182e+01 1.04349174843484e+00 3.26392824465942e-01 -2.23774966350859e-01 + 2.87878787878788e+01 1.03866453309221e+00 3.39411457582714e-01 -2.27737949543009e-01 + 2.93939393939394e+01 1.03383731774957e+00 3.52430090699486e-01 -2.31700932735158e-01 + 3.00000000000000e+01 1.02901010240694e+00 3.65448723816258e-01 -2.35663915927308e-01 + 3.30000000000000e+01 1.00799494072346e+00 4.33318703053973e-01 -2.53423049843193e-01 + 3.60000000000000e+01 9.87774181033947e-01 5.04059360049167e-01 -2.69936854350083e-01 + 3.90000000000000e+01 9.66310039303889e-01 5.77527369809482e-01 -2.85448473353340e-01 + 4.20000000000000e+01 9.41301057332367e-01 6.52705635149657e-01 -3.00284968060017e-01 + 4.50000000000000e+01 9.15005895616392e-01 7.28313235916803e-01 -3.14934043892456e-01 + 4.80000000000000e+01 8.81556701601667e-01 8.03911570370646e-01 -3.28999157277327e-01 + 5.10000000000000e+01 8.43945446946677e-01 8.77985618172744e-01 -3.42814128421300e-01 + 5.40000000000000e+01 7.98009803441727e-01 9.49010994678426e-01 -3.56128799002399e-01 + 5.70000000000000e+01 7.52074110859421e-01 1.02003542859361e+00 -3.69443367867275e-01 + 6.00000000000000e+01 7.06138393738624e-01 1.09105939121714e+00 -3.82757885874428e-01 + 6.30000000000000e+01 6.44352602071576e-01 1.14892681074432e+00 -3.94831160514253e-01 + 6.60000000000000e+01 5.82566474543015e-01 1.20679411749904e+00 -4.06904424514653e-01 + 6.90000000000000e+01 5.20779947012492e-01 1.26466142425377e+00 -4.18977688515053e-01 + 7.20000000000000e+01 4.51477435205418e-01 1.30909618833200e+00 -4.29844051243441e-01 + 7.50000000000000e+01 3.78417085122278e-01 1.34681495605404e+00 -4.40106988042700e-01 + 7.80000000000000e+01 3.05355897825734e-01 1.38453415600310e+00 -4.50369442444556e-01 + 8.10000000000000e+01 2.30983767510451e-01 1.41401807310167e+00 -4.59788643436343e-01 + 8.40000000000000e+01 1.53989841650875e-01 1.42703199295995e+00 -4.67521395816866e-01 + 8.70000000000000e+01 7.69949275996385e-02 1.44004601223740e+00 -4.75253807270785e-01 + 9.00000000000000e+01 -3.36381509228363e-07 1.45305991877593e+00 -4.82986022704544e-01 + 9.30000000000000e+01 -5.38962044824732e-02 1.44004599891764e+00 -4.86623800302551e-01 + 9.60000000000000e+01 -1.07792278449097e-01 1.42703202935019e+00 -4.90261391797104e-01 + 9.90000000000000e+01 -1.61688764154490e-01 1.41401796036258e+00 -4.93898611078011e-01 + 1.02000000000000e+02 -2.13749236173153e-01 1.38453397332146e+00 -4.94263399100743e-01 + 1.05000000000000e+02 -2.64891721229873e-01 1.34681520559943e+00 -4.92992006930171e-01 + 1.08000000000000e+02 -3.16034192336304e-01 1.30909600565222e+00 -4.91720000190610e-01 + 1.11000000000000e+02 -3.64545857584686e-01 1.26466092295440e+00 -4.89201393327162e-01 + 1.14000000000000e+02 -4.07795991243718e-01 1.20679427930608e+00 -4.84189624190406e-01 + 1.17000000000000e+02 -4.51046455307775e-01 1.14892719359139e+00 -4.79177416768754e-01 + 1.20000000000000e+02 -4.94297062881228e-01 1.09105986110795e+00 -4.74164986774198e-01 + 1.23000000000000e+02 -5.26452064865786e-01 1.02003589848443e+00 -4.67401828422766e-01 + 1.26000000000000e+02 -5.58606989674918e-01 9.49011464578596e-01 -4.60638644238479e-01 + 1.29000000000000e+02 -5.90761760127430e-01 8.77986088072913e-01 -4.53875408386550e-01 + 1.32000000000000e+02 -6.15420484918018e-01 8.03908692975958e-01 -4.47922977473614e-01 + 1.35000000000000e+02 -6.36331195763501e-01 7.28305292210269e-01 -4.42375948063776e-01 + 1.38000000000000e+02 -6.57241666993606e-01 6.52702757782291e-01 -4.36828382226539e-01 + 1.41000000000000e+02 -6.76094612754094e-01 5.78615738508474e-01 -4.33407800721224e-01 + 1.44000000000000e+02 -6.90832490879619e-01 5.07559761840581e-01 -4.34241205139103e-01 + 1.47000000000000e+02 -7.05570256415403e-01 4.36504328003481e-01 -4.35074603190205e-01 + 1.50000000000000e+02 -7.20307965658325e-01 3.65449165572087e-01 -4.35907998058031e-01 + 1.53000000000000e+02 -7.46801078706125e-01 3.07518227898197e-01 -4.57805065052203e-01 + 1.56000000000000e+02 -7.73294117948629e-01 2.49587342086377e-01 -4.79701897484255e-01 + 1.59000000000000e+02 -7.99786954801670e-01 1.91656498833410e-01 -5.01598162643690e-01 + 1.62000000000000e+02 -7.40790822868899e-01 1.53560806333696e-01 -5.07117800599882e-01 + 1.65000000000000e+02 -6.39049483540701e-01 1.25382856960915e-01 -5.04448986449602e-01 + 1.68000000000000e+02 -5.37308710076014e-01 9.72046304867630e-02 -5.01779602888076e-01 + 1.71000000000000e+02 -4.22533481739914e-01 7.05772804657932e-02 -4.50000513056908e-01 + 1.74000000000000e+02 -2.81688735121593e-01 4.70517557569334e-02 -2.99999717902353e-01 + 1.77000000000000e+02 -1.40202251216632e-01 3.86002570677554e-02 -6.87686132694523e-02 + 1.80000000000000e+02 0.00000000000000e+00 3.76960000000000e-02 2.00000000000000e-01 diff --git a/Test_Cases/NREL_2p8_127/NREL-2.8-127.xlsx b/Test_Cases/NREL_2p8_127/NREL-2.8-127.xlsx new file mode 100644 index 00000000..5d5d8946 Binary files /dev/null and b/Test_Cases/NREL_2p8_127/NREL-2.8-127.xlsx differ diff --git a/Test_Cases/NREL_2p8_127/NREL-2.8-127_pitch-speed.csv b/Test_Cases/NREL_2p8_127/NREL-2.8-127_pitch-speed.csv new file mode 100644 index 00000000..8a37882c --- /dev/null +++ b/Test_Cases/NREL_2p8_127/NREL-2.8-127_pitch-speed.csv @@ -0,0 +1,31 @@ +mps,pitch,speed +3,0,5 +3.889649963,0,5 +4.684006997,0,5.638983608 +5.377830234,0,6.474263714 +5.966542092,0,7.183002305 +6.446258474,0,7.760523392 +6.813814392,0,8.20301671 +7.066784852,0,8.507562856 +7.203500851,0,8.67215255 +7.223060389,0,8.695699891 +7.320786359,0,8.813350259 +7.535153079,0,9.071422123 +7.864746237,0,9.468212823 +8.307391303,1.972625303,10.00110448 +8.860167873,3.729032675,10.66658129 +9.519428937,5.277405528,11.46025268 +10.28082494,6.571034001,12.0388027 +10.68187298,7.135654103,12.0388027 +11.13933248,8.260696288,12.0388027 +12.08928745,10.26526353,12.0388027 +13.1244224,12.14867141,12.0388027 +14.23790791,13.95715081,12.0388027 +15.42239763,15.71431664,12.0388027 +16.67007674,17.45490652,12.0388027 +17.97271352,19.14151062,12.0388027 +19.32171368,20.8231505,12.0388027 +20.70817701,22.44383927,12.0388027 +22.12295617,24.03032967,12.0388027 +23.55671697,25.61093372,12.0388027 +25,27.13341342,12.0388027 diff --git a/Test_Cases/NREL_2p8_127/NREL-2p8-127.fst b/Test_Cases/NREL_2p8_127/NREL-2p8-127.fst new file mode 100644 index 00000000..c177d10c --- /dev/null +++ b/Test_Cases/NREL_2p8_127/NREL-2p8-127.fst @@ -0,0 +1,71 @@ +------- OpenFAST INPUT FILE ------------------------------------------- +Generated with AeroElasticSE FAST driver +---------------------- SIMULATION CONTROL -------------------------------------- +False Echo - Echo input data to .ech (flag) +"FATAL" AbortLevel - Error level when simulation should abort (string) {"WARNING", "SEVERE", "FATAL"} +300.0 TMax - Total run time (s) +0.005 DT - Recommended module time step (s) +2 InterpOrder - Interpolation order for input/output time history (-) {1=linear, 2=quadratic} +0 NumCrctn - Number of correction iterations (-) {0=explicit calculation, i.e., no corrections} +99999.0 DT_UJac - Time between calls to get Jacobians (s) +1000000.0 UJacSclFact - Scaling factor used in Jacobians (-) +---------------------- FEATURE SWITCHES AND FLAGS ------------------------------ +1 CompElast - Compute structural dynamics (switch) {1=ElastoDyn; 2=ElastoDyn + BeamDyn for blades} +1 CompInflow - Compute inflow wind velocities (switch) {0=still air; 1=InflowWind; 2=external from OpenFOAM} +2 CompAero - Compute aerodynamic loads (switch) {0=None; 1=AeroDyn v14; 2=AeroDyn v15} +1 CompServo - Compute control and electrical-drive dynamics (switch) {0=None; 1=ServoDyn} +0 CompHydro - Compute hydrodynamic loads (switch) {0=None; 1=HydroDyn} +0 CompSub - Compute sub-structural dynamics (switch) {0=None; 1=SubDyn; 2=External Platform MCKF} +0 CompMooring - Compute mooring system (switch) {0=None; 1=MAP++; 2=FEAMooring; 3=MoorDyn; 4=OrcaFlex} +0 CompIce - Compute ice loads (switch) {0=None; 1=IceFloe; 2=IceDyn} +0 MHK - MHK turbine type (switch) {0=Not an MHK turbine; 1=Fixed MHK turbine; 2=Floating MHK turbine} +---------------------- ENVIRONMENTAL CONDITIONS -------------------------------- + 9.80665 Gravity - Gravitational acceleration (m/s^2) + 1.225 AirDens - Air density (kg/m^3) + 0 WtrDens - Water density (kg/m^3) + 1.464E-05 KinVisc - Kinematic viscosity of working fluid (m^2/s) + 335 SpdSound - Speed of sound in working fluid (m/s) + 103500 Patm - Atmospheric pressure (Pa) [used only for an MHK turbine cavitation check] + 1700 Pvap - Vapour pressure of working fluid (Pa) [used only for an MHK turbine cavitation check] + 0 WtrDpth - Water depth (m) + 0 MSL2SWL - Offset between still-water level and mean sea level (m) [positive upward] +---------------------- INPUT FILES --------------------------------------------- +"NREL-2p8-127_ElastoDyn.dat" EDFile - Name of file containing ElastoDyn input parameters (quoted string) +"none" BDBldFile(1) - Name of file containing BeamDyn input parameters for blade 1 (quoted string) +"none" BDBldFile(2) - Name of file containing BeamDyn input parameters for blade 2 (quoted string) +"none" BDBldFile(3) - Name of file containing BeamDyn input parameters for blade 3 (quoted string) +"NREL-2p8-127_InflowFile.dat" InflowFile - Name of file containing inflow wind input parameters (quoted string) +"NREL-2p8-127_AeroDyn15.dat" AeroFile - Name of file containing aerodynamic input parameters (quoted string) +"NREL-2p8-127_ServoDyn.dat" ServoFile - Name of file containing control and electrical-drive input parameters (quoted string) +"none" HydroFile - Name of file containing hydrodynamic input parameters (quoted string) +"none" SubFile - Name of file containing sub-structural input parameters (quoted string) +"none" MooringFile - Name of file containing mooring system input parameters (quoted string) +"none" IceFile - Name of file containing ice input parameters (quoted string) +---------------------- OUTPUT -------------------------------------------------- +False SumPrint - Print summary data to ".sum" (flag) +10.0 SttsTime - Amount of time between screen status messages (s) +99999.0 ChkptTime - Amount of time between creating checkpoint files for potential restart (s) +default DT_Out - Time step for tabular output (s) (or "default") +0.0 TStart - Time to begin tabular output (s) +1 OutFileFmt - Format for tabular (time-marching) output file (switch) {1: text file [.out], 2: binary file [.outb], 3: both} +True TabDelim - Use tab delimiters in text tabular output file? (flag) {uses spaces if false} +"ES10.3E2" OutFmt - Format used for text tabular output, excluding the time channel. Resulting field should be 10 characters. (quoted string) +---------------------- LINEARIZATION ------------------------------------------- +False Linearize - Linearization analysis (flag) +False CalcSteady - Calculate a steady-state periodic operating point before linearization? [unused if Linearize=False] (flag) +3 TrimCase - Controller parameter to be trimmed {1:yaw; 2:torque; 3:pitch} [used only if CalcSteady=True] (-) +0.001 TrimTol - Tolerance for the rotational speed convergence [used only if CalcSteady=True] (-) +0.01 TrimGain - Proportional gain for the rotational speed error (>0) [used only if CalcSteady=True] (rad/(rad/s) for yaw or pitch; Nm/(rad/s) for torque) +0.0 Twr_Kdmp - Damping factor for the tower [used only if CalcSteady=True] (N/(m/s)) +0.0 Bld_Kdmp - Damping factor for the blades [used only if CalcSteady=True] (N/(m/s)) +2 NLinTimes - Number of times to linearize (-) [>=1] [unused if Linearize=False] +30.000000, 60.000000 LinTimes - List of times at which to linearize (s) [1 to NLinTimes] [used only when Linearize=True and CalcSteady=False] +1 LinInputs - Inputs included in linearization (switch) {0=none; 1=standard; 2=all module inputs (debug)} [unused if Linearize=False] +1 LinOutputs - Outputs included in linearization (switch) {0=none; 1=from OutList(s); 2=all module outputs (debug)} [unused if Linearize=False] +False LinOutJac - Include full Jacobians in linearization output (for debug) (flag) [unused if Linearize=False; used only if LinInputs=LinOutputs=2] +False LinOutMod - Write module-level linearization output files in addition to output for full system? (flag) [unused if Linearize=False] +---------------------- VISUALIZATION ------------------------------------------ +0 WrVTK - VTK visualization data output: (switch) {0=none; 1=initialization data only; 2=animation} +2 VTK_type - Type of VTK visualization data: (switch) {1=surfaces; 2=basic meshes (lines/points); 3=all meshes (debug)} [unused if WrVTK=0] +False VTK_fields - Write mesh fields to VTK data files? (flag) {true/false} [unused if WrVTK=0] +10.0 VTK_fps - Frame rate for VTK output (frames per second){will use closest integer multiple of DT} [used only if WrVTK=2] diff --git a/Test_Cases/NREL_2p8_127/NREL-2p8-127_AeroDyn15.dat b/Test_Cases/NREL_2p8_127/NREL-2p8-127_AeroDyn15.dat new file mode 100644 index 00000000..a3742899 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/NREL-2p8-127_AeroDyn15.dat @@ -0,0 +1,134 @@ +------- AERODYN v15.03.* INPUT FILE ------------------------------------------------ +Generated with AeroElasticSE FAST driver +====== General Options ============================================================================ +False Echo - Echo the input to ".AD.ech"? (flag) +default DTAero - Time interval for aerodynamic calculations {or "default"} (s) +1 WakeMod - Type of wake/induction model (switch) {0=none, 1=BEMT, 2=DBEMT, 3=OLAF} [WakeMod cannot be 2 or 3 when linearizing] +2 AFAeroMod - Type of blade airfoil aerodynamics model (switch) {1=steady model, 2=Beddoes-Leishman unsteady model} [AFAeroMod must be 1 when linearizing] +0 TwrPotent - Type tower influence on wind based on potential flow around the tower (switch) {0=none, 1=baseline potential flow, 2=potential flow with Bak correction} +0 TwrShadow - Calculate tower influence on wind based on downstream tower shadow (switch) {0=none, 1=Powles model, 2=Eames model} +False TwrAero - Calculate tower aerodynamic loads? (flag) +False FrozenWake - Assume frozen wake during linearization? (flag) [used only when WakeMod=1 and when linearizing] +False CavitCheck - Perform cavitation check? (flag) [AFAeroMod must be 1 when CavitCheck=true] +False Buoyancy - Include buoyancy effects? (flag) +False CompAA - Flag to compute AeroAcoustics calculation [only used when WakeMod=1 or 2] +AeroAcousticsInput.dat AA_InputFile - AeroAcoustics input file [used only when CompAA=true] +====== Environmental Conditions =================================================================== +"default" AirDens - Air density (kg/m^3) +"default" KinVisc - Kinematic air viscosity (m^2/s) +"default" SpdSound - Speed of sound (m/s) +"default" Patm - Atmospheric pressure (Pa) [used only when CavitCheck=True] +"default" Pvap - Vapour pressure of fluid (Pa) [used only when CavitCheck=True] +====== Blade-Element/Momentum Theory Options ====================================================== [used only when WakeMod=1] +2 SkewMod - Type of skewed-wake correction model (switch) {1=uncoupled, 2=Pitt/Peters, 3=coupled} [unused when WakeMod=0 or 3] +1.4726215563702154 SkewModFactor - Constant used in Pitt/Peters skewed wake model {or "default" is 15/32*pi} (-) [used only when SkewMod=2; unused when WakeMod=0 or 3] +True TipLoss - Use the Prandtl tip-loss model? (flag) [unused when WakeMod=0 or 3] +True HubLoss - Use the Prandtl hub-loss model? (flag) [unused when WakeMod=0 or 3] +True TanInd - Include tangential induction in BEMT calculations? (flag) [unused when WakeMod=0 or 3] +True AIDrag - Include the drag term in the axial-induction calculation? (flag) [unused when WakeMod=0 or 3] +True TIDrag - Include the drag term in the tangential-induction calculation? (flag) [unused when WakeMod=0,3 or TanInd=FALSE] +default IndToler - Convergence tolerance for BEMT nonlinear solve residual equation {or "default"} (-) [unused when WakeMod=0 or 3] +500 MaxIter - Maximum number of iteration steps (-) [unused when WakeMod=0] +====== Dynamic Blade-Element/Momentum Theory Options ====================================================== [used only when WakeMod=1] +2 DBEMT_Mod - Type of dynamic BEMT (DBEMT) model {1=constant tau1, 2=time-dependent tau1} (-) [used only when WakeMod=2] +2.0 tau1_const - Time constant for DBEMT (s) [used only when WakeMod=2 and DBEMT_Mod=1] +====== OLAF -- cOnvecting LAgrangian Filaments (Free Vortex Wake) Theory Options ================== [used only when WakeMod=3] +NREL-2p8-127_OLAF.dat OLAFInputFileName - Input file for OLAF [used only when WakeMod=3] +====== Beddoes-Leishman Unsteady Airfoil Aerodynamics Options ===================================== [used only when AFAeroMod=2] +3 UAMod - Unsteady Aero Model Switch (switch) {1=Baseline model (Original), 2=Gonzalez's variant (changes in Cn,Cc,Cm), 3=Minnema/Pierce variant (changes in Cc and Cm)} [used only when AFAeroMod=2] +True FLookup - Flag to indicate whether a lookup for f' will be calculated (TRUE) or whether best-fit exponential equations will be used (FALSE); if FALSE S1-S4 must be provided in airfoil input files (flag) [used only when AFAeroMod=2] +====== Airfoil Information ========================================================================= +1 AFTabMod - Interpolation method for multiple airfoil tables {1=1D interpolation on AoA (first table only); 2=2D interpolation on AoA and Re; 3=2D interpolation on AoA and UserProp} (-) +1 InCol_Alfa - The column in the airfoil tables that contains the angle of attack (-) +2 InCol_Cl - The column in the airfoil tables that contains the lift coefficient (-) +3 InCol_Cd - The column in the airfoil tables that contains the drag coefficient (-) +4 InCol_Cm - The column in the airfoil tables that contains the pitching-moment coefficient; use zero if there is no Cm column (-) +0 InCol_Cpmin - The column in the airfoil tables that contains the Cpmin coefficient; use zero if there is no Cpmin column (-) +30 NumAFfiles - Number of airfoil files used (-) +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_00.dat" AFNames - Airfoil file names (NumAFfiles lines) (quoted strings) +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_01.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_02.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_03.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_04.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_05.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_06.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_07.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_08.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_09.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_10.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_11.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_12.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_13.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_14.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_15.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_16.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_17.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_18.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_19.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_20.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_21.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_22.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_23.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_24.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_25.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_26.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_27.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_28.dat" +"Airfoils/NREL-2p8-127_AeroDyn15_Polar_29.dat" +====== Rotor/Blade Properties ===================================================================== +True UseBlCm - Include aerodynamic pitching moment in calculations? (flag) +"NREL-2p8-127_AeroDyn15_blade.dat" ADBlFile(1) - Name of file containing distributed aerodynamic properties for Blade #1 (-) +"NREL-2p8-127_AeroDyn15_blade.dat" ADBlFile(2) - Name of file containing distributed aerodynamic properties for Blade #2 (-) [unused if NumBl < 2] +"NREL-2p8-127_AeroDyn15_blade.dat" ADBlFile(3) - Name of file containing distributed aerodynamic properties for Blade #3 (-) [unused if NumBl < 3] +====== Hub Properties ============================================================================== [used only when Buoyancy=True] +0.0 VolHub - Hub volume (m^3) +0.0 HubCenBx - Hub center of buoyancy x direction offset (m) +====== Nacelle Properties ========================================================================== [used only when Buoyancy=True] +0.0 VolNac - Nacelle volume (m^3) +0,0,0 NacCenB - Position of nacelle center of buoyancy from yaw bearing in nacelle coordinates (m) +====== Tail fin Aerodynamics ======================================================================== +False TFinAero - Calculate tail fin aerodynamics model (flag) +"unused" TFinFile - Input file for tail fin aerodynamics [used only when TFinAero=True] +====== Tower Influence and Aerodynamics ============================================================= [used only when TwrPotent/=0, TwrShadow/=0, or TwrAero=True] +10 NumTwrNds - Number of tower nodes used in the analysis (-) [used only when TwrPotent/=0, TwrShadow/=0, or TwrAero=True] +TwrElev TwrDiam TwrCd TwrTI TwrCb !TwrTI used only with TwrShadow=2, TwrCb used only with Buoyancy=True +(m) (m) (-) (-) (-) + 8.650000000000000e+00 3.999999999999999e+00 5.000000000000000e-01 1.000000000000000e-01 0.0 + 1.730800925925926e+01 4.000000000000000e+00 5.000000000000000e-01 1.000000000000000e-01 0.0 + 2.595800925925926e+01 4.000000000000000e+00 5.000000000000000e-01 1.000000000000000e-01 0.0 + 3.461601851851852e+01 3.953273204469021e+00 5.000000000000000e-01 1.000000000000000e-01 0.0 + 4.326601851851852e+01 3.712118013878008e+00 5.000000000000000e-01 1.000000000000000e-01 0.0 + 5.191601851851851e+01 3.433099970059946e+00 5.000000000000000e-01 1.000000000000000e-01 0.0 + 6.057402777777778e+01 3.130385763598736e+00 5.000000000000000e-01 1.000000000000000e-01 0.0 + 6.922402777777778e+01 2.796113422345067e+00 5.000000000000000e-01 1.000000000000000e-01 0.0 + 7.787402777777778e+01 2.382646880140990e+00 5.000000000000000e-01 1.000000000000000e-01 0.0 + 8.650000000000000e+01 2.324880163918676e+00 5.000000000000000e-01 1.000000000000000e-01 0.0 +====== Outputs ==================================================================================== +False SumPrint - Generate a summary file listing input options and interpolated properties to ".AD.sum"? (flag) +0 NBlOuts - Number of blade node outputs [0 - 9] (-) +4, 7, 10, 13, 15, 18, 21, 24, 27 BlOutNd - Blade nodes whose values will be output (-) +0 NTwOuts - Number of tower node outputs [0 - 9] (-) +0 TwOutNd - Tower nodes whose values will be output (-) + OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) +"B1Azimuth" +"B2Azimuth" +"B3Azimuth" +END of input file (the word "END" must appear in the first 3 columns of this last OutList line) +====== Outputs for all blade stations (same ending as above for B1N1.... =========================== [optional section] +3 BldNd_BladesOut - Number of blades to output all node information at. Up to number of blades on turbine. (-) +"All" BldNd_BlOutNd - Future feature will allow selecting a portion of the nodes to output. Not implemented yet. (-) + OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) +"Fx, Fy" +"Vx, Vy" +Vrel +TnInd +AxInd +Theta +Phi +Vindx +Vindy +Alpha +Fl +Fd +END (the word "END" must appear in the first 3 columns of this last OutList line in the optional nodal output section) +--------------------------------------------------------------------------------------- diff --git a/Test_Cases/NREL_2p8_127/NREL-2p8-127_AeroDyn15_blade.dat b/Test_Cases/NREL_2p8_127/NREL-2p8-127_AeroDyn15_blade.dat new file mode 100644 index 00000000..fd4b728f --- /dev/null +++ b/Test_Cases/NREL_2p8_127/NREL-2p8-127_AeroDyn15_blade.dat @@ -0,0 +1,36 @@ +------- AERODYN v15.00.* BLADE DEFINITION INPUT FILE ------------------------------------- +Generated with AeroElasticSE FAST driver +====== Blade Properties ================================================================= +30 NumBlNds - Number of blade nodes used in the analysis (-) + BlSpn BlCrvAC BlSwpAC BlCrvAng BlTwist BlChord BlAFID + (m) (m) (m) (deg) (deg) (m) (-) + 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.999622705006573e+01 2.565746018075444e+00 1 + 2.119199517912653e+00 0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.931018243810786e+01 3.361938565422448e+00 2 + 4.238399035825307e+00 0.000000000000000e+00 0.000000000000000e+00 -2.621743302803628e-03 1.831714953780435e+01 4.045185045024725e+00 3 + 6.357598553737958e+00 -1.939408866995070e-04 0.000000000000000e+00 -6.412784123456707e-02 1.708763041181490e+01 4.534861529323176e+00 4 + 8.476798071650611e+00 -4.743793103448273e-03 0.000000000000000e+00 -1.978684279841359e-01 1.569212712279918e+01 4.750344090758699e+00 5 + 1.059599758956327e+01 -1.483103448275862e-02 0.000000000000000e+00 -3.150569530999122e-01 1.382289586770404e+01 4.737620755206947e+00 6 + 1.271519710747592e+01 -2.804970443349753e-02 0.000000000000000e+00 -4.200820236296363e-01 1.124554309027298e+01 4.683448688307037e+00 7 + 1.483439662538857e+01 -4.590591133004925e-02 0.000000000000000e+00 -5.312359339597873e-01 8.602632953470145e+00 4.602338372007760e+00 8 + 1.695359614330122e+01 -6.734679802955665e-02 0.000000000000000e+00 -6.413089831677180e-01 6.549224739725965e+00 4.505595976960268e+00 9 + 1.907279566121387e+01 -9.334512315270936e-02 0.000000000000000e+00 -7.594874026577699e-01 5.408188380153923e+00 4.380463162058345e+00 10 + 2.119199517912653e+01 -1.235274876847291e-01 0.000000000000000e+00 -8.814019981123943e-01 4.552816793256156e+00 4.183546777131121e+00 11 + 2.331119469703918e+01 -1.585433990147783e-01 0.000000000000000e+00 -1.022348344095032e+00 3.850103071189125e+00 3.945902894366683e+00 12 + 2.543039421495183e+01 -1.991506896551724e-01 0.000000000000000e+00 -1.183293448295596e+00 3.210053831367405e+00 3.702763428157307e+00 13 + 2.754959373286449e+01 -2.460701477832512e-01 0.000000000000000e+00 -1.342781789240282e+00 2.548277995517243e+00 3.476193009639851e+00 14 + 2.966879325077715e+01 -2.984725615763546e-01 0.000000000000000e+00 -1.515812813319435e+00 1.868987870564891e+00 3.235485886652345e+00 15 + 3.178799276868979e+01 -3.581878325123153e-01 0.000000000000000e+00 -1.698337241682368e+00 1.247026288989173e+00 2.994660335764964e+00 16 + 3.390719228660245e+01 -4.240869950738916e-01 0.000000000000000e+00 -1.908238044665007e+00 7.591906266374636e-01 2.774705218558286e+00 17 + 3.602639180451509e+01 -4.993217733990146e-01 0.000000000000000e+00 -2.133886441082087e+00 4.659000465949885e-01 2.591930205580583e+00 18 + 3.814559132242776e+01 -5.819026600985221e-01 0.000000000000000e+00 -2.384324918476038e+00 2.731580237682558e-01 2.424912635092513e+00 19 + 4.026479084034041e+01 -6.756489655172412e-01 0.000000000000000e+00 -2.659453831887105e+00 1.231485664729688e-01 2.273929330687443e+00 20 + 4.238399035825307e+01 -7.785625123152710e-01 0.000000000000000e+00 -2.957313507988756e+00 -1.889923787502366e-02 2.146862384202469e+00 21 + 4.450318987616572e+01 -8.943162068965517e-01 0.000000000000000e+00 -3.294896483624423e+00 -1.841259535939614e-01 2.051800999525918e+00 22 + 4.662238939407835e+01 -1.022164926108374e+00 0.000000000000000e+00 -3.676725314021781e+00 -3.432314804149588e-01 1.991284282831078e+00 23 + 4.874158891199102e+01 -1.166111724137931e+00 0.000000000000000e+00 -4.102651579820645e+00 -5.034899071419768e-01 1.944879951099011e+00 24 + 5.086078842990366e+01 -1.325395270935961e+00 0.000000000000000e+00 -4.585680344442696e+00 -6.944182383563149e-01 1.888109521438915e+00 25 + 5.297998794781633e+01 -1.504970886699507e+00 0.000000000000000e+00 -5.166689492052464e+00 -9.464479611794926e-01 1.795137265041130e+00 26 + 5.509918746572898e+01 -1.707078275862069e+00 0.000000000000000e+00 -5.829761241403034e+00 -1.331448785580028e+00 1.572950482786750e+00 27 + 5.721838698364163e+01 -1.935478029556650e+00 0.000000000000000e+00 -6.607040906671076e+00 -1.857716459023805e+00 1.205686533770803e+00 28 + 5.933758650155428e+01 -2.194745172413793e+00 0.000000000000000e+00 -7.654100340223317e+00 -2.493070572147947e+00 7.343636341297369e-01 29 + 6.145678601946693e+01 -2.500000000000000e+00 0.000000000000000e+00 -8.281837270494590e+00 -3.205330715589577e+00 1.999999999999999e-01 30 diff --git a/Test_Cases/NREL_2p8_127/NREL-2p8-127_Cp_Ct_Cq.txt b/Test_Cases/NREL_2p8_127/NREL-2p8-127_Cp_Ct_Cq.txt new file mode 100644 index 00000000..2268df83 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/NREL-2p8-127_Cp_Ct_Cq.txt @@ -0,0 +1,111 @@ +# ----- Rotor performance tables for the WISDEM tuning wind turbine ----- +# ------------ Written on Jul-01-21 using the ROSCO toolbox ------------ + +# Pitch angle vector, 30 entries - x axis (matrix columns) (deg) +-5.0 -3.793 -2.586 -1.379 -0.1724 1.034 2.241 3.448 4.655 5.862 7.069 8.276 9.483 10.69 11.9 13.1 14.31 15.52 16.72 17.93 19.14 20.34 21.55 22.76 23.97 25.17 26.38 27.59 28.79 30.0 +# TSR vector, 30 entries - y axis (matrix rows) (-) +2.0 2.345 2.69 3.034 3.379 3.724 4.069 4.414 4.759 5.103 5.448 5.793 6.138 6.483 6.828 7.172 7.517 7.862 8.207 8.552 8.897 9.241 9.586 9.931 10.28 10.62 10.97 11.31 11.66 12.0 +# Wind speed vector - z axis (m/s) +10.68 + +# Power coefficient + +0.005733 0.008358 0.010931 0.013451 0.015923 0.018353 0.020747 0.023112 0.025459 0.027794 0.030128 0.032473 0.034841 0.037250 0.039720 0.042275 0.044947 0.047736 0.050369 0.052438 0.053782 0.054536 0.054902 0.055053 0.055070 0.054924 0.054451 0.053413 0.051671 0.049088 +0.010473 0.014052 0.017571 0.021038 0.024463 0.027857 0.031232 0.034602 0.037982 0.041391 0.044855 0.048407 0.052073 0.055894 0.059917 0.063725 0.066595 0.068386 0.069435 0.070068 0.070525 0.070875 0.070899 0.070223 0.068520 0.065563 0.061477 0.056461 0.050687 0.044351 +0.016648 0.021451 0.026198 0.030903 0.035583 0.040258 0.044950 0.049690 0.054525 0.059496 0.064610 0.069956 0.075525 0.080323 0.083509 0.085464 0.086777 0.087879 0.088967 0.089747 0.089510 0.087678 0.083964 0.078635 0.072110 0.064721 0.056667 0.048586 0.039467 0.029816 +0.024451 0.030790 0.037088 0.043370 0.049664 0.056017 0.062499 0.069156 0.075949 0.082980 0.090401 0.096848 0.101076 0.103789 0.105878 0.107957 0.110172 0.111665 0.111132 0.107849 0.102059 0.094460 0.085644 0.075982 0.066327 0.055369 0.043639 0.032509 0.020157 0.007204 +0.034042 0.042277 0.050504 0.058774 0.067185 0.075810 0.084575 0.093427 0.102846 0.111995 0.118495 0.122686 0.126019 0.129475 0.133430 0.136352 0.136037 0.131773 0.124323 0.114686 0.103692 0.091818 0.079871 0.066581 0.053315 0.038287 0.023162 0.007449 -0.008632 -0.024586 +0.045585 0.056130 0.066777 0.077664 0.088762 0.099834 0.111077 0.123170 0.133767 0.140785 0.145956 0.151011 0.157146 0.162829 0.164232 0.160094 0.151678 0.140464 0.127481 0.113476 0.099240 0.083738 0.067897 0.050473 0.032437 0.013439 -0.006199 -0.025342 -0.045516 -0.065143 +0.059260 0.072709 0.086474 0.100339 0.113961 0.127912 0.142939 0.155463 0.163934 0.171005 0.179040 0.188615 0.194301 0.192393 0.184326 0.172304 0.157818 0.142304 0.125481 0.108163 0.089149 0.070050 0.048899 0.026622 0.003778 -0.018932 -0.042759 -0.066818 -0.089995 -0.111563 +0.075452 0.092497 0.109469 0.125954 0.142837 0.161240 0.176710 0.187609 0.197446 0.209785 0.222490 0.226531 0.221214 0.209858 0.194803 0.177987 0.159296 0.139878 0.119164 0.097278 0.073947 0.048842 0.022621 -0.004023 -0.031153 -0.059069 -0.087357 -0.114578 -0.140484 -0.164736 +0.094511 0.115022 0.134762 0.154737 0.176972 0.196672 0.211032 0.224473 0.242210 0.257277 0.259309 0.251325 0.237445 0.219974 0.200798 0.179364 0.157090 0.133189 0.107637 0.080632 0.051709 0.021678 -0.009667 -0.041001 -0.073080 -0.105950 -0.138447 -0.169104 -0.197971 -0.224775 +0.115766 0.139262 0.162531 0.188762 0.214007 0.233062 0.250893 0.274820 0.291963 0.292630 0.283030 0.267459 0.248387 0.227009 0.203460 0.177863 0.150485 0.121761 0.090582 0.058077 0.023979 -0.011436 -0.047266 -0.084214 -0.121988 -0.160064 -0.196335 -0.230319 -0.262503 -0.292769 +0.138202 0.165180 0.195145 0.226872 0.252196 0.275177 0.305983 0.325658 0.326244 0.316157 0.300345 0.280365 0.256598 0.230927 0.201729 0.171679 0.139290 0.105344 0.069408 0.031095 -0.008598 -0.049591 -0.091288 -0.133915 -0.178094 -0.220525 -0.260789 -0.299211 -0.335296 -0.368913 +0.161551 0.194903 0.233072 0.266466 0.295512 0.333944 0.357168 0.359266 0.350611 0.334697 0.314121 0.289567 0.260693 0.230418 0.196940 0.161915 0.124757 0.085182 0.042894 -0.000790 -0.046411 -0.092800 -0.140820 -0.191037 -0.240613 -0.287931 -0.333389 -0.376354 -0.416036 -0.453961 +0.187222 0.230589 0.273386 0.309857 0.356719 0.384733 0.390248 0.383896 0.370565 0.350414 0.324413 0.295499 0.262058 0.226919 0.188856 0.149185 0.106270 0.060944 0.012546 -0.037082 -0.088941 -0.142059 -0.197711 -0.254659 -0.309941 -0.363301 -0.414317 -0.461320 -0.506034 -0.548809 +0.218182 0.270155 0.315870 0.371977 0.406056 0.416968 0.415541 0.404376 0.386195 0.360803 0.331422 0.297575 0.260704 0.220885 0.178443 0.132842 0.084899 0.032868 -0.022005 -0.078304 -0.136540 -0.197173 -0.261078 -0.325020 -0.387095 -0.447192 -0.502963 -0.555496 -0.605861 -0.653204 +0.254532 0.310663 0.376823 0.417704 0.436754 0.440281 0.435650 0.419393 0.397694 0.368784 0.336011 0.298185 0.257418 0.212716 0.165233 0.114373 0.059332 0.000710 -0.060597 -0.123897 -0.189821 -0.259087 -0.331270 -0.402899 -0.472743 -0.538898 -0.600642 -0.659473 -0.715589 -0.767490 +0.291345 0.362540 0.414077 0.442759 0.456364 0.457699 0.448489 0.431127 0.405674 0.375079 0.338260 0.297381 0.251595 0.202536 0.149608 0.092156 0.031270 -0.034407 -0.103383 -0.174606 -0.248877 -0.327443 -0.408776 -0.488867 -0.566514 -0.639447 -0.707853 -0.773526 -0.835768 -0.891588 +0.334267 0.392389 0.429122 0.454490 0.467414 0.468861 0.458486 0.439783 0.413047 0.379503 0.339810 0.294277 0.244514 0.190251 0.131042 0.067919 -0.000899 -0.074042 -0.150532 -0.230353 -0.313772 -0.402998 -0.493743 -0.583001 -0.669214 -0.748849 -0.825066 -0.898389 -0.966410 -1.025596 +0.357581 0.399673 0.430692 0.453633 0.471348 0.474079 0.465908 0.446519 0.418911 0.382644 0.339619 0.290170 0.235615 0.175506 0.110900 0.039947 -0.035948 -0.117185 -0.202556 -0.291136 -0.385516 -0.485608 -0.586336 -0.686466 -0.780338 -0.868234 -0.953223 -1.034163 -1.107681 -1.169678 +0.359089 0.395909 0.422920 0.446887 0.467916 0.476719 0.470246 0.452129 0.422792 0.384528 0.337886 0.284550 0.224670 0.159553 0.087437 0.009559 -0.074879 -0.164757 -0.258939 -0.357948 -0.463740 -0.575130 -0.688215 -0.798454 -0.900816 -0.998198 -1.092491 -1.181114 -1.259757 -1.324162 +0.352122 0.384922 0.412733 0.437293 0.459923 0.475065 0.473237 0.455603 0.425796 0.384974 0.335221 0.277195 0.212880 0.140688 0.062025 -0.024286 -0.117337 -0.216450 -0.320583 -0.430204 -0.548805 -0.673230 -0.799147 -0.919437 -1.031241 -1.139238 -1.243211 -1.339491 -1.422841 -1.489579 +0.337476 0.371192 0.400519 0.426291 0.450198 0.470638 0.473926 0.458015 0.427354 0.384641 0.331021 0.269346 0.198533 0.120306 0.033570 -0.061171 -0.163388 -0.272615 -0.386793 -0.509148 -0.641390 -0.779702 -0.918883 -1.049570 -1.172336 -1.291740 -1.405715 -1.509537 -1.597202 -1.666605 +0.318547 0.355113 0.386350 0.414679 0.439769 0.463178 0.472160 0.458769 0.428164 0.383342 0.326610 0.259227 0.183042 0.097321 0.002524 -0.100828 -0.213043 -0.332841 -0.458853 -0.594695 -0.741354 -0.895436 -1.047980 -1.189453 -1.324645 -1.456077 -1.580322 -1.691499 -1.783230 -1.855996 +0.296861 0.336357 0.371125 0.401227 0.428782 0.453625 0.468379 0.458572 0.427993 0.381040 0.320153 0.248295 0.165371 0.072165 -0.031080 -0.144120 -0.266822 -0.398094 -0.536575 -0.686751 -0.849789 -1.020458 -1.186248 -1.339816 -1.488593 -1.632618 -1.767333 -1.885639 -1.981441 -2.058554 +0.272813 0.316283 0.353808 0.387167 0.416653 0.443733 0.462868 0.457131 0.426821 0.377287 0.313149 0.235527 0.145893 0.044924 -0.067233 -0.190687 -0.324377 -0.467771 -0.619850 -0.786143 -0.967008 -1.154934 -1.333959 -1.501288 -1.664564 -1.821724 -1.967047 -2.092251 -2.192423 -2.275093 +0.246069 0.293978 0.335450 0.371711 0.404252 0.432681 0.455569 0.454421 0.424708 0.373151 0.304575 0.221274 0.124762 0.015593 -0.106430 -0.240075 -0.386009 -0.542363 -0.709498 -0.892981 -1.093361 -1.298929 -1.491618 -1.674356 -1.852938 -2.023747 -2.179757 -2.311694 -2.416806 -2.506397 +0.216826 0.269453 0.315238 0.355775 0.390496 0.421499 0.446849 0.450470 0.421163 0.367613 0.294770 0.205703 0.101961 -0.016317 -0.147823 -0.293601 -0.452261 -0.622484 -0.805520 -1.007723 -1.229078 -1.452472 -1.659852 -1.859420 -2.054090 -2.239027 -2.405773 -2.544411 -2.655240 -2.753201 +0.185378 0.242932 0.294130 0.338148 0.376456 0.409645 0.437023 0.444746 0.416677 0.361007 0.283893 0.188900 0.076999 -0.050213 -0.192792 -0.350430 -0.522552 -0.707567 -0.908176 -1.130888 -1.374382 -1.615659 -1.839260 -2.056853 -2.268390 -2.467901 -2.645409 -2.790903 -2.908382 -3.016187 +0.151541 0.215077 0.270909 0.319887 0.361564 0.397134 0.425931 0.437697 0.411248 0.353437 0.271813 0.170258 0.050180 -0.086481 -0.240782 -0.411284 -0.597745 -0.798619 -1.017747 -1.262940 -1.529489 -1.788749 -2.030361 -2.267024 -2.496202 -2.710710 -2.898994 -3.051693 -3.176877 -3.295979 +0.116719 0.184724 0.246682 0.300410 0.345826 0.383484 0.414182 0.429382 0.404775 0.344986 0.258834 0.150170 0.022144 -0.125552 -0.291478 -0.476005 -0.677661 -0.895479 -1.134529 -1.404210 -1.694559 -1.972164 -2.233589 -2.490305 -2.737888 -2.967794 -3.166880 -3.327314 -3.461362 -3.593163 +0.083160 0.153221 0.220860 0.279749 0.328690 0.369159 0.401864 0.419718 0.397476 0.335735 0.244382 0.129245 -0.008566 -0.166737 -0.345714 -0.544710 -0.762454 -0.998353 -1.258854 -1.554935 -1.869688 -2.166410 -2.449315 -2.727062 -2.993813 -3.239497 -3.449471 -3.618299 -3.762458 -3.908311 + + +# Thrust coefficient + +0.092617 0.091973 0.091282 0.090551 0.089789 0.089009 0.088223 0.087443 0.086683 0.085957 0.085280 0.084668 0.084140 0.083714 0.083409 0.083241 0.083187 0.083136 0.082900 0.082292 0.081228 0.079766 0.078062 0.076284 0.074489 0.072639 0.070589 0.068103 0.065041 0.061235 +0.107807 0.107099 0.106370 0.105637 0.104916 0.104226 0.103585 0.103012 0.102531 0.102166 0.101942 0.101882 0.102014 0.102313 0.102613 0.102616 0.102036 0.100793 0.099051 0.097090 0.095137 0.093216 0.091122 0.088501 0.085056 0.080536 0.075010 0.068694 0.061744 0.054369 +0.125690 0.125020 0.124378 0.123788 0.123275 0.122867 0.122595 0.122492 0.122590 0.122922 0.123517 0.124280 0.124878 0.124839 0.123887 0.122169 0.120092 0.118075 0.116232 0.114243 0.111480 0.107417 0.101732 0.094621 0.086475 0.077627 0.068292 0.059385 0.049429 0.039068 +0.146469 0.145968 0.145568 0.145305 0.145219 0.145353 0.145746 0.146440 0.147476 0.148736 0.149769 0.149930 0.148898 0.147006 0.144888 0.143119 0.141664 0.139693 0.136101 0.130177 0.122042 0.112323 0.101588 0.090223 0.079407 0.067285 0.054557 0.043004 0.030260 0.017273 +0.170322 0.170162 0.170211 0.170521 0.171142 0.172124 0.173518 0.175280 0.176969 0.177796 0.177163 0.175410 0.173408 0.172028 0.171348 0.169865 0.165714 0.158160 0.147807 0.135540 0.122189 0.108233 0.094835 0.080132 0.065961 0.050014 0.034389 0.018544 0.003193 -0.010886 +0.197455 0.197860 0.198615 0.199780 0.201413 0.203541 0.205932 0.207836 0.208292 0.207137 0.205373 0.204234 0.204557 0.204565 0.200976 0.192600 0.180449 0.165872 0.149876 0.133238 0.117061 0.099744 0.082616 0.064007 0.045159 0.025713 0.006302 -0.011125 -0.028289 -0.044210 +0.228108 0.229335 0.231075 0.233378 0.236206 0.239147 0.241258 0.241561 0.240420 0.239344 0.240052 0.242465 0.241498 0.233969 0.220968 0.204514 0.186057 0.167281 0.147603 0.127937 0.106751 0.086199 0.063660 0.040417 0.017219 -0.004685 -0.025932 -0.045670 -0.063692 -0.079450 +0.262520 0.264837 0.267792 0.271266 0.274765 0.277277 0.277848 0.277232 0.277418 0.280948 0.284986 0.281401 0.269491 0.252166 0.231752 0.210486 0.187865 0.165132 0.141511 0.117131 0.091777 0.064983 0.037642 0.010798 -0.015186 -0.039683 -0.062267 -0.082642 -0.100832 -0.116042 +0.300899 0.304470 0.308545 0.312661 0.315868 0.317175 0.317479 0.319387 0.326537 0.331420 0.324563 0.308564 0.287341 0.263390 0.239016 0.212699 0.186421 0.158835 0.130094 0.100520 0.069495 0.038176 0.006565 -0.023392 -0.051487 -0.077331 -0.101050 -0.121896 -0.139281 -0.152655 +0.343271 0.347913 0.352697 0.356873 0.359360 0.360881 0.364797 0.376183 0.381530 0.371589 0.352097 0.327447 0.300692 0.272771 0.243417 0.212456 0.180280 0.147567 0.112935 0.077849 0.042129 0.006311 -0.028141 -0.060918 -0.090649 -0.117951 -0.142121 -0.162077 -0.177778 -0.190200 +0.389280 0.394727 0.400026 0.404078 0.407075 0.413055 0.429223 0.435350 0.423077 0.400722 0.374104 0.344727 0.312349 0.279252 0.242837 0.206780 0.169140 0.130977 0.091820 0.051267 0.010784 -0.029060 -0.066758 -0.100984 -0.132612 -0.160509 -0.184044 -0.202810 -0.217522 -0.228949 +0.438633 0.445040 0.450918 0.455672 0.463524 0.485007 0.492799 0.479208 0.455888 0.426352 0.393770 0.358519 0.319308 0.280331 0.238875 0.197193 0.154621 0.110858 0.065544 0.020470 -0.024506 -0.067347 -0.107384 -0.144048 -0.176562 -0.204438 -0.227047 -0.244755 -0.258294 -0.268897 +0.491706 0.499452 0.506279 0.515668 0.542884 0.553453 0.539904 0.515588 0.485998 0.450602 0.410018 0.368368 0.323023 0.277884 0.231163 0.184623 0.136206 0.086882 0.036071 -0.013663 -0.062666 -0.108746 -0.151171 -0.189073 -0.222113 -0.249567 -0.271188 -0.287669 -0.300602 -0.310227 +0.549345 0.558514 0.569279 0.602408 0.616664 0.604690 0.582220 0.550051 0.512271 0.468142 0.422118 0.373239 0.323447 0.272627 0.221194 0.168412 0.115188 0.059566 0.003362 -0.051146 -0.103573 -0.152467 -0.196894 -0.235916 -0.269224 -0.295885 -0.316232 -0.332225 -0.344350 -0.352382 +0.612101 0.624375 0.664085 0.681142 0.674153 0.650222 0.621076 0.578484 0.533557 0.482845 0.431122 0.376532 0.321741 0.265249 0.208409 0.150399 0.090234 0.028797 -0.032224 -0.091118 -0.147230 -0.198731 -0.244615 -0.284679 -0.317626 -0.343032 -0.363010 -0.378328 -0.389183 -0.395374 +0.681140 0.722494 0.744937 0.741819 0.723240 0.692359 0.650892 0.603471 0.550332 0.495575 0.437299 0.378355 0.317265 0.255902 0.193374 0.128796 0.063320 -0.003921 -0.070382 -0.133867 -0.193205 -0.246832 -0.294513 -0.334907 -0.366839 -0.391968 -0.411381 -0.425701 -0.435248 -0.438943 +0.784148 0.809192 0.808836 0.792982 0.766161 0.727627 0.678346 0.624772 0.566940 0.506098 0.442987 0.377600 0.311662 0.244545 0.175539 0.105591 0.033001 -0.039972 -0.111103 -0.178920 -0.241079 -0.297271 -0.346084 -0.386032 -0.417835 -0.442342 -0.461133 -0.474603 -0.482332 -0.482920 +0.878798 0.878837 0.863060 0.835105 0.802967 0.756008 0.703552 0.644299 0.581942 0.515391 0.446747 0.375978 0.304277 0.230822 0.156465 0.079145 0.000687 -0.078083 -0.154487 -0.225874 -0.291394 -0.349551 -0.398730 -0.438965 -0.470211 -0.494454 -0.512604 -0.524870 -0.530317 -0.527179 +0.954018 0.939321 0.909436 0.873286 0.832514 0.783431 0.725750 0.663095 0.594833 0.523420 0.448910 0.372835 0.294905 0.216166 0.134425 0.050923 -0.034393 -0.118873 -0.199777 -0.275311 -0.343458 -0.403080 -0.453308 -0.493210 -0.524351 -0.548257 -0.565667 -0.576443 -0.579083 -0.571691 +1.023567 0.991396 0.952287 0.906521 0.858662 0.807150 0.747584 0.679776 0.607111 0.529975 0.450234 0.367981 0.284931 0.198845 0.110913 0.020042 -0.071681 -0.161822 -0.247543 -0.326338 -0.397314 -0.458714 -0.509404 -0.549186 -0.580227 -0.603771 -0.620315 -0.629247 -0.628527 -0.616549 +1.082395 1.041804 0.991706 0.937500 0.883506 0.829745 0.767582 0.695892 0.617983 0.535899 0.450029 0.362870 0.272561 0.180369 0.084918 -0.012918 -0.111052 -0.207054 -0.296861 -0.379668 -0.453228 -0.515758 -0.566811 -0.606870 -0.637885 -0.661022 -0.676524 -0.683203 -0.678594 -0.661917 +1.139470 1.088591 1.028946 0.968630 0.908004 0.850049 0.785703 0.710556 0.628371 0.540937 0.449853 0.355602 0.259321 0.159705 0.057014 -0.047554 -0.152331 -0.253888 -0.348541 -0.434946 -0.510661 -0.574581 -0.626062 -0.666337 -0.697360 -0.720024 -0.734260 -0.738241 -0.729302 -0.707987 +1.193356 1.132284 1.066459 0.998428 0.932385 0.868695 0.802509 0.724743 0.637956 0.545168 0.447725 0.347749 0.244209 0.137366 0.027344 -0.084534 -0.195804 -0.303098 -0.402185 -0.491831 -0.569969 -0.635054 -0.687035 -0.727643 -0.758678 -0.780783 -0.793478 -0.794302 -0.780726 -0.754961 +1.246139 1.176860 1.102810 1.028791 0.956073 0.887434 0.818433 0.738064 0.646836 0.548098 0.445275 0.338296 0.227647 0.113522 -0.003991 -0.123338 -0.241002 -0.353871 -0.457470 -0.550699 -0.630979 -0.697211 -0.749803 -0.790834 -0.821861 -0.843294 -0.854136 -0.851351 -0.832973 -0.803032 +1.297833 1.220927 1.139862 1.058606 0.980276 0.905327 0.833196 0.750616 0.655027 0.550899 0.441477 0.327617 0.209871 0.088199 -0.037295 -0.163462 -0.287985 -0.406413 -0.514793 -0.611346 -0.693698 -0.761096 -0.814426 -0.855942 -0.886923 -0.907540 -0.916195 -0.909382 -0.886156 -0.852355 +1.349499 1.264699 1.176444 1.089146 1.003822 0.923619 0.847140 0.762383 0.662108 0.552546 0.436663 0.315954 0.190856 0.061078 -0.071728 -0.205866 -0.337083 -0.461115 -0.573945 -0.673753 -0.758148 -0.826758 -0.880950 -0.922989 -0.953877 -0.973504 -0.979625 -0.968430 -0.940389 -0.903039 +1.401303 1.308592 1.213895 1.119148 1.027971 0.941861 0.860452 0.772903 0.668581 0.553361 0.431060 0.303363 0.170279 0.032750 -0.108329 -0.249749 -0.387655 -0.517261 -0.634906 -0.737912 -0.824352 -0.894252 -0.949413 -0.991994 -1.022726 -1.041166 -1.044395 -1.028546 -0.995775 -0.955152 +1.452242 1.353400 1.250891 1.149892 1.052236 0.960061 0.872934 0.782638 0.674455 0.553511 0.424528 0.289397 0.148463 0.002987 -0.146530 -0.295534 -0.440250 -0.575517 -0.697662 -0.803821 -0.892330 -0.963626 -1.019849 -1.062972 -1.093473 -1.110511 -1.110480 -1.089791 -1.052396 -1.008724 +1.502155 1.397642 1.288756 1.180858 1.076625 0.977784 0.885198 0.791667 0.679649 0.553086 0.417399 0.274454 0.126013 -0.028498 -0.185977 -0.343001 -0.494588 -0.635562 -0.762201 -0.871489 -0.962109 -1.034918 -1.092283 -1.135935 -1.166113 -1.181520 -1.177866 -1.152220 -1.110323 -1.063759 +1.548197 1.442437 1.326903 1.212074 1.100665 0.995531 0.897392 0.799857 0.684430 0.552127 0.409217 0.259083 0.101756 -0.061061 -0.227233 -0.392126 -0.550655 -0.697385 -0.828511 -0.940928 -1.033720 -1.108161 -1.166734 -1.210891 -1.240644 -1.254176 -1.246561 -1.215880 -1.169616 -1.120255 + + +# Torque coefficient + +0.002876 0.004193 0.005484 0.006749 0.007989 0.009208 0.010409 0.011596 0.012773 0.013945 0.015116 0.016292 0.017480 0.018689 0.019929 0.021210 0.022551 0.023950 0.025271 0.026309 0.026984 0.027362 0.027545 0.027621 0.027630 0.027557 0.027319 0.026798 0.025925 0.024629 +0.004482 0.006014 0.007519 0.009003 0.010469 0.011921 0.013366 0.014808 0.016254 0.017713 0.019195 0.020715 0.022284 0.023919 0.025641 0.027270 0.028499 0.029265 0.029714 0.029985 0.030180 0.030330 0.030340 0.030051 0.029322 0.028057 0.026309 0.024162 0.021691 0.018980 +0.006211 0.008003 0.009774 0.011529 0.013275 0.015019 0.016770 0.018538 0.020342 0.022197 0.024104 0.026099 0.028177 0.029967 0.031155 0.031885 0.032374 0.032786 0.033192 0.033483 0.033394 0.032711 0.031325 0.029337 0.026902 0.024146 0.021141 0.018126 0.014724 0.011124 +0.008085 0.010182 0.012264 0.014342 0.016423 0.018524 0.020667 0.022868 0.025115 0.027440 0.029894 0.032026 0.033424 0.034321 0.035012 0.035699 0.036432 0.036925 0.036749 0.035664 0.033749 0.031236 0.028321 0.025126 0.021933 0.018310 0.014430 0.010750 0.006666 0.002382 +0.010108 0.012554 0.014996 0.017452 0.019950 0.022511 0.025113 0.027742 0.030539 0.033256 0.035186 0.036430 0.037420 0.038446 0.039620 0.040488 0.040395 0.039128 0.036916 0.034054 0.030790 0.027264 0.023717 0.019770 0.015831 0.011369 0.006878 0.002212 -0.002563 -0.007300 +0.012283 0.015124 0.017993 0.020926 0.023916 0.026900 0.029929 0.033187 0.036043 0.037934 0.039327 0.040689 0.042342 0.043873 0.044251 0.043136 0.040869 0.037847 0.034349 0.030575 0.026740 0.022563 0.018294 0.013600 0.008740 0.003621 -0.001670 -0.006828 -0.012264 -0.017552 +0.014614 0.017931 0.021325 0.024745 0.028104 0.031544 0.035250 0.038339 0.040428 0.042171 0.044153 0.046514 0.047916 0.047446 0.045456 0.042492 0.038919 0.035093 0.030945 0.026674 0.021985 0.017275 0.012059 0.006565 0.000932 -0.004669 -0.010545 -0.016478 -0.022194 -0.027513 +0.017154 0.021028 0.024887 0.028635 0.032473 0.036657 0.040174 0.042652 0.044888 0.047693 0.050582 0.051500 0.050292 0.047710 0.044287 0.040464 0.036215 0.031800 0.027091 0.022115 0.016811 0.011104 0.005143 -0.000914 -0.007082 -0.013429 -0.019860 -0.026048 -0.031938 -0.037452 +0.019929 0.024255 0.028417 0.032629 0.037318 0.041472 0.044500 0.047334 0.051075 0.054252 0.054680 0.052997 0.050070 0.046386 0.042342 0.037822 0.033125 0.028085 0.022697 0.017003 0.010904 0.004571 -0.002038 -0.008646 -0.015410 -0.022342 -0.029194 -0.035659 -0.041746 -0.047398 +0.022762 0.027382 0.031957 0.037115 0.042078 0.045825 0.049331 0.054035 0.057406 0.057537 0.055650 0.052588 0.048838 0.044635 0.040005 0.034972 0.029588 0.023941 0.017810 0.011419 0.004715 -0.002249 -0.009294 -0.016558 -0.023985 -0.031472 -0.038603 -0.045286 -0.051614 -0.057565 +0.025454 0.030422 0.035941 0.041785 0.046449 0.050681 0.056355 0.059978 0.060087 0.058229 0.055317 0.051637 0.047259 0.042531 0.037154 0.031619 0.025654 0.019402 0.012783 0.005727 -0.001584 -0.009134 -0.016813 -0.024664 -0.032801 -0.040616 -0.048031 -0.055108 -0.061754 -0.067945 +0.027983 0.033760 0.040371 0.046156 0.051187 0.057844 0.061866 0.062230 0.060731 0.057974 0.054410 0.050157 0.045156 0.039912 0.034113 0.028046 0.021610 0.014755 0.007430 -0.000137 -0.008039 -0.016074 -0.024392 -0.033090 -0.041677 -0.049874 -0.057748 -0.065190 -0.072063 -0.078632 +0.030608 0.037697 0.044694 0.050656 0.058317 0.062897 0.063799 0.062760 0.060581 0.057286 0.053036 0.048309 0.042842 0.037097 0.030875 0.024389 0.017373 0.009963 0.002051 -0.006062 -0.014540 -0.023224 -0.032322 -0.041632 -0.050670 -0.059393 -0.067733 -0.075418 -0.082728 -0.089721 +0.033772 0.041816 0.048892 0.057577 0.062852 0.064541 0.064320 0.062592 0.059778 0.055847 0.051300 0.046061 0.040353 0.034190 0.027621 0.020562 0.013141 0.005088 -0.003406 -0.012120 -0.021134 -0.030520 -0.040411 -0.050309 -0.059917 -0.069219 -0.077852 -0.085983 -0.093779 -0.101107 +0.037408 0.045658 0.055381 0.061390 0.064189 0.064708 0.064027 0.061638 0.058449 0.054200 0.049383 0.043824 0.037832 0.031263 0.024284 0.016809 0.008720 0.000104 -0.008906 -0.018209 -0.027898 -0.038078 -0.048686 -0.059214 -0.069479 -0.079201 -0.088276 -0.096922 -0.105169 -0.112797 +0.040760 0.050721 0.057931 0.061943 0.063847 0.064034 0.062745 0.060316 0.056755 0.052475 0.047324 0.041605 0.035199 0.028335 0.020931 0.012893 0.004375 -0.004814 -0.014464 -0.024428 -0.034819 -0.045810 -0.057189 -0.068394 -0.079257 -0.089461 -0.099031 -0.108219 -0.116927 -0.124736 +0.044620 0.052378 0.057282 0.060668 0.062393 0.062586 0.061201 0.058705 0.055136 0.050658 0.045360 0.039282 0.032639 0.025396 0.017492 0.009066 -0.000120 -0.009884 -0.020094 -0.030749 -0.041884 -0.053794 -0.065908 -0.077822 -0.089331 -0.099961 -0.110134 -0.119922 -0.129002 -0.136902 +0.045638 0.051011 0.054970 0.057898 0.060159 0.060507 0.059464 0.056990 0.053466 0.048837 0.043346 0.037035 0.030072 0.022400 0.014154 0.005098 -0.004588 -0.014956 -0.025852 -0.037158 -0.049204 -0.061979 -0.074835 -0.087614 -0.099595 -0.110814 -0.121661 -0.131991 -0.141374 -0.149287 +0.043905 0.048407 0.051710 0.054640 0.057211 0.058288 0.057496 0.055281 0.051694 0.047016 0.041313 0.034791 0.027470 0.019508 0.010691 0.001169 -0.009155 -0.020145 -0.031660 -0.043766 -0.056701 -0.070320 -0.084147 -0.097626 -0.110141 -0.122048 -0.133577 -0.144413 -0.154028 -0.161903 +0.041317 0.045166 0.048429 0.051311 0.053967 0.055743 0.055529 0.053460 0.049962 0.045172 0.039334 0.032526 0.024979 0.016508 0.007278 -0.002850 -0.013768 -0.025398 -0.037617 -0.050479 -0.064396 -0.078996 -0.093770 -0.107885 -0.121004 -0.133676 -0.145876 -0.157174 -0.166954 -0.174785 +0.038064 0.041867 0.045175 0.048081 0.050778 0.053083 0.053454 0.051660 0.048201 0.043384 0.037336 0.030380 0.022393 0.013569 0.003786 -0.006900 -0.018429 -0.030748 -0.043627 -0.057427 -0.072343 -0.087943 -0.103641 -0.118381 -0.132228 -0.145696 -0.158551 -0.170261 -0.180149 -0.187977 +0.034588 0.038559 0.041951 0.045027 0.047751 0.050293 0.051268 0.049814 0.046491 0.041624 0.035464 0.028147 0.019875 0.010567 0.000274 -0.010948 -0.023133 -0.036140 -0.049823 -0.064573 -0.080497 -0.097228 -0.113791 -0.129153 -0.143832 -0.158103 -0.171594 -0.183666 -0.193626 -0.201527 +0.031074 0.035208 0.038848 0.041999 0.044883 0.047484 0.049028 0.048001 0.044800 0.039886 0.033512 0.025991 0.017310 0.007554 -0.003253 -0.015086 -0.027930 -0.041671 -0.056166 -0.071886 -0.088952 -0.106817 -0.124171 -0.140246 -0.155820 -0.170896 -0.184997 -0.197381 -0.207409 -0.215481 +0.027565 0.031958 0.035749 0.039120 0.042099 0.044835 0.046769 0.046189 0.043127 0.038122 0.031641 0.023798 0.014741 0.004539 -0.006793 -0.019267 -0.032775 -0.047264 -0.062630 -0.079433 -0.097708 -0.116696 -0.134785 -0.151692 -0.168190 -0.184069 -0.198753 -0.211404 -0.221525 -0.229878 +0.024029 0.028707 0.032757 0.036298 0.039475 0.042252 0.044487 0.044375 0.041473 0.036438 0.029742 0.021608 0.012183 0.001523 -0.010393 -0.023443 -0.037694 -0.052962 -0.069283 -0.087200 -0.106767 -0.126841 -0.145657 -0.163502 -0.180941 -0.197620 -0.212855 -0.225738 -0.236003 -0.244751 +0.020486 0.025458 0.029784 0.033614 0.036894 0.039823 0.042218 0.042560 0.039792 0.034732 0.027850 0.019435 0.009633 -0.001542 -0.013966 -0.027739 -0.042730 -0.058812 -0.076106 -0.095210 -0.116123 -0.137230 -0.156823 -0.175678 -0.194071 -0.211544 -0.227298 -0.240396 -0.250867 -0.260123 +0.016964 0.022230 0.026916 0.030944 0.034449 0.037486 0.039992 0.040698 0.038130 0.033035 0.025979 0.017286 0.007046 -0.004595 -0.017642 -0.032068 -0.047818 -0.064749 -0.083106 -0.103486 -0.125768 -0.147847 -0.168309 -0.188221 -0.207578 -0.225835 -0.242079 -0.255393 -0.266143 -0.276008 +0.013445 0.019081 0.024035 0.028380 0.032078 0.035233 0.037788 0.038832 0.036486 0.031357 0.024115 0.015105 0.004452 -0.007673 -0.021362 -0.036489 -0.053031 -0.070853 -0.090294 -0.112047 -0.135695 -0.158696 -0.180132 -0.201128 -0.221461 -0.240492 -0.257196 -0.270744 -0.281850 -0.292416 +0.010049 0.015904 0.021238 0.025864 0.029774 0.033016 0.035659 0.036967 0.034849 0.029701 0.022284 0.012929 0.001906 -0.010809 -0.025095 -0.040981 -0.058343 -0.077096 -0.097676 -0.120894 -0.145892 -0.169792 -0.192299 -0.214401 -0.235717 -0.255510 -0.272650 -0.286463 -0.298004 -0.309351 +0.006954 0.012812 0.018468 0.023393 0.027485 0.030869 0.033604 0.035097 0.033237 0.028074 0.020435 0.010808 -0.000716 -0.013943 -0.028909 -0.045549 -0.063757 -0.083483 -0.105266 -0.130024 -0.156344 -0.181156 -0.204813 -0.228038 -0.250344 -0.270888 -0.288446 -0.302563 -0.314618 -0.326814 + diff --git a/Test_Cases/NREL_2p8_127/NREL-2p8-127_DISCON.IN b/Test_Cases/NREL_2p8_127/NREL-2p8-127_DISCON.IN new file mode 100644 index 00000000..ec720eb5 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/NREL-2p8-127_DISCON.IN @@ -0,0 +1,173 @@ +! Controller parameter input file for the NREL-2p8-127 wind turbine +! - File written using ROSCO version 2.8.0 controller tuning logic on 04/10/23 + +!------- DEBUG ------------------------------------------------------------ +2 ! LoggingLevel - (0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)) +0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) + +!------- CONTROLLER FLAGS ------------------------------------------------- +1 ! F_LPFType - (1: first-order low-pass filter, 2: second-order low-pass filter), [rad/s] (currently filters generator speed and pitch control signals +0 ! F_NotchType - Notch on the measured generator speed and/or tower fore-aft motion (for floating) {0: disable, 1: generator speed, 2: tower-top fore-aft motion, 3: generator speed and tower-top fore-aft motion} +1 ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {0: off, 1: 1P reductions, 2: 1P+2P reductions} +3 ! VS_ControlMode - Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control with constant torque, 3: TSR tracking PI control with constant power} +1 ! PC_ControlMode - Blade pitch control mode {0: No pitch, fix to fine pitch, 1: active PI blade pitch control} +0 ! Y_ControlMode - Yaw control mode {0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC} +1 ! SS_Mode - Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing} +2 ! WE_Mode - Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Immersion and Invariance Estimator, 2: Extended Kalman Filter} +1 ! PS_Mode - Pitch saturation mode {0: no pitch saturation, 1: implement pitch saturation} +0 ! SD_Mode - Shutdown mode {0: no shutdown procedure, 1: pitch to max pitch at shutdown} +0 ! Fl_Mode - Floating specific feedback mode {0: no nacelle velocity feedback, 1: feed back translational velocity, 2: feed back rotational veloicty} +0 ! TD_Mode - Tower damper mode {0: no tower damper, 1: feed back translational nacelle accelleration to pitch angle} +0 ! Flp_Mode - Flap control mode {0: no flap control, 1: steady state flap angle, 2: Proportional flap control, 2: Cyclic (1P) flap control} +0 ! OL_Mode - Open loop control mode {0: no open loop control, 1: open loop control vs. time} +0 ! PA_Mode - Pitch actuator mode {0 - not used, 1 - first order filter, 2 - second order filter} +0 ! PF_Mode - Pitch fault mode {0 - not used, 1 - constant offset on one or more blades} +0 ! AWC_Mode - Active wake control {0 - not used, 1 - complex number method, 2 - Coleman transform method} +0 ! Ext_Mode - External control mode {0 - not used, 1 - call external dynamic library} +0 ! ZMQ_Mode - Fuse ZeroMQ interface {0: unused, 1: Yaw Control} +0 ! CC_Mode - Cable control mode [0- unused, 1- User defined, 2- Open loop control] +0 ! StC_Mode - Structural control mode [0- unused, 1- User defined, 2- Open loop control] + +!------- FILTERS ---------------------------------------------------------- +2.07080 ! F_LPFCornerFreq - Corner frequency (-3dB point) in the low-pass filters, [rad/s] +0.00000 ! F_LPFDamping - Damping coefficient {used only when F_FilterType = 2} [-] +0.00000 ! F_NotchCornerFreq - Natural frequency of the notch filter, [rad/s] +0.000000 0.250000 ! F_NotchBetaNumDen - Two notch damping values (numerator and denominator, resp) - determines the width and depth of the notch, [-] +0.62830 ! F_SSCornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the setpoint smoother, [rad/s]. +0.20944 ! F_WECornerFreq - Corner frequency (-3dB point) in the first order low pass filter for the wind speed estimate [rad/s]. +0.17952 ! F_YawErr - Low pass filter corner frequency for yaw controller [rad/s]. +0.000000 1.000000 ! F_FlCornerFreq - Natural frequency and damping in the second order low pass filter of the tower-top fore-aft motion for floating feedback control [rad/s, -]. +0.01042 ! F_FlHighPassFreq - Natural frequency of first-order high-pass filter for nacelle fore-aft motion [rad/s]. +0.000000 1.000000 ! F_FlpCornerFreq - Corner frequency and damping in the second order low pass filter of the blade root bending moment for flap control [rad/s, -]. + +!------- BLADE PITCH CONTROL ---------------------------------------------- +30 ! PC_GS_n - Amount of gain-scheduling table entries +0.075990 0.104503 0.127446 0.147544 0.164940 0.181678 0.197073 0.211624 0.225753 0.238993 0.252021 0.264458 0.276515 0.288229 0.299596 0.310932 0.321646 0.332112 0.342584 0.353105 0.363012 0.373072 0.382733 0.392195 0.401619 0.411107 0.420504 0.429096 0.437752 0.446357 ! PC_GS_angles - Gain-schedule table: pitch angles [rad]. +-0.024441 -0.021943 -0.019855 -0.018085 -0.016566 -0.015246 -0.014091 -0.013070 -0.012161 -0.011347 -0.010614 -0.009951 -0.009347 -0.008795 -0.008289 -0.007824 -0.007394 -0.006995 -0.006625 -0.006280 -0.005958 -0.005657 -0.005375 -0.005109 -0.004860 -0.004624 -0.004401 -0.004191 -0.003991 -0.003802 ! PC_GS_KP - Gain-schedule table: pitch controller kp gains [s]. +-0.000804 -0.000732 -0.000672 -0.000621 -0.000577 -0.000539 -0.000505 -0.000476 -0.000450 -0.000426 -0.000405 -0.000386 -0.000369 -0.000353 -0.000338 -0.000325 -0.000312 -0.000301 -0.000290 -0.000280 -0.000271 -0.000262 -0.000254 -0.000246 -0.000239 -0.000232 -0.000226 -0.000220 -0.000214 -0.000209 ! PC_GS_KI - Gain-schedule table: pitch controller ki gains [-]. +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_KD - Gain-schedule table: pitch controller kd gains +0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 ! PC_GS_TF - Gain-schedule table: pitch controller tf gains (derivative filter) +1.570000000000 ! PC_MaxPit - Maximum physical pitch limit, [rad]. +-0.17453000000 ! PC_MinPit - Minimum physical pitch limit, [rad]. +0.174500000000 ! PC_MaxRat - Maximum pitch rate (in absolute value) in pitch controller, [rad/s]. +-0.17450000000 ! PC_MinRat - Minimum pitch rate (in absolute value) in pitch controller, [rad/s]. +122.9096700000 ! PC_RefSpd - Desired (reference) HSS speed for pitch controller, [rad/s]. +0.000000000000 ! PC_FinePit - Record 5: Below-rated pitch angle set-point, [rad] +0.017450000000 ! PC_Switch - Angle above lowest minimum pitch angle for switch, [rad] + +!------- INDIVIDUAL PITCH CONTROL ----------------------------------------- +9.120000 11.400000 ! IPC_Vramp - Start and end wind speeds for cut-in ramp function. First entry: IPC inactive, second entry: IPC fully active. [m/s] +2 ! IPC_SatMode - IPC Saturation method (0 - no saturation (except by PC_MinPit), 1 - saturate by PS_BldPitchMin, 2 - saturate sotfly (full IPC cycle) by PC_MinPit, 3 - saturate softly by PS_BldPitchMin) +0.3 ! IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from IPC), [rad] +0.000e+00 0.000e+00 ! IPC_KP - Proportional gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +5.200e-09 0.000e+00 ! IPC_KI - Integral gain for the individual pitch controller: first parameter for 1P reductions, second for 2P reductions, [-] +0.000000 0.000000 ! IPC_aziOffset - Phase offset added to the azimuth angle for the individual pitch controller, [rad]. +0.0 ! IPC_CornerFreqAct - Corner frequency of the first-order actuators model, to induce a phase lag in the IPC signal {0: Disable}, [rad/s] + +!------- VS TORQUE CONTROL ------------------------------------------------ +93.94773000000 ! VS_GenEff - Generator efficiency mechanical power -> electrical power, [should match the efficiency defined in the generator properties!], [%] +24248.54567000 ! VS_ArSatTq - Above rated generator torque PI control saturation, [Nm] +1500000.000000 ! VS_MaxRat - Maximum torque rate (in absolute value) in torque controller, [Nm/s]. +26673.40024000 ! VS_MaxTq - Maximum generator torque in Region 3 (HSS side), [Nm]. +0.000000000000 ! VS_MinTq - Minimum generator torque (HSS side), [Nm]. +37.81562000000 ! VS_MinOMSpd - Minimum generator speed [rad/s] +1.931170000000 ! VS_Rgn2K - Generator torque constant in Region 2 (HSS side), [Nm/(rad/s)^2] +2800000.000000 ! VS_RtPwr - Wind turbine rated power [W] +24248.54567000 ! VS_RtTq - Rated torque, [Nm]. +122.9096700000 ! VS_RefSpd - Rated generator speed [rad/s] +1 ! VS_n - Number of generator PI torque controller gains +-600.450450000 ! VS_KP - Proportional gain for generator PI torque controller [-]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +-85.3230300000 ! VS_KI - Integral gain for generator PI torque controller [s]. (Only used in the transitional 2.5 region if VS_ControlMode =/ 2) +8.25 ! VS_TSRopt - Power-maximizing region 2 tip-speed-ratio [rad]. + +!------- SETPOINT SMOOTHER --------------------------------------------- +1.00000 ! SS_VSGain - Variable speed torque controller setpoint smoother gain, [-]. +0.00100 ! SS_PCGain - Collective pitch controller setpoint smoother gain, [-]. + +!------- WIND SPEED ESTIMATOR --------------------------------------------- +63.457 ! WE_BladeRadius - Blade length (distance from hub center to blade tip), [m] +1 ! WE_CP_n - Amount of parameters in the Cp array +0.0 ! WE_CP - Parameters that define the parameterized CP(lambda) function +0.0 ! WE_Gamma - Adaption gain of the wind speed estimator algorithm [m/rad] +97.0 ! WE_GearboxRatio - Gearbox ratio [>=1], [-] +66347470.49793 ! WE_Jtot - Total drivetrain inertia, including blades, hub and casted generator inertia to LSS, [kg m^2] +1.225 ! WE_RhoAir - Air density, [kg m^-3] +"NREL-2p8-127_Cp_Ct_Cq.txt" ! PerfFileName - File containing rotor performance tables (Cp,Ct,Cq) (absolute path or relative to this file) +30 30 ! PerfTableSize - Size of rotor performance tables, first number refers to number of blade pitch angles, second number referse to number of tip-speed ratios +60 ! WE_FOPoles_N - Number of first-order system poles used in EKF +3.0000 3.2897 3.5793 3.8690 4.1586 4.4483 4.7379 5.0276 5.3172 5.6069 5.8966 6.1862 6.4759 6.7655 7.0552 7.3448 7.6345 7.9241 8.2138 8.5034 8.7931 9.0828 9.3724 9.6621 9.9517 10.2414 10.5310 10.8207 11.1103 11.4000 11.8533 12.3067 12.7600 13.2133 13.6667 14.1200 14.5733 15.0267 15.4800 15.9333 16.3867 16.8400 17.2933 17.7467 18.2000 18.6533 19.1067 19.5600 20.0133 20.4667 20.9200 21.3733 21.8267 22.2800 22.7333 23.1867 23.6400 24.0933 24.5467 25.0000 ! WE_FOPoles_v - Wind speeds corresponding to first-order system poles [m/s] +-0.01246409 -0.01366752 -0.01487095 -0.01607438 -0.01727781 -0.01848123 -0.01968466 -0.02088809 -0.02209152 -0.02329495 -0.02449838 -0.02570181 -0.02690524 -0.02810867 -0.02931210 -0.03051553 -0.03171896 -0.03292239 -0.03412582 -0.03532924 -0.03653267 -0.03773610 -0.03893953 -0.04014296 -0.03876534 -0.03527029 -0.03014051 -0.02417865 -0.01714772 -0.00815401 0.00419449 -0.00048731 -0.00466276 -0.01071643 -0.01560323 -0.02192148 -0.02762358 -0.03415246 -0.03995877 -0.04666898 -0.05357684 -0.06017881 -0.06783693 -0.07545934 -0.08285355 -0.09099765 -0.09868985 -0.10643139 -0.11560625 -0.12454786 -0.13353192 -0.14319807 -0.15242426 -0.16161402 -0.17122186 -0.18158081 -0.19160223 -0.20032125 -0.20983653 -0.21909214 ! WE_FOPoles - First order system poles [1/s] + +!------- YAW CONTROL ------------------------------------------------------ +0.00000 ! Y_uSwitch - Wind speed to switch between Y_ErrThresh. If zero, only the second value of Y_ErrThresh is used [m/s] +4.000000 8.000000 ! Y_ErrThresh - Yaw error threshold/deadbands. Turbine begins to yaw when it passes this. If Y_uSwitch is zero, only the second value is used. [deg]. +0.00870 ! Y_Rate - Yaw rate [rad/s] +0.00000 ! Y_MErrSet - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.00000 ! Y_IPC_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from yaw-by-IPC), [rad] +0.00000 ! Y_IPC_KP - Yaw-by-IPC proportional controller gain Kp +0.00000 ! Y_IPC_KI - Yaw-by-IPC integral controller gain Ki + +!------- TOWER FORE-AFT DAMPING ------------------------------------------- +-1.00000 ! FA_KI - Integral gain for the fore-aft tower damper controller [rad s/m] +0.0 ! FA_HPFCornerFreq - Corner frequency (-3dB point) in the high-pass filter on the fore-aft acceleration signal [rad/s] +0.0 ! FA_IntSat - Integrator saturation (maximum signal amplitude contribution to pitch from FA damper), [rad] + +!------- MINIMUM PITCH SATURATION ------------------------------------------- +60 ! PS_BldPitchMin_N - Number of values in minimum blade pitch lookup table (should equal number of values in PS_WindSpeeds and PS_BldPitchMin) +3.0000 3.2897 3.5793 3.8690 4.1586 4.4483 4.7379 5.0276 5.3172 5.6069 5.8966 6.1862 6.4759 6.7655 7.0552 7.3448 7.6345 7.9241 8.2138 8.5034 8.7931 9.0828 9.3724 9.6621 9.9517 10.2414 10.5310 10.8207 11.1103 11.4000 11.8533 12.3067 12.7600 13.2133 13.6667 14.1200 14.5733 15.0267 15.4800 15.9333 16.3867 16.8400 17.2933 17.7467 18.2000 18.6533 19.1067 19.5600 20.0133 20.4667 20.9200 21.3733 21.8267 22.2800 22.7333 23.1867 23.6400 24.0933 24.5467 25.0000 ! PS_WindSpeeds - Wind speeds corresponding to minimum blade pitch angles [m/s] +0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.01902632 0.03121162 0.04101621 0.04957537 0.05812141 0.06604528 0.07366393 0.08564088 0.09644430 0.10731742 0.11740081 0.12723365 0.13691718 0.14655371 0.15552079 0.16457871 0.17358206 0.18261499 0.19163393 0.20072294 0.20968649 0.21849678 0.22748802 0.23597095 0.24444734 0.25312967 0.26178025 0.27046099 0.27863869 0.28691931 0.29527580 0.30349928 0.31191439 0.32017189 0.32834804 0.33653924 0.34452172 ! PS_BldPitchMin - Minimum blade pitch angles [rad] + +!------- SHUTDOWN ----------------------------------------------------------- +0.436300000000 ! SD_MaxPit - Maximum blade pitch angle to initiate shutdown, [rad] +0.418880000000 ! SD_CornerFreq - Cutoff Frequency for first order low-pass filter for blade pitch angle, [rad/s] + +!------- Floating ----------------------------------------------------------- +0.000000000000 ! Fl_Kp - Nacelle velocity proportional feedback gain [s] + +!------- FLAP ACTUATION ----------------------------------------------------- +0.000000000000 ! Flp_Angle - Initial or steady state flap angle [rad] +0.00000000e+00 ! Flp_Kp - Blade root bending moment proportional gain for flap control [s] +0.00000000e+00 ! Flp_Ki - Flap displacement integral gain for flap control [-] +0.174500000000 ! Flp_MaxPit - Maximum (and minimum) flap pitch angle [rad] + +!------- Open Loop Control ----------------------------------------------------- +"unused" ! OL_Filename - Input file with open loop timeseries (absolute path or relative to this file) +0 ! Ind_Breakpoint - The column in OL_Filename that contains the breakpoint (time if OL_Mode = 1) +0 ! Ind_BldPitch - The column in OL_Filename that contains the blade pitch input in rad +0 ! Ind_GenTq - The column in OL_Filename that contains the generator torque in Nm +0 ! Ind_YawRate - The column in OL_Filename that contains the nacelle yaw rate rad/s +0 ! Ind_CableControl - The column(s) in OL_Filename that contains the cable control inputs in m [Used with CC_Mode = 2, must be the same size as CC_Group_N] +0 ! Ind_StructControl - The column(s) in OL_Filename that contains the structural control inputs [Used with StC_Mode = 2, must be the same size as StC_Group_N] + +!------- Pitch Actuator Model ----------------------------------------------------- +3.140000000000 ! PA_CornerFreq - Pitch actuator bandwidth/cut-off frequency [rad/s] +0.707000000000 ! PA_Damping - Pitch actuator damping ratio [-, unused if PA_Mode = 1] + +!------- Pitch Actuator Faults ----------------------------------------------------- +0.00000000 0.00000000 0.00000000 ! PF_Offsets - Constant blade pitch offsets for blades 1-3 [rad] + +!------- Active Wake Control ----------------------------------------------------- +1 ! AWC_NumModes - Number of user-defined AWC forcing modes +1 ! AWC_n - Azimuthal mode number(s) (i.e., the number and direction of the lobes of the wake structure) +1 ! AWC_harmonic - Harmonic(s) to apply in the AWC Inverse Coleman Transformation (only used when AWC_Mode = 2) +0.0500 ! AWC_freq - Frequency(s) of forcing mode(s) [Hz] +1.0000 ! AWC_amp - Pitch amplitude(s) of individual forcing mode(s) [deg] +0.0000 ! AWC_clockangle - Initial angle(s) of forcing mode(s) [deg] + +!------- External Controller Interface ----------------------------------------------------- +"unused" ! DLL_FileName - Name/location of the dynamic library in the Bladed-DLL format +"unused" ! DLL_InFile - Name of input file sent to the DLL (-) +"DISCON" ! DLL_ProcName - Name of procedure in DLL to be called (-) + +!------- ZeroMQ Interface --------------------------------------------------------- +"tcp://localhost:5555" ! ZMQ_CommAddress - Communication address for ZMQ server, (e.g. "tcp://localhost:5555") +2 ! ZMQ_UpdatePeriod - Call ZeroMQ every [x] seconds, [s] + +!------- Cable Control --------------------------------------------------------- +1 ! CC_Group_N - Number of cable control groups + 0 ! CC_GroupIndex - First index for cable control group, should correspond to deltaL +20.000000 ! CC_ActTau - Time constant for line actuator [s] + +!------- Structural Controllers --------------------------------------------------------- +1 ! StC_Group_N - Number of cable control groups + 0 ! StC_GroupIndex - First index for structural control group, options specified in ServoDyn summary output diff --git a/Test_Cases/NREL_2p8_127/NREL-2p8-127_ElastoDyn.dat b/Test_Cases/NREL_2p8_127/NREL-2p8-127_ElastoDyn.dat new file mode 100644 index 00000000..6cced857 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/NREL-2p8-127_ElastoDyn.dat @@ -0,0 +1,210 @@ +------- ELASTODYN v1.03.* INPUT FILE ------------------------------------------- +Generated with AeroElasticSE FAST driver +---------------------- SIMULATION CONTROL -------------------------------------- +False Echo - Echo input data to ".ech" (flag) +3 Method - Integration method: {1: RK4, 2: AB4, or 3: ABM4} (-) +default DT Integration time step (s) +---------------------- DEGREES OF FREEDOM -------------------------------------- +True FlapDOF1 - First flapwise blade mode DOF (flag) +True FlapDOF2 - Second flapwise blade mode DOF (flag) +True EdgeDOF - First edgewise blade mode DOF (flag) +False TeetDOF - Rotor-teeter DOF (flag) [unused for 3 blades] +False DrTrDOF - Drivetrain rotational-flexibility DOF (flag) +True GenDOF - Generator DOF (flag) +False YawDOF - Yaw DOF (flag) +False TwFADOF1 - First fore-aft tower bending-mode DOF (flag) +False TwFADOF2 - Second fore-aft tower bending-mode DOF (flag) +False TwSSDOF1 - First side-to-side tower bending-mode DOF (flag) +False TwSSDOF2 - Second side-to-side tower bending-mode DOF (flag) +False PtfmSgDOF - Platform horizontal surge translation DOF (flag) +False PtfmSwDOF - Platform horizontal sway translation DOF (flag) +False PtfmHvDOF - Platform vertical heave translation DOF (flag) +False PtfmRDOF - Platform roll tilt rotation DOF (flag) +False PtfmPDOF - Platform pitch tilt rotation DOF (flag) +False PtfmYDOF - Platform yaw rotation DOF (flag) +---------------------- INITIAL CONDITIONS -------------------------------------- +0.0 OoPDefl - Initial out-of-plane blade-tip displacement (meters) +0.0 IPDefl - Initial in-plane blade-tip deflection (meters) +0.0 BlPitch(1) - Blade 1 initial pitch (degrees) +0.0 BlPitch(2) - Blade 2 initial pitch (degrees) +0.0 BlPitch(3) - Blade 3 initial pitch (degrees) [unused for 2 blades] +0.0 TeetDefl - Initial or fixed teeter angle (degrees) [unused for 3 blades] +0.0 Azimuth - Initial azimuth angle for blade 1 (degrees) +7.223281620282807 RotSpeed - Initial or fixed rotor speed (rpm) +0.0 NacYaw - Initial or fixed nacelle-yaw angle (degrees) +0.0 TTDspFA - Initial fore-aft tower-top displacement (meters) +0.0 TTDspSS - Initial side-to-side tower-top displacement (meters) +0.0 PtfmSurge - Initial or fixed horizontal surge translational displacement of platform (meters) +0.0 PtfmSway - Initial or fixed horizontal sway translational displacement of platform (meters) +0.0 PtfmHeave - Initial or fixed vertical heave translational displacement of platform (meters) +0.0 PtfmRoll - Initial or fixed roll tilt rotational displacement of platform (degrees) +0.0 PtfmPitch - Initial or fixed pitch tilt rotational displacement of platform (degrees) +0.0 PtfmYaw - Initial or fixed yaw rotational displacement of platform (degrees) +---------------------- TURBINE CONFIGURATION ----------------------------------- +3 NumBl - Number of blades (-) +63.45678601946693 TipRad - The distance from the rotor apex to the blade tip (meters) +2.0 HubRad - The distance from the rotor apex to the blade root (meters) +-3.0 PreCone(1) - Blade 1 cone angle (degrees) +-3.0 PreCone(2) - Blade 2 cone angle (degrees) +-3.0 PreCone(3) - Blade 3 cone angle (degrees) [unused for 2 blades] +0.0 HubCM - Distance from rotor apex to hub mass [positive downwind] (meters) +0.0 UndSling - Undersling length [distance from teeter pin to the rotor apex] (meters) [unused for 3 blades] +0.0 Delta3 - Delta-3 angle for teetering rotors (degrees) [unused for 3 blades] +0.0 AzimB1Up - Azimuth value to use for I/O when blade 1 points up (degrees) +-5.0 OverHang - Distance from yaw axis to rotor apex [3 blades] or teeter pin [2 blades] (meters) +0.0 ShftGagL - Distance from rotor apex [3 blades] or teeter pin [2 blades] to shaft strain gages [positive for upwind rotors] (meters) +-4.999629720311564 ShftTilt - Rotor shaft tilt angle (degrees) +0.8829822658380706 NacCMxn - Downwind distance from the tower-top to the nacelle CM (meters) +-0.08924556522324154 NacCMyn - Lateral distance from the tower-top to the nacelle CM (meters) +0.8326312050685473 NacCMzn - Vertical distance from the tower-top to the nacelle CM (meters) +0.0 NcIMUxn - Downwind distance from the tower-top to the nacelle IMU (meters) +0.0 NcIMUyn - Lateral distance from the tower-top to the nacelle IMU (meters) +0.0 NcIMUzn - Vertical distance from the tower-top to the nacelle IMU (meters) +1.1177004388298077 Twr2Shft - Vertical distance from the tower-top to the rotor shaft (meters) +86.5 TowerHt - Height of tower above ground level [onshore] or MSL [offshore] (meters) +0.0 TowerBsHt - Height of tower base above ground level [onshore] or MSL [offshore] (meters) +0.0 PtfmCMxt - Downwind distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters) +0.0 PtfmCMyt - Lateral distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters) +0.0 PtfmCMzt - Vertical distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters) +0.0 PtfmRefzt - Vertical distance from the ground level [onshore] or MSL [offshore] to the platform reference point (meters) +---------------------- MASS AND INERTIA ---------------------------------------- +0.0 TipMass(1) - Tip-brake mass, blade 1 (kg) +0.0 TipMass(2) - Tip-brake mass, blade 2 (kg) +0.0 TipMass(3) - Tip-brake mass, blade 3 (kg) [unused for 2 blades] +7482.264184443234 HubMass - Hub mass (kg) +28639.287453422658 HubIner - Hub inertia about rotor axis [3 blades] or teeter axis [2 blades] (kg m^2) +4940.938090969189 GenIner - Generator inertia about HSS (kg m^2) +113487.2812241146 NacMass - Nacelle mass (kg) +693579.6265889656 NacYIner - Nacelle inertia about yaw axis (kg m^2) +3353.0472655982394 YawBrMass - Yaw bearing mass (kg) +0.0 PtfmMass - Platform mass (kg) +0.0 PtfmRIner - Platform inertia for roll tilt rotation about the platform CM (kg m^2) +0.0 PtfmPIner - Platform inertia for pitch tilt rotation about the platform CM (kg m^2) +0.0 PtfmYIner - Platform inertia for yaw rotation about the platform CM (kg m^2) +---------------------- BLADE --------------------------------------------------- +50 BldNodes - Number of blade nodes (per blade) used for analysis (-) +"NREL-2p8-127_ElastoDyn_blade.dat" BldFile1 - Name of file containing properties for blade 1 (quoted string) +"NREL-2p8-127_ElastoDyn_blade.dat" BldFile2 - Name of file containing properties for blade 2 (quoted string) +"NREL-2p8-127_ElastoDyn_blade.dat" BldFile3 - Name of file containing properties for blade 3 (quoted string) [unused for 2 blades] +---------------------- ROTOR-TEETER -------------------------------------------- +0 TeetMod - Rotor-teeter spring/damper model {0: none, 1: standard, 2: user-defined from routine UserTeet} (switch) [unused for 3 blades] +0.0 TeetDmpP - Rotor-teeter damper position (degrees) [used only for 2 blades and when TeetMod=1] +0.0 TeetDmp - Rotor-teeter damping constant (N-m/(rad/s)) [used only for 2 blades and when TeetMod=1] +0.0 TeetCDmp - Rotor-teeter rate-independent Coulomb-damping moment (N-m) [used only for 2 blades and when TeetMod=1] +0.0 TeetSStP - Rotor-teeter soft-stop position (degrees) [used only for 2 blades and when TeetMod=1] +0.0 TeetHStP - Rotor-teeter hard-stop position (degrees) [used only for 2 blades and when TeetMod=1] +0.0 TeetSSSp - Rotor-teeter soft-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1] +0.0 TeetHSSp - Rotor-teeter hard-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1] +---------------------- DRIVETRAIN ---------------------------------------------- +95.5 GBoxEff - Gearbox efficiency (%) +97.0 GBRatio - Gearbox ratio (-) +283287696.9043701 DTTorSpr - Drivetrain torsional spring (N-m/rad) +1500541.6644456587 DTTorDmp - Drivetrain torsional damper (N-m/(rad/s)) +---------------------- FURLING ------------------------------------------------- +False Furling - Read in additional model properties for furling turbine (flag) [must currently be FALSE) +"none" FurlFile - Name of file containing furling properties (quoted string) [unused when Furling=False] +---------------------- TOWER --------------------------------------------------- +20 TwrNodes - Number of tower nodes used for analysis (-) +"NREL-2p8-127_ElastoDyn_tower.dat" TwrFile - Name of file containing tower properties (quoted string) +---------------------- OUTPUT -------------------------------------------------- +False SumPrint - Print summary data to ".sum" (flag) +1 OutFile - Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused) +True TabDelim - Use tab delimiters in text tabular output file? (flag) (currently unused) +"ES10.3E2" OutFmt - Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused) +0.0 TStart - Time to begin tabular output (s) (currently unused) +1 DecFact - Decimation factor for tabular output {1: output every time step} (-) (currently unused) +9 NTwGages - Number of tower nodes that have strain gages for output [0 to 9] (-) +2, 4, 6, 8, 10, 12, 14, 16, 18 TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] +9 NBlGages - Number of blade nodes that have strain gages for output [0 to 9] (-) +6, 11, 16, 21, 26, 31, 36, 41, 46 BldGagNd - List of blade nodes that have strain gages [1 to BldNodes] (-) [unused if NBlGages=0] + OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) +"Azimuth" +"BldPitch1" +"BldPitch2" +"BldPitch3" +"GenSpeed" +"LSSTipMys" +"LSSTipMzs" +"LSShftFys" +"LSShftFzs" +"NacYaw" +"RootFxb1" +"RootFxb2" +"RootFxb3" +"RootFxc1" +"RootFxc2" +"RootFxc3" +"RootFyb1" +"RootFyb2" +"RootFyb3" +"RootFyc1" +"RootFyc2" +"RootFyc3" +"RootFzb1" +"RootFzb2" +"RootFzb3" +"RootFzc1" +"RootFzc2" +"RootFzc3" +"RootMxb1" +"RootMxb2" +"RootMxb3" +"RootMxc1" +"RootMxc2" +"RootMxc3" +"RootMyb1" +"RootMyb2" +"RootMyb3" +"RootMyc1" +"RootMyc2" +"RootMyc3" +"RootMzb1" +"RootMzb2" +"RootMzb3" +"RootMzc1" +"RootMzc2" +"RootMzc3" +"RotSpeed" +"RotThrust" +"RotTorq" +"Spn1MLxb1" +"Spn1MLyb1" +"Spn2MLxb1" +"Spn2MLyb1" +"Spn3MLxb1" +"Spn3MLyb1" +"Spn4MLxb1" +"Spn4MLyb1" +"Spn5MLxb1" +"Spn5MLyb1" +"Spn6MLxb1" +"Spn6MLyb1" +"Spn7MLxb1" +"Spn7MLyb1" +"Spn8MLxb1" +"Spn8MLyb1" +"Spn9MLxb1" +"Spn9MLyb1" +"TipDxb1" +"TipDxb2" +"TipDxb3" +"TipDxc1" +"TipDxc2" +"TipDxc3" +"TipDyb1" +"TipDyb2" +"TipDyb3" +"TipDyc1" +"TipDyc2" +"TipDyc3" +"TipDzb1" +"TipDzb2" +"TipDzb3" +"TipDzc1" +"TipDzc2" +"TipDzc3" +"TwrBsMxt" +"TwrBsMyt" +"TwrBsMzt" +END of input file (the word "END" must appear in the first 3 columns of this last OutList line) +--------------------------------------------------------------------------------------- diff --git a/Test_Cases/NREL_2p8_127/NREL-2p8-127_ElastoDyn_blade.dat b/Test_Cases/NREL_2p8_127/NREL-2p8-127_ElastoDyn_blade.dat new file mode 100644 index 00000000..662c3af1 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/NREL-2p8-127_ElastoDyn_blade.dat @@ -0,0 +1,62 @@ +------- ELASTODYN V1.00.* INDIVIDUAL BLADE INPUT FILE -------------------------- +Generated with AeroElasticSE FAST driver +---------------------- BLADE PARAMETERS ---------------------------------------- +30 NBlInpSt - Number of blade input stations (-) +1.0 BldFlDmp1 - Blade flap mode #1 structural damping in percent of critical (%) +1.0 BldFlDmp2 - Blade flap mode #2 structural damping in percent of critical (%) +1.0 BldEdDmp1 - Blade edge mode #1 structural damping in percent of critical (%) +---------------------- BLADE ADJUSTMENT FACTORS -------------------------------- +1.0 FlStTunr1 - Blade flapwise modal stiffness tuner, 1st mode (-) +1.0 FlStTunr2 - Blade flapwise modal stiffness tuner, 2nd mode (-) +1.0 AdjBlMs - Factor to adjust blade mass density (-) +1.0 AdjFlSt - Factor to adjust blade flap stiffness (-) +1.0 AdjEdSt - Factor to adjust blade edge stiffness (-) +---------------------- DISTRIBUTED BLADE PROPERTIES ---------------------------- + BlFract PitchAxis StrcTwst BMassDen FlpStff EdgStff + (-) (-) (deg) (kg/m) (Nm^2) (Nm^2) + 0.000000000000000e+00 5.000000000000000e-01 1.999622705006573e+01 9.710303775720137e+02 8.916645581889803e+09 8.916996828171421e+09 + 3.448275862068966e-02 4.797651657064801e-01 1.931018243810786e+01 9.360384963432447e+02 1.473326655503917e+10 1.503401326999529e+10 + 6.896551724137932e-02 4.100052021425268e-01 1.831714953780435e+01 7.384411481979697e+02 1.350641277548294e+10 1.668758117393011e+10 + 1.034482758620690e-01 3.512493343557562e-01 1.708763041181490e+01 5.242503736808504e+02 7.750625550591639e+09 1.313891689544163e+10 + 1.379310344827586e-01 3.110092285118687e-01 1.569212712279918e+01 4.095720481213451e+02 4.517970071596079e+09 1.065397599903997e+10 + 1.724137931034483e-01 2.834806852225638e-01 1.382289586770404e+01 2.986034040547503e+02 2.639603257135735e+09 7.691984348826207e+09 + 2.068965517241379e-01 2.649028377616424e-01 1.124554309027298e+01 2.242709960488304e+02 1.722995952419500e+09 5.352469758607450e+09 + 2.413793103448276e-01 2.524820938264642e-01 8.602632953470145e+00 2.129606273581960e+02 1.483184105878141e+09 4.327677642529569e+09 + 2.758620689655172e-01 2.449189056667618e-01 6.549224739725965e+00 2.091698491908484e+02 1.365990134494710e+09 3.614205549153540e+09 + 3.103448275862069e-01 2.413757812153578e-01 5.408188380153923e+00 1.968505270832688e+02 1.161884350732890e+09 3.059348888224575e+09 + 3.448275862068965e-01 2.409997816578705e-01 4.552816793256156e+00 1.840381495123537e+02 9.314103670023195e+08 2.635487762688528e+09 + 3.793103448275861e-01 2.438939371115084e-01 3.850103071189125e+00 1.707777565800272e+02 7.316000308334582e+08 2.188136539118910e+09 + 4.137931034482759e-01 2.495413982689942e-01 3.210053831367405e+00 1.577448933617357e+02 5.813400904874783e+08 1.847593613150510e+09 + 4.482758620689655e-01 2.579313748558032e-01 2.548277995517243e+00 1.472572881966913e+02 4.757592505107988e+08 1.631226610849327e+09 + 4.827586206896552e-01 2.680075313847211e-01 1.868987870564891e+00 1.385288690289785e+02 3.862376543475163e+08 1.405932074273394e+09 + 5.172413793103448e-01 2.786890302281694e-01 1.247026288989173e+00 1.303134456935171e+02 3.086236872618167e+08 1.086079003669758e+09 + 5.517241379310345e-01 2.889455550381649e-01 7.591906266374636e-01 1.214132928926456e+02 2.441246000330141e+08 7.279449241103762e+08 + 5.862068965517241e-01 2.981867550411185e-01 4.659000465949885e-01 1.130051988362277e+02 1.889011712485603e+08 4.718010458987974e+08 + 6.206896551724138e-01 3.061372927610646e-01 2.731580237682558e-01 1.057369028682480e+02 1.426024838771875e+08 3.311232129595062e+08 + 6.551724137931035e-01 3.119763987397355e-01 1.231485664729688e-01 9.974549711305480e+01 1.081121588014881e+08 2.531064287089206e+08 + 6.896551724137934e-01 3.154698036179193e-01 -1.889923787502366e-02 9.455111640202743e+01 8.496507419955346e+07 1.976683193694704e+08 + 7.241379310344830e-01 3.174252972719749e-01 -1.841259535939614e-01 8.918927437076574e+01 6.699354322582775e+07 1.803010747112424e+08 + 7.586206896551723e-01 3.157084507688791e-01 -3.432314804149588e-01 8.015835414506564e+01 5.106806818035772e+07 1.739724378313888e+08 + 7.931034482758621e-01 3.095467116664537e-01 -5.034899071419768e-01 7.140526341375902e+01 3.929235153694874e+07 1.684420237335510e+08 + 8.275862068965517e-01 2.996558060513167e-01 -6.944182383563149e-01 5.563937030326857e+01 2.849850000919442e+07 7.873543089740016e+07 + 8.620689655172414e-01 2.881116856742882e-01 -9.464479611794926e-01 4.591127859162181e+01 1.982854313004774e+07 6.415110790287662e+07 + 8.965517241379312e-01 2.777712184636389e-01 -1.331448785580028e+00 3.521480844524145e+01 1.075138794875714e+07 4.514001039735875e+07 + 9.310344827586208e-01 2.706279229199988e-01 -1.857716459023805e+00 2.414179066974884e+01 3.638232945365374e+06 2.616242592743580e+07 + 9.655172413793103e-01 2.665260978643628e-01 -2.493070572147947e+00 3.678240377890068e+00 8.650778718250984e+04 1.574666086617074e+06 + 1.000000000000000e+00 2.500000000000000e-01 -3.205330715589577e+00 1.002353815775734e+00 1.628296293397697e+03 3.168732291579445e+04 +---------------------- BLADE MODE SHAPES --------------------------------------- +0.004521475330089924 BldFl1Sh(2) - Flap mode 1, coeff of x^2 +1.0698094815587011 BldFl1Sh(3) - , coeff of x^3 +-0.1043639462789789 BldFl1Sh(4) - , coeff of x^4 +0.7886224122132662 BldFl1Sh(5) - , coeff of x^5 +-0.7585894228230783 BldFl1Sh(6) - , coeff of x^6 +-0.5138424457535536 BldFl2Sh(2) - Flap mode 2, coeff of x^2 +2.93531699885226 BldFl2Sh(3) - , coeff of x^3 +-19.409314950811712 BldFl2Sh(4) - , coeff of x^4 +32.48595903814384 BldFl2Sh(5) - , coeff of x^5 +-14.498118640430834 BldFl2Sh(6) - , coeff of x^6 +0.17685846482119558 BldEdgSh(2) - Edge mode 1, coeff of x^2 +1.9926745320317614 BldEdgSh(3) - , coeff of x^3 +-4.492670447108128 BldEdgSh(4) - , coeff of x^4 +6.331998738711197 BldEdgSh(5) - , coeff of x^5 +-3.0088612884560257 BldEdgSh(6) - , coeff of x^6 diff --git a/Test_Cases/NREL_2p8_127/NREL-2p8-127_ElastoDyn_tower.dat b/Test_Cases/NREL_2p8_127/NREL-2p8-127_ElastoDyn_tower.dat new file mode 100644 index 00000000..670d3ccc --- /dev/null +++ b/Test_Cases/NREL_2p8_127/NREL-2p8-127_ElastoDyn_tower.dat @@ -0,0 +1,50 @@ +------- ELASTODYN V1.00.* TOWER INPUT FILE ------------------------------------- +Generated with AeroElasticSE FAST driver +---------------------- TOWER PARAMETERS ---------------------------------------- +9 NTwInpSt - Number of input stations to specify tower geometry +1.0 TwrFADmp(1) - Tower 1st fore-aft mode structural damping ratio (%) +1.0 TwrFADmp(2) - Tower 2nd fore-aft mode structural damping ratio (%) +1.0 TwrSSDmp(1) - Tower 1st side-to-side mode structural damping ratio (%) +1.0 TwrSSDmp(2) - Tower 2nd side-to-side mode structural damping ratio (%) +---------------------- TOWER ADJUSTMUNT FACTORS -------------------------------- +1.0 FAStTunr(1) - Tower fore-aft modal stiffness tuner, 1st mode (-) +1.0 FAStTunr(2) - Tower fore-aft modal stiffness tuner, 2nd mode (-) +1.0 SSStTunr(1) - Tower side-to-side stiffness tuner, 1st mode (-) +1.0 SSStTunr(2) - Tower side-to-side stiffness tuner, 2nd mode (-) +1.0 AdjTwMa - Factor to adjust tower mass density (-) +1.0 AdjFASt - Factor to adjust tower fore-aft stiffness (-) +1.0 AdjSSSt - Factor to adjust tower side-to-side stiffness (-) +---------------------- DISTRIBUTED TOWER PROPERTIES ---------------------------- + HtFract TMassDen TwFAStif TwSSStif + (-) (kg/m) (Nm^2) (Nm^2) + 0.000000000000000e+00 3.027735301310815e+03 1.474853951124582e+11 1.474853951124582e+11 + 1.250433977548895e-01 2.718841246770161e+03 1.326329677125010e+11 1.326329677125010e+11 + 2.500867955097790e-01 2.405464101729817e+03 1.161354662267779e+11 1.161354662267779e+11 + 3.751301932646685e-01 2.112377458665061e+03 9.479550671463214e+10 9.479550671463214e+10 + 5.001157273463720e-01 1.947002758491315e+03 7.586780853389151e+10 7.586780853389151e+10 + 6.251591251012615e-01 1.783363103134093e+03 5.857866350808070e+10 5.857866350808070e+10 + 7.502025228561510e-01 1.603905893716689e+03 4.289862070041790e+10 4.289862070041790e+10 + 8.751880569378545e-01 1.409173987955922e+03 2.871944175926664e+10 2.871944175926664e+10 + 1.000000000000000e+00 1.161806938102961e+03 1.956567246347168e+10 1.956567246347168e+10 +---------------------- TOWER FORE-AFT MODE SHAPES ------------------------------ +1.0623105807354711 TwFAM1Sh(2) - Mode 1, coefficient of x^2 term +-0.12782107145017788 TwFAM1Sh(3) - , coefficient of x^3 term +-0.11374039457578099 TwFAM1Sh(4) - , coefficient of x^4 term +0.4380734650926717 TwFAM1Sh(5) - , coefficient of x^5 term +-0.2588225798021839 TwFAM1Sh(6) - , coefficient of x^6 term +916.0158542297875 TwFAM2Sh(2) - Mode 2, coefficient of x^2 term +-524.0268078619857 TwFAM2Sh(3) - , coefficient of x^3 term +-620.6941658768418 TwFAM2Sh(4) - , coefficient of x^4 term +844.0762210901079 TwFAM2Sh(5) - , coefficient of x^5 term +-614.3711015810677 TwFAM2Sh(6) - , coefficient of x^6 term +---------------------- TOWER SIDE-TO-SIDE MODE SHAPES -------------------------- +1.0569471838310198 TwSSM1Sh(2) - Mode 1, coefficient of x^2 term +-0.1296167767277 TwSSM1Sh(3) - , coefficient of x^3 term +-0.09657367230257455 TwSSM1Sh(4) - , coefficient of x^4 term +0.4145201607812788 TwSSM1Sh(5) - , coefficient of x^5 term +-0.24527689558202392 TwSSM1Sh(6) - , coefficient of x^6 term +66.717537330485 TwSSM2Sh(2) - Mode 2, coefficient of x^2 term +-28.88940079202735 TwSSM2Sh(3) - , coefficient of x^3 term +-68.66726547883196 TwSSM2Sh(4) - , coefficient of x^4 term +94.08317763633714 TwSSM2Sh(5) - , coefficient of x^5 term +-62.24404869596283 TwSSM2Sh(6) - , coefficient of x^6 term diff --git a/Test_Cases/NREL_2p8_127/NREL-2p8-127_InflowFile.dat b/Test_Cases/NREL_2p8_127/NREL-2p8-127_InflowFile.dat new file mode 100644 index 00000000..401fd0a0 --- /dev/null +++ b/Test_Cases/NREL_2p8_127/NREL-2p8-127_InflowFile.dat @@ -0,0 +1,57 @@ +------- InflowWind v3.01.* INPUT FILE ------------------------------------------------------------------------- +Generated with AeroElasticSE FAST driver +--------------------------------------------------------------------------------------------------------------- +False Echo - Echo input data to .ech (flag) +1 WindType - switch for wind file type (1=steady; 2=uniform; 3=binary TurbSim FF; 4=binary Bladed-style FF; 5=HAWC format; 6=User defined; 7=native Bladed FF) +0.0 PropagationDir - Direction of wind propagation (meteoroligical rotation from aligned with X (positive rotates towards -Y) -- degrees) +0.0 VFlowAng - Upflow angle (degrees) (not used for native Bladed format WindType=7) +1 NWindVel - Number of points to output the wind velocity (0 to 9) +0.0 WindVxiList - List of coordinates in the inertial X direction (m) +0.0 WindVyiList - List of coordinates in the inertial Y direction (m) +88.5 WindVziList - List of coordinates in the inertial Z direction (m) +================== Parameters for Steady Wind Conditions [used only for WindType = 1] ========================= +6.0 HWindSpeed - Horizontal windspeed (m/s) +87.66 RefHt - Reference height for horizontal wind speed (m) +0.0 PLexp - Power law exponent (-) +================== Parameters for Uniform wind file [used only for WindType = 2] ============================ +"none" Filename_Uni - Filename of time series data for uniform wind field. (-) +87.66 RefHt_Uni - Reference height for horizontal wind speed (m) +1.0 RefLength - Reference length for linear horizontal and vertical sheer (-) +================== Parameters for Binary TurbSim Full-Field files [used only for WindType = 3] ============== +"none" FileName_BTS - Name of the Full field wind file to use (.bts) +================== Parameters for Binary Bladed-style Full-Field files [used only for WindType = 4] ========= +"none" FilenameRoot - Rootname of the full-field wind file to use (.wnd, .sum) +False TowerFile - Have tower file (.twr) (flag) +================== Parameters for HAWC-format binary files [Only used with WindType = 5] ===================== +"none" FileName_u - name of the file containing the u-component fluctuating wind (.bin) +"none" FileName_v - name of the file containing the v-component fluctuating wind (.bin) +"none" FileName_w - name of the file containing the w-component fluctuating wind (.bin) +2 nx - number of grids in the x direction (in the 3 files above) (-) +2 ny - number of grids in the y direction (in the 3 files above) (-) +2 nz - number of grids in the z direction (in the 3 files above) (-) +10 dx - distance (in meters) between points in the x direction (m) +10 dy - distance (in meters) between points in the y direction (m) +10 dz - distance (in meters) between points in the z direction (m) +0.0 RefHt_Hawc - reference height; the height (in meters) of the vertical center of the grid (m) +------------- Scaling parameters for turbulence --------------------------------------------------------- +0 ScaleMethod - Turbulence scaling method [0 = none, 1 = direct scaling, 2 = calculate scaling factor based on a desired standard deviation] +1.0 SFx - Turbulence scaling factor for the x direction (-) [ScaleMethod=1] +1.0 SFy - Turbulence scaling factor for the y direction (-) [ScaleMethod=1] +1.0 SFz - Turbulence scaling factor for the z direction (-) [ScaleMethod=1] +1.0 SigmaFx - Turbulence standard deviation to calculate scaling from in x direction (m/s) [ScaleMethod=2] +1.0 SigmaFy - Turbulence standard deviation to calculate scaling from in y direction (m/s) [ScaleMethod=2] +1.0 SigmaFz - Turbulence standard deviation to calculate scaling from in z direction (m/s) [ScaleMethod=2] +------------- Mean wind profile parameters (added to HAWC-format files) --------------------------------- +0.0 URef - Mean u-component wind speed at the reference height (m/s) +0 WindProfile - Wind profile type (0=constant;1=logarithmic,2=power law) +0.0 PLExp_Hawc - Power law exponent (-) (used for PL wind profile type only) +0.0 Z0 - Surface roughness length (m) (used for LG wind profile type only) +0 XOffset - Initial offset in +x direction (shift of wind box) (-) +====================== OUTPUT ================================================== +False SumPrint - Print summary data to .IfW.sum (flag) +OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) +"Wind1Velx" +"Wind1Vely" +"Wind1Velz" +END of input file (the word "END" must appear in the first 3 columns of this last OutList line) +--------------------------------------------------------------------------------------- diff --git a/Test_Cases/NREL_2p8_127/NREL-2p8-127_ServoDyn.dat b/Test_Cases/NREL_2p8_127/NREL-2p8-127_ServoDyn.dat new file mode 100644 index 00000000..bdc2d74d --- /dev/null +++ b/Test_Cases/NREL_2p8_127/NREL-2p8-127_ServoDyn.dat @@ -0,0 +1,110 @@ +------- SERVODYN v1.05.* INPUT FILE -------------------------------------------- +Generated with AeroElasticSE FAST driver +---------------------- SIMULATION CONTROL -------------------------------------- +False Echo - Echo input data to .ech (flag) +default DT - Communication interval for controllers (s) (or "default") +---------------------- PITCH CONTROL ------------------------------------------- +5 PCMode - Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) +0.0 TPCOn - Time to enable active pitch control (s) [unused when PCMode=0] +99999.0 TPitManS(1) - Time to start override pitch maneuver for blade 1 and end standard pitch control (s) +99999.0 TPitManS(2) - Time to start override pitch maneuver for blade 2 and end standard pitch control (s) +99999.0 TPitManS(3) - Time to start override pitch maneuver for blade 3 and end standard pitch control (s) [unused for 2 blades] +7.0 PitManRat(1) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s) +7.0 PitManRat(2) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s) +7.0 PitManRat(3) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades] +90.0 BlPitchF(1) - Blade 1 final pitch for pitch maneuvers (degrees) +90.0 BlPitchF(2) - Blade 2 final pitch for pitch maneuvers (degrees) +90.0 BlPitchF(3) - Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades] +---------------------- GENERATOR AND TORQUE CONTROL ---------------------------- +5 VSContrl - Variable-speed control mode {0: none, 1: simple VS, 3: user-defined from routine UserVSCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) +1 GenModel - Generator model {1: simple, 2: Thevenin, 3: user-defined from routine UserGen} (switch) [used only when VSContrl=0] +93.94772808556249 GenEff - Generator efficiency [ignored by the Thevenin and user-defined generator models] (%) +True GenTiStr - Method to start the generator {T: timed using TimGenOn, F: generator speed using SpdGenOn} (flag) +True GenTiStp - Method to stop the generator {T: timed using TimGenOf, F: when generator power = 0} (flag) +99999.0 SpdGenOn - Generator speed to turn on the generator for a startup (HSS speed) (rpm) [used only when GenTiStr=False] +0.0 TimGenOn - Time to turn on the generator for a startup (s) [used only when GenTiStr=True] +99999.0 TimGenOf - Time to turn off the generator (s) [used only when GenTiStp=True] +---------------------- SIMPLE VARIABLE-SPEED TORQUE CONTROL -------------------- +99999.0 VS_RtGnSp - Rated generator speed for simple variable-speed generator control (HSS side) (rpm) [used only when VSContrl=1] +99999.0 VS_RtTq - Rated generator torque/constant generator torque in Region 3 for simple variable-speed generator control (HSS side) (N-m) [used only when VSContrl=1] +99999.0 VS_Rgn2K - Generator torque constant in Region 2 for simple variable-speed generator control (HSS side) (N-m/rpm^2) [used only when VSContrl=1] +99999.0 VS_SlPc - Rated generator slip percentage in Region 2 1/2 for simple variable-speed generator control (%) [used only when VSContrl=1] +---------------------- SIMPLE INDUCTION GENERATOR ------------------------------ +99999.0 SIG_SlPc - Rated generator slip percentage (%) [used only when VSContrl=0 and GenModel=1] +99999.0 SIG_SySp - Synchronous (zero-torque) generator speed (rpm) [used only when VSContrl=0 and GenModel=1] +99999.0 SIG_RtTq - Rated torque (N-m) [used only when VSContrl=0 and GenModel=1] +99999.0 SIG_PORt - Pull-out ratio (Tpullout/Trated) (-) [used only when VSContrl=0 and GenModel=1] +---------------------- THEVENIN-EQUIVALENT INDUCTION GENERATOR ----------------- +99999.0 TEC_Freq - Line frequency [50 or 60] (Hz) [used only when VSContrl=0 and GenModel=2] +0 TEC_NPol - Number of poles [even integer > 0] (-) [used only when VSContrl=0 and GenModel=2] +99999.0 TEC_SRes - Stator resistance (ohms) [used only when VSContrl=0 and GenModel=2] +99999.0 TEC_RRes - Rotor resistance (ohms) [used only when VSContrl=0 and GenModel=2] +99999.0 TEC_VLL - Line-to-line RMS voltage (volts) [used only when VSContrl=0 and GenModel=2] +99999.0 TEC_SLR - Stator leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2] +99999.0 TEC_RLR - Rotor leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2] +99999.0 TEC_MR - Magnetizing reactance (ohms) [used only when VSContrl=0 and GenModel=2] +---------------------- HIGH-SPEED SHAFT BRAKE ---------------------------------- +0 HSSBrMode - HSS brake model {0: none, 1: simple, 3: user-defined from routine UserHSSBr, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) +99999.0 THSSBrDp - Time to initiate deployment of the HSS brake (s) +99999.0 HSSBrDT - Time for HSS-brake to reach full deployment once initiated (sec) [used only when HSSBrMode=1] +99999.0 HSSBrTqF - Fully deployed HSS-brake torque (N-m) +---------------------- NACELLE-YAW CONTROL ------------------------------------- +0 YCMode - Yaw control mode {0: none, 3: user-defined from routine UserYawCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) +99999.0 TYCOn - Time to enable active yaw control (s) [unused when YCMode=0] +0.0 YawNeut - Neutral yaw position--yaw spring force is zero at this yaw (degrees) +496739375.65069634 YawSpr - Nacelle-yaw spring constant (N-m/rad) +187442.5509148155 YawDamp - Nacelle-yaw damping constant (N-m/(rad/s)) +99999.0 TYawManS - Time to start override yaw maneuver and end standard yaw control (s) +0.25 YawManRat - Yaw maneuver rate (in absolute value) (deg/s) +0.0 NacYawF - Final yaw angle for override yaw maneuvers (degrees) +---------------------- AERODYNAMIC FLOW CONTROL -------------------------------- + 0 AfCmode - Airfoil control mode {0: none, 1: cosine wave cycle, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) + 0 AfC_Mean - Mean level for cosine cycling or steady value (-) [used only with AfCmode==1] + 0 AfC_Amp - Amplitude for for cosine cycling of flap signal (-) [used only with AfCmode==1] + 0 AfC_Phase - Phase relative to the blade azimuth (0 is vertical) for for cosine cycling of flap signal (deg) [used only with AfCmode==1] +---------------------- STRUCTURAL CONTROL -------------------------------------- +0 NumBStC - Number of blade structural controllers (integer) +"unused" BStCfiles - Name of the files for blade structural controllers (quoted strings) [unused when NumBStC==0] +0 NumNStC - Number of nacelle structural controllers (integer) +"unused" NStCfiles - Name of the files for nacelle structural controllers (quoted strings) [unused when NumNStC==0] +0 NumTStC - Number of tower structural controllers (integer) +"unused" TStCfiles - Name of the files for tower structural controllers (quoted strings) [unused when NumTStC==0] +0 NumSStC - Number of substructure structural controllers (integer) +"unused" SStCfiles - Name of the files for substructure structural controllers (quoted strings) [unused when NumSStC==0] +---------------------- CABLE CONTROL ------------------------------------------- + 0 CCmode - Cable control mode {0: none, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) +---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface] +"/pscratch/ndeveld/awc/ROSCO_B/ROSCO/build/libdiscon.so" DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface] +"NREL-2p8-127_DISCON.IN" DLL_InFile - Name of input file sent to the DLL (-) [used only with Bladed Interface] +"DISCON" DLL_ProcName - Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface] +default DLL_DT - Communication interval for dynamic library (s) (or "default") [used only with Bladed Interface] +False DLL_Ramp - Whether a linear ramp should be used between DLL_DT time steps [introduces time shift when true] (flag) [used only with Bladed Interface] +99999.0 BPCutoff - Cuttoff frequency for low-pass filter on blade pitch from DLL (Hz) [used only with Bladed Interface] +0.0 NacYaw_North - Reference yaw angle of the nacelle when the upwind end points due North (deg) [used only with Bladed Interface] +1 Ptch_Cntrl - Record 28: Use individual pitch control {0: collective pitch; 1: individual pitch control} (switch) [used only with Bladed Interface] +0.0 Ptch_SetPnt - Record 5: Below-rated pitch angle set-point (deg) [used only with Bladed Interface] +0.0 Ptch_Min - Record 6: Minimum pitch angle (deg) [used only with Bladed Interface] +0.0 Ptch_Max - Record 7: Maximum pitch angle (deg) [used only with Bladed Interface] +0.0 PtchRate_Min - Record 8: Minimum pitch rate (most negative value allowed) (deg/s) [used only with Bladed Interface] +0.0 PtchRate_Max - Record 9: Maximum pitch rate (deg/s) [used only with Bladed Interface] +0.0 Gain_OM - Record 16: Optimal mode gain (Nm/(rad/s)^2) [used only with Bladed Interface] +0.0 GenSpd_MinOM - Record 17: Minimum generator speed (rpm) [used only with Bladed Interface] +0.0 GenSpd_MaxOM - Record 18: Optimal mode maximum speed (rpm) [used only with Bladed Interface] +0.0 GenSpd_Dem - Record 19: Demanded generator speed above rated (rpm) [used only with Bladed Interface] +0.0 GenTrq_Dem - Record 22: Demanded generator torque above rated (Nm) [used only with Bladed Interface] +0.0 GenPwr_Dem - Record 13: Demanded power (W) [used only with Bladed Interface] +---------------------- BLADED INTERFACE TORQUE-SPEED LOOK-UP TABLE ------------- +0 DLL_NumTrq - Record 26: No. of points in torque-speed look-up table {0 = none and use the optimal mode parameters; nonzero = ignore the optimal mode PARAMETERs by setting Record 16 to 0.0} (-) [used only with Bladed Interface] +GenSpd_TLU GenTrq_TLU +(rpm) (Nm) +---------------------- OUTPUT -------------------------------------------------- +False SumPrint - Print summary data to .sum (flag) (currently unused) +1 OutFile - Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused) +True TabDelim - Use tab delimiters in text tabular output file? (flag) (currently unused) +"ES10.3E2" OutFmt - Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused) +0.0 TStart - Time to begin tabular output (s) (currently unused) + OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) +"GenPwr" +"GenTq" +END of input file (the word "END" must appear in the first 3 columns of this last OutList line) +--------------------------------------------------------------------------------------- diff --git a/Test_Cases/update_rosco_discons.py b/Test_Cases/update_rosco_discons.py index ca08ea31..9a299991 100644 --- a/Test_Cases/update_rosco_discons.py +++ b/Test_Cases/update_rosco_discons.py @@ -12,7 +12,8 @@ map_rel = { 'NREL5MW.yaml': 'NREL-5MW/DISCON.IN', 'IEA15MW.yaml': 'IEA-15-240-RWT-UMaineSemi/DISCON-UMaineSemi.IN', - 'BAR.yaml': 'BAR_10/BAR_10_DISCON.IN' + 'BAR.yaml': 'BAR_10/BAR_10_DISCON.IN', + 'NREL2p8.yaml': 'NREL_2p8_127/NREL-2p8-127_DISCON.IN', } # Directories diff --git a/Tune_Cases/IEA15MW_ballast.yaml b/Tune_Cases/IEA15MW_ballast.yaml new file mode 100644 index 00000000..6bf34418 --- /dev/null +++ b/Tune_Cases/IEA15MW_ballast.yaml @@ -0,0 +1,59 @@ +# --------------------- ROSCO controller tuning input file ------------------- + # Written for use with ROSCO_Toolbox tuning procedures + # Turbine: IEA 15MW Reference Wind Turbine +# ------------------------------ OpenFAST PATH DEFINITIONS ------------------------------ +path_params: + FAST_InputFile: 'IEA-15-240-RWT-UMaineSemi.fst' # Name of *.fst file + FAST_directory: '../Test_Cases/IEA-15-240-RWT-UMaineSemi' # Main OpenFAST model directory, where the *.fst lives + # Optional (but suggested...) + rotor_performance_filename: 'Cp_Ct_Cq.IEA15MW.txt' # Filename for rotor performance text file (if it has been generated by ccblade already) + +# -------------------------------- TURBINE PARAMETERS ----------------------------------- +turbine_params: + rotor_inertia: 310619488. # Rotor inertia [kg m^2], {Available in Elastodyn .sum file} + rated_rotor_speed: 0.7916813478 # Rated rotor speed [rad/s] + v_min: 3. # Cut-in wind speed [m/s] + v_rated: 10.74 # Rated wind speed [m/s] + v_max: 25.0 # Cut-out wind speed [m/s], -- Does not need to be exact (JUST ASSUME FOR NOW) + max_pitch_rate: 0.0349 # Maximum blade pitch rate [rad/s] + max_torque_rate: 4500000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} + rated_power: 15000000. # Rated Power [W] + bld_edgewise_freq: 4.0324 # Blade edgewise first natural frequency [rad/s] + bld_flapwise_freq: 3.4872 # Blade flapwise first natural frequency [rad/s] + TSR_operational: 9.0 + +#------------------------------- CONTROLLER PARAMETERS ---------------------------------- +controller_params: + # Controller flags + LoggingLevel: 3 # {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file + F_LPFType: 2 # {1: first-order low-pass filter, 2: second-order low-pass filter}, [rad/s] (currently filters generator speed and pitch control signals) + F_NotchType: 0 # Notch on the measured generator speed {0: disable, 1: enable} + IPC_ControlMode: 0 # Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {0: off, 1: 1P reductions, 2: 1P+2P reductions} + VS_ControlMode: 2 # Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control} + PC_ControlMode: 1 # Blade pitch control mode {0: No pitch, fix to fine pitch, 1: active PI blade pitch control} + Y_ControlMode: 0 # Yaw control mode {0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC} + SS_Mode: 1 # Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing} + WE_Mode: 2 # Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Immersion and Invariance Estimator (Ortega et al.)} + PS_Mode: 3 # Pitch saturation mode {0: no pitch saturation, 1: peak shaving, 2: Cp-maximizing pitch saturation, 3: peak shaving and Cp-maximizing pitch saturation} + SD_Mode: 0 # Shutdown mode {0: no shutdown procedure, 1: pitch to max pitch at shutdown} + Fl_Mode: 2 # Floating specific feedback mode {0: no nacelle velocity feedback, 1: nacelle velocity feedback} + Flp_Mode: 0 # Flap control mode {0: no flap control, 1: steady state flap angle, 2: Proportional flap control} + PA_Mode: 2 # Pitch actuator mode {0 - not used, 1 - first order filter, 2 - second order filter} + StC_Mode: 1 + # Controller parameters + # U_pc: [14] + zeta_pc: 1.0 # Pitch controller desired damping ratio [-] + omega_pc: 0.2 # Pitch controller desired natural frequency [rad/s] + zeta_vs: 0.85 # Torque controller desired damping ratio [-] + omega_vs: 0.12 # Torque controller desired natural frequency [rad/s] + twr_freq: 3.355 # for semi only! + ptfm_freq: 0.213 # for semi only! + # Optional - these can be defined, but do not need to be + min_pitch: 0.0 # Minimum pitch angle [rad], {default = 0 degrees} + vs_minspd: 0.523598775 # Minimum rotor speed [rad/s], {default = 0 rad/s} + ps_percent: 0.8 # Percent peak shaving [%, <= 1 ], {default = 80%} + PA_CornerFreq: 1.5708 # Pitch actuator natural frequency [rad/s] + PA_Damping: 0.707 # Pitch actuator natural frequency [rad/s] + DISCON: + StC_GroupIndex: [2818, 2838, 2858] + diff --git a/Tune_Cases/IEA15MW_cable.yaml b/Tune_Cases/IEA15MW_cable.yaml new file mode 100644 index 00000000..c17b006b --- /dev/null +++ b/Tune_Cases/IEA15MW_cable.yaml @@ -0,0 +1,59 @@ +# --------------------- ROSCO controller tuning input file ------------------- + # Written for use with ROSCO_Toolbox tuning procedures + # Turbine: IEA 15MW Reference Wind Turbine +# ------------------------------ OpenFAST PATH DEFINITIONS ------------------------------ +path_params: + FAST_InputFile: 'IEA-15-240-RWT-UMaineSemi.fst' # Name of *.fst file + FAST_directory: '../Test_Cases/IEA-15-240-RWT-UMaineSemi' # Main OpenFAST model directory, where the *.fst lives + # Optional (but suggested...) + rotor_performance_filename: 'Cp_Ct_Cq.IEA15MW.txt' # Filename for rotor performance text file (if it has been generated by ccblade already) + +# -------------------------------- TURBINE PARAMETERS ----------------------------------- +turbine_params: + rotor_inertia: 310619488. # Rotor inertia [kg m^2], {Available in Elastodyn .sum file} + rated_rotor_speed: 0.7916813478 # Rated rotor speed [rad/s] + v_min: 3. # Cut-in wind speed [m/s] + v_rated: 10.74 # Rated wind speed [m/s] + v_max: 25.0 # Cut-out wind speed [m/s], -- Does not need to be exact (JUST ASSUME FOR NOW) + max_pitch_rate: 0.0349 # Maximum blade pitch rate [rad/s] + max_torque_rate: 4500000. # Maximum torque rate [Nm/s], {~1/4 VS_RtTq/s} + rated_power: 15000000. # Rated Power [W] + bld_edgewise_freq: 4.0324 # Blade edgewise first natural frequency [rad/s] + bld_flapwise_freq: 3.4872 # Blade flapwise first natural frequency [rad/s] + TSR_operational: 9.0 + +#------------------------------- CONTROLLER PARAMETERS ---------------------------------- +controller_params: + # Controller flags + LoggingLevel: 3 # {0: write no debug files, 1: write standard output .dbg-file, 2: write standard output .dbg-file and complete avrSWAP-array .dbg2-file + F_LPFType: 2 # {1: first-order low-pass filter, 2: second-order low-pass filter}, [rad/s] (currently filters generator speed and pitch control signals) + F_NotchType: 0 # Notch on the measured generator speed {0: disable, 1: enable} + IPC_ControlMode: 0 # Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) {0: off, 1: 1P reductions, 2: 1P+2P reductions} + VS_ControlMode: 2 # Generator torque control mode in above rated conditions {0: constant torque, 1: constant power, 2: TSR tracking PI control} + PC_ControlMode: 1 # Blade pitch control mode {0: No pitch, fix to fine pitch, 1: active PI blade pitch control} + Y_ControlMode: 0 # Yaw control mode {0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC} + SS_Mode: 1 # Setpoint Smoother mode {0: no setpoint smoothing, 1: introduce setpoint smoothing} + WE_Mode: 2 # Wind speed estimator mode {0: One-second low pass filtered hub height wind speed, 1: Immersion and Invariance Estimator (Ortega et al.)} + PS_Mode: 3 # Pitch saturation mode {0: no pitch saturation, 1: peak shaving, 2: Cp-maximizing pitch saturation, 3: peak shaving and Cp-maximizing pitch saturation} + SD_Mode: 0 # Shutdown mode {0: no shutdown procedure, 1: pitch to max pitch at shutdown} + Fl_Mode: 2 # Floating specific feedback mode {0: no nacelle velocity feedback, 1: nacelle velocity feedback} + Flp_Mode: 0 # Flap control mode {0: no flap control, 1: steady state flap angle, 2: Proportional flap control} + PA_Mode: 2 # Pitch actuator mode {0 - not used, 1 - first order filter, 2 - second order filter} + CC_Mode: 1 + # Controller parameters + # U_pc: [14] + zeta_pc: 1.0 # Pitch controller desired damping ratio [-] + omega_pc: 0.2 # Pitch controller desired natural frequency [rad/s] + zeta_vs: 0.85 # Torque controller desired damping ratio [-] + omega_vs: 0.12 # Torque controller desired natural frequency [rad/s] + twr_freq: 3.355 # for semi only! + ptfm_freq: 0.213 # for semi only! + # Optional - these can be defined, but do not need to be + min_pitch: 0.0 # Minimum pitch angle [rad], {default = 0 degrees} + vs_minspd: 0.523598775 # Minimum rotor speed [rad/s], {default = 0 rad/s} + ps_percent: 0.8 # Percent peak shaving [%, <= 1 ], {default = 80%} + PA_CornerFreq: 1.5708 # Pitch actuator natural frequency [rad/s] + PA_Damping: 0.707 # Pitch actuator natural frequency [rad/s] + DISCON: + CC_GroupIndex: [2601, 2603, 2605] + diff --git a/Tune_Cases/NREL2p8.yaml b/Tune_Cases/NREL2p8.yaml new file mode 100644 index 00000000..bbba19a2 --- /dev/null +++ b/Tune_Cases/NREL2p8.yaml @@ -0,0 +1,65 @@ +path_params: {FAST_InputFile: NREL-2p8-127.fst, FAST_directory: ../Test_Cases/NREL_2p8_127, rotor_performance_filename: NREL-2p8-127_Cp_Ct_Cq.txt} +controller_params: + LoggingLevel: 2 + F_LPFType: 1 + F_NotchType: 0 + IPC_ControlMode: 1 + VS_ControlMode: 3 + PC_ControlMode: 1 + Y_ControlMode: 0 + SS_Mode: 1 + WE_Mode: 2 + PS_Mode: 1 + SD_Mode: 0 + Fl_Mode: 0 + Flp_Mode: 0 + zeta_pc: [2.0062413749856227] + omega_pc: [0.13653659182284006] + zeta_vs: 0.465 + omega_vs: 0.11 + twr_freq: 0.4499 + ptfm_freq: 0.2 + ps_percent: 0.8 + sd_maxpit: 0.4363 + DISCON: {PC_MinPit: -0.1745329, PC_FinePit: 0.0, DLL_FileName: unused, DLL_InFile: unused, DLL_ProcName: DISCON} + TD_Mode: 0 + PwC_Mode: 0 + ZMQ_Mode: 0 + PA_Mode: 0 + Ext_Mode: 0 + U_pc: [12] + interp_type: sigma + max_pitch: 1.57 + min_pitch: 0.0 + vs_minspd: 0.0 + ss_vsgain: 1.0 + ss_pcgain: 0.001 + flp_maxpit: 0.1745 + WS_GS_n: 60 + PC_GS_n: 30 + tune_Fl: true + max_torque_factor: 1.1 + IPC_Kp1p: 0.0 + IPC_Kp2p: 0.0 + IPC_Ki1p: 5.2e-9 + IPC_Ki2p: 0.0 + IPC_Vramp: [0.0, 0.0] + filter_params: {f_we_cornerfreq: 0.20944, f_fl_highpassfreq: 0.01042, f_ss_cornerfreq: 0.6283, f_yawerr: 0.17952, f_sd_cornerfreq: 0.41888} + open_loop: {flag: false, filename: unused, OL_Ind_Breakpoint: 1, OL_Ind_BldPitch: 0, OL_Ind_GenTq: 0, OL_Ind_YawRate: 0} + PA_CornerFreq: 3.14 + PA_Damping: 0.707 + linmodel_tuning: + type: none + linfile_path: none + lintune_outpath: lintune_outfiles + load_parallel: false + stability_margin: 0.1 + omega_pc: {} + flag: true + tuning_yaml: /home/dzalkind/Tools/ROSCO/Tune_Cases/NREL2p8.yaml + n_pitch: 30 + n_tsr: 30 + n_U: 1 + omega_flp: 0.0 + zeta_flp: 0.0 +turbine_params: {rotor_inertia: 19858184.0, rated_rotor_speed: 1.26711, v_min: 3.0, v_rated: 11.4, v_max: 25.0, max_pitch_rate: 0.1745, max_torque_rate: 1500000.0, rated_power: 2800000.0, bld_edgewise_freq: 8.2831853, bld_flapwise_freq: 0.0, TSR_operational: 0} diff --git a/docs/source/api_change.rst b/docs/source/api_change.rst index f6ad8a57..4fecc5a6 100644 --- a/docs/source/api_change.rst +++ b/docs/source/api_change.rst @@ -9,6 +9,49 @@ The changes are tabulated according to the line number, and flag name. The line number corresponds to the resulting line number after all changes are implemented. Thus, be sure to implement each in order so that subsequent line numbers are correct. +2.7.0 to 2.8.0 +------------------------------- +Optional Inputs +- ROSCO now reads in the whole input file and searches for keywords to set the inputs. Blank spaces and specific ordering are no longer required. +- Input requirements depend on control modes. E.g., open loop inputs are not required if `OL_Mode = 0`` +Cable Control +- Can control OpenFAST cables (MoorDyn or SubDyn) using ROSCO +Structural Control +- Can control OpenFAST structural control elements (ServoDyn) using ROSCO +Active wake control +- Added Active Wake Control (AWC) implementation + +====== ================= ====================================================================================================================================================================================================== +New in ROSCO 2.8.0 +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Line Input Name Example Value +====== ================= ====================================================================================================================================================================================================== +6 Echo 0 ! Echo - (0 - no Echo, 1 - Echo input data to .echo) +25 AWC_Mode 0 ! AWC_Mode - Active wake control mode [0 - not used, 1 - complex number method, 2 - Coleman transform method] +28 CC_Mode 0 ! CC_Mode - Cable control mode [0- unused, 1- User defined, 2- Open loop control] +29 StC_Mode 0 ! StC_Mode - Structural control mode [0- unused, 1- User defined, 2- Open loop control] +139 Ind_CableControl 0 ! Ind_CableControl - The column(s) in OL_Filename that contains the cable control inputs in m [Used with CC_Mode = 2, must be the same size as CC_Group_N] +140 Ind_StructControl 0 ! Ind_StructControl - The column(s) in OL_Filename that contains the structural control inputs [Used with StC_Mode = 2, must be the same size as StC_Group_N] +148 Empty Line +149 AWC_Section !------- Active Wake Control ----------------------------------------------------- +150 AWC_NumModes 1 ! AWC_NumModes - AWC- Number of modes to include [-] +151 AWC_n 1 ! AWC_n - AWC azimuthal mode [-] (only used in complex number method) +152 AWC_harmonic 1 ! AWC_harmonic - AWC Coleman transform harmonic [-] (only used in Coleman transform method) +153 AWC_freq 0.03 ! AWC_freq - AWC frequency [Hz] +154 AWC_amp 2.0 ! AWC_amp - AWC amplitude [deg] +155 AWC_clockangle 0.0 ! AWC_clockangle - AWC clock angle [deg] +165 Empty Line +166 CC_Section !------- Cable Control --------------------------------------------------------- +167 CC_Group_N 3 ! CC_Group_N - Number of cable control groups +168 CC_GroupIndex 2601 2603 2605 ! CC_GroupIndex - First index for cable control group, should correspond to deltaL +169 CC_ActTau 20.000000 ! CC_ActTau - Time constant for line actuator [s] +170 Empty Line +171 StC_Section !------- Structural Controllers --------------------------------------------------------- +172 StC_Group_N 3 ! StC_Group_N - Number of cable control groups +173 StC_GroupIndex 2818 2838 2858 ! StC_GroupIndex - First index for structural control group, options specified in ServoDyn summary output +====== ================= ====================================================================================================================================================================================================== + + 2.6.0 to 2.7.0 ------------------------------- Pitch Faults diff --git a/docs/source/standard_use.rst b/docs/source/standard_use.rst index e96c4f52..a23310dc 100644 --- a/docs/source/standard_use.rst +++ b/docs/source/standard_use.rst @@ -16,12 +16,11 @@ Several OpenFAST inputs are located in `Test_Cases/ `_. A detailed description of the ROSCO control inputs and tuning :code:`.yaml` are provided in :ref:`discon_in` and :ref:`rt_tuning_yaml`, respectively. -* :code:`example_01.py` loads an OpenFAST turbine model and displays a summary of its information -* :code:`example_02.py` plots the :math:`C_p` surface of a turbine +* :code:`01_turbine_model.py` loads an OpenFAST turbine model and displays a summary of its information ROSCO requires the power and thrust coefficients for tuning control inputs and running the extended Kalman filter wind speed estimator. -* :code:`example_03.py` runs cc-blade, a blade element momentum solver from WISDEM, to generate a :math:`C_p` surface. +* :code:`02_ccblade.py` runs cc-blade, a blade element momentum solver from WISDEM, to generate a :math:`C_p` surface. The :code:`Cp_Cq_Ct.txt` (or similar) file contains the rotor performance tables that are necessary to run the ROSCO controller. This file can be located wherever you desire, just be sure to point to it properly with the :code:`PerfFileName` parameter in :code:`DISCON.IN`. @@ -36,9 +35,9 @@ Generally :code:`omega_*` increases the responsiveness of the controller, reduci :code:`zeta_*` changes the damping of the controller and is generally less important of a tuning parameter, but could also help with loading. The default parameters in `Tune_Cases/ `_ are known to work well with the turbines in this repository. -* :code:`example_04.py` loads a turbine and tunes the PI control gains -* :code:`example_05.py` tunes a controller and runs a simple simualtion (not using OpenFAST) -* :code:`example_06.py` loads a turbine, tunes a controller, and runs an OpenFAST simulation +* :code:`03_tune_controller.py` loads a turbine and tunes the PI control gains +* :code:`04_simple_sim.py` tunes a controller and runs a simple simualtion (not using OpenFAST) +* :code:`05_openfast_sim.py` loads a turbine, tunes a controller, and runs an OpenFAST simulation Each of these examples generates a :code:`DISCON.IN` file, which is an input to libdiscon.*. When running the controller in OpenFAST, :code:`DISCON.IN` must be appropriately named using the :code:`DLL_FileName` parameter in ServoDyn. @@ -51,18 +50,18 @@ OpenFAST can be installed from `source `_ ROSCO can implement peak shaving (or thrust clipping) by changing the minimum pitch angle based on the estimated wind speed: -* :code:`example_07.py` loads a turbine and tunes a controller with peak shaving. +* :code:`06_peak_shaving.py` loads a turbine and tunes a controller with peak shaving. By setting the :code:`ps_percent` value in the tuning yaml, the minimum pitch versus wind speed table changes and is updated in the :code:`DISCON.IN` file. ROSCO also contains a method for distributed aerodynamic control (e.g., via trailing edge flaps): -* :code:`example_10.py` tunes a controller for distributed aerodynamic control +* :code:`09_distributed_aero.py` tunes a controller for distributed aerodynamic control The ROSCO toolbox also contains methods for working with OpenFAST linear models -* :code:`example_11.py` exports a file of the parameters used for the simplified linear models used to tune ROSCO -* :code:`example_12.py` shows how linear models generated using OpenFAST can be used to tune controllers with robust stability properties. -* :code:`example_13.py` shows the tuning procedure for IPC +* :code:`10_linear_params.py` exports a file of the parameters used for the simplified linear models used to tune ROSCO +* :code:`11_robust_tuning.py` shows how linear models generated using OpenFAST can be used to tune controllers with robust stability properties. +* :code:`12_tune_ipc.py` shows the tuning procedure for IPC Running OpenFAST Simulations ---------------------------- @@ -81,10 +80,10 @@ The ROSCO_toolbox has methods for running OpenFAST (and other) binary executable Several example scripts are set up to quickly simulate ROSCO with OpenFAST: -* :code:`example_06.py` loads a turbine, tunes a controller, and runs an OpenFAST simulation -* :code:`example_08.py` loads the OpenFAST output files and plots the results -* :code:`example_09.py` runs TurbSim, for generating turbulent wind inputs -* :code:`example_14.py` runs an OpenFAST simulation with ROSCO providing open loop control inputs +* :code:`05_openfast_sim.py` loads a turbine, tunes a controller, and runs an OpenFAST simulation +* :code:`07_openfast_outputs.py` loads the OpenFAST output files and plots the results +* :code:`08_run_turbsim.py` runs TurbSim, for generating turbulent wind inputs +* :code:`14_open_loop_control.py` runs an OpenFAST simulation with ROSCO providing open loop control inputs Testing ROSCO diff --git a/docs/source/toolbox_input.rst b/docs/source/toolbox_input.rst index 2c11d648..5b205c70 100644 --- a/docs/source/toolbox_input.rst +++ b/docs/source/toolbox_input.rst @@ -102,7 +102,7 @@ controller_params *Default* = 1 - *Minimum* = 0 *Maximum* = 2 + *Minimum* = 0 *Maximum* = 3 :code:`F_LPFType` : Float @@ -266,8 +266,25 @@ controller_params :code:`Ext_Mode` : Float - External control mode {{0 - not used, 1 - call external dynamic - library}} + External control mode [0 - not used, 1 - call external dynamic + library] + + *Default* = 0 + + *Minimum* = 0 *Maximum* = 1 + + +:code:`CC_Mode` : Float + Cable control mode [0- unused, 1- User defined, 2- Position + control (not yet implemented)] + + *Default* = 0 + + *Minimum* = 0 *Maximum* = 1 + + +:code:`StC_Mode` : Float + Structural control mode [0- unused, 1- User defined] *Default* = 0 @@ -567,6 +584,11 @@ These are pass-through parameters for the DISCON.IN file. Use with caution. write standard output .dbg-file and complete avrSWAP-array .dbg2-file) +:code:`Echo` : Float + 0 - no Echo, 1 - Echo input data to .echo + + *Default* = 0 + :code:`F_LPFType` : Float 1- first-order low-pass filter, 2- second-order low-pass filter (currently filters generator speed and pitch control signals @@ -925,6 +947,32 @@ These are pass-through parameters for the DISCON.IN file. Use with caution. :code:`PF_Offsets` : Array of Floats Pitch angle offsets for each blade (array with length of 3) +:code:`CC_Group_N` : Float + Number of cable control groups + + *Default* = 0 + +:code:`CC_GroupIndex` : Array of Floats + First index for cable control group, should correspond to deltaL + + *Default* = [0] + +:code:`CC_ActTau` : Float + Time constant for line actuator [s] + + *Default* = 20 + +:code:`StC_Group_N` : Float + Number of cable control groups + + *Default* = 0 + +:code:`StC_GroupIndex` : Array of Floats + First index for structural control group, options specified in + ServoDyn summary output + + *Default* = [0] + linmodel_tuning diff --git a/setup.py b/setup.py index c02d8043..3af0995a 100644 --- a/setup.py +++ b/setup.py @@ -43,16 +43,17 @@ REQUIRED = [ 'matplotlib', 'numpy', - 'pytest', + #'pytest', 'scipy', 'pyYAML', - 'future', + #'future', 'pandas' ] # For the CMake Extensions this_directory = os.path.abspath(os.path.dirname(__file__)) + class CMakeExtension(Extension): def __init__(self, name, sourcedir='', **kwa):