-
Notifications
You must be signed in to change notification settings - Fork 0
AeroDyn.f90
All the modifications are commented with "Umass WINDS for ease of lookup".
At the beginning of the Model AeroDyn, load WInDS modules:
-
WINDS: main routines of free vortex methods
-
WINDS_IO: routines dealing with input and ouput files
-
WINDS_DS: routines for LB Dynamic stall
-
WINDS_Library: routines for debug use, write internal variables to txt file
Record the start time.
Near the end of this subroutine, WInDS sets paramters such as blade tip/hub radius, initial timestep number.
Then several subroutine are called including:
-
WInDS_ReadInput (To read input file)
-
WINDS_SetParameters (To set parameters)
-
WINDS_Allocate (to allocate valuables)
-
WINDS_Shear_Model (subroutine about wind shear, optional)
-
WINDS_Ground_model (subroutine about ground effects,optional)
-
LB_load_AirfoilData or LB_Initialize_AirfoilData (to calculate varibles for LB dynamic stall, optional)
-
Write_DS_parameters (write these variables into txt file for debug purpose, optional)
-
Initialize_paraview_files (to initialize paraview animation files (.pvd), optional)
-
WRITE_Treecode (to record the speedup and error of N-body algorithm or parallel computation, optional)
-
CALL WRITE_KJ (to record the iteration number of KJ, optional)
(Before AeroDyn clears variables)
-
Close_paraview_files (to close the Paraview input file)
-
WRITE_Treecode (to record the speedup and error of N-body algorithm or parallel computation)
-
WRITE_KJ (to record the iteration number of KJ)
-
WInDS_WriteSum (to write a summary file for WInDS)
Get the inflow wind speed at the intial timestep (at -1 timestep in AeroDyn). Still has technical issues to obtain wind speed by calling AD_WindVelocityWithDisturbance.
At initial timestep (at -1 timstep in AeroDyn and 1 timstep in WInDS):
-
Call WINDS_Kinematics to calculate the positions of blades
-
Call WINDS_Velocity to calculate the velocity of blades
-
Call WINDS_FVMInitial to calculate initial aerodynamic outputs by BEM (similar to "initials.m" in WInDS)
-
Transfer the aerodynamic forces
-
Call print_element to ouput blade element data (optional).
-
Increase the timstep number of WInDS by 1
At each timestep of WInDS:
-
Call WINDS_check_cutoff to check if wake should be cut off
-
Call WINDS_Kinematics to calculate the positions of blades
-
Call WINDS_Velocity to calculate the velocity of blades
-
Call WINDS_FVM to calculate aerodynamic outputs by free vortex methods (FVM)
-
Transfer the aerodynamic forces
-
Call print_element to ouput blade element data (optional).
-
Increase the timstep number of WInDS by 1
At each timestep of AeroDyn that is not used in WInDS:
- Copy the aerodynamic load from the previous AeroDyn timestep
Update the global timestep by 1.
One issue here is that WInDS has no access to the total FAST simulation time. The code here will check whether the time in WInDS is larger than FAST simulation time and terminate if it exceeds.