I’m simulating the IEA 15-MW Offshore RWT with a jacket substructure (initially I started learning from the DEME Group implementation on GitHub by Maciej Mroczek)
While the simulation finally runs smoothly locally on Windows (OpenFAST v3.2.1 and HydroDyn v2.03.) I’m having problems with HydroDyn on our university cluster computer system (Unix/Slurm). Unfortunately, I cannot identify the HydroDyn version that is used (OpenFAST on the cluster is v3.1.0, so a slightly different version), but the error reports indicate that a different HydroDyn version number is probably being used.
error: “FAST_InitializeAll:HydroDyn_Init:Waves_Init:VariousWaves_Init: The random number generator in use differs from the original code provided by NREL. This pRNG uses 8 seeds instead of the 2 in the HydroDyn input file.”
–
HydroDyn v2.03. only asks for WaveSeed(1) and WaveSeed(2). I also tried to give 8 random seeds (in one row or in 8 rows with one each) but this resulted in error messages as well. So what can I do here?
error: “HydroDyn_Init:Morison_Init:SetupMembers:SetMemberProperties:The upper end-plate of a member must not cross the water plane. This is not true for Member ID 58
SetupMembers:SetMemberProperties:The lower end-plate of a member must not cross the water plane. This is not true for Member ID 59
SetupMembers:SetMemberProperties:The upper end-plate of a member must not cross the water plane. (…)”
–
First, I tried to adjust the member discretization ‘MDivSize’ - without an effect on the error message. In general, which parameter values would you recommend for (i) submerged members, (ii) semi-submerged members and (iii) members in air?
–
Second, I tried to switch the model from ‘simple hydrodynamic coefficients’ (model 1) to ‘depth-based hydrodynamic coefficients’ (model 2) for selected members (submerged, semi-submerged, in air). When simulating on Windows, I realized that I may not use model 2 for members that are semi-submerged (or in air) since I cannot define the depth above sea level. For the cluster simulation I could not achieve an improvement as well. Which model would you recommend for the hydrodynamic coefficients of different members?
I would be grateful for hints on how to debug and fix the error reports on Unix/Slurm and in general, which settings in HydroDyn lead to a robust simulation for scheduled thousands of simulation runs.
If you still can’t figure out the input file format issue, you could always enable the Echo option to debug issues with input file formatting.
The error about an “end-plate of a member must not cross the water plane” cannot be solved through adjustment to MDivSize; rather, this can only be solved by shifting joints up or down so that end plate of the members doesn’t cross through the free surface. FYI: More recent improvements to HydroDyn now permit this, so, I would encourage you to upgrade to OpenFAST v4 if you are not tied to an older version.
Wave stretching was introduced in HydroDyn in OpenFAST v4; in earlier versions, hydrodynamic calculations did not take place above the still water level.
Since I’m automatically generating the input files with MATLAB I have to update these routines for OpenFAST v4.0.2.
Are there templates of all the relevant modules available for bottom-fixed OWT turbines (I see that some of the provided examples are only for FOWT)?
And is there also a suitable controller configuration for bottom-fixed OWT available I can use (currently I’m still using ROSCO v2.5.0 with OpenFAST 3.2.1)?
thank you for the r-test sample models - these helped me to update my MATLAB routines to write the OpenFAST v4.0.2 input files for the IEA 15-MW Offshore RWT.
Running under Windows the simulation terminates with one warning left (that’s also given under Unix/Slurm):
AD15 Nodal Outputs: Nodal output section of AeroDyn input file not found or improperly formatted. Skipping nodal outputs. [INFO] Using the input file input BEM_Mod to match BEM coordinate system outputs AeroDyn: projMod: 1 Projection: legacy (NoSweepPitchTwist), BEM: legacy (2D)
I don’t want to have nodal outputs from AeroDyn - so I switched ‘NBlOuts’, ‘BlOutNd’, ‘NTwOuts’, ‘TwOutNd’ to 0 but it seems that the setting is still incorrect.
And is there any need to update the ‘Airfoil’ folder towards older OpenFAST versions?
The bigger issue are the error messages in HydroDyn (I hoped this is not a problem anymore for OpenFAST v4x):
As it is recommended I used the depth-based hydrodynamic coefficients model (model 2) for the fully submerged members and also for the partially submerged members (simple hydrodynamic model for members in air) - but this still causes the error message regarding member parts above SWL (not defined by the table).
When switching the partially submerged members to the simple hydrodynamic coefficients model (model 1), the simulation terminates successfully under Windows . But the same configuration still causes an issue when running under Unix/Slurm (cluster computer system):
FAST_InitializeAll:HydroDyn_Init:Morison_Init:SetupMembers:SetMemberProperties:The upper end-plate of a member must not cross the water plane. This is not true for Member ID 58 OpenFAST encountered an error during module initialization. Simulation error level: FATAL ERROR Aborting OpenFAST.
Using the older ROSCO version (2.5) doesn’t cause an issue, so I tend to continue with it.
Regarding the “nodal output” warning, you can always ignore these (which are warnings not errors). These simply warn you that you that the nodal output section is not included in your input file(s) (but this section is optional anyway). For more information about the “nodal outputs” of AeroDyn, see the documentation on readthedocs: 4.2.3. Input Files — OpenFAST v4.0.2 documentation.
Regarding the “upper end-plate” warning, I would not expect this to appear in one operating system but not another. Although, perhaps this is caused by a very small difference in numerical round off, in which case a slight adjustment to the joint near the free surface should solve the issue. You can also avoid this error by switching MHstLMod from 1 to 2.
it seems that the depth-based hydrodynamic coefficient model (model 2) is not accepted at all for partially submerged members, even if MHstLMod is switched to 2 for them:
FAST_InitializeAll:HydroDyn_Init:HydroDynInput_ProcessInitData:This member uses a depth-based
coefficient model, but the member depth is outside the range of values provided in the
depth-based hydrodynamic coefficients table.
a OpenFAST encountered an error during module initialization.
Simulation error level: FATAL ERROR
When switching to the simple hydrodynamic coefficient model (model 1) for partially submerged members (MHstLMod = 2) some simulation runs terminate successfully but others cause a “new problem” with the wind array that I didn’t see for a while under v3.2.1 (but now again under v.4.0.2):
FAST_Solution:FAST_UpdateStates:FAST_AdvanceStates:AD_UpdateStates:AD_CalcWind:AD_CalcWindRotor:If
W_FlowField_GetVelAcc:Grid3DField_GetCell: Error: GF wind array was exhausted at 2.50000E-02
seconds (trying to access data at 470.07 seconds). IT_Lo=94015, IT_HI=94016
a OpenFAST encountered an error at simulation time 2.50000E-02 of 50 seconds.
Simulation error level: FATAL ERROR
I think the error you are getting regarding depth-based hydrodynamic coefficients is simply caused by a member extending outside of the depth range specified under the section DEPTH-BASED HYDRODYNAMIC COEFFICIENTS (model 1). For example, if you have a member extending up to 10 m above the MSL. The first depth entry for depth-based coefficients must be at least 10 m or greater. HydroDyn does not extrapolate based on depth with model 2.
My understanding is that WAMIT already accounts for hydrostatic loads within its potential flow theory calculations. Therefore, it seems more appropriate to set MHstLMod = 0 for these rectangular cross-section members. The official documentation also states: “Note that for members with rectangular cross sections, MHstLMod must be either 0 or 2.”
Could you confirm if my understanding is correct? I’d appreciate any insights or suggestions regarding this error and the parameter setup.
If you set PropPot to true for a member, all strip-theory load components, including hydrostatic loads, will be omitted, so it does not matter what option you use for MHstLMod.
Also, not allowing MHstLMod=0for rectangular members is actually a bug. This should be fixed in v4.2 to be released very soon.