1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! Ray tracing ocean waves
//!
//! This library uses ode_solvers, netcdf3, nalgebra, and thiserror.
//!
//! As of 2023-08-10, the library contains a module `ray.rs` that has a struct
//! `SingleRay`. `SingleRay` has a method `trace_individual` to create a `WaveRayPath`, perform `ode_solvers`
//! Runge-Kutta4 algorithm, and return the result. This `lib.rs` module contains a `WaveRayPath`
//! struct that contains either a ConstantDepth, ArrayDepth, or CartesianFile.
//! The struct implements the ode_solvers `system` method, which is defined with
//! the helper function `odes`. The `odes` function uses the `group_velocity`,
//! `gradient`, and `dk_vector_dt` to calculate the derivatives at the current
//! state. The Rk4 is used similar to the
//! [examples](https://srenevey.github.io/ode-solvers/examples/kepler_orbit.html).
//!
//! There is also a file output_to_file, which runs the Rk4, then saves the
//! output to a file. There is a folder named support that contains the python
//! file plot_ode_solvers, which plots a single ray. This will also contain a
//! plotting tool for many rays in the future.
//!
//! This only does one ray at the moment and verified for constant depth waves,
//! but in the future, it will include variable depth, ray bundles, and current.
// enforce documentation
/// cbindgen:ignore
use ;
pub use State;