10. Wave modeling¶
An important application of the ComFLOW program is the simulation of wave impact on offshore structures. ComFLOW provides various built-in wave models as well as the possibility to import custom data by means of plug-ins. By means of plug-ins and coupling to other software it is possible to simulate a wide range of other wave conditions (e.g. irregular waves). The wave models can be used for initialization or as input for boundary conditions.
10.1. Built-in wave models¶
The wave model can be selected by setting the key waves/model/@model
to any of
the available built-in models (or set it to "none"
if no wave model is required).
10.1.1. Common attributes¶
The built-in wave models have the following attributes in common:
waves/@mean_depth |
The mean water depth in meters. If the water depth is set to zero it is determined at run time and is set equal to -zmin .
The same holds when no incoming wave is specified, that is, when waves/model/@model="none" .
Note that the mean depth is used in various parts of the program, for example in the absorbing boundary conditions. |
waves/model/@dispersion_mode |
This attribute can be set to "calculate_k" or "calculate_omega" .
By default this attribute is set to "calculate_k" , which means that the wave properties are determined by the wave period (@period ) and the dispersion relation is \(\kappa(\omega)\) used to calculate the wave length.
If set to "calculate_omega" , the wave properties are determined by the wave length (@length ) and the dispersion relation \(\omega(\kappa)\) is used to calculate the wave period. |
waves/model/@period |
The wave period in seconds. |
waves/model/@length |
The wave length in meters. |
waves/model/@height |
The wave height in meters (two times the wave amplitude). |
waves/model/@location_of_crest |
This attribute defines the location of the wave crest in meters at t=0. |
waves/model/@angle |
The angle of incidence of the wave, expressed in degrees with respect to the positive X axis. |
10.1.2. Airy wave theory¶
The Airy wave model is selected by setting @model="Airy"
.
The wave elevation is defined by a cosine: \(\eta(x,t) = A\cos(\omega t-\kappa x+\phi)\) with
\(A\) the amplitude, \(\omega\) the frequency, \(\kappa\) the wave number
and \(\phi\) the phase.
10.1.3. Linear irregular waves (plug-in)¶
Irregular waves by means of linear wave superposition.
10.1.4. Stokes wave theory¶
ComFLOW provides the second-order and fifth-order Stokes wave models.
These models are selected by setting @model="Stokes-2"
or @model="Stokes-5"
.
10.1.5. Rienecker-Fenton wave theory¶
The Rienecker-Fenton wave model is selected by setting @model="Rienecker_Fenton"
.
Rienecker-Fenton wave theory gives more accurate wave kinematics
than 5th-order Stokes in shallow water and for very steep waves.
The order (higher harmonics) of the solution can be chosen freely
as long as @order
is lower than or equal to 256 (the default setting is @order="10"
).
Please note that higher-order waves may not be represented accurately on relatively coarse meshes.
One should also note that Newton iteration is used to solve the nonlinear
equations at the construction of the waves.
The iteration does not always converge.
Convergence is almost guaranteed for “realistic” waves, but
convergence behavior may depend on the desired order of the solution.
10.2. Background current¶
It is possible to specify a uniform background current in the XY-plane. Although it is possible to combine background current with any of the wave models provided by ComFLOW, the dispersion relation is only consistently modified when combined with Airy waves or Stokes-2 waves.
The current is expressed in terms of an angle (degrees) and a magnitude (m/s), which are defined by the attributes
waves/current/@angle
and waves/current/@magnitude
, respectively.
10.3. Initial conditions and ramping functions¶
For smooth transition between different wave regimes it may be useful to ramp up or ramp down the amplitude of the wave(s). To accomplish this, various ramping functions are available in ComFLOW.
The initialization of the wave field at t=0 is controlled by the attribute waves/@start_with_still_water
which can be set to "true"
or "false"
.
This variable must be set to "false"
if a ramping function is used.
Ramping functions are enabled by setting the attribute waves/ramping/@ramptype
to one of the available functions.
the behavior of the ramping functions can be controlled with the attributes @ramp1
and @ramp2
.
A summary is given in the following table:
@ramptype="0" |
no ramp |
@ramptype="1" |
linear upwards ramp to full amplitude during @ramp1 wave periods |
@ramptype="2" |
linear upwards ramp to full amplitude during @ramp1 wave periods, then constant for @ramp2 minus @ramp1 wave periods, then linear downwards ramp during @ramp1 wave periods to zero amplitude |
@ramptype="3" |
undocumented |
10.4. Guidelines for simulation setup¶
It is recommended to use higher-order discretization methods for convection and for the advection in the VOF method. Use grid stretching and local or adaptive grid refinement in order to efficiently obtain sufficient grid resolution around the free surface.