Fix wave generation with phaseSeed in waveClass for PCT #1467
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates the random number generation in
setWavePhasein thewaveClassto useRandStreamwithSubstream, instead ofrng(phaseSeed). The change ensures deterministic and reproducible wave elevation profiles across both serial (wecSim) and parallel (wecSimPCT) simulations whenphaseSeedis specified. This resolves the issue where parallel runs with the same seed could produce different results due to independent worker streams (see Issue #1329 ). The new approach uses theThreefrygenerator, which supports substreams and is recommended by MathWorks for parallel reproducibility.This PR can be tested using the MCR example available here: WEC-Sim_Applications/Multiple_Condition_Runs/RM3_MCROPT3 running the attached script.
irregularWaveGenerationExample.zip
The wave profiles generated with
wecSimandwecSimPCTshould be identical when using the same seed value.