Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

F/brfm #31

Merged
merged 5 commits into from
Nov 26, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion WISDEM/wisdem/ccblade/ccblade_component.py
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,10 @@ def setup(self):
self.add_output('theta', val=np.zeros(n_span), units='rad', desc='Twist angle at each section (positive decreases angle of attack)')
self.add_output('CP', val=0.0, desc='Rotor power coefficient')
self.add_output('GenPwr',val=0.0, units='W', desc='Generator electrical power')
self.add_output('P', val=0.0, units='W', desc='Rotor aerodynamic power')
self.add_output('T', val=0.0, units='N*m', desc='Rotor aerodynamic thrust')
self.add_output('Q', val=0.0, units='N*m', desc='Rotor aerodynamic torque')
self.add_output('M', val=0.0, units='N*m', desc='Blade root flapwise moment')
self.add_output('CM', val=0.0, desc='Blade flapwise moment coefficient')
self.add_output('a', val=np.zeros(n_span), desc='Axial induction along blade span')
self.add_output('ap', val=np.zeros(n_span), desc='Tangential induction along blade span')
Expand Down Expand Up @@ -499,7 +503,7 @@ def compute(self, inputs, outputs, discrete_inputs, discrete_outputs):


myout, derivs = get_cp_cm.evaluate([inputs['Uhub']], [Omega], [inputs['pitch']], coefficients=True)
P, _, _, _, CP, CT, CQ, CM = [myout[key] for key in ['P','T','Q','M','CP','CT','CQ','CM']]
P, T, Q, M, CP, CT, CQ, CM = [myout[key] for key in ['P','T','Q','M','CP','CT','CQ','CM']]

# if self.options['opt_options']['optimization_variables']['blade']['aero_shape']['twist']['flag']:
get_cp_cm.induction = False
Expand All @@ -513,6 +517,10 @@ def compute(self, inputs, outputs, discrete_inputs, discrete_outputs):
outputs['CP'] = CP[0]
outputs['CM'] = CM[0]
outputs['GenPwr'] = P*inputs['gearbox_efficiency']*inputs['generator_efficiency']
outputs['P'] = P
outputs['M'] = M
outputs['T'] = T
outputs['Q'] = Q
outputs['a'] = loads['a']
outputs['ap'] = loads['ap']
outputs['alpha'] = loads['alpha']
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ False Furling - Read in additional model properties for fur
"unused" FurlFile - Name of file containing furling properties (quoted string) [unused when Furling=False]
---------------------- TOWER ---------------------------------------------------
20 TwrNodes - Number of tower nodes used for analysis (-)
"IEA-15-240-RWT-Monopile_ElastoDyn_tower.dat" TwrFile - Name of file containing tower properties (quoted string)
"../IEA-15-240-RWT-Monopile/IEA-15-240-RWT-Monopile_ElastoDyn_tower.dat" TwrFile - Name of file containing tower properties (quoted string)
---------------------- OUTPUT --------------------------------------------------
True SumPrint - Print summary data to "<RootName>.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)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
------- AERODYN v15.03.* INPUT FILE ------------------------------------------------
IEA 15 MW Offshore Reference Turbine
====== General Options ============================================================================
False Echo - Echo the input to "<rootname>.AD.ech"? (flag)
"default" DTAero - Time interval for aerodynamic calculations {or "default"} (s)
3 WakeMod - Type of wake/induction model (switch) {0=none, 1=BEMT}
1 AFAeroMod - Type of blade airfoil aerodynamics model (switch) {1=steady model, 2=Beddoes-Leishman unsteady model} [must be 1 when linearizing]
1 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}
False TwrShadow - Calculate tower influence on wind based on downstream tower shadow? (flag)
True 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) TRUE will turn off unsteady aerodynamics
False CompAA - Flag to compute AeroAcoustics calculation [only used when WakeMod=1 or 2]
"AeroAcousticsInput.dat" AA_InputFile - Aeroacoustics input file
====== Environmental Conditions ===================================================================
1.225000000000000e+00 AirDens - Air density (kg/m^3)
1.479232653061225e-05 KinVisc - Kinematic air viscosity (m^2/s)
3.350000000000000e+02 SpdSound - Speed of sound (m/s)
1.035000000000000e+05 Patm - Atmospheric pressure (Pa) [used only when CavitCheck=True]
1.700000000000000e+03 Pvap - Vapour pressure of fluid (Pa) [used only when CavitCheck=True]
5.000000000000000e-01 FluidDepth - Water depth above mid-hub height (m) [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} [used only when WakeMod=1]
"default" SkewModFactor - Constant used in Pitt/Peters skewed wake model {or "default" is 15/32*pi} (-) [used only when SkewMod=2; unused when WakeMod=0]
True TipLoss - Use the Prandtl tip-loss model? (flag) [used only when WakeMod=1]
True HubLoss - Use the Prandtl hub-loss model? (flag) [used only when WakeMod=1]
True TanInd - Include tangential induction in BEMT calculations? (flag) [used only when WakeMod=1]
True AIDrag - Include the drag term in the axial-induction calculation? (flag) [used only when WakeMod=1]
True TIDrag - Include the drag term in the tangential-induction calculation? (flag) [used only when WakeMod=1 and TanInd=TRUE]
"Default" IndToler - Convergence tolerance for BEMT nonlinear solve residual equation {or "default"} (-) [used only when WakeMod=1]
500 MaxIter - Maximum number of iteration steps (-) [used only when WakeMod=1]
====== 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 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]
../IEA-15-240-RWT-OLAF/IEA-15-240-RWT_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=Minemma/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 (-)
50 NumAFfiles - Number of airfoil files used (-)
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_00.dat" AFNames - Airfoil file names (NumAFfiles lines) (quoted strings)
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_01.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_02.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_03.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_04.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_05.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_06.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_07.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_08.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_09.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_10.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_11.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_12.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_13.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_14.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_15.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_16.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_17.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_18.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_19.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_20.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_21.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_22.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_23.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_24.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_25.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_26.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_27.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_28.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_29.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_30.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_31.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_32.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_33.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_34.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_35.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_36.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_37.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_38.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_39.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_40.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_41.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_42.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_43.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_44.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_45.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_46.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_47.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_48.dat"
"../IEA-15-240-RWT/Airfoils/IEA-15-240-RWT_AeroDyn15_Polar_49.dat"
====== Rotor/Blade Properties =====================================================================
True UseBlCm - Include aerodynamic pitching moment in calculations? (flag)
"../IEA-15-240-RWT/IEA-15-240-RWT_AeroDyn15_blade.dat" ADBlFile(1) - Name of file containing distributed aerodynamic properties for Blade #1 (-)
"../IEA-15-240-RWT/IEA-15-240-RWT_AeroDyn15_blade.dat" ADBlFile(2) - Name of file containing distributed aerodynamic properties for Blade #2 (-) [unused if NumBl < 2]
"../IEA-15-240-RWT/IEA-15-240-RWT_AeroDyn15_blade.dat" ADBlFile(3) - Name of file containing distributed aerodynamic properties for Blade #3 (-) [unused if NumBl < 3]
====== Tower Influence and Aerodynamics ============================================================= [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True]
11 NumTwrNds - Number of tower nodes used in the analysis (-) [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True]
TwrElev TwrDiam TwrCd
(m) (m) (-)
15. 10. 1.
28. 10. 1.
41. 9.926 1.
54. 9.443 1.
67. 8.833 1.
80. 8.151 1.
93. 7.39 1.
106. 6.909 1.
119. 6.748 1.
132. 6.572 1.
144.495 6.5 1.
====== Tower Influence and Aerodynamics ============================================================= [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True]
True SumPrint - Generate a summary file listing input options and interpolated properties to "<rootname>.AD.sum"? (flag)
9 NBlOuts - Number of blade node outputs [0 - 9] (-)
1, 6, 11, 20, 30, 38, 43, 47, 50 BlOutNd - Blade nodes whose values will be output (-)
0 NTwOuts - Number of tower node outputs [0 - 9] (-)
1, 2, 3, 4, 5 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, (-)
"RtAeroFxh"
"RtAeroFyh"
"RtAeroFzh"
"RtAeroMxh"
"RtAeroMyh"
"RtAeroMzh"
"RtVAvgxh"
"RtAeroCp"
"RtTSR"
END of input file (the word "END" must appear in the first 3 columns of this last OutList line)
---------------------------------------------------------------------------------------
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
--------------------------- OLAF (cOnvecting LAgrangian Filaments) INPUT FILE -----------------
Free wake input file for the Helix test case
--------------------------- GENERAL OPTIONS ---------------------------------------------------
default IntMethod Integration method {5: Forward Euler 1st order, default: 5} (switch)
default DTfvw Time interval for wake propagation. {default: dtaero} (s)
0.0 FreeWakeStart Time when wake is free. (-) value = always free. {default: 0.0} (s)
5.0 FullCircStart Time at which full circulation is reached. {default: 0.0} (s)
--------------------------- CIRCULATION SPECIFICATIONS ----------------------------------------
default CircSolvingMethod Circulation solving method {1: Cl-Based, 2: No-Flow Through, 3: Prescribed, default: 1 }(switch)
default CircSolvConvCrit Convergence criteria {default: 0.001} [only if CircSolvingMethod=1] (-)
default CircSolvRelaxation Relaxation factor {default: 0.1} [only if CircSolvingMethod=1] (-)
default CircSolvMaxIter Maximum number of iterations for circulation solving {default: 30} (-)
"NA" PrescribedCircFile File containing prescribed circulation [only if CircSolvingMethod=3] (quoted string)
===============================================================================================
--------------------------- WAKE OPTIONS ------------------------------------------------------
------------------- WAKE EXTENT AND DISCRETIZATION --------------------------------------------
600 nNWPanel Number of near-wake panels [integer] (-)
600 WakeLength Total wake distance [integer] (number of time steps)
400 FreeWakeLength Wake length that is free [integer] (number of time steps) {default: WakeLength}
default FWShedVorticity Include shed vorticity in the far wake {default: false}
------------------- WAKE REGULARIZATIONS AND DIFFUSION -----------------------------------------
0 DiffusionMethod Diffusion method to account for viscous effects {0: None, 1: Core Spreading, "default": 0}
1 RegDeterMethod Method to determine the regularization parameters {0: Manual, 1: Optimized, default: 0 }
3 RegFunction Viscous diffusion function {0: None, 1: Rankine, 2: LambOseen, 3: Vatistas, 4: Denominator, "default": 3} (switch)
3 WakeRegMethod Wake regularization method {1: Constant, 2: Stretching, 3: Age, default: 1} (switch)
0.0 WakeRegFactor Wake regularization factor (m)
0.0 WingRegFactor Wing regularization factor (m)
1000 CoreSpreadEddyVisc Eddy viscosity in core spreading methods, typical values 1-1000
------------------- WAKE TREATMENT OPTIONS ---------------------------------------------------
False TwrShadowOnWake Include tower flow disturbance effects on wake convection {default:false} [only if TwrPotent or TwrShadow]
0 ShearModel Shear Model {0: No treatment, 1: Mirrored vorticity, default: 0}
------------------- SPEEDUP OPTIONS -----------------------------------------------------------
2 VelocityMethod Method to determine the velocity {1:Biot-Savart Segment, 2:Particle tree, default: 1}
1.5 TreeBranchFactor Branch radius fraction above which a multipole calculation is used {default: 2.0} [only if VelocityMethod=2]
1 PartPerSegment Number of particles per segment [only if VelocityMethod=2]
===============================================================================================
--------------------------- OUTPUT OPTIONS ---------------------------------------------------
0 WrVTk Outputs Visualization Toolkit (VTK) (independent of .fst option) {0: NoVTK, 1: Write VTK at each time step} (flag)
1 nVTKBlades Number of blades for which VTK files are exported {0: No VTK per blade, n: VTK for blade 1 to n} (-)
1 VTKCoord Coordinate system used for VTK export. {1: Global, 2: Hub, "default": 1}
default VTK_fps Frame rate for VTK output (frames per second) {"all" for all glue code timesteps, "default" for all OLAF timesteps} [used only if WrVTK=1]
------------------------------------------------------------------------------------------------
Loading