Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inclusion of MoorDyn, floating platform orientations, and general adjustments to OF v.4 - An effort to integrate FAModel to generate FAST.Farm input files. #40

Open
wants to merge 16 commits into
base: main
Choose a base branch
from

Conversation

Yuksel-Rudy
Copy link

Changes to FFarmCaseCreation class includes:

  1. the addition of phi as an input inside the wts table given to FFCaseCreation. This phi adjusts platform heading in ED (with an additional care for yaw_init), adjusts platform yaw reference value in HD, and MD is made sure has the unrotated fairlead coordinates in the local reference frame.
Screenshot 2025-02-28 at 10 43 28 AM

A high-level diagram of information flow is given here:
Screenshot 2025-02-28 at 10 45 31 AM

This update has the capability to generate a wind farm with their shared mooring systems as shown in this 2-turbine example:
Screenshot 2025-02-28 at 10 46 50 AM

Overall Updates

  1. Adding MoorDyn input file (either in .fst files [individual MoorDyn files] or in .fstf file [holistic (or shared) MoorDyn file] based on a multi_MD flag in setTemplateFileName method. The same goes for multi_HD as well to allow platform-dependent HydroDyn files. The user should know beforehand whether a single or multiple input files are required and name the filenames accordingly.

  2. Hydrodata related to the floater is copied and pasted to the case folder

  3. Adding platform rotation as an additional input parameter

  4. Converting sea state conditions from HydroDyn into SeaState module as per OpenFast version 4.0 and above.

  5. Allowing copying files without ServoDyn.

  6. Platform rotation is optional. If the user is simulating a fixed-bottom or land-based wind farm, they can turn the ptfm_rot flag off and that will zero off the phi value in the wind farm table.

…ng FASTFarmCeseCreation Class:

1) Adding MoorDyn input file (either in .fst files [individual MoorDyn files] or in .fstf file [holistic (or shared) MoorDyn file].
2) Allowing HydroDyn input file to be platform-dependent in FASTFarmCaseCreation.
3) Adding platform rotation as an additional input parameter into FASTFarmCaseCreation for floating systems.
4) Adding SeaState input file to be copied (OF v4.0).
5) Allowing copying files without ServoDyn.
6) Adjusting codes to fit all previously mentioned changes
1) Platform rotation is an optional setting to rotate platforms given FAD/FAM models.
2) TS_low_setup and high can output .inp filenames when called
1- Copying hydro data files
2- Fixing yaw angle to be between -180 and 180
3- General fixes here and there.
1) Pointing to the correct location of MoorDyn.
2) Outputing the correct name of MoorDyn file.
3) Other fixes.
A flag is given to setTemplateFilename method that determines whether to use a single or multiple HD or MD files.
@rthedin
Copy link
Collaborator

rthedin commented Mar 3, 2025

Some updates to this PR:

  • The input dictionary containing the farm layout now takes the value phi_deg, related to the platform heading (given in degrees). If a single turbine takes phi_deg, a value should be specified for all turbines.
  • The existence of phi_deg in the wts dictionary indicates platform rotation. No ptfm_rot input needs to be given
  • Add support for HydroDyn, MoorDyn, and SeaState. Now these inputs can be passed to setTemplateFilename as entries to the templateFiles dictionary
    'HDfilename' : None, # 'HydroDyn.dat', # ending with .T for per-turbine HD, .dat for holisitc
    'MDfilename' : None, # 'MoorDyn.T', # ending with .T for per-turbine MD, .dat for holistic
    'SSfilename' : None, # 'SeaState.dat',

To-do:

  • Tests (including but not limited to paths set in some of the files, relative path, overall workflow)
  • Clean up comments and minor details around the code.

rthedin and others added 5 commits March 3, 2025 12:29
1) When HydroDyn is enabled, SeaState must be used.
2) The wts table input check is corrected to match the dictionary nature of wts.
3) Addition of __init__.py in the fastfarm directory.
@rthedin
Copy link
Collaborator

rthedin commented Mar 21, 2025

Hey Rudy - any updates regarding ongoing tests of this branch? Have you encountered any issues?

@Yuksel-Rudy
Copy link
Author

Hello @rthedin. So far, I haven't had any issues with the new implementations. Feel free to merge how you see fit. We can branch out if/when we want to implement mooring system and bathymetry rotations later on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants