Contrib/waves2Foam/waveTheories
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.
Contents |
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 , 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, , so in order not to evaluate , 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