Marine systems simulation
GerstnerWaves.h
1
17
18#ifndef GERSTNER_WAVES
19#define GERSTNER_WAVES
20
21#include "LinearWaveTheory.h"
22class ISimObjectCreator;
23
25{
26public:
27 GerstnerWaves( bool bIrregularWaves, vector<double> & mdWaveAmplitude, vector<double> & mdPhaseAngle, vector<double> & adWaveFrequency, vector<double> & adWaveDirection, ISimObjectCreator* creator);
28 ~GerstnerWaves(void);
29
30 double ComputeSurfaceElevation(const double dT, const double adPos[2]);
31 void ComputeSurfaceUnitNormal(const double dT, const double adPos[2], double *adUnitNormalOut);
32 void ComputeParticleVelocity(const double dT, const double adPos[3], double *adVelOut);
33 void ComputeParticleAcceleration(const double dT, const double adPos[3], double *adAccOut);
34 double ComputeDynamicPressure(const double dT, const double adPos[3]);
35 double ComputeTotalPressure(const double dT, const double adPos[3]);
36
37 virtual void ComputePointQuery(double T, const double Position[3], double& surface_elevation, double surface_unit_normal[3], double particle_velocity[3], double particle_acceleration[3], double& pressure);
38
39
40protected:
41
42 void FindLagrangePoint3D(const double dT, const double adEulerPointIn[3], double *adLagrangePointOut);
43 void FindLagrangePoint2D(const double dT, const double adEulerPointIn[2], double *adLagrangePointOut);
44
45};
46
47#endif
Definition: GerstnerWaves.h:25
Definition: LinearWaveTheory.h:25