Simulation of an regular/irregular sea, short- and long crested where the current and wave parameters can be updated with input ports.
- Author
- Biao Su
- Date
- 31.01.2024 HBA: Merged into conan-compatible FhSim
This simobject is an extension of DeepSeaGravityWaves, where the parameters can be updated in real time with input ports.
The simobject has no output ports or states, but registers itself as a shared resource, and presents various methods for other simobjects to query about environment features such as sea depth, current velocity, pressure, seabed sediment features etc.
Example configuration excerpt
<Lib
LibName = "fhsim_environment"
SimObject = "DynamicDeepSeaGravityWaves"
Name = "Environment"
WaveTheory = "Airy"
Spectrum = "Spectrum"
WaveSpecter = "JONSWAP"
LongCrestedPower = "1000.0"
SignificantWaveHeight = "0.5"
MeanWavePeriod = "6"
MainWaveDirectionRad = "0"
DepthLayerThickness = "50"
CurrentVelocity = "0.05,0.05"
CurrentDirectionRads = "0,0"
StartTimeForUpdate = "0.0001"
/>
<Connection
Environment.CurrentVelocity = "SomeOtherSimObject.CurrentVelocity"
Environment.CurrentDirectionRads = "SomeOtherSimObject.CurrentDirectionRads"
Environment.SignificantWaveHeight = "SomeOtherSimObject.SignificantWaveHeight"
Environment.MeanWavePeriod = "SomeOtherSimObject.MeanWavePeriod"
Environment.MainWaveDirectionRad = "SomeOtherSimObject.MainWaveDirectionRad"
/>
Input ports
Name | Width | Description |
CurrentVelocity | <N+1> | Velocity magnitude of current flow for each node. Has one more component than DepthLayerThickness. |
CurrentDirectionRads | <N+1> | Direction of current flow for each node. Has one more component than DepthLayerThickness. |
Input ports when "Spectrum" is true
Name | Width | Description |
SignificantWaveHeight | 1 | Significant wave height of wave spectrum. |
MeanWavePeriod | 1 | Mean period of wave spectrum. |
MainWaveDirectionRad | 1 | Mean wave direction of wave spectrum. |
Input ports when "Component" is true
Name | Width | Description |
WaveFrequencies | <NumberOfWaves> | Frequency of each wave component |
WaveAmplitudes | <NumberOfWaves> | Amplitude of each wave component |
WaveDirections | <NumberOfWaves> | Direction of each wave component |
PhaseAngles | <NumberOfWaves> | Phase angle of each wave component |
Input ports when "GetWakeEffect" is true
Name | Width | Description |
WakeDirection | 1 | Direction of wake effect relative to the North-axis in radians. @addoption{WakeObjectPos<1,...,WakeObjectNum>, <WakeObjectNum>, Position of wake object} |
Output ports
No output ports
Configuration parameters
Parameters for both wave energy spectrums "spectrum" and "component"
Name | Width | Description |
DepthLayerThickness | <N> | Vector of the distance separating each node. Sum of all layers gives total depth |
CurrentVelocity | <N+1> | Velocity magnitude of current flow for each node. Has one more component than DepthLayerThickness |
CurrentDirectionRads | <N+1> | Direction of current flow for each node. Has one more component than DepthLayerThickness |
WaveTheory | 1 | Value of either "Airy" or "Gerstner" which specify the underlying wave theory used to compute wave elevation, velocities of acceleration |
Spectrum | 1 | Value of Either "Component" or "Spectrum". Specifies if wave energy spectrum be defined by a wave component vector or a continuous spectrum |
WaveHarmonicCutoffPercentage | 1 | Wave harmonic cutoff percentage (default: 1e-6) |
GetWakeEffect | 1 | Include current wake calculations effect or not (default: false) |
Visualize | 1 | Visualize or not (default: true) |
SkyboxEnabled | 1 | Draw skybox or not (default: true) |
SkyboxMaterial | 1 | Material name of skybox. (default: "base/Skybox/Cloudy") |
SeabedMaterial | 1 | Material name of seabed. (default: "brown") |
PrintUpdatedParameters | 1 | Whether to print when current and wave parameters are updated (default: false) |
StartTimeForUpdate | 1 | Start time for updating current and wave parameters (default: 0.0001) |
Parameters when "GetWakeEffect" is true
Name | Width | Description |
NumberOfWakeObjects | 1 | Number of wake objects |
WakeObjectDiameter | 1 | Diameter of wake objects [m] |
WakeObjectDiameterStart | 1 | Diameter of wake objects at which the wake effect starts [m] |
WakeObjectDiameterFull | 1 | Diameter of wake objects at which the wake is at full effect [m] |
WakeObjectDepth | 1 | Depth of wake objects [m] |
WakeObjectDepthStart | 1 | Depth of wake objects at which the wake effect starts [m] |
WakeObjectDepthFull | 1 | Depth of wake objects at which the wake is at full effect [m] |
WakeObjectFlowReductionRatio | 1 | The flow reduction ratio due to the wake object. |
Parameters for wave energy spectrum "spectrum"
Name | Width | Description |
WaveSpecter | 1 | JONSWAP or ISSC. Spectrum type to use. (default: JONSWAP) |
LongCrestedPower | 1 | The directional spectrum is defined as \(\cos(\theta)^{\text{LongCrestedPower}}\). Higher values (larger than 128.0) will give long crested waves. (default: 2) |
isLongCrested | 1 | Is long-crested? (default: false) |
MeanWavePeriod | 1 | Mean period of wave spectrum (default: 4) |
SignificantWaveHeight | 1 | Significant wave height of wave spectrum (default: 4) |
MainWaveDirectionRad | 1 | Mean wave direction of wave spectrum (default \(0.21\pi\)) |
RandomNumberSeed | 1 | Generator seed for the wave spectrum |
NonDimensionalOmegaLowerLimit | 1 | default: 0.5 |
NonDimensionalOmegaUpperLimit | 1 | default: 3.0 |
NumberOfWaves4Multiplier | 1 | Number of waves divided by 4 (default: 13, max: 13) |
Parameters for wave energy spectrum "component"
Name | Width | Description |
NumberOfWaves | 1 | Number of waves in wave energy spectrum specified by individual components (default: 1, max 32) |
WaveFrequency | <NumberOfWaves> | Frequency of each wave component |
WaveAmplitude | <NumberOfWaves> | Amplitude of each wave component |
WaveDirection | <NumberOfWaves> | Direction of each wave component |
PhaseAngle | <NumberOfWaves> | Phase angle of each wave component |
This SimObject is referred to as DynamicDeepSeaGravityWaves