dispersion equation in water waves
I am solving dispersion equation for water waves. I already solved it but with small h now i am using the same code but having different h and it give me incorrect evenscent modes. How i can fix my this code that it works well. Below is my code
clc;
close all;
clear all;
N = 10; % Terms number used in region I
% — 2. Dimensional geometry & environment ———————
RI = 34.5; % [m] inner / entrance radius (fully open ⇒ RI = RT)
RE = 47.5; % [m] outer hull radius (used for k0*RE axis)
d = 38.0; % [m] draft = free-surface → rim (water-column length)
h = 200; % [m] total water depth (free-surface → seabed)
b = h – d; % [m] clearance rim → seabed (= 162 m, not usually used)
g=9.81;
k0RE = linspace(5, 35, 200); % 200 points, dimension-less
I_given_wavenumber = 1;
% ————— ① pre-allocate
for j = 1:length(k0RE)
if I_given_wavenumber == 1
wk = k0RE(j)/RE; %wavenumber
omega = sqrt(g*wk*tanh(wk*h)); %wave radian frequency
fun_alpha = @(x) omega^2 + g*x*tan(x*h); %dispersion equation for evanescent modes
end
for n = 1:N
if n ==1
k(n) = -1i*wk;
else
x0_alpha = [(2*n -3)*pi/2./h, (2*n -1)*pi/2./h]; % Narrow interval
k(n) = fsolve(fun_alpha, mean(x0_alpha));
end
end
endI am solving dispersion equation for water waves. I already solved it but with small h now i am using the same code but having different h and it give me incorrect evenscent modes. How i can fix my this code that it works well. Below is my code
clc;
close all;
clear all;
N = 10; % Terms number used in region I
% — 2. Dimensional geometry & environment ———————
RI = 34.5; % [m] inner / entrance radius (fully open ⇒ RI = RT)
RE = 47.5; % [m] outer hull radius (used for k0*RE axis)
d = 38.0; % [m] draft = free-surface → rim (water-column length)
h = 200; % [m] total water depth (free-surface → seabed)
b = h – d; % [m] clearance rim → seabed (= 162 m, not usually used)
g=9.81;
k0RE = linspace(5, 35, 200); % 200 points, dimension-less
I_given_wavenumber = 1;
% ————— ① pre-allocate
for j = 1:length(k0RE)
if I_given_wavenumber == 1
wk = k0RE(j)/RE; %wavenumber
omega = sqrt(g*wk*tanh(wk*h)); %wave radian frequency
fun_alpha = @(x) omega^2 + g*x*tan(x*h); %dispersion equation for evanescent modes
end
for n = 1:N
if n ==1
k(n) = -1i*wk;
else
x0_alpha = [(2*n -3)*pi/2./h, (2*n -1)*pi/2./h]; % Narrow interval
k(n) = fsolve(fun_alpha, mean(x0_alpha));
end
end
end I am solving dispersion equation for water waves. I already solved it but with small h now i am using the same code but having different h and it give me incorrect evenscent modes. How i can fix my this code that it works well. Below is my code
clc;
close all;
clear all;
N = 10; % Terms number used in region I
% — 2. Dimensional geometry & environment ———————
RI = 34.5; % [m] inner / entrance radius (fully open ⇒ RI = RT)
RE = 47.5; % [m] outer hull radius (used for k0*RE axis)
d = 38.0; % [m] draft = free-surface → rim (water-column length)
h = 200; % [m] total water depth (free-surface → seabed)
b = h – d; % [m] clearance rim → seabed (= 162 m, not usually used)
g=9.81;
k0RE = linspace(5, 35, 200); % 200 points, dimension-less
I_given_wavenumber = 1;
% ————— ① pre-allocate
for j = 1:length(k0RE)
if I_given_wavenumber == 1
wk = k0RE(j)/RE; %wavenumber
omega = sqrt(g*wk*tanh(wk*h)); %wave radian frequency
fun_alpha = @(x) omega^2 + g*x*tan(x*h); %dispersion equation for evanescent modes
end
for n = 1:N
if n ==1
k(n) = -1i*wk;
else
x0_alpha = [(2*n -3)*pi/2./h, (2*n -1)*pi/2./h]; % Narrow interval
k(n) = fsolve(fun_alpha, mean(x0_alpha));
end
end
end evenscent modes, dispersion equation, water waves MATLAB Answers — New Questions