FEDEM Solver  R8.0
Source code of the dynamics solver
Functions/Subroutines
windturbineroutinesmodule Module Reference

Module with subroutines for wind turbine calculations. More...

Functions/Subroutines

subroutine, public aeroinput (env, turb, ADFile, NumBl, CompAero, CompNoise, SumPrint, ierr)
 Sets up the information needed for, and initializes AeroDyn. More...
 
subroutine set_fedem_params (env, turbine, CompAero, CompNoise, ierr)
 Sets Fedem variables based on AeroDyn inputs. More...
 
subroutine convertturbineconfig (Fedem, AD, ierr)
 Converts a Fedem wind turbine configuration to AeroDyn's format. More...
 
subroutine updateturbineconfig (Fedem, AD)
 Updates the AeroDyn wind turbine configuration. More...
 
subroutine updateadmarker (ADmarker, triad, sup, offset)
 Updates an AeroDyn marker based on the corresponding Fedem triad. More...
 
subroutine, public updateaeroforces (time, turb, ierr)
 Gets the aerodynamic forces at given time on the given wind turbine. More...
 
subroutine, public addinaeroforces (Q, RF, turbine, sam, ierr)
 Calculates system force vector contributions from a wind turbine. More...
 
subroutine, public gethubwindspeed (time, turbine, dws, uws, ierr)
 Evaluates the wind speed at the hub center. More...
 
subroutine, public gettipwindspeed (iBlade, time, turbine, dws, uws, ierr)
 Evaluates the wind speed at the tip of the given blade. More...
 
subroutine, public getwindspeed (pos, time, dws, uws, ierr)
 Evaluates the wind speed at a given location center. More...
 
subroutine, public getbladedeflections (turbine)
 Evaluates the deflection along the blades. More...
 
subroutine, public closeaerodyn (ierr)
 Terminates the aerodynamics module. More...
 

Detailed Description

Module with subroutines for wind turbine calculations.

Function/Subroutine Documentation

◆ addinaeroforces()

subroutine, public windturbineroutinesmodule::addinaeroforces ( real(dp), dimension(:), intent(inout)  Q,
real(dp), dimension(:), intent(inout)  RF,
type(turbineconfig), intent(in)  turbine,
type(samtype), intent(in)  sam,
integer, intent(inout)  ierr 
)

Calculates system force vector contributions from a wind turbine.

Parameters
QExternal force vector
RFReaction forces
[in]turbineWind turbine configuration object
[in]samData for managing system matrix assembly
ierrError flag
Author
Knut Morten Okstad
Date
1 Dec 2009
Here is the call graph for this function:
Here is the caller graph for this function:

◆ aeroinput()

subroutine, public windturbineroutinesmodule::aeroinput ( type(environmenttype), intent(inout)  env,
type(turbineconfig), intent(inout), target  turb,
character(len=*), intent(in)  ADFile,
integer, intent(in)  NumBl,
logical, intent(in)  CompAero,
logical, intent(in)  CompNoise,
logical, intent(in)  SumPrint,
integer, intent(out)  ierr 
)

Sets up the information needed for, and initializes AeroDyn.

Parameters
envEnvironmental data
turbWind turbine configuration object
[in]ADfileName of the AeroDyn input file
[in]NumBlNumber of turbine blades
[in]CompAeroIf .true., Aerodynamic forces are computed
[in]CompNoiseIf .true., turbulent inflow noise is accounted for
[in]SumPrintIf .true., the resultant aerodynamic forces are printed
[out]ierrError flag
Author
Knut Morten Okstad
Date
11 Oct 2010 / 2.0
Here is the call graph for this function:
Here is the caller graph for this function:

◆ closeaerodyn()

subroutine, public windturbineroutinesmodule::closeaerodyn ( integer, intent(out)  ierr)

Terminates the aerodynamics module.

Parameters
[out]ierrError flag
Author
Knut Morten Okstad
Date
9 Feb 2011
Here is the caller graph for this function:

◆ convertturbineconfig()

subroutine windturbineroutinesmodule::convertturbineconfig ( type(turbineconfig), intent(in)  Fedem,
type(aeroconfig), intent(out)  AD,
integer, intent(out)  ierr 
)

Converts a Fedem wind turbine configuration to AeroDyn's format.

Parameters
[in]FedemWind turbine configuration object, Fedem format
[out]ADWind turbine configuration object, AeroDyn format
[out]ierrError flag
Author
Knut Morten Okstad
Date
15 Oct 2010
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getbladedeflections()

subroutine, public windturbineroutinesmodule::getbladedeflections ( type(turbineconfig), intent(inout)  turbine)

Evaluates the deflection along the blades.

Parameters
turbineWind turbine configuration object

The deflections are calculated relative to the blade root.

Author
Knut Morten Okstad
Date
9 Feb 2011
Here is the caller graph for this function:

◆ gethubwindspeed()

subroutine, public windturbineroutinesmodule::gethubwindspeed ( real(dp), intent(in)  time,
type(turbineconfig), intent(in)  turbine,
real(dp), dimension(3), intent(out)  dws,
real(dp), dimension(3), intent(out)  uws,
integer, intent(out)  ierr 
)

Evaluates the wind speed at the hub center.

Parameters
[in]timeCurrent physical time
[in]turbineWind turbine configuration object
[out]dwsHub wind speed including disturbance
[out]uwsUndisturbed hub wind speed
[out]ierrError flag
Author
Knut Morten Okstad
Date
9 Feb 2011
Here is the caller graph for this function:

◆ gettipwindspeed()

subroutine, public windturbineroutinesmodule::gettipwindspeed ( integer, intent(in)  iBlade,
real(dp), intent(in)  time,
type(turbineconfig), intent(in)  turbine,
real(dp), dimension(3), intent(out)  dws,
real(dp), dimension(3), intent(out)  uws,
integer, intent(out)  ierr 
)

Evaluates the wind speed at the tip of the given blade.

Parameters
[in]iBladeIndex of the blade to evaluate the wind for
[in]timeCurrent physical time
[in]turbineWind turbine configuration object
[out]dwsBlade tip wind speed including disturbance
[out]uwsUndisturbed blade tip wind speed
[out]ierrError flag
Author
Knut Morten Okstad
Date
9 Feb 2011
Here is the caller graph for this function:

◆ getwindspeed()

subroutine, public windturbineroutinesmodule::getwindspeed ( real(dp), dimension(3), intent(in)  pos,
real(dp), intent(in)  time,
real(dp), dimension(3), intent(out)  dws,
real(dp), dimension(3), intent(out)  uws,
integer, intent(out)  ierr 
)

Evaluates the wind speed at a given location center.

Parameters
[in]posSpatial point to evaluate the wind at
[in]timeCurrent physical time
[out]dwsWind speed including disturbance
[out]uwsUndisturbed wind speed
[out]ierrError flag
Author
Knut Morten Okstad
Date
5 Nov 2013
Here is the caller graph for this function:

◆ set_fedem_params()

subroutine windturbineroutinesmodule::set_fedem_params ( type(environmenttype), intent(inout)  env,
type(turbineconfig), intent(inout)  turbine,
logical, intent(in)  CompAero,
logical, intent(in)  CompNoise,
integer, intent(out)  ierr 
)

Sets Fedem variables based on AeroDyn inputs.

Parameters
envEnvironmental data
turbineWind turbine configuration object
[in]CompAeroIf .true., Aerodynamic forces are computed
[in]CompNoiseIf .true., turbulent inflow noise is accounted for
[out]ierrError flag

This subroutine is called at the start of the simulation to set up simulation variables for Fedem based on the AeroDyn parameters.

Author
Knut Morten Okstad
Date
11 Oct 2010
Here is the caller graph for this function:

◆ updateadmarker()

subroutine windturbineroutinesmodule::updateadmarker ( type(marker), intent(inout)  ADmarker,
type(triadtype), intent(in), optional  triad,
type(supeltype), intent(in), optional  sup,
real(dp), dimension(2), intent(in), optional  offset 
)

Updates an AeroDyn marker based on the corresponding Fedem triad.

Parameters
ADmarkerA marker associated with the AeroDyn turbine configuration
[in]triadTriad corresponding to the specified marker
[in]supBeam element defining the position/orientation of the marker
[in]offsetEccentricity of the AeroDyn marker w.r.t the pitch axis
Note
AeroDyn requires the inverse orientation matrix compared to Fedem (global-to-local vs. local-to-global). Therefore the transpose().
Author
Knut Morten Okstad
Date
15 Oct 2010
Here is the caller graph for this function:

◆ updateaeroforces()

subroutine, public windturbineroutinesmodule::updateaeroforces ( real(dp), intent(in)  time,
type(turbineconfig), intent(inout)  turb,
integer, intent(out)  ierr 
)

Gets the aerodynamic forces at given time on the given wind turbine.

Parameters
[in]timeCurrent physical time
turbWind turbine configuration object
[out]ierrError flag
Author
Knut Morten Okstad
Date
1 Dec 2009
Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateturbineconfig()

subroutine windturbineroutinesmodule::updateturbineconfig ( type(turbineconfig), intent(in)  Fedem,
type(aeroconfig), intent(inout)  AD 
)

Updates the AeroDyn wind turbine configuration.

Parameters
[in]FedemWind turbine configuration object, Fedem format
[out]ADWind turbine configuration object, AeroDyn format
Note
AeroDyn requires the inverse orientation matrix compared to Fedem (global-to-local vs. local-to-global). Therefore the transpose().
Author
Knut Morten Okstad
Date
15 Oct 2010
Here is the call graph for this function:
Here is the caller graph for this function: