Marine systems simulation
Loading...
Searching...
No Matches
NullWaveField.h
1#pragma once
3
4#include <marenv/wave/WaveField.h>
5
6namespace marenv::wave
7{
8
16{
17public:
19
20 NullWaveField() = default;
22
23 ~NullWaveField() override = default;
25
26 [[nodiscard]] std::string SpectrumName() const override;
28
29 [[nodiscard]] std::string WaveTheoryName() const override;
31
32 [[nodiscard]] Status ComputeSurfaceElevation(double time, const double pos[2], double& elevationOut) override;
34
35 [[nodiscard]] Status ComputeSurfaceUnitNormal(double time, const double pos[2], double unitNormalOut[3]) override;
37
38 [[nodiscard]] Status ComputeParticleVelocity(double time, const double pos[3], double velOut[3]) override;
40
41 [[nodiscard]] Status ComputeParticleAcceleration(double time, const double pos[3], double accOut[3]) override;
43
44 [[nodiscard]] Status ComputeDynamicPressure(double time, const double pos[3], double& pressureOut) override;
46
47 [[nodiscard]] Status ComputeTotalPressure(double time, const double pos[3], double& pressureOut) override;
49
50 [[nodiscard]] Status ComputePointQuery(double time, const double pos[3], double& surface_elevation, // clang-format off
51 double surface_unit_normal[3], double particle_velocity[3],
52 double particle_acceleration[3], double& pressure) override; // clang-format on
54
55 [[nodiscard]] InsecureDatapointers GetWaveComponents() const override;
57
58 [[nodiscard]] WaveComponentData GetWaveComponentsCopy() const override;
60
61 void BlendInPlace(WaveComponentData& other, double alpha) override;
62};
63
64} // namespace marenv::wave
Definition NullWaveField.h:16
InsecureDatapointers GetWaveComponents() const override
Status ComputeParticleVelocity(double time, const double pos[3], double velOut[3]) override
NullWaveField()=default
Constructor.
Status ComputeSurfaceElevation(double time, const double pos[2], double &elevationOut) override
std::string WaveTheoryName() const override
Status ComputeSurfaceUnitNormal(double time, const double pos[2], double unitNormalOut[3]) override
Status ComputeDynamicPressure(double time, const double pos[3], double &pressureOut) 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 ComputeTotalPressure(double time, const double pos[3], double &pressureOut) override
WaveComponentData GetWaveComponentsCopy() const override
std::string SpectrumName() const override
void BlendInPlace(WaveComponentData &other, double alpha) override
Status ComputeParticleAcceleration(double time, const double pos[3], double accOut[3]) override
~NullWaveField() override=default
Destructor.
The interface for an representing waves.
Definition WaveField.h:35
Status
Definition marenv.h:40
Details of a wave component.
Definition WaveField.h:23
Pointers to wave component details.
Definition WaveField.h:40