Marine systems simulation
Deep sea gravity waves

Simulation of an regular/irregular sea, short- and long crested.

+ Collaboration diagram for Deep sea gravity waves:
Author
David Kristiansen
Jorgen Haavind Jensen
Date
01.10.2010 JHJ: Initial version.
16.03.2011 JHJ: Added SinMod current- and seabed- data.
DeepSeaGravityWaves showing surface of Airy waves generated from frequency spectrum

Sea environment simulation which contains deep sea gravity driven wave realization. The simobject has no 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.

The features of the sea environment model

The environment features current simulation data from SinMod (Oceanographic simulation software developed at Sintef SFH) with actual seabed topography data.

Waves can be represented as either a list of regular waves or generated from the parameterized wave spectra: JONSWAP or ISSC.

Note
The wave model is at present oblivious to other environment features such as current and sea depth. Waves do not model refraction or diffraction. Wave model is invalid for shallow depths, shallow meaning less than half the largest significant wavelength. Waves are assumed to be gravity driven and hence will not be valid for wavelengths shorter than 5cm.

Example configuration excerpt

<Lib
LibName = "fhsim_environment"
SimObject = "DeepSeaGravityWaves"
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"
/>

Input ports when "GetWakeEffect" is false

No input ports

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
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)
NetcdfFile 1 Path to a NetCDF file containing current flow, and seabed data (optional)
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")
FroudeScaleFactor 1 Froude scaling factor (default: 1)

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 when "NetcdfFile" is unspecified

Name Width Description
EnvironmentSize 1 Length and width in meter of planar environment in which waves are generated (default: 10000)
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

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

Full example files

<Contents>
<OBJECTS>
<Lib
LibName = "fhsim_environment"
SimObject = "DeepSeaGravityWaves"
Name = "Environment"
WaveTheory = "Airy"
Spectrum = "Spectrum"
WaveSpecter = "JONSWAP"
LongCrestedPower = "1000.0"
SignificantWaveHeight = "3.5"
MeanWavePeriod = "6"
MainWaveDirectionRad = "0"
DepthLayerThickness = "50"
CurrentVelocity = "0.05,0.05"
CurrentDirectionRads = "0,0"
SkyboxMaterial = "environment/Skybox/Mountains"
/>
</OBJECTS>
<INTERCONNECTIONS>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
/>
</INITIALIZATION>
<INTEGRATION>
<Engine
IntegratorMethod="2"
NumCores="1"
TOutput="0, 1, 30"
LogStates ="1"
stepsize ="1e-5"
HMax="0.002"
HMin="0.00000001"
AbsTol="1e-3" RelTol="1e-3"
UseRSSNormInsteadOfInfNorm="0"
FileOutput="objects:all"
/>
</INTEGRATION>
</Contents>

Component

<Contents>
<OBJECTS>
<Lib
LibName = "fhsim_environment"
SimObject = "DeepSeaGravityWaves"
Name = "Environment"
WaveTheory = "Airy"
Spectrum = "Component"
NumberOfWaves = "3"
WaveFrequency = "1,0.5,2"
WaveAmplitude = "1,2.5,2"
WaveDirection = "1,-0.5,2"
PhaseAngle = "1,1.5,2"
DepthLayerThickness = "50"
CurrentVelocity = "0.5,0.05"
CurrentDirectionRads = "1,0"
SkyboxMaterial = "environment/Skybox/Mountains"
/>
</OBJECTS>
<INTERCONNECTIONS>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
/>
</INITIALIZATION>
<INTEGRATION>
<Engine
IntegratorMethod="2"
NumCores="1"
TOutput="0, 1, 30"
LogStates ="1"
stepsize ="1e-5"
HMax="0.002"
HMin="0.00000001"
AbsTol="1e-3" RelTol="1e-3"
UseRSSNormInsteadOfInfNorm="0"
FileOutput="objects:all"
/>
</INTEGRATION>
</Contents>

Spectrum

<Contents>
<OBJECTS>
<Lib
LibName = "fhsim_environment"
SimObject = "DeepSeaGravityWaves"
Name = "Environment"
WaveTheory = "Gerstner"
Spectrum = "Spectrum"
WaveSpecter = "JONSWAP"
LongCrestedPower = "1000.0"
SignificantWaveHeight = "5.5"
MeanWavePeriod = "6"
MainWaveDirectionRad = "0.5"
DepthLayerThickness = "50"
CurrentVelocity = "0.05,0.05"
CurrentDirectionRads = "0,0"
SkyboxMaterial = "environment/Skybox/Mountains"
/>
</OBJECTS>
<INTERCONNECTIONS>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
/>
</INITIALIZATION>
<INTEGRATION>
<Engine
IntegratorMethod="2"
NumCores="1"
TOutput="0, 1, 30"
LogStates ="1"
stepsize ="1e-5"
HMax="0.002"
HMin="0.00000001"
AbsTol="1e-3" RelTol="1e-3"
UseRSSNormInsteadOfInfNorm="0"
FileOutput="objects:all"
/>
</INTEGRATION>
</Contents>

This SimObject is referred to as DeepSeaGravityWaves