![]() |
OpenFAST
Wind turbine multiphysics simulator
|
This module uses full-field binary wind files to determine the wind inflow. More...
Functions/Subroutines | |
subroutine, public | ifw_tsffwind_init (InitData, ParamData, MiscVars, Interval, InitOutData, ErrStat, ErrMsg) |
This routine is used read the full-field turbulence data. More... | |
subroutine, public | ifw_tsffwind_calcoutput (Time, PositionXYZ, ParamData, Velocity, DiskVel, MiscVars, ErrStat, ErrMsg) |
This routine acts as a wrapper for the GetWindSpeed routine. More... | |
real(reki) function, dimension(3) | ff_interp (t_in, Position, ParamData, MiscVars, ErrStat, ErrMsg) |
This function is used to interpolate into the full-field wind array or tower array if it has been defined and is necessary for the given inputs. More... | |
subroutine, public | ifw_tsffwind_end (ParamData, MiscVars, ErrStat, ErrMsg) |
This subroutine cleans up any data that is still allocated. More... | |
Variables | |
type(progdesc), parameter | ifw_tsffwind_ver = ProgDesc( 'IfW_TSFFWind', '', '' ) |
This module uses full-field binary wind files to determine the wind inflow.
This module assumes that the origin, (0,0,0), is located at the tower centerline at ground level, and that all units are specified in the metric system (using meters and seconds). Data is shifted by half the grid width to account for turbine yaw (so that data in the X direction actually starts at -1*ParamDataFFYHWid meters).
|
private |
This function is used to interpolate into the full-field wind array or tower array if it has been defined and is necessary for the given inputs.
It receives X, Y, Z and TIME from the calling routine. It then computes a time shift due to a nonzero X based upon the average windspeed. The modified time is used to decide which pair of time slices to interpolate within and between. After finding the two time slices, it decides which four grid points bound the (Y,Z) pair. It does a bilinear interpolation for each time slice. Linear interpolation is then used to interpolate between time slices. This routine assumes that X is downwind, Y is to the left when looking downwind and Z is up. It also assumes that no extrapolation will be needed.
If tower points are used, it assumes the velocity at the ground is 0. It interpolates between heights and between time slices, but ignores the Y input.
11/07/1994 - Created by M. Buhl from the original TURBINT. 09/25/1997 - Modified by M. Buhl to use f90 constructs and new variable names. Renamed to FF_Interp. 09/23/2009 - Modified by B. Jonkman to use arguments instead of modules to determine time and position. Height is now relative to the ground 16-Apr-2013 - A. Platt, NREL. Converted to modular framework. Modified for NWTC_Library 2.0
[in] | t_in | input time |
[in] | position | takes the place of XGrnd, YGrnd, ZGrnd |
[in] | paramdata | Parameters |
[in,out] | miscvars | Misc variables for optimization (not copied in glue code) |
[out] | errstat | error status |
[out] | errmsg | error message |
subroutine, public ifw_tsffwind::ifw_tsffwind_calcoutput | ( | real(dbki), intent(in) | Time, |
real(reki), dimension(:,:), intent(in) | PositionXYZ, | ||
type(ifw_tsffwind_parametertype), intent(in) | ParamData, | ||
real(reki), dimension(:,:), intent(inout) | Velocity, | ||
real(reki), dimension(3), intent(out) | DiskVel, | ||
type(ifw_tsffwind_miscvartype), intent(inout) | MiscVars, | ||
integer(intki), intent(out) | ErrStat, | ||
character(*), intent(out) | ErrMsg | ||
) |
This routine acts as a wrapper for the GetWindSpeed routine.
It steps through the array of input positions and calls the GetWindSpeed routine to calculate the velocities at each point.
There are inefficiencies in how this set of routines is coded, but that is a problem for another day. For now, it merely needs to be functional. It can be fixed up and made all pretty later.
16-Apr-2013 - A. Platt, NREL. Converted to modular framework. Modified for NWTC_Library 2.0
[in] | time | time from the start of the simulation |
[in] | positionxyz | Array of XYZ coordinates, 3xN |
[in] | paramdata | Parameters |
[in,out] | velocity | Velocity output at Time (Set to INOUT so that array does not get deallocated) |
[out] | diskvel | HACK for AD14: disk velocity output at Time |
[in,out] | miscvars | Misc variables for optimization (not copied in glue code) |
[out] | errstat | error status |
[out] | errmsg | The error message |
subroutine, public ifw_tsffwind::ifw_tsffwind_end | ( | type(ifw_tsffwind_parametertype), intent(inout) | ParamData, |
type(ifw_tsffwind_miscvartype), intent(inout) | MiscVars, | ||
integer(intki), intent(out) | ErrStat, | ||
character(*), intent(out) | ErrMsg | ||
) |
This subroutine cleans up any data that is still allocated.
The (possibly) open files are closed in InflowWindMod.
16-Apr-2013 - A. Platt, NREL. Converted to modular framework. Modified for NWTC_Library 2.0
[in,out] | paramdata | Parameters |
[in,out] | miscvars | Misc variables for optimization (not copied in glue code) |
[out] | errstat | determines if an error has been encountered |
[out] | errmsg | Message about errors |
subroutine, public ifw_tsffwind::ifw_tsffwind_init | ( | type(ifw_tsffwind_initinputtype), intent(in) | InitData, |
type(ifw_tsffwind_parametertype), intent(out) | ParamData, | ||
type(ifw_tsffwind_miscvartype), intent(out) | MiscVars, | ||
real(dbki), intent(in) | Interval, | ||
type(ifw_tsffwind_initoutputtype), intent(out) | InitOutData, | ||
integer(intki), intent(out) | ErrStat, | ||
character(*), intent(out) | ErrMsg | ||
) |
This routine is used read the full-field turbulence data.
09/25/1997 - Created by M. Buhl from GETFILES in ViewWind. 09/23/2009 - modified by B. Jonkman: this subroutine was split into several subroutines (was ReadFF) 16-Apr-2013 - A. Platt, NREL. Converted to modular framework. Modified for NWTC_Library 2.0
[in] | initdata | Initialization data passed to the module |
[out] | paramdata | Parameters |
[out] | miscvars | Misc variables for optimization (not copied in glue code) |
[out] | initoutdata | Initial output |
[in] | interval | Time Interval to use (passed through here) |
[out] | errstat | determines if an error has been encountered |
[out] | errmsg | Message about errors |