This PR is the part in a series of updates to the wave simulation to improve performance.
The main change is to replace the use of std::vector<double> and std::vector<std::vector<double>> for storage with Eigen types. Aside from the advantages of memory alignment, this also prepares the wave simulation and associated classes for vectorisation. The wave spectra and spreading functions are now vectorised, as is the regular wave model.
Details
Create classes for wave spectra with vectorised methods.
Create classes for wave spreading functions with vectorised methods.
Update wave simulations to use Eigen types rather than std::vector.
Vectorise the SinusoidalWaveSimulation.
Add extra tests for wave simulation models.
Streamline class declarations and move to under_score_naming for member variables (for non-Gazebo specific classes).
Remove dead code - old FFTW and OpenCL wave simulations
Update physical constants and reset buoyancy regression tests.
This PR is the part in a series of updates to the wave simulation to improve performance.
The main change is to replace the use of
std::vector<double>
andstd::vector<std::vector<double>>
for storage with Eigen types. Aside from the advantages of memory alignment, this also prepares the wave simulation and associated classes for vectorisation. The wave spectra and spreading functions are now vectorised, as is the regular wave model.Details