OpenFAST / openfast

Main repository for the NREL-supported OpenFAST whole-turbine and FAST.Farm wind farm simulation codes.
http://openfast.readthedocs.io
Apache License 2.0
648 stars 447 forks source link

Where is the data available or which script creates data? #573

Closed ai-aspirant closed 3 years ago

ai-aspirant commented 3 years ago

Hello everyone, I went through the documentation, couldn't find out which script creates data? On the NREL website, the pre-processor AirfoilPrep helps create the data for Aerodyn for example are present for many such instances. But which module here works as a preprocessor and how can the data be downloaded or even fetch all hte .dat files?

Thank you very much in advance.

jjonkman commented 3 years ago

Dear @ai-aspirant,

I'm not sure I fully understand your question, but NREL has developed several pre-processors for OpenFAST, including:

Of these, only TurbSim is currently included in the OpenFAST repository on github.

Best regards,

ai-aspirant commented 3 years ago

Dear @jjonkman , thank you for your response to this. If I want to provide data to a model would it always be in the similar format as provided in the example in the documentation? Or will it take some script in the openfast repository which helps me create similar format data as an input? Am I making sense this time?

jjonkman commented 3 years ago

Dear @ai-aspirant,

The format of the various OpenFAST input files is fixed. You can generate the data to populate these input files by hand or by scripting...really any way you want. I mentioned in my prior post several of the common pre-processors NREL has developed to aid in the process.

I'm not sure if you are trying to change the aerodynamic, structural, or control properties of the wind turbine or the wind inflow used to drive the simulation. But clarifying that may help may help to provide more specific guidance.

Best regards,

ai-aspirant commented 3 years ago

Thanks for that @jjonkman I understand it. But as I mentioned I wanted to know which mapping file would help me aid in the process. Would it be just a single file that I need to execute? Or an executable with a provided base input? And if either is the case, does it remain same for all the Pre-processors? If not, I can then ask you for the help in each other pre-processor modules.

So, basically @jjonkman the idea is to execute openfast completely and simulate it but I just wanted to understand the input files format so that I can manage it accordingly with my team.

Another question I have is, running an executable openfast model from the binaries will just create an additional flags in the data. It won't provide me a simulation, right? I'll have to explicitly run the Simulink module.

Sorry for the rushing questions.

jjonkman commented 3 years ago

Dear @ai-aspirant,

I'm not sure I really understand your questions.

Executing an OpenFAST simulation requires that you have a primary (*.fst) input file, as well as input files for each module (some modules require multiple input files). Only the primary input file is specified when executing OpenFAST. The primary input file lists which modules are enabled and the names (including paths) of their respective input files. Pre-processing steps happen before running the OpenFAST simulation in order to set up the OpenFAST input files.

OpenFAST can be run either independently or interfaced to Simulink. The Simulink interface is only needed if you wish to implement control logic within MATLAB/Simulink.

Best regards,

ai-aspirant commented 3 years ago

Hello @jjonkman, Alright let me break down the questions. Firstly, my concern is about data, the data that I want to create for a particular module should look similar to what I can find in the following link. https://openfast.readthedocs.io/en/master/source/user/aerodyn/appendix.html#ad-appendix So this has 4 kinds of data, the driver is used only when I need to run a stand-alone module, second is the primary input file which consists of few data paths that has the information about a particular values of a wind-mill, third is blade file which tells me about the geometry of the blades and it would differ from wind-mill to wind-mill right? Last file is the airfoil file which also has few parameters related to the airfoil structure like airfoil attack angle, drag, lift etc.

Now when I arrange the similar data, do I have to just replace the values of it in the following files that is mentioned in the link provided above or would executing some Fortran file help me create files ready to input it as a direct input? I hope I'm being clear this time.

jjonkman commented 3 years ago

Dear @ai-aspirant,

NREL has not provided Fortran-based source code to auto-generate the various OpenFAST / AeroDyn input files. You can always manually edit the input files in any text editor. Of course, if you intend to run thousands of simulations, you wouldn't want to create the input files manually. Instead, you want to auto-generate the input files with some sort of script. Is there a specific scripting language you intend to use, e.g., MATLAB or Python? The MATLAB toolbox (https://github.com/OpenFAST/matlab-toolbox) has scripts that can read and write OpenFAST input files, e.g, so, you can read the input file data into MATLAB, change the values within MATLAB, and write out the new input file. You could use these as a basis for generating your own scripts. My understanding is that similar scripts exist in the Python toolbox (https://github.com/OpenFAST/python-toolbox), but I'm less familiar with the details.

Best regards,

ai-aspirant commented 3 years ago

Dear @jjonkman, This is really helpful. I prefer Python, will look into it. Thank you.

Lastly, I wanted to know in the OpenFAST model, for a land wind-mill, would a combination of Aerodyn, Servodyn, Elastodyn work enough together? This is filtered from flags used in the primary file as an input to OpenFAST module.

ebranlard commented 3 years ago

Dear @ai-aspirant

Following up on Jason's answer, if you want to script the generation of the input files, one way to do this is have a set of "template" input files from an existing OpenFAST model. Your script would read these template files, modify the values, and write them for your given turbine and simulation. In the matlab toolbox, reading and writing input files is done using the script FAST2MATLAB and MATLAB2FAST. For the python toolbox, you need to use the dev branch. Examples of reading and writing files are given in the readme: https://github.com/OpenFAST/python-toolbox/tree/dev/pyFAST/input_output

It's usually quite some work to generate a turbine model, so you might prefer to edit each values of the input files "manually" if you only need to do this for one turbine. We don't have a "standard" way of doing this since the user inputs can be in various formats. If you have a lot of models to set from one given format, these reading/writing script will definitely help you.

Once you have set up a turbine model, and you want to generate a lot of simulations, the Matlab and python scripts can also be used. I've uploaded an example on how to do this with python here: https://github.com/ebranlard/python-toolbox/blob/f/example/pyFAST/case_generation/examples/Example_Parametric.py

I hope that helps,

Emmanuel

ai-aspirant commented 3 years ago

Dear @ebranlard, This would be of great help. I would go through the links you shared and try arranging the data as required by OpenFAST. Thank you.

Also, when you mention generating a turbine model, do you refer to as combining all those stand-alone models into OpenFAST or customizing the original one?

Thank you again.

Regards, Kirsten

jjonkman commented 3 years ago

Dear Kirsten,

A land-based wind turbine OpenFAST model would normally have the ElastoDyn (for structural dynamics), AeroDyn (for aerodynamics), ServoDyn (for controls), and InflowWind (for ambient wind inflow) modules enabled. Often AeroDyn is also run standalone (without aeroelastic coupling) if you wish to study the aerodynamic performance only before simulating the coupled aero-servo-elastics.

Best regards,

ebranlard commented 3 years ago

Hi Kirsten,

My guess is you already have some "data" about the turbine you want to model: for instance some geometrical properties, aerodynamic properties ( chord and twist distribution, polar data), material/structural properties (masses, stiffnesses, damping) of different components.

Based on these data, you can write the input files for OpenFAST. I'll call this set of input files an "OpenFAST model". You can find an example of an OpenFAST model for the land-based NREL 5MW turbine here: https://github.com/OpenFAST/r-test/tree/master/glue-codes/openfast/5MW_Land_DLL_WTurb

You need to know a lot of data to do a full OpenFAST model. This is why Jason is recommending to maybe start by setting up an "AeroDyn driver" model, where you only need to know the aerodynamic properties of the turbine you want to model. You'll find examples in the link you mentioned earlier: https://openfast.readthedocs.io/en/master/source/user/aerodyn/appendix.html#aerodyn-input-files

Regards

ebranlard commented 3 years ago

As a note, the input file format is fixed, and inputs are expected to be at a given line number.

Yet, from one openfast version to the next, we sometimes introduce changes to the file format (adding or removing a couple of lines), so it's important to keep track of which version of OpenFAST (or AeroDyn/driver) you are using.

Changes between versions are documented here: https://openfast.readthedocs.io/en/master/source/user/api_change.html

The master branch of the "r-test" repository I pointed to earlier, has input files that are always in line with the current version of openFAST.

ai-aspirant commented 3 years ago

Hi Emmanuel and @jjonkman, Hope you are doing well. Thank you for all your responses, it helped me a lot. However, I tried executing the _5MW_Land_DLLWTurb with the OpenFAST binaries and executables. While executing it, I got the following result: image

The binaries are put in the path where my executables are present. Still, I'm getting this message. So, I was wondering if this is just a normal message or it actually executed without these modules? Let me know if you need any more details for various directories.

I also visualized it using paraview. Might need some time to understand it better. Thanks for that again to both of you.

I also wanted to ask if there's an article which would understand the ideal limit for every variable provided in the output of FAST. For an instance, if I consider Wind1VelX it ranges between 1.162E+01 to 9.975E+01 so is there a limit for that variable which will help me understand if it goes beyond any limit like an anomaly?

Thank you.

Best Regards, Kirsten

jjonkman commented 3 years ago

Hi Kristen,

Regarding the "nodal output" warnings, these will not effect the simulation results; you can ignore the warnings. I asked @andrew-platt about these, and here is his response:

I will change those to Info instead of warning.

When we added the node based outputs, we kept the input files for each module backwards compatible. The node outputs is a second output section following the standard output section. So the warning/info is just to let the user know that this section of the input file does not exist and that they won't get node based outputs. This was added to ElastoDyn (blade nodes only), BeamDyn, and AD15, so all three modules may report this info at initialization.

Regarding the "C_nalpha is 0" warnings, you can ignore these as well. The unsteady airfoil aerodynamics model of AeroDyn is not valid when the slope of the normal force coefficient curve is zero.

I'm not aware of a paper that summarizes reasonable or physical limits to the various FAST outputs.; these will come only with experience. But a wind speed range of 11.62 to 99.75 m/s sounds extreme indeed.

Best regards,

ai-aspirant commented 3 years ago

Hi @jjonkman , Understood. So in case the nodal outputs are not generated, the standard output would be enough I believe. Another thing I came across was that while I was going through the _5MW_Land_DLLWTurb.out file that was generated, it only consisted the output parameters for InFlowWind and ElastoDyn modules. Does it not include the output parameters from Aerodyn and ServoDyn like the ones mentioned in the FAST userguide in the Output Files section? Also, I wanted to understand the time output parameter that ranges from 0 to 60 in the similar output file I mentioned earlier, does that signify a time-series range?

Thanks. Regards, Kirsten

jjonkman commented 3 years ago

Hi Kristen,

The OpenFAST output file will include whichever module-level outputs you've selected. If you are not getting any outputs from ServoDyn and AeroDyn, it is because you have not set outputs in the ServoDyn and AeroDyn input files.

OpenFAST is a nonlinear time-domain solver, so, the output is the wind turbine response as a function of time.

Best regards,

ai-aspirant commented 3 years ago

Hello Jason, Got it. I just included a list of parameters and it worked for both the modules. Thanks. Another thing that I was having a hard time understanding is that in my output generated file a parameter is generated 'Wind1VelX' which is X component of wind at user selected wind point 1 since the selected number of points is 1. But in case I need to understand where exactly that point is at for a better understanding, do you have any idea where I can find it? Or will it come as I learn about wind-mills in great detail?

Thanks, with regards, Kirsten

ai-aspirant commented 3 years ago

Hi Jason, just to add the previous point I wanted to verify as to what exactly visualization files give a gist of? Is it an animation of how the values of velocity helps in running a wind-mill or something else? I wanted that to know so that I would understand what exactly would I be looking at in Paraview, as the values that I got inside a Blade1referene.vlt file looked something like follows:

image So, does this signify the structure and various velocities that my modules are providing as an output or some external calculations?

Regards, Kirsten

jjonkman commented 3 years ago

Dear Kristen,

The location(s) of the ambient wind outputs from InflowWind (Wind1VelX, etc.) are user-specified via input parameters WindVxiList, WindVyiList, and WindVziList in the InflowWind input file. The InflowWind module is well described in the InflowWind User's Guide, which has not yet been ported to OpenFAST readthedocs, but is available here: https://drive.google.com/file/d/1-yJox2Kj-eBHfX2FdjE7RCaOkXRml9Mw/view?usp=sharing.

The visualization functionality of OpenFAST can be used visualize the undeflected state or time-series animation of the turbine response (in its deflected state) with either a stick-figure format or full surface visualization. You can also visualize various fields such as motions and loads. The visualization functionality of OpenFAST is documented in the old FAST v8 ReadMe file, which has not yet been ported to OpenFAST readthedocs, but is available here: https://drive.google.com/file/d/17LDwMnCVmLfbRWSaVFxxqphVrtawMwlj/view?usp=sharing.

Best regards,

ai-aspirant commented 3 years ago

Hi Jason, Thanks for help on such a great understanding on all of this. Can you help me understand the points that are considered in various modules for velocity calculation and loads as well? While, I was going through the documentation I could only come across Degree of Freedom that's it. Also, in the OutListParameters.xlsx, in the Nodes tab, it is mentioned at each node. But which all nodes are to be considered is it mentioned somewhere or will it be in the list of VxiList that is provided?

Regards, Kirsten

jjonkman commented 3 years ago

Hi Kristen,

I'm sorry, but I'm not really sure I understand your questions. Which "Nodes" worksheet are you referring to? Are you referring to the "AeroDyn_Nodes" or "ElastoDyn_Nodes" or something else? These nodes refer to the various output nodes of the corresponding module. For example, the AeroDyn output nodes in the blades and tower are a user-selected subset of the aerodynamic analysis nodes, as documented in the AeroDyn documentation--see: https://openfast.readthedocs.io/en/master/source/user/aerodyn/appendix.html#aerodyn-list-of-output-channels.

Best regards,

ai-aspirant commented 3 years ago

Dear Jason,

So does every module have different nodes?

I wanted to ask about "nodes" worksheet for every module we used, like AeroDyn, ServoDyn, ElastoDyn. Considering, AeroDyn in the start, the AeroDyn sheet has an output parameter B1N1VUndx which tells wind velocity for Blade 1 and node 1.
For towers, it will always be between Tower Node 1 and the Tower Node n and the co-ordinates for the same will be provided as an input as shown in https://openfast.readthedocs.io/en/master/source/user/aerodyn/input.html#ad-tower-geom Similarly, for node numbers on blade it will be on the Local Blade Chordline starting from the tip t to the base of the blade as shown in https://openfast.readthedocs.io/en/master/source/user/aerodyn/appendix.html#aerodyn-list-of-output-channels

Sorry for all the naïve questions, but is this right?

Regards, Kirsten

jjonkman commented 3 years ago

Dear Kristen,

Yes, that is correct.

ElastoDyn also has analysis and output nodes.

Best regards,

ai-aspirant commented 3 years ago

Hello Jason, Sure. I'll look into it. Can I simulate Power Curve using ServoDyn? I came across the Generated Electrical Power parameter from that. Is that the same?

Regards, Kirsten

jjonkman commented 3 years ago

Dear Kristen,

By "power curve", I assume you mean the power as function of wind speed. This will, of course, depend on control, but cannot be calculated by ServoDyn directly. You need to model the aerodynamics. If you already know the rotor speed and pitch angle at each wind speed, you can use the standalone AeroDyn driver to calculate the aerodynamic power for each case. If you don't know that, but have a controller, or what to include structural flexibility, you can run an OpenFAST simulations either separately for each wind speed or with a uniform, but stepped wind speed.

Best regards,

ai-aspirant commented 3 years ago

Hello dear Jason, By power curve I mean the output power generated as function of wind speed, power coefficients, etc. Will it be similar to the aerodynamic power? Since, the base formula that I know for the same is 1/2*(Air Density* Max Power coefficient *wind speed^3*swept rotor area)

Regards, Kirsten

jjonkman commented 3 years ago

Your formula applies both to aerodynamic power and electrical power, but the power coefficient will differ in the two cases. The electrical power will be a bit less than the aerodynamic power due to losses in the mechanical-to-electrical conversion. Typically this conversion efficiency depends on the power conversion approach and can be generator speed or power dependent.

Best regards,

ai-aspirant commented 3 years ago

Hello Jason, For the similar aerodynamic power calculation, I came across this link https://openfast.readthedocs.io/en/master/source/user/aerodyn-aeroacoustics/03-model-verification.html?#reference-wind-turbine Based on this, the data that I'd need to provide would be Drivetrain & generator efficiency. Do we have any data to be used as an input for this power calculation? I guess the AeroAcoustics.f90 might help in this, if I'm not wrong.

Regards

jjonkman commented 3 years ago

Hi @ai-aspirant,

The documentation you refer to shows one example--the IEA Wind Task 37 land-based reference wind turbine--with a generator efficiency of 93.6%. The NREL 5-MW baseline wind turbine provides another example, with a generator efficiency of 94.4%. If you don't have a specific generator efficiency in mind, you could assume one in this range.

Best regards,

ai-aspirant commented 3 years ago

Hello Jason, Right. So I believe the RtAeroPwr output parameter will showcase the Aerodynamic Power Generated.

Regards,

jjonkman commented 3 years ago

Correct.

ai-aspirant commented 3 years ago

Hi Jason, So in case, I want to include my data in AeroDyn, are there any set of minimum input parameters that you guys have documented that will provide me output aerodynamic power or should I go across every input parameters and studying them well would be a better option?

Thank you in advance.

Regards, Kirsten

jjonkman commented 3 years ago

Hi Kristen,

The documentation provides guidance on which inputs are used for what. Hopefully you have enough expertise in wind turbine modeling to know which inputs would be important for aerodynamic power calculation.

Best regards,

ai-aspirant commented 3 years ago

Hi Jason, So I was trying to understand the files as I came across the AoA(Angle of Attack) to be between the range of 180 to -180. Is there a reason in particular files while implementing AeroDyn the angle of attack different for different airfoils?

image In the above image, as you can see the airfoils values can be different starting with the cylinder1.dat files denoting from the left most part in the image and hence different airfoil files are used accordingly for every values and based on those values my nodes are determined right?

Based on this, are there any minimum no of airfoils to be considered in OpenFAST greater than 1 that is suggested or 1 should work? What would you suggest, Jason?

The image shown above is just for reference though.

Regards, Kirsten

jjonkman commented 3 years ago

Dear Kristen,

The airfoil data (lift, draft, moment versus AoA) should be provided for the full 360-deg (-180 to 180 deg) range of AoA because the actual AoA is determined at run time and can change from time step to step.

The airfoil data should depend on airfoil shape, as you noted. It can also depend on rotational augmentation (3D effects), if you are applying those to the airfoil data.

Typically we recommend on the order of 20 aerodynamic analysis nodes along the blade. Whether this requires a few airfoil tables (with each table applied to several nodes) or many airfoil tables (unique table for every node) depends on the variability in airfoil shape along the blade, the importance of rotational augmentation, and the accuracy desired of the solution.

Best regards,

ai-aspirant commented 3 years ago

Dear Jason, Okay. This sounds great. One thing I wanted to understand was are there any sensors to calculate the Drag Force or Lift Force so that I can calculate their coefficients?

Another thing I wanted to point out is I was trying to reduce the number of nodes so I removed a few rows from the "Test01_UAE_AeroDyn_blade.dat" file, changed the number of NumBlNds to 15 and reduced the number of NumAFFiles parameter from 10 to 5, and changed the BlOutNd parameters to 1, 3. Still, I'm getting the fetching the below showed error saying "occurred while trying to read BlOutNd." Do I have to change any more flags?

image

Thank you again for all the help everyone and to you too @jjonkman and sorry for all the trouble.

Regards, Kirsten

jjonkman commented 3 years ago

Dear Kristen,

Sorry, but I don't really understand your first question.

Regarding the second question, you have two nodes set for BlOutNd. Does that mean you set NBlOuts = 2? Otherwise, as with any input file processing error, enable the Echo option to debug errors in the input file formatting.

Best regards,

ai-aspirant commented 3 years ago

Hello Jason,

The first question was about how Coefficients for Drag and Lift are calculated? Since for the Drag Force following is the formula: image

As per any .dat files used, we have a combination of AoA Angle, Drag Coefficient, Lift Coefficient, and Cm. I wanted to know if coefficients are calculated using the above formula or would it be from a sensor since the data I am uploading for using OpenFAST doesn't have any Cd, Cl, or Cm values.

Thank you. Regards, Kirsten

jjonkman commented 3 years ago

Dear Kristen,

I agree with your formula and would add that C_D would typically depend on AoA (and perhaps Re). The same equation applies to the lift force (F_L), using C_L. Normally C_D and C_L are derived as a function of AoA (and perhaps Re) for a given airfoil based on wind tunnel or computational solutions. These are then extended to the full 360-deg range and corrected for rotational augmentation before being entered in AeroDyn for application within a wind turbine aeroelastic calculation.

Best regards,

ai-aspirant commented 3 years ago

Hey Jason,

I couldn't get how coefficient values of drag or lift are provided as an input. I mean, is there an additional sensor like an anemometer for wind speed or wind vane for wind direction, similarly for drag coefficient also we have or are they calculated based on a particular formula. The only formula I could come across is: The drag coefficient (Cd) is equal to the density of the air (r) times half of the square of the velocity (V) times the wing area (A).

I wasn't sure if this would help me create different coefficient values that are to be provided as an input for AeroDyn. Does OpenFAST do the calculation for any such coefficients? Can you help me with the formula, please?

Regards, Kirsten

jjonkman commented 3 years ago

Hi Kristen,

As I said before, the drag coefficient is typically derived as a function of AoA (and perhaps Re) for a given airfoil based on wind tunnel or computational solutions. For thin airfoils, engineering tools such as XFoil or RFoil (not developed by NREL) can be used to calculate drag (and lift) up to the stall point.

Drag is an input to AeroDyn/OpenFAST, not directly calculated by it. NREL has not developed engineering tools to support the calculation of drag coefficients.

Best regards,

ai-aspirant commented 3 years ago

Hi Jason, hope you are doing well amidst covid times. Got it. Thanks. Meanwhile, I was looking into the Aerodyn_IO.f90 to understand few equations for Power generated in various modules. I came across the following equations for various equations: image

Just wanted to understand what exactly are the inputs, let's consider Rotor Aerodynamic Power(RtAeroPwr), the equation consists of the aerodynamic load in the x-direction, what are the rest of the parameters like BEMT_u? Does OpenFAST has any documentation on these equations?

Thanks, Kirsten

jjonkman commented 3 years ago

Hi Kristen,

The variable m%BEMT_u(indx)%omega is the rotor speed. It is an input (u) to the BEMT submodule of AeroDyn as set within the AeroDyn module, which is also a miscellaneous variable (MiscVar, m) of AeroDyn. The source code does include a lot of documentation, but it will take knowledge of Fortran and the FAST modularization framework to interpret. This variable is defined in BEMT_Registry.txt (input omega) and AeroDyn_Registry.txt (MiscVar BEMT_u).

Best regards,

ai-aspirant commented 3 years ago

Hi Jason,

So I believe these are array values, Rotor Speed(Angular Velocity of Rotor), and Rotor Aerodynamic load in the x-direction. Also, does OpenFAST has any documentation on the rest of the equations I mentioned earlier since while I was going through the scripts I couldn't find MeshType used in HubMotion.

Hence, the documentation of the rest of the equations shared in the image above in the last issue.

Regards, Kirsten

thisismihir commented 3 years ago

Hi @jjonkman, I wanted to add to your issue, @ai-aspirant, and ask exactly what would be my power output variable of OpenFAST for the entire wind-mill? Considering the GenPwr parameter, how come it varies in the range of 3.6mW - 5mW? I mean as much as I understand, it follows the Power Curve format. The cut-in speed(power keeps on increasing), the rated speed(the power remains constant), and the cut-out speed(power falls down to zero).

Regards, Mihir

jjonkman commented 3 years ago

Dear Kristen -- What type of documentation are you asking about? Are you trying to understand the equations themselves (hopefully these are self-explanatory for these outputs), or documentation on the FAST modularization framework?

Dear Mihir -- The GenPwr output from ServoDyn is the electrical power output (determined by generator and/or controller, including electrical efficiency losses). Regarding its variation, the power output can vary a lot when the turbine is operating with turbulent inflow or gusts. The power curve represents the mean or steady-state behavior.

Best regards,

ai-aspirant commented 3 years ago

Hi Jason, Right, I just wanted to understand the inputs to it. Like are these calculated or provided as input directly. So considering the Aerodynamic power, my rotor speed, and the aerodynamic load moment on the x-direction is there a type of inputs to be provided like an array or just an integer? Because I could understand that it is a single integer value. Another question is that are these inputs provided as an input or calculated with another equation and if that is the case, what are the parameters it is dependent on that I should change so that my final output which in this case, Aerodynamic power(RtAeroPwr) varies accordingly.

Thank you, Regards, Kirsten

jjonkman commented 3 years ago

Dear Kirsten,

In the equations above, module-level inputs are noted as u, continuous states are noted as x, outputs are noted as y, parameters are noted as p, and miscellaneous variables are noted as m. These variable types are defined in the NWTC Programmer's handbook: https://drive.google.com/file/d/1bDV1fBkiZUWs6Tkzb6nhCMUQvHpN_OtM/view?usp=sharing. The module-level inputs, u, specifically, are inputs to a module as calculated by another module within OpenFAST (rather than input parameters defined by the user). In standalone driver mode (uncoupled from OpenFAST), the inputs are prescribed by the standalone driver code. In the CalcOutput routine, the inputs are provided at the current simulation time. In the UpdateStates routine, the inputs are provided as an array over a range of times so that the module can access the input at any point in time within the time interval it is time-integrating across (via interpolation). More information is provided in the NWTC Programmer's handbook.

Best regards,

ai-aspirant commented 3 years ago

Dear Jason, Thanks for that information. So based on what you mentioned, the parameters that are used for RtAeroPwr calculation are all miscellaneous variables. So consider them as an output variables of Aerodyn I.e. RtSpeed and RtAeroMxh. Now when I directly multiplied them both, it is not similar to what RtAeroPwr gives as an output in the .out file. All the values are different. Is it bound to happen? Should I include any other parameter while I'm calculating it like this?

Regards, Kirsten