4#include "marenv/marenv.h"
5#include <marenv/wave/WaveComponents.h>
84 [[nodiscard]]
double CosPower(
double theta)
const;
98 [[nodiscard]]
double JONSWAP(
double omega)
const;
105 [[nodiscard]]
double Issc(
double omega)
const;
109 struct WaveComponentSpec
115 bool operator<(
const WaveComponentSpec& a)
117 return zetaA < a.zetaA;
120 std::shared_ptr<WaveComponents> m_waveComponents;
122 uint32_t m_randomSeed;
123 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:106
double(WaveEnergySpectrum::*)(const double) NormalizedProbabilityDistribution
Defines the type of a normalized probability distribution function.
Definition WaveEnergySpectrum.h:71
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)
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:100
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