4#include <marenv/wave/LinearWaveTheory.h>
5#include <marenv/wave/WaveEnergySpectrum.h>
114 double& surface_elevation,
115 double surface_unit_normal[3],
116 double particle_velocity[3],
117 double particle_acceleration[3],
118 double& pressure)
override;
Definition GerstnerWaves.h:18
void ThrowIfWavesAreTooSteep()
Throws an exception if the waves are too steep.
Status ComputeParticleAcceleration(double time, const double pos[3], double accOut[3]) override
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
Status ComputeSurfaceUnitNormal(double time, const double pos[2], double unitNormalOut[3]) override
Status ComputeParticleVelocity(double time, const double pos[3], double velOut[3]) override
Status ComputeTotalPressure(double time, const double pos[3], double &pressureOut) override
GerstnerWaves(WaveEnergySpectrum::SpectrumParameters spectrumParameters, int numWaves, uint32_t randomSeed)
Status ComputeParticleAccelerationAtLagrange(double time, const double lagrangePos[3], double accOut[3])
Status ComputeDynamicPressure(double time, const double pos[3], double &pressureOut) override
Status ComputeDynamicPressureAtLagrange(double time, const double lagrangePos[3], double &pressureOut)
Status ComputeParticleVelocityAtLagrange(double time, const double lagrangePos[3], double velOut[3])
Status ComputeSurfaceElevation(double time, const double pos[2], double &elevationOut) override
Status ComputeTotalPressureWithElevation(double eulerZ, double elevation, double &pressureOut)
Status ComputeSurfaceElevationAtLagrange(double time, const double lagrangePos[2], double &elevationOut)
GerstnerWaves(std::shared_ptr< WaveComponents > waveComponents)
void FindLagrangePoint2D(double time, const double eulerPosIn[2], double *lagrangePosOut)
Status ComputeSurfaceUnitNormalAtLagrange(double time, const double lagrangePos[2], double unitNormalOut[3])
void FindLagrangePoint3D(double time, const double eulerPosIn[3], double *lagrangePosOut)
~GerstnerWaves() override=default
Default destructor.
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