public WaveState Calculate(double lambda, double H, double h) { var result = new WaveState(); double g, rho, k, omega, c, cg, T, kh, u, E, P, Hs; g = 9.807; rho = 1000; k = 2 * Math.PI / lambda; kh = k * h; omega = Math.Sqrt(g * k * Math.Tanh(kh)); c = omega / k; cg = c / 2 * (1 + (2 * kh / Math.Sinh(2 * kh))); T = 2 * Math.PI / omega; E = rho * g * Math.Pow(H, 2) / 8; Hs = Math.Sqrt(2) * H; P = (rho * Math.Pow(g, 2)) / (32 * Math.PI) * T * Math.Pow(Hs, 2) / 2; u = g * H * k / (2 * omega); result.state = getState(kh); result.omega = omega; result.k = h; result.P = P; result.T = T; result.u = u; result.Hs = Hs; result.c = c; result.cg = cg; result.E = E; return result; }
public WaveState Calculate(double lambda, double H, double h) { var result = new WaveState(); double k, omega, c, cg, T, kh, u, E, P, Hs, f; double g, RhoWater; g = 9.807; RhoWater = 1000; k = 2 * Math.PI / lambda; kh = k * h; omega = Math.Sqrt(g * k * Math.Tanh(kh)); T = 2 * Math.PI / omega; f = 1 / T; c = omega / k; cg = c / 2 * (1 + (2 * kh / Math.Sinh(2 * kh))); u = g * H * k / (2 * omega); Hs = Math.Sqrt(2) * H; E = RhoWater * g * Math.Pow(H, 2) / 8; P = (RhoWater * Math.Pow(g, 2)) / (32 * Math.PI) * T * Math.Pow(Hs, 2) / 2; // Base properties of waves result.state = getState(kh); result.omega = omega; result.T = T; result.f = f; result.k = k; // Derived values result.P = P; result.u = u; result.Hs = Hs; result.c = c; result.cg = cg; result.E = E; return result; }