Contrib/waves2Foam/waveTheories

From OpenFOAMWiki

The library is distributed with the following wave theories.

Besides stating the name of the waveType, the list also contain the information required by "setWaveParameters". It is recommended to use this pre-processing tool to evaluate e.g. the wave number based on the wave period and water depth.

1 Current-type

1.1 Potential current type (uniform velocity distribution from bottom to seaLevel)
waveType      potentialCurrent;
Tsoft         <scalar>;
U             <vector>;
localSeaLevel <scalar>; // Not required. Default = seaLevel;

2 Regular waves

2.1 Stokes first order wave theory (Airy wave)
waveType   stokesFirst;
depth      <scalar>;
period     <scalar>;
direction  <vector>;
phi        <scalar>;
height     <height>;
Tsoft      <scalar>; // Not required
2.2 First order Stokes standing wave theory
waveType   stokesFirstStanding;
depth      <scalar>;
period     <scalar>;
direction  <vector>;
phi        <scalar>;
height     <scalar>;
Tsoft      <scalar>; // Not required

2.3 Stokes second order wave theory
waveType   stokesSecond;
depth      <scalar>;
period     <scalar>;
direction  <vector>;
height     <scalar>;
phi        <scalar>;
Tsoft      <scalar>; // Not required
debug      <bool>;
2.4 Modulated Stokes second order wave theory
waveType   stokesSecondModulation;
depth      <scalar>;
period     <scalar>;
direction  <vector>;
height     <scalar>;
epsilon    <scalar>;
modN       <scalar>;
phi        <scalar>;
Tsoft      <scalar>; // Not required
debug      <bool>;

Computes the second order wave theory with a temporal and spatial modulation on the wave height. The modulation is defined as H(1+\epsilon \sin((\omega t - \mathbf{k}\cdot\mathbf{x} + \phi)) / N_{\text{mod}}), so the modulation is bound to the second order stokes wave.

2.5 Stokes fifth order wave theory
waveType    stokesFifth;
height      <scalar>;
period      <scalar>;
depth       <scalar>;
stokesDrift <scalar>;
direction   <vector>;
Tsoft       <scalar>; // Not required
phi         <scalar>;
2.6 First order cnoidal theory
waveType    cnoidalFirst;
height      <scalar>;
depth       <scalar>;
period      <scalar>;
Tsoft       <scalar>; // Not required
direction   <vector>;

NB: As of revision 1983 the setWaveProperties file for the wave theory is automatically enhanced, when writing m.

NB: Note for prior version, if the wave is extremely shallow, m\rightarrow1, so in order not to evaluate K(m=1)=\infty, the write precision in the controlDict should be sufficiently high in order to write e.g. 0.9999999999 in stead of 1.0.

2.7 Stream function wave theory
+++ Example - setWaveParameters +++
// Currently not working

+++ Example - Running +++
waveType   streamFunction;
omega      <scalar>;
depth      <scalar>;
phi        <scalar>;
waveNumber <vector>;
uBar       <scalar>;
N          <scalar>;
A          <scalarField>;
B          <scalarField>;
Tsoft      <scalar>; // Not required
Tstart     <scalar>; // Not required (Default 0.0);
Tend       <scalar>; // Not required (Default GREAT);

3 Solitary waves

3.1 Solitary First
waveType  solitaryFirst;
height    <scalar>;
depth     <scalar>;
direction <vector>;
x0        <vector>;

4 Irregular waves

4.1 First order bi-chromatic wave train (wave group)
waveType    bichromaticFirst;
depth       <scalar>;
period1     <scalar>;
period2     <scalar>;
direction1  <vector>;
direction2  <vector>;
height1     <scalar>;
height2     <scalar>;
phi1        <scalar>;
phi2        <scalar>;
Tsoft       <scalar>; // Not required
4.2 Second order bi-chromatic wave train (wave group)
waveType    bichromaticSecond;
depth       <scalar>;
period1     <scalar>;
period2     <scalar>;
direction1  <vector>;
direction2  <vector>;
height1     <scalar>;
height2     <scalar>;
phi1        <scalar>;
phi2        <scalar>;
Tsoft       <scalar>; // Not required
4.3 General irregular wave theory

This wave theory reads the needed scalarFields and vectorFields from waveProperties and generates an irregular wave field through superposition of wave components based on linear wave theory. If higher order components are needed, it is suggested to modify the interface to make it generic; e.g. parsing ampEta, ampU, and ampV instead of merely ampEta.

waveType      irregular;
spectrum      <word>;
N             <label>; // Number of frequencies
Tsoft         <scalar>;
writeSpectrum <bool>; // Not required. Default:= false. Writes the target spectrum.
phaseMethod   <word>; // Not required. Default: randomPhase,

Furthermore, information requested by the individual spectra is needed. The list of implemented spectra is:

  • JONSWAP
Hs            <scalar>;
Tp            <scalar>;
gamma         <scalar>;
depth         <scalar>;
direction     <vector>;
lowerFrequencyCutoff <scalar>; // Not required. Default: 1/(3*Tp)
upperFrequencyCutoff <scalar>; // Not required. Default: 3/Tp
equidistantFrequencyAxis <bool>; // Choose between an equidistant or stretched axis toward the peak
  • Pierson-Moskowitz
Hs            <scalar>;
Tp            <scalar>;
depth         <scalar>;
direction     <vector>;
lowerFrequencyCutoff <scalar>; // Not required. Default: 1/(3*Tp)
upperFrequencyCutoff <scalar>; // Not required. Default: 3/Tp
equidistantFrequencyAxis <bool>; // Choose between an equidistant or stretched axis toward the peak
4.3.1 Phasing Methods

There are two phasing methods for irregular incident waves, and their settings are as follows:

  • randomPhase (The option seedForRandomPhase is not required, but it can be used in studies, where the wave height changes, but one want to have the same phasing).
phaseMethod randomPhase;
seedForRandomPhase <label>; // Not required.
  • focusingPhase
phaseMethod focusingPhase;
focusTime  <scalar>;
focusPoint <vector>;

5 Other

5.1 combinedWaves, which allows for a combination of any of the above
waveType            combinedWaves;
combinedWaveNames   <workList>; // A list of names of the other sub-dictionaries without the Coeffs-part