Hydroelastic super-element capability for OpenFAST#3210
Hydroelastic super-element capability for OpenFAST#3210deslaughter merged 46 commits intoOpenFAST:devfrom
Conversation
…gh PRPInputsMod<0
…l approach before further development
…ing of structure self-weight
…-weight for rigid-body modes. Also added some input validity check when RBMod>0.
…ddition to modal forcing
Also cleaned up and fixed some error handling in WAMIT_Init
|
|
||
| ! get the bounding indices from the WaveField info (same indexing used in WAMIT) | ||
| call GridInterpSetup4D( (/Real(Time,ReKi),pos(1),pos(2),pos(3)/), WF_p, WF_m, ErrStat3, ErrMsg3 ) | ||
| WAMIT_ForceWaves_Interp_4D_vecN = GridInterp4DVecN( N, pKinXX, WF_m ) |
There was a problem hiding this comment.
It just occurred to me that the WF_m will prevent these calls from being parallelized, which could significantly speed up HydroDyn's calculations. It might be worth figuring out how to break out the relevant parts into their own structure that could be returned by GridInterpSetup* and then passed into the various GridInterp routines. Just a thought, nothing that needs to be done here.
| p%iModTC = [pack(modInds, ModIDs == Module_ED .and. p%ModCoupling /= LooseCoupling), & | ||
| pack(modInds, ModIDs == Module_BD .and. p%ModCoupling /= LooseCoupling), & | ||
| pack(modInds, ModIDs == Module_SD .and. p%ModCoupling /= LooseCoupling)] | ||
| pack(modInds, ModIDs == Module_SD .and. p%ModCoupling /= LooseCoupling), & | ||
| pack(modInds, ModIDs == Module_ExtPtfm .and. p%ModCoupling /= LooseCoupling)] |
There was a problem hiding this comment.
There should probably just be an if statement around this that does allocate(p%iModTC(0) if p%ModCoupling == LooseCoupling so that we don't have to check each module. For loose coupling, that array should be empty.
|
Verified docs build. Rendering here: https://ap-openfast.readthedocs.io/en/f-superelement/source/user/extptfm/usage.html |
…the call tries to read unallocated size. My mistake
…t results in race condition and failed tests in the CI
…ables in HydroDyn and ExtPtfm
…into f/superelement
This PR is not ready to be merged.
Feature or improvement description
This PR adds hydroelastic super-element capabilities to OpenFAST.
HydroDyn has been upgraded to support potential-flow bodies with additional generalized DOF beyond the 6 rigid-body modes. Currently, the generalized DOF is limited to
NBody=1and can only be used with the revamped ExtPtfm module. However, internally, HydroDyn supports generalized DOF for multiple bodies and any of theNBodyModoptions.The ExtPtfm module has been extensively revamped. Support for large rigid-body motion similar to SubDyn was implemented. The ability to specify connection points on the structure allowing coupling to mooring was also added. In addition to prescribed modal forcing, users can also prescribe force time series to be applied at these connection points (currently, only force is allowed, not moment). To support these new capabilities, the input files for ExtPtfm have been redesigned.
At the glue-code level, coupling between ExtPtfm and HydroDyn and between ExtPtfm and the mooring modules have been added. ExtPtfm is now moved to tight coupling, and the ability to perform linearization with ExtPtfm is also enabled.
Impacted areas of the software
Glue-code, HydroDyn, ExtPtfm
Test results, if applicable
No change to existing test results, except for the only case involving ExtPtfm,
5MW_OC4Jckt_ExtPtfm. The new results are noticeably different but are still generally in agreement with the old results. The changes in the results might be caused by updating ExtPtfm to use tight coupling. Another change to ExtPtfm is to compute the Jacobians based on central differencing instead of analytically. This might also influence the results. Also, the input files to HydroDyn and ExtPtfm need to be updated with the new inputs.To-dos