Marine systems simulation
Loading...
Searching...
No Matches
WaveFactory.h
1#pragma once
3
4#include <marenv/wave/WaveComponents.h>
5#include <marenv/wave/WaveEnergySpectrum.h>
6#include <marenv/wave/WaveField.h>
7
8#include <memory>
9
10namespace marenv::wave
11{
17enum class WaveTheory
18{
19 Airy,
20 Gerstner,
21};
22
39std::shared_ptr<WaveField>
40MakeWaveModel(const WaveEnergySpectrum::SpectrumParameters& params,
41 WaveTheory formulation,
42 int numWaves,
43 uint32_t seed);
44
56std::shared_ptr<WaveField>
57MakeWaveModel(std::shared_ptr<WaveComponents> waveComponents, WaveTheory formulation);
58} // namespace marenv::wave
WaveTheory
Definition WaveFactory.h:18
@ Gerstner
Nonlinear Gerstner waves. More accurate representation of steep waves, but slower than Airy.
@ Airy
Linear wave theory (Airy waves). SIMD-optimized for many wave components, computationally efficient.