Marine systems simulation
Loading...
Searching...
No Matches
AiryWavesScalar.h
1#pragma once
3
4#include <marenv/marenv.h>
5#include <marenv/wave/LinearWaveTheory.h>
6#include <marenv/wave/WaveEnergySpectrum.h>
7
8namespace marenv::wave
9{
10
28{
29public:
35 AiryWavesScalar(std::shared_ptr<WaveComponents> waveComponents);
43 AiryWavesScalar(WaveEnergySpectrum::SpectrumParameters spectrumParameters, int numWaves, uint32_t randomSeed);
45
46 ~AiryWavesScalar() override = default;
54 bool PositionIsInWater(double time, const double pos[3]);
56
57 Status ComputeSurfaceElevation(double time, const double pos[2], double& elevationOut) override;
59
60 Status ComputeSurfaceUnitNormal(double time, const double pos[2], double unitNormalOut[3]) override;
62
63 Status ComputeParticleVelocity(double time, const double pos[3], double velOut[3]) override;
65
66 Status ComputeParticleAcceleration(double time, const double pos[3], double accOut[3]) override;
68
69 Status ComputeDynamicPressure(double time, const double pos[3], double& pressureOut) override;
71
72 Status ComputeTotalPressure(double time, const double pos[3], double& pressureOut) override;
74
76 double time,
77 const double pos[3],
78 double& surface_elevation,
79 double surface_unit_normal[3],
80 double particle_velocity[3],
81 double particle_acceleration[3],
82 double& pressure) override;
83};
84} // namespace marenv::wave
Definition AiryWavesScalar.h:28
Status ComputePointQuery(double time, const double pos[3], double &surface_elevation, double surface_unit_normal[3], double particle_velocity[3], double particle_acceleration[3], double &pressure) override
bool PositionIsInWater(double time, const double pos[3])
Status ComputeParticleAcceleration(double time, const double pos[3], double accOut[3]) override
Status ComputeDynamicPressure(double time, const double pos[3], double &pressureOut) override
AiryWavesScalar(WaveEnergySpectrum::SpectrumParameters spectrumParameters, int numWaves, uint32_t randomSeed)
Status ComputeParticleVelocity(double time, const double pos[3], double velOut[3]) override
~AiryWavesScalar() override=default
Default destructor.
Status ComputeTotalPressure(double time, const double pos[3], double &pressureOut) override
Status ComputeSurfaceElevation(double time, const double pos[2], double &elevationOut) override
Status ComputeSurfaceUnitNormal(double time, const double pos[2], double unitNormalOut[3]) override
AiryWavesScalar(std::shared_ptr< WaveComponents > waveComponents)
Parent class for linear wave theories used to simulate gravity waves.
Definition LinearWaveTheory.h:43
Status
Definition marenv.h:40
The parameters defining a certain wave field.
Definition WaveEnergySpectrum.h:41