Change in the form of CTRs by varying the out-of-plane distance of the top atomic layer - “relaxation”
Matlab code
% Program plotting the CTR intensity as a function of l and displacement
% dz of the top atomic layer of an elemental simple cubic lattiice between
% +/- 5%. On the right the movement of this layer is shown, but exaggerated
% by a factor of 5.
close all
vid = VideoWriter('CTRvSurfaceDilation.mp4','MPEG-4');
vid.Quality = 100;
vid.FrameRate = 30;
open(vid);
figure('units','pixels','position',[0 0 1920 1080],'ToolBar','none');
set(0,'defaultfigurecolor',[1 1 1]);
set(gca,'linewidth',7);
lp = [0. 0. 0.2];
myBlue = [0.32 0.35 0.7];
lightblue = [0.64 0.77 1];
light('Position',lp,'Style','infinite');
pos1 = [0.1 0.1 0.5 0.8]; % Top left 3D cartoon
pos2 = [0.64 0.1 0.35 0.8]; % Bottom left EXAFS plot
str1 = '\delta = ';
str3 = ' %';
[xx,yy,zz] = sphere(50);
r1 = 0.35;
z01 = 0:0.0005:0.05;
z02 = 0.049:-0.0005:-0.05;
z03 = -0.049:0.0005:0;
z0 = [z01 z02 z03];
l = 0:0.005:3;
for z = z0
subplot('Position',pos1);
newplot
F0ctr = (1 - exp(1i*2*pi*l)).^-1 + exp(-1i*2*pi*l);
I0ctr = (abs(F0ctr)).^2;
Fctr = (1 - exp(1i*2*pi*l)).^-1 + exp(-1i*2*pi*(1+z)*l);
Ictr = (abs(Fctr)).^2;
hold off
plot(l,log10(I0ctr),'color',lightblue, 'Linewidth', 2)
hold on
plot(l,log10(Ictr),'color',myBlue, 'Linewidth', 2)
set(gca,'fontsize',25,'linewidth',2);
ylim([-2,3])
xlabel('l [r.l.u.]');
ylabel('log_{10}(CTR intensity)');
str2 = num2str(z*100,'% 4.2f');
strTot = [str1,str2,str3];
hText = text(0.5, -1.25, strTot, 'FontSize',25);
subplot('Position',pos2);
newplot
hold off
for atomRow = -3:3
hold on
surf(xx*r1+atomRow,yy*r1,zz*r1,'FaceColor',myBlue,...
'EdgeColor','none','FaceLighting','gouraud','FaceAlpha',0.2);
end
for atomCol = 0:-1:-5
for atomRow = -3:3
if (atomCol == 0)
surf(xx*r1+atomRow,yy*r1,zz*r1+atomCol+z*5,'FaceColor',myBlue,...
'EdgeColor','none','FaceLighting','gouraud','FaceAlpha',1+atomCol/5.5);
else
surf(xx*r1+atomRow,yy*r1,zz*r1+atomCol,'FaceColor',myBlue,...
'EdgeColor','none','FaceLighting','gouraud','FaceAlpha',1+atomCol/5.5);
end
end
end
axis off;
axis equal;
light('Position',lp,'Style','infinite');
set(gca, 'Projection','perspective');
xlim([-4 4]);
ylim([-1 1]);
zlim([-6 1]);
view(0,0);
% Store the frame
frame = getframe(gcf);
writeVideo(vid,frame);
hold off
end
% Output the movie as an mpg file
close(vid);