This PR adds methods to calculate the pressure for linear waves in the wave simulation classes.
Details
Add scalar and array methods to calculate the normalised pressure for the linear wave model at discrete depths.
Implement the methods for linear regular waves and linear random waves.
Other changes
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.
Rename the base class WaveSimulation to IWaveSimulation and factor out the interpolation functions as IWaveField.
Add Size methods to IWaveSimulation.
Rename the derived wave simulation classes.
Rename the wave simulation method ComputeElevation to ElevationAt to distinguish it from the interpolation methods. Similarly for other methods.
Update the barrage example model to simplify the internal names.
Add a UML diagram for the wave simulation classes using PlantUML.
This PR adds methods to calculate the pressure for linear waves in the wave simulation classes.
Details
Other changes
Eigen::ArrayX
andEigen::ArrayXX
instead ofEigen::Vector
andEigen::Matrix
because we are primarily concerned with storage and component-wise operations, not linear algebra.ComputeElevation
toElevationAt
to distinguish it from the interpolation methods. Similarly for other methods.