srmainwaring / asv_wave_sim

This package contains plugins that support the simulation of waves and surface vessels in Gazebo.
GNU General Public License v3.0
110 stars 29 forks source link

Add pressure methods to WaveSimulation #93

Closed srmainwaring closed 1 year ago

srmainwaring commented 1 year ago

This PR adds methods to calculate the pressure for linear waves in the wave simulation classes.

Details

  1. Add scalar and array methods to calculate the normalised pressure for the linear wave model at discrete depths.
  2. Implement the methods for linear regular waves and linear random waves.

Other changes

  1. Use Eigen::ArrayX and Eigen::ArrayXX instead of Eigen::Vector and Eigen::Matrix because we are primarily concerned with storage and component-wise operations, not linear algebra.
  2. Rename the base class WaveSimulation to IWaveSimulation and factor out the interpolation functions as IWaveField.
  3. Add Size methods to IWaveSimulation.
  4. Rename the derived wave simulation classes.
  5. Rename the wave simulation method ComputeElevation to ElevationAt to distinguish it from the interpolation methods. Similarly for other methods.
  6. Update the barrage example model to simplify the internal names.
  7. Add a UML diagram for the wave simulation classes using PlantUML.