0;


files = [...
    "planarbend2D_alpha015_a010_omega4.5000_linear_s_d05.4635_pfwd.mat",...
    "planarbend3D_alpha015_a010_omega4.5000_linear_s_d05.4635_pfwd.mat",...
    "planarbend2D_alpha015_a010_omega4.5000_M0.10_s_d05.4635_pfwd.mat",...
    "planarbend3D_alpha015_a010_omega4.5000_M0.10_s_d05.4635_pfwd"];

set(0,'DefaultAxesFontName','Times')
set(0,'DefaultAxesFontSize',10)
widthCM=13.5; % width of plots in cm.  JFM width is 135mm.
fig = figure('units','centimeters','position',...
    [5 -5 widthCM widthCM]);
tiledlayout(2,1)

load(files(1),"geomname");
load(files(1),"geomparams");
geom2D = eval(strcat(geomname,'(','geomparams',')'));
load(files(2),"geomname");
load(files(2),"geomparams");
geom3D = eval(strcat(geomname,'(','geomparams',')'));


X_func = geom2D().X;
R_func = geom3D().R;

load(files(1),"numparams")
omega = numparams.omega;
s0          = 0;
s1          = numparams.s_d;
a_mx        = numparams.a_mx;
alpha_mx    = numparams.alpha_mx;

mode_ave2D = zeros(alpha_mx+1,1);
mode_ave3D = zeros(alpha_mx+1,1);
for alpha = 0:alpha_mx
    mode_ave2D(alpha+1) = eq(alpha,0)/X_func(s1);
    mode_ave3D(alpha+1) = eq(alpha,0)/X_func(s1);
end

t1 = 0;
n_t = 10000;
t_end       = 4*pi/omega;
t_grid      = 0+t1:t_end/n_t:t_end -t_end/n_t + t1;
exp_a_grid  = zeros(length(t_grid),2*a_mx+1);
for I_t = 1:n_t
    exp_a_grid(I_t,:) ...
        = exp(-1i*linspace(-a_mx,a_mx,2*a_mx+1)*omega*t_grid(I_t));
end


nexttile
load(files(1),"Pplint")
mach    = numparams.mach;
P_alpha_a = reshape(Pplint({s0,1:(2*a_mx+1)*(alpha_mx+1)}),...
    alpha_mx+1,2*a_mx+1);

p_ave = zeros(n_t,1);
for I_t = 1:n_t
    p_ave(I_t) = exp_a_grid(I_t,:)*P_alpha_a'*mode_ave2D;
end
plot(omega*t_grid,real(p_ave)/mach,'DisplayName','Inlet (2D/3D)')

hold on

P_alpha_a = reshape(Pplint({s1,1:(2*a_mx+1)*(alpha_mx+1)}),...
    alpha_mx+1,2*a_mx+1);
for I_t = 1:n_t
    p_ave(I_t) = exp_a_grid(I_t,:)*P_alpha_a'*mode_ave2D;
end
plot(omega*t_grid,real(p_ave)/mach,'DisplayName','Outlet (2D)')

load(files(2),"Pplint","numparams")
P_alpha_a = reshape(Pplint({s1,1:(2*a_mx+1)*(alpha_mx+1)}),...
    alpha_mx+1,2*a_mx+1);
for I_t = 1:n_t
    p_ave(I_t) = exp_a_grid(I_t,:)*P_alpha_a'*mode_ave3D;
end
plot(omega*t_grid,real(p_ave)/mach,'DisplayName','Outlet (3D)')

legend
xticks([0 pi 2*pi 3*pi 4*pi])
xticklabels({'0','$$\pi$$','$$2\pi$$','$$3\pi$$','$$4\pi$$'})
xlabel('$$\omega t$$')
subtitle("(a)")

nexttile
load(files(3),"Pplint")
mach    = numparams.mach;
P_alpha_a = reshape(Pplint({s0,1:(2*a_mx+1)*(alpha_mx+1)}),...
    alpha_mx+1,2*a_mx+1);

p_ave = zeros(n_t,1);
for I_t = 1:n_t
    p_ave(I_t) = exp_a_grid(I_t,:)*P_alpha_a'*mode_ave2D;
end
plot(omega*t_grid,real(p_ave)/mach,'DisplayName','Inlet (2D/3D)')

hold on

P_alpha_a = reshape(Pplint({s1,1:(2*a_mx+1)*(alpha_mx+1)}),...
    alpha_mx+1,2*a_mx+1);
for I_t = 1:n_t
    p_ave(I_t) = exp_a_grid(I_t,:)*P_alpha_a'*mode_ave2D;
end
plot(omega*t_grid,real(p_ave)/mach,'DisplayName','Outlet (2D)')

load(files(4),"Pplint","numparams")
P_alpha_a = reshape(Pplint({s1,1:(2*a_mx+1)*(alpha_mx+1)}),...
    alpha_mx+1,2*a_mx+1);
for I_t = 1:n_t
    p_ave(I_t) = exp_a_grid(I_t,:)*P_alpha_a'*mode_ave3D;
end
plot(omega*t_grid,real(p_ave)/mach,'DisplayName','Outlet (3D)')

legend
xticks([0 pi 2*pi 3*pi 4*pi])
xticklabels({'0','$$\pi$$','$$2\pi$$','$$3\pi$$','$$4\pi$$'})
xlabel('$$\omega t$$')
subtitle("(b)")

exportgraphics(gcf,'stillplaceholderp2.pdf','ContentType','vector')
