Marine systems simulation
Dynamic deep sea gravity waves

Simulation of an regular/irregular sea, short- and long crested where the current and wave parameters can be updated with input ports.

+ Collaboration diagram for Dynamic deep sea gravity waves:
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