Marine systems simulation
GerstnerWaves Class Reference
+ Inheritance diagram for GerstnerWaves:
+ Collaboration diagram for GerstnerWaves:

Public Member Functions

 GerstnerWaves (bool bIrregularWaves, vector< double > &mdWaveAmplitude, vector< double > &mdPhaseAngle, vector< double > &adWaveFrequency, vector< double > &adWaveDirection, ISimObjectCreator *creator)
 
double ComputeSurfaceElevation (const double dT, const double adPos[2])
 
void ComputeSurfaceUnitNormal (const double dT, const double adPos[2], double *adUnitNormalOut)
 
void ComputeParticleVelocity (const double dT, const double adPos[3], double *adVelOut)
 
void ComputeParticleAcceleration (const double dT, const double adPos[3], double *adAccOut)
 
double ComputeDynamicPressure (const double dT, const double adPos[3])
 
double ComputeTotalPressure (const double dT, const double adPos[3])
 
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)
 
- Public Member Functions inherited from LinearWaveTheory
 LinearWaveTheory (bool bIrregularWaves, vector< double > &mdWaveAmplitude, vector< double > &mdPhaseAngle, vector< double > &adWaveFrequency, vector< double > &adWaveDirection)
 
virtual double ComputeSurfaceElevation (const double dT, const double adPos[2])=0
 
virtual void ComputeSurfaceUnitNormal (const double dT, const double adPos[2], double *adUnitNormalOut)=0
 
virtual void ComputeParticleVelocity (const double dT, const double adPos[3], double *adVelOut)=0
 
virtual void ComputeParticleAcceleration (const double dT, const double adPos[3], double *adAccOut)=0
 
virtual double ComputeDynamicPressure (const double dT, const double adPos[3])=0
 
virtual double ComputeTotalPressure (const double dT, const double adPos[3])=0
 
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)=0
 
void SetWaveHarmonicCuttoffPercentage (double percent)
 Pointer to wave propagation direction array.
 
double GetWaveHarmonicCuttoffPercentage ()
 update the cutoff percentage number
 

Protected Member Functions

void FindLagrangePoint3D (const double dT, const double adEulerPointIn[3], double *adLagrangePointOut)
 
void FindLagrangePoint2D (const double dT, const double adEulerPointIn[2], double *adLagrangePointOut)
 

Additional Inherited Members

- Public Types inherited from LinearWaveTheory
enum  EWaveTheory_t { EWaveTheory_Airy =0 , EWaveTheory_Gerstner }
 
- Public Attributes inherited from LinearWaveTheory
std::vector< double > m_mdZetaA
 
std::vector< double > m_mdEpsilon
 Pointer to spectral amplitude array.
 
std::vector< double > m_adOmega
 Pointer to random phase angle array.
 
std::vector< double > m_adWaveNumber
 Pointer to wave frequency array.
 
std::vector< double > m_adTheta
 Pointer to wave number array.
 
- Protected Attributes inherited from LinearWaveTheory
double m_ln_percent
 get the cutoff percentage number
 
std::vector< double > m_adCosTheta
 ln of cutoff precentage for harmonic wave calculation. based on exp(-kx) = %
 
std::vector< double > m_adSinTheta
 Cosine of the angle Theta.
 
double m_dGravity
 Sine of the angle Theta.
 
double m_dDensity
 Acceleration of gravity.
 
int m_NumWaves
 Mass density of water.
 

Member Function Documentation

◆ ComputeDynamicPressure()

double GerstnerWaves::ComputeDynamicPressure ( const double  dT,
const double  adPos[3] 
)
virtual

Implements LinearWaveTheory.

◆ ComputeParticleAcceleration()

void GerstnerWaves::ComputeParticleAcceleration ( const double  dT,
const double  adPos[3],
double *  adAccOut 
)
virtual

Implements LinearWaveTheory.

◆ ComputeParticleVelocity()

void GerstnerWaves::ComputeParticleVelocity ( const double  dT,
const double  adPos[3],
double *  adVelOut 
)
virtual

Implements LinearWaveTheory.

◆ ComputePointQuery()

virtual void GerstnerWaves::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 
)
virtual

Implements LinearWaveTheory.

◆ ComputeSurfaceElevation()

double GerstnerWaves::ComputeSurfaceElevation ( const double  dT,
const double  adPos[2] 
)
virtual

Implements LinearWaveTheory.

◆ ComputeSurfaceUnitNormal()

void GerstnerWaves::ComputeSurfaceUnitNormal ( const double  dT,
const double  adPos[2],
double *  adUnitNormalOut 
)
virtual

Implements LinearWaveTheory.

◆ ComputeTotalPressure()

double GerstnerWaves::ComputeTotalPressure ( const double  dT,
const double  adPos[3] 
)
virtual

Implements LinearWaveTheory.


The documentation for this class was generated from the following file: