Pretensioned cables in SubDyn and MoorDyn
As part of the USFLOWT project, we were modeling pretensioned cables in SubDyn. However, due to the limitations in SubDyn (e.g., linear assumption not able to capture slack conditions and the lack of geometric stiffness from the cable tension), we decided to try to model these pretensioned cables in MoorDyn.
The cables are attached to the stem on one side and to the leg at the other side. Both ends are part of SubDyn.
When looking at the tension in the upper and lower pretensioned cables modeled in MoorDyn, we observe the expected behaviour:
However, when looking at the structural side in the leg (SubDyn) there seems to be a lot of noise when including the cables in MoorDyn:
This is kind of surprising because the cables themselves do not show this noise in the tension.
For reference, the above results correspond to a gravity-only condition and we are running with 1 correction iteration in OpenFAST (increasing the correction iterations to 2 does not fix this issue).
This noise seems to be a numerical artifact since the frequency is very high. At the structural side, we are only including up to 1 Hz via the Craig-Bampton reduction in SubDyn.
We also increased the damping in SubDyn for the retained modes, but got the same results.
We even tried with CB modes = 0 in SubDyn and the noise was still there.
We tried reducing the time step and made the iteration error tolerance tighter in the glue-code, but had the same issues.
We don't really know/understand what is the source of this large noise at the structural side.
Are you using the dev-tc branch?
Yes. This is with dev-tc branch @andrew-platt
After talking to @luwang00, we decided to try with SttcSolve = False in SubDyn.
Interestingly, with such setting, the noise at the structural side disappears. Of course, we need the SttcSolve part to have the proper structural output, but somehow it seems that the noise comes from the SttcSolve part.
@RBergua I think if you're going to use MoorDyn as part of the structural solve, then you're going to need it as one of the tight-coupling modules or you'll need to significantly reduce the time step. By the way, what time step are you using?
If you want to try putting MoorDyn as a tight-coupling module, open up FAST_Solver.f90 and look at lines 109-121. You'll need to move pack(modInds, ModIDs == Module_MD) from the p%iModOpt1 array to the p%iModTC array as shown below. Please give that a try and see if it has any effect.
! Indices of tight coupling modules
p%iModTC = [pack(modInds, ModIDs == Module_ED), &
pack(modInds, ModIDs == Module_BD), &
pack(modInds, ModIDs == Module_SD), &
pack(modInds, ModIDs == Module_MD)]
! Indices of Option 1 modules
p%iModOpt1 = [pack(modInds, ModIDs == Module_SED), &
pack(modInds, ModIDs == Module_AD .and. &
p_FAST%MHK /= MHK_None), &
pack(modInds, ModIDs == Module_ExtPtfm), &
pack(modInds, ModIDs == Module_HD), &
pack(modInds, ModIDs == Module_Orca)]
Thanks for the feedback, @deslaughter. For the gravity-only condition I'm using dt = 0.01 s. For operating conditions, I have to drop this time step by half: dt = 0.005 s.
I will try to put MoorDyn as a tight-coupling module and see what happens...
@RBergua,
When I read your original post, I was also thinking the static solve is the culprit for the noise. This makes sense because the static modes have no damping. Thanks for confirming.
I'm also curious if increasing the MoorDyn structural damping has an influence.
Best regards,
@deslaughter I compiled OpenFAST dev-tc including MoorDyn within the tight coupling scheme. However, when I try to run the simulation, it crashes after the initialization.
Hi @deslaughter
Is there any trick to avoid the stack overflow? I even tried to run the original OpenFAST model (i.e., the pretensioned cables in SubDyn and only the catenary lines in MoorDyn) to check if MoorDyn, as part of the tight coupling, would handle this. Unfortunately, I face the same stack overflow issues.
OpenFAST writes the result at t = 0 s and then it blows up. And it does this with catenary lines only or with catenary lines + pretensioned lines in MoorDyn.
Only catenary lines in MoorDyn tight coupling:
Catenary lines and pretensioned cables in MoorDyn tight coupling:
For completeness, below you can see the results for different damping levels in MoorDyn (green and orange lines).
As it can be observed, using critical damping or 1.5 times the critical damping for the pretensioned cables, does not eliminate the noise. Moreover, using the larger damping (i.e., 1.5*critical damping) requires a smaller time step in MoorDyn.
It's also important to remember that the current version of MoorDyn-F assumes that the cables are fully submerged. However, in reality, the upper cables are partially submerged. This means that in these simulations we are inducing higher hydrodynamic damping (we are using still water conditions) than we should. Helping us damping out the response.
Finally, as a reminder, the pretensioned cables themselves only show some noise at the beginning of the simulation as a result of the initial transient. But that noise disappears. However, at the structural side (i.e., the beams that correspond to the platform leg), the noise stays along the whole simulation (see first message for reference).
I guess we should try to figure out how to include MoorDyn as part of the tight coupling for scenarios like this (or if large buoys attached to the structure are used).
For future reference, this noise due to the pretensioned cables in MoorDyn connecting 2 parts of SubDyn is also present in OpenFAST v4.1.2 (i.e., no tight coupling).
The cable tension looks great:
But the structural side appears with a lot of noise: