diff options
Diffstat (limited to 'src/ocean/ocean.h')
-rw-r--r-- | src/ocean/ocean.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/ocean/ocean.h b/src/ocean/ocean.h new file mode 100644 index 0000000..7e436cf --- /dev/null +++ b/src/ocean/ocean.h @@ -0,0 +1,71 @@ +// +// Created by Michael Foiani on 4/9/24. +// + +#ifndef OCEAN_H +#define OCEAN_H + +#include <vector> +#include <utility> +#include <Eigen/Dense> + + +class ocean +{ +public: + ocean(); + + const int length = 16; // length of grid + const int width = 16; // width of grid + const int N = length * width; // total number of grid points + + const double A = 100; // numeric constant for the Phillips spectrum + const double V = 5.0; // wind speed + const std::pair<double, double> omega_wind + = std::make_pair(1.0, 0.0); // wind direction + + std::vector<std::pair<double, double>> initial_h; // initial height fields for each K + + const double D = 1; // Depth below mean water level (for dispersion relation) + + std::vector<Eigen::Vector3f> get_vertices + (); + std::vector<Eigen::Vector3i> get_faces + (); + + std::pair<double, double> k_index_to_k_vector + ( + int k_index + ); + std::pair<double, double> sample_complex_gaussian + (); + double phillips_spectrum + ( + int k_index + ); + std::pair<double, double> amplitude_0 + ( + int k_index + ); + int k_index_to_negative_k_index + ( + int k_index + ); + double omega_dispersion + ( + double k_magnitude, + bool is_shallow=false + ); + std::pair<double, double> exp_complex + ( + std::pair<double, double> z + ); + std::pair<double, double> amplitude_t + ( + double t, + int k_index + ); +}; + + +#endif //OCEAN_H |