Hi everyone,
I’m working on a wind turbine simulation using FAST, and I need to implement the following workflow:
Run the FAST simulation for a predetermined amount of time.
Pause the simulation and output some load information.
Update the HydroDyn input parameters.
Resume the simulation from where it left off.
Is it possible to achieve this using MATLAB or Python? If so, could anyone provide some guidance or example code on how to do this?
I’m particularly interested in how to:
Control the simulation to pause after a specific time.
Extract and output the load information at the pause point.
Modify the HydroDyn input parameters programmatically.
Restart the simulation with the updated parameters.
Any help or pointers to relevant documentation would be greatly appreciated!
Thanks in advance!
Dear @Jingqing.Yang,
I’m not sure what “hydrodynamic input parameters” you intend to change, but OpenFAST (which I presume you are using over the older FAST software) does not allow you to change parameters mid-way through a given simulation (without changing the source code). From what you describe, its sounds like it would be better to run a simulation, post-process its output, and then run a separate simulation afterword based on the results of the first simulation. You can do this in a user-written script that calls OpenFAST, post-processes its outputs, and sets its inputs.
Best regards,
Dear @Jason.Jonkman
Thank you very much for your reply, I am using OpenFAST v3.5, and the parameter I aim to modify during the simulation is FILLED MEMBERS. The method you mentioned (writing a script to call OpenFAST) is a feasible approach, and I will give it a try. Additionally, you mentioned that it cannot be achieved without changing the source code. Would it be possible to achieve this by modifying specific parts of the source code? I am also exploring the use of pyFAST for this purpose. From your experience, would openfast-toolbox (pyFAST) be a suitable tool for achieving this functionality?
Thank you once again for your invaluable advice.
Best regards,
Jingqing
Dear @Jingqing.Yang,
I was saying that to modify parameters (like FILLED MEMBERS) would either require a change to the source code (if you wanted to change parameters midway through a given simulation) or through scripting (if you want to change parameters between separate simulations).
Regarding FILLED MEMBERS, we actually have a project funded next year (2026) to add direct support for active water ballasting within the OpenFAST source code, which is presumably the functionality you are after. But we have not started this work yet and have not yet laid out detailed plans on how to do it.
You can use Python scripts from The OpenFAST Toolbox (formerly known as the Python Toolbox or pyFAST), as well as the new openfast_io scripts (openfast/openfast_io at main · OpenFAST/openfast · GitHub) to read and write OpenFAST input files using Python. While I’m not aware of specific scripts that will do exactly what you want, you can use these scripts as the basis for what you want.
Best regards,
Dear @Jason.Jonkman
Yes, you’re right—this is exactly the functionality I’m trying to achieve. At the moment, I can only achieve a similar effect through this indirect method. It would be fantastic if the ative water ballasting could be implemented in future versions of OpenFAST. I think this is quite a complex task, especially since it involves active control. I’m looking forward to seeing this functionality implemented!
Best regards,
Jingqing
1 Like