Skip to content

Conversation

@jtgrasb
Copy link
Contributor

@jtgrasb jtgrasb commented Dec 13, 2024

@dforbush2 I noticed that we forgot to add the full directional wave block to the flex body. This PR adds the full directional wave to the flex body, but I am not able to test it because we don’t have an example that has both multi-directional BEM and GBM dofs. I don’t think anything should be different for the flex body though, right?

@akeeste
Copy link
Contributor

akeeste commented Dec 13, 2024

@jtgrasb to check that the case runs without error, you could manually modify the hydrostruct, duplicating the excitation coefficients to create a frequency direction. The data would be the same, but still allow you to test that the implementation works

@dforbush2
Copy link
Contributor

dforbush2 commented Dec 13, 2024 via email

@jtgrasb
Copy link
Contributor Author

jtgrasb commented Dec 13, 2024

@akeeste Good point, I'll test this now.

@jtgrasb
Copy link
Contributor Author

jtgrasb commented Dec 13, 2024

Unfortunately, the same block cannot be used for the flex body because the multiple waves feature (and corresponding reformatting of the wave variable for simulink) was never made applicable for flex bodies. I'll come back to this next week and see if its reasonable to resolve quickly. It seems like it might be a bit of an effort though.

@dforbush2
Copy link
Contributor

To test this I recommend using an OWC example with the wave field as specified by Pioneer. There won't be proper coupling between the internal free surface and the rigid body heave, but should be enough to verify it works.

@salhus can you offer any insight on this? Do you anticipate a big roadblock to adding multiple waves to flex body?

That said, I don't think we'd ever use fullDirSpectra and multiple waves at the same time...so I'm kind of missing the dependency? Unless flex body just doesn't work at all with the revised wave class...

I see that the mask functions related to multiple wave cases are missing for flex body. I've tried to pull this in with the naming adjusted as appropriate with the different flex body block levels...commented out for now though

@jtgrasb
Copy link
Contributor Author

jtgrasb commented Dec 16, 2024

@dforbush2 Thanks for taking a look. Yeah, the issue is that the flex body just doesn't work at all with the revised wave class. I tried just adding the mask to the excitation block, but was still running into some errors. I don't think it'll be too difficult but gotta take some time to debug the additional errors.

@akeeste
Copy link
Contributor

akeeste commented Dec 17, 2024

@jtgrasb @dforbush2 I haven't follow this too closely. Will this PR go in before the release? I need to complete #1380 which will cause library conflicts (though it should not alter the flex body block).

@dforbush2
Copy link
Contributor

@akeeste I think the answer is yes it has to because the revised wave class doesn't work with flexible bodies. not sure we've drilled down exactly where and when this started happening yet.

@dforbush2
Copy link
Contributor

dforbush2 commented Dec 17, 2024

@jtgrasb None of the variant subsystems initialize correctly. This PROBABLY originates in initializeWecSim and is currently a problem on the main branch too. To test: pull down MAIN of WecSim and MAIN of WEC-Sim Applications and run the GBM case.

I'm going to fix the bad bug #1381 then tackle this. A combination of improper variant initialization (surprised this hasn't broken things much sooner...? suspicious) and the needed mask initialization function, provided as a comment in my last commit.

WSErrorMessage.txt

@jtgrasb
Copy link
Contributor Author

jtgrasb commented Dec 17, 2024

@dforbush2 @akeeste Yes, I am planning to get this done in time for the release. I've made some progress and getting closer to having this working.

@akeeste if your PR is ready to merge before this one, that is fine. I can just switch out the flex body block to resolve conflicts.

@jtgrasb
Copy link
Contributor Author

jtgrasb commented Dec 17, 2024

I've updated the flex body excitation block(s) so they are now consistent with the way the rigid body handles the wave excitation. Now, the flex body can handle multiple wave trains as well as the full directional waves.

I set up a test case which can comment on/off the different wave types using GBM. GBM_tester.zip

I haven't tested it, but I do not think that passive/nonlinear yaw will work with the flex body (even though the Regular Wave Nonlinear Yaw excitation subsystem is in the flex body, it doesn't look like its set up for >6 dofs). But, this seems like a separate issue.

@jtgrasb jtgrasb changed the title Add full directional wave block to flex body excitation Enable multiple wave trains with and add full directional wave block to flex body Dec 17, 2024
@dforbush2
Copy link
Contributor

@jtgrasb you're probably right that passive yaw does not work for GBM DOFs. I will look into that as a separate issue. Recommend this is merged. #1381 will probably still remain, but we have a work-around and the number of affected models are small, until the solution to that one is clear.

@jtgrasb jtgrasb merged commit 08630dd into WEC-Sim:dev Dec 17, 2024
10 checks passed
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.

3 participants