Replies: 1 comment 8 replies
-
|
Dear @yxy636363, I haven't reviewed your input files in great detail, but I do see one obvious problem that could explain why your model with SubDyn fails quickly. I see that you've initialized the platform degrees of freedom (DOF) in ElastoDyn to have an initial platform surge of 5 m and an initial platform pitch of 1.9degrees. However, your rigid body in SubDyn is initialized without any displacement. This mismatch would cause extreme deflection of the SubDyn Guyan modes and probable model failure. Regarding step 10 of steps 1-11 you've tried, this recommendation for To answer your core questions:
Best regards, |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I am currently working on an OpenFAST(v5.0.0) simulation of the OC4 semi-submersible platform with the NREL 5MW wind turbine. My model is based on the r-test reference, but I am rebuilding it to enable SubDyn for flexible substructure analysis, because I need to compute the internal forces and bending moments at various locations within the substructure members (columns, pontoons, braces). I'd greatly appreciate any insights from the community.
When SubDyn is DISABLED (CompSub = 0 in the main .fst file), the model runs smoothly for 60 seconds with reasonable platform motion and visualization output.
However, when SubDyn is ENABLED (CompSub = 1), the simulation fails immediately at the first time step with convergence error NaN (or occasionally error=20+) and the following warning:
Small angle assumption violated in SUBROUTINE SmllRotTrans() due to a large Nodal rotation.
Angles in GetSmllRotAngs() are larger than 0.4 radians.
The solver fails to converge within the maximum number of iterations (currently 6), and MoorDyn subsequently reports NaN states.What I Have Already Tried (Based on Forum and Documentation)
Following recommendations from the OpenFAST documentation and NREL forum discussions , I have attempted:
Transferred all platform mass from ElastoDyn to SubDyn (set PtfmMass = 0 in ElastoDyn)
Added concentrated masses at column ends to simulate cylinder caps (following Roger Bergua's approach)
Enabled static improvement method (SttcSolve = True)
Reduced time step (DT = 0.01, 0.005, and even 0.001 s)
Increased correction iterations (NumCrctn = 3, 5)
Relaxed convergence tolerance (ConvTol = 1e-3)
Temporarily disabled ServoDyn and AeroDyn to isolate the issue
Tested Nmodes = 0 (Guyan reduction, treating platform as rigid) – still diverges
Adjusted quasi-rigid beam properties (diameter from 2.5m → 5.0m)
Enabled Guyan damping via AddBLin in HydroDyn (1% critical damping for heave DOF, as recommended in the modeling guide )
Extreme simplification of the SubDyn model – Following the guidance in the modeling documentation that virtual members should be characterized by "low self-mass and high stiffness" , I simplified the entire platform to a single concentrated mass at its center of gravity, connected by a single quasi-rigid beam to the tower interface node.
My core questions:
Mooring force transfer: How are mooring forces from MoorDyn applied to the platform when fairlead points are NOT explicitly modeled as joints in SubDyn? Does FAST's mesh-mapping utility automatically transfer these forces to the SubDyn structural mesh based on coordinates, or must I define corresponding joints at the fairlead locations? Could missing explicit fairlead joints cause the forces to be applied at incorrect locations or not applied at all?
Mass and force integration: When SubDyn is enabled, where should each component be defined, and how are they integrated?
Platform structural mass: SubDyn (beam density + concentrated masses) - ElastoDyn PtfmMass set to zero - is this correct?
Ballast water: HydroDyn FILLED MEMBERS - is this mass automatically added to the system's total mass matrix, or does SubDyn need to account for it separately? The HydroDyn summary shows negative internal buoyancy, indicating ballast weight is subtracted from buoyancy, but is the inertia also correctly accounted for?
Tower: Should remain in ElastoDyn with DOFs enabled, or move to SubDyn with tower DOFs disabled in ElastoDyn? (My tower is tubular, not lattice - documentation suggests ElastoDyn may be more accurate for tubular towers due to geometric nonlinearities)
Hydrodynamic loads: Transferred via mesh-mapping - confirmed by documentation
Given that even the extreme simplification (single point mass + one quasi-rigid beam) still diverges, this seems to rule out issues with complex mode shapes or member connectivity. Could this indicate a fundamental issue with how loads are integrated across modules when SubDyn is enabled, particularly the transfer of mooring forces or the handling of ballast mass?
I have attached the following files for reference:
Main input file
SubDyn input file and summary file
HydroDyn input file and summary file
ElastoDyn input file and summary file
error output
NREL_OC4_4body_sub_files.zip
Any insights or suggestions would be greatly appreciated. Thank you for your time and expertise.
————————————————————————————————————————————————
Recently, while checking the output files, I noticed a data inconsistency. When SubDyn is disabled, the HydroFzi output matches the net buoyancy calculated from the HydroDyn summary file (approximately 4.59e7 N). However, when SubDyn is enabled, the initial HydroFzi value becomes 1.3456e11 N—nearly 3000 times larger—even though the summary file shows identical values for the displaced volumes of the four WAMIT bodies and the net buoyancy (excluding WAMIT contributions) in both cases. I guess this could be the main cause of my problems, but still wondering how to solve it.
Beta Was this translation helpful? Give feedback.
All reactions