FAST.Farm

Dear Dr.Jason,
My question is about the inflow data of FAST.Farm.
Uniform inflow can be set for wind speed and direction of the whole area at
different times.
Turbsim can be set with an average wind direction and wind speed to create turbulent winds;
I would like to ask if there is any way to combine the above two methods to generate turbulent wind with different average speeds and directions at different times for the simulation of FAST.Farm.

Best regards

Dear @NaiZhi.Guo,

Due to limitations of TurbSim and the InflowWind module of OpenFAST, it is not really possible to use TurbSim to generate turbulent wind data with time-varying mean wind speed and direction. This topic has been discussed in other forum posts, e.g.,: Stitch Together TurbSim Timeseries.

In addition to TurbSim, FAST.Farm also supports the use of turbulent inflow generated by a high-fidelity precursor simulation, such as via the ABLSolver of SOWFA or AMR-Wind. With such an approach, it is possible to generate turbulent inflow with time-varying mean wind speed and direction for use within FAST.Farm.

Best regards,

Oh, I see. Thank you

I would like to implement a Super Controller in FAST.Farm, does someone have a (simple) wake steering Super Controller DLL for FAST.Farm, and is willing to share that dll with me?

I have created a FAST.Farm and MATLAB interface and I would like to validate the interface by simulating the same (wake steering) controllers in both, a FAST.Farm DLL and MATLAB.

Dear @Coen.Smits,

The only super controller example for FAST.Farm that NREL has provided (that I’m aware of) is the one I shared in my post dated Mar 18, 2021 above. This example only includes simple prescribed yaw motion.

Best regards,

Dear @Jason.Jonkman

I want to ask a simple question. When I am using FAST.Farm for simulation, the wake flow is found to be truncated in the ParaView visualization. What parameters should I modify?

Best Regards,
Junius.Wang

Hi,

Try to increase the parameter NumPlanes in the .fstf file (below — WAKE DYNAMICS —).
That will place more planes in the flow field where the wake is computed.

Best regards,

Hi,
Thanks for your reply, and I’ve set the wake planes to 200, but it still cuts off somewhere, do you know what determines the spacing between each wake plane?

Best regards,

Hi again,

Doesn’t the location of this “cut-off” change when you change the number NumPlanes ?

If that location is too early, you can increase NumPlanes, e.g. make it 300 or 400. Then maybe that will be enough to carry the wake until the end of your domain.

You may check the “FAST.Farm User’s Guide and Theory Manual” for more info, e.g. section “5.4.2 Wake Dynamics Parameters”. As I understand, the distance between wake planes is = “the average convection speed of the wake” times “DT_Low”, so it is calculated in the code, not an input parameter.

I hope that helps.
Best,

2 Likes

Thanks so much!

I will check it and change my setting.
Best,

Dear @Jundong.Wang,

I agree with all of @Salur.Basbug responses. I would just add that the wake will always “cut off” as you state unless the wake deficit is sufficiently diminished by the last wake plane or if NumPlanes is set large enough such that the wakes leave the back end of the low-resolution domain.

That said, increasing NumPlanes will add computational expense, so, choosing NumPlanes large enough that the wake deficits are sufficiently diminished before being “cut off” without setting NumPlanes unreasonably large always requires some balance. The online FAST.Farm documentation provides some guidance for setting NumPlanes: 4.2.15.6. Modeling Guidance — OpenFAST v3.4.1 documentation.

Best regards,

1 Like

Hello,
How may I have access to some of output variables in “FAST.Farm.fstf”, e.g., “WkPosXT1D1”, “WkDiamT1D1”, etc at each time step in super-controller file (“sc_dll.f90”)?
Best,
Hamid

Dear @Hamid.Mech,

The interface to the super controller is set up so that data from the super controller can be sent to the individual wind turbine controllers and data from the individual wind turbine controllers can be sent to the super controller. However, without changing FAST.Farm source code, the wake position and diameter are not directly sent to either controller (because these are not quantities that would typically be measured for use within a controller). You could change the FAST.Farm source code to send these FAST.Farm outputs to the super controller.

FYI: Wakes are more routinely being measured these days using scanning LiDAR technology and LiDAR functionality is being added to OpenFAST, such as what was recently released in OpenFAST v3.5: https://github.com/OpenFAST/openfast/pull/1464. Further improvements, including introduction of LiDAR functionality within FAST.Farm, are upcoming for the OpenFAST v4.0 release.

Best regards,

1 Like

Hello,

Does anyone know how to generate Discon_oc3hywind.so files through cmake?I have generated discon.so a long time ago, but I forgot how to do it.

I found the F90 file under 5MW_BASELINE/Servodata/Discon_oc3, created the BUILD folder, and completed the cmake .. 、 make 、 ‘make install’ . But only dll files are generated, which cannot be used under Linux. I hope to get everyone’s guidance, thank you.

Dear @Jundong.Wang,

Instructions for compiling OpenFAST, including the controller dynamic libraries, are provided through the OpenFAST readthedocs documentation: 2. Installing OpenFAST — OpenFAST v3.5.0 documentation.

Best regards,

Dear @Jason.Jonkman

Maybe I didn’t describe the problems I encountered clearly

I completed the compilation of OpenFast according to the guidance, but I did not find a description of the creation of the controller dynamic librarie.

I think it should be generated to generate correspondence with the corresponding .dll or .so files under glue-codes/openfast/5MW_Baseline/ServoData/DISCON_OC3, like Vs on Windows.

I found a similar problem at Unable to generate DISCON.so file in linux ¡ Issue #964 ¡ OpenFAST/openfast ¡ GitHub , and answers based on rafmudaf, the DISCON_OC3Hywind.dll is fine, I just need to rename .so.
Hope to help people who have the same confusion.

Thank you very much for your reply

Best Regards,

Hi Jundong,

I’m glad you solved the problem, but just a note: Linux shouldn’t care if the file is named .so or .dll. That matters in windows. If you correctly compiled the file in Linux it would run regardless of file extension (at least that’s been my experience).

As rafmudaf said in this link: “You can just rename the file to discon.so OR change your ServoDyn input file to point to the .dll.” What matters is that the file name matches with the ServoDyn input file.

Best regards,

1 Like

Dear @Salur.Basbug

Thanks for your reply!
I always thought that I had to use the corresponding .so file to run.

Sorry for the disturbances brought to @Jason.Jonkman and others.

Best regards,

Dear @Jason.Jonkman

I encountered some problems while simulating a large wind farm. I wanted to output the results of multiple turbines in OutList, but when my index exceeded 10, the Farm reported an error as shown in the following figure. I want to know if there is a feasible solution?

Best regards,

Dear @Jundong.Wang,

The standard list of outputs available through the OutList of FAST.Farm is only available for the first 9 turbines of the wind farm. You can, of course, output the results from OpenFAST for more wind turbines. And if you want to assess the wake dynamics for more wind turbines, you can do so through the visualization outputs available for the entire wind farm.

Best regards,