4#include "marenv/marenv.h"
5#include <marenv/wave/WaveComponents.h>
90 [[nodiscard]]
double CosPower(
double theta)
const;
104 [[nodiscard]]
double JONSWAP(
double omega)
const;
111 [[nodiscard]]
double Issc(
double omega)
const;
115 struct WaveComponentSpec
121 bool operator<(
const WaveComponentSpec& a)
123 return zetaA < a.zetaA;
126 std::shared_ptr<WaveComponents> m_waveComponents;
128 uint32_t m_randomSeed;
129 std::vector<WaveComponentSpec> m_waveComponentSpecs;
Represents a wave field.
Definition WaveEnergySpectrum.h:14
void CalcWaveFrequencies()
Calculates frequencies of each wave component.
SpectrumParameters m_param
Wave spectrum parameters.
Definition WaveEnergySpectrum.h:112
double(WaveEnergySpectrum::*)(const double) NormalizedProbabilityDistribution
Defines the type of a normalized probability distribution function.
Definition WaveEnergySpectrum.h:74
DirectionSpectrum
Shape function for the direction spectrum.
Definition WaveEnergySpectrum.h:19
@ CosineSquared
The function is of the form cos(theta)^n.
double JONSWAP(double omega) const
FrequencyBinning
Methods for dividing a spectrum in discrete frequencies.
Definition WaveEnergySpectrum.h:34
@ EqualSqrtEnergy
Each wave component has the same .
@ EqualEnergy
Each wave component has the same energy.
WaveEnergySpectrum(const SpectrumParameters &spectrumParameters, int numWaves, uint32_t randomSeed)
void CalcCalmSeaFrequencies()
Calculates the frequencies of a calm sea (Hs = 0): those of Hs = 1, with zero energy and amplitude.
double Issc(double omega) const
std::shared_ptr< WaveComponents > GetWaveComponents()
double SpectralEnergy(double omega) const
double CosPower(double theta) const
DirectionBinning
Methods for realisation of direction spectrum.
Definition WaveEnergySpectrum.h:26
@ Random
Random distribution according to the direction spectrum.
@ Sequential
Higher energies in main direction.
void CalcWaveDirections()
Calculates wave directions according to the specified spectrum parameters.
Policy mixin: this type is default copyable but not movable.
Definition marenv.h:112
The parameters defining a certain wave field.
Definition WaveEnergySpectrum.h:41
SpectrumType spectrumType
Spectrum type (JONSWAP or ISSC).
Definition WaveEnergySpectrum.h:48
double omegaNDimUppLim
Non-dimensional omega_nDim = omega*T1/(2*pi) upper limit.
Definition WaveEnergySpectrum.h:47
double T1
Mean wave period.
Definition WaveEnergySpectrum.h:43
double omegaNDimLowLim
Non-dimensional omega_nDim = omega*T1/(2*pi) lower limit.
Definition WaveEnergySpectrum.h:46
double cosinePower
directional spectrum is given as cos(theta)^cosinePower.
Definition WaveEnergySpectrum.h:45
double Theta
Mean wave propagation direction.
Definition WaveEnergySpectrum.h:44
FrequencyBinning frequencyBinning
How the frequencies of each wave component is set.
Definition WaveEnergySpectrum.h:50
double Hs
Significant wave height.
Definition WaveEnergySpectrum.h:42
DirectionBinning directionBinning
How the directions of each wave component is set.
Definition WaveEnergySpectrum.h:49