You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
52 lines
1.4 KiB
clear all;
|
|
close all;
|
|
|
|
filename = "dielectric_cylinder.h5";
|
|
|
|
r1 = h5read(filename, "/outer_dom/pos");
|
|
r2 = h5read(filename, "/cyl_dom/pos");
|
|
t1 = h5read(filename, "/outer_dom/types");
|
|
t2 = h5read(filename, "/cyl_dom/types");
|
|
inter = h5read(filename, "/outer_inter_nodes");
|
|
|
|
lambda = h5readatt(filename, "/", "wavelength");
|
|
rad = h5readatt(filename, '/config/', "geometry.r");
|
|
a = h5readatt(filename, '/config/', "geometry.a");
|
|
d = h5readatt(filename, '/config/', "PML.d");
|
|
epsr = h5readatt(filename, '/config/', "case.epsr");
|
|
|
|
phi = linspace(0, 2*pi, 100);
|
|
cilx = a*cos(phi);
|
|
cily = a*sin(phi);
|
|
|
|
k = (2*pi/lambda);
|
|
|
|
r = [r1; r2];
|
|
t = [t1; t2];
|
|
EIK = exp(1.0i*k*r(:, 1));
|
|
|
|
rsol = h5read(filename, "/rsol");
|
|
csol = h5read(filename, "/csol");
|
|
|
|
tsol = rsol+1.0i*csol;
|
|
tsol(inter+1) = tsol(inter+1)+ EIK(inter+1);
|
|
rsol = real(tsol);
|
|
csol = imag(tsol);
|
|
|
|
f1 = setfig('a1', [900, 900]);
|
|
title("Imaginary part of $E_z$");
|
|
scatter(r(:, 1), r(:, 2), 40, csol, 'filled', 'o')
|
|
text(0-a/2, 0, "$\varepsilon = $ "+epsr,'FontSize', 25)
|
|
annotation('arrow', [0.7 0.6], [0.51 0.51])
|
|
hold on
|
|
plot(cilx, cily, 'k', 'LineWidth', 2)
|
|
colorbar
|
|
|
|
f2 = setfig('a2', [900, 900]);
|
|
title("Real part of $E_z$");
|
|
scatter(r(:, 1), r(:, 2), 40, rsol, 'filled', 'o')
|
|
hold on
|
|
plot(cilx, cily, 'k', 'LineWidth', 2)
|
|
text(0-a/2, 0, "$\varepsilon = $ "+epsr,'FontSize', 25)
|
|
annotation('arrow', [0.7 0.6], [0.51 0.51])
|
|
colorbar
|
|
|