Ray-tracing is a powerful technique used in computer graphics and scientific simulations to model the propagation of waves. When it comes to ocean surface gravity waves, ray-tracing can provide valuable insights into wave propagation, including their interaction with ocean currents and the seafloor. Such insights are crucial for better understanding ocean wave physics and their role in climate, as waves are a major player in heat transfer and the exchange of gases between the ocean and the atmosphere. In the present work, we introduce a novel package to calculate the path of a wave propagating through the ocean. We developed the code in Rust for memory safety, high performance, robustness, and simple testing. The ray tracing uses the Runge-Kutta 4th order and bilinear interpolation methods to reduce integration error. The package includes supporting Python files to visualize the results. The components are tested individually, and the overall output is checked against known idealized cases. With these methods, our Rust crate can trace the propagation of a wave through a variable depth represented in cartesian coordinates and plot the results. These results are significant because accurately tracing the propagation of ocean waves with an efficient language will increase performance making it seamless to run large simulation ensembles. There are many reasonable opportunities for improvement in the future. The accuracy and realism of the program will improve by tracing bundles of multiple rays and accounting for the interactions with ocean currents. Additionally, the computational performance will improve by parallelizing the ray tracing.
Copyright of the original work is retained by the author.
The export option will allow you to export the current search results of the entered query to a file. Different
formats are available for download. To export the items, click on the button corresponding with the preferred download format.
By default, clicking on the export buttons will result in a download of the allowed maximum amount of items.
To select a subset of the search results, click "Selective Export" button and make a selection of the items you want to export.
The amount of items that can be exported at once is similarly restricted as the full export.
After making a selection, click one of the export format buttons. The amount of items that will be exported is indicated in the bubble next to export format.