Exp. Phys. 5, WS16/17 Denninger skript_23_12_2016_a Dies ist die Sammlung des Materials von Dienstag, 06.12. bis Freitag 16.12.2016. Inhalt: 1. beugung_intro.pdf Seite 2 Einführung in die Beugung von Wellen 2. kristallstruktur.pdf Seite 7 Knappe Einführung in Kristallstrukturen 3. beugungs_sonden.pdf Seite 13 Beugungssonden: Photonen, Elektronen, Neutronen 4. beugung_1D.pdf Seite 14 Beugung an der eindimensionalen "Kette" von Objekten 5. beugung_2d.pdf Seite 28 Beugung an zwei- und dreidimensionalen Strukturen 6. graphene.pdf Seite 38 Struktur des 2-dimensionalen Graphen-Gitter 7. graphene_lattice.pdf Details des 2-dimensionalen Graphen-Gitter Seite 48 beugung intro.jnt Seite 2 Seite 3 Seite 4 Seite 5 Seite 6 kristallstruktur.jnt Seite 7 Seite 8 Seite 9 Seite 10 Seite 11 Seite 12 GAWD's MATLAB Analysen Sonden für Beugungsexperimente Zur Strukturbestimmung durch Beugungsmethoden kommen alle Teilchen (auch Photonen sind in diesem Sinne Teilchen) in Frage, welche eine (am besten einstellbare) Wellenlänge im Bereich der relevanten Atomabstände haben. Die Wellenlänge eines Teilchens ist universell durch die de Broglie Beziehung gegeben: h p Dabei ist h die Planck'sche Konstante und p der Impuls des Teilchens. Diese Beziehung hat universelle Gültigkeit und ist ohne Einschränkungen anwendbar. In vielen Fällen möchte man jedoch den Impuls durch die Energie des Teilchens ausdrüchken, und dann die Wellenlänge als Funktion der Energie bestimmen. Dazu benutzt man auch die allgemein gültige Energie-Impulsbeziehung: E 2 p 2c 2 m 02 c 4 Hier ist m0 die Ruhemasse und c die Lichtgeschwindigkeit. Wir unterscheiden jetzt Teilchen ohne Ruhemasse (m0 = 0 ) und Teilchen mit Ruhemasse (m0 0). 1. Teilchen ohne Ruhemasse (z.B. Photonen) E p c Für Photonen ist der Impuls p k Damit wird dann die Wellenlänge: hc E h h f Misst man die Energie in eV, dann gilt: SI_e=1.602176462e-19; SI_h=6.62606876e-34; SI_c=299792458; fact_photon=SI_h*SI_c/SI_e, fact_photon = 1.2398e-006 Die Wellenlänge bei Photonen ist also: 1.2398m/E(eV). NE=1000; E=logspace(1,6,NE); lambda=fact_photon./E; loglog(E,lambda*1e9,'Linewidth',3);xlabel('Energie /eV');ylabel('Wellenlänge /nm'); 'beugungs_sonden.doc' 8.12.2016 GAWD Seite 13 1 GAWD's MATLAB Analysen 3 10 2 10 1 Wellenlänge /nm 10 0 10 -1 10 -2 10 -3 10 1 10 2 10 3 10 4 10 5 10 6 10 Energie /eV Man benötigt also Photonenenergien von etwa 10 keVund mehr, um Wellenlängen im Bereich der Atomabstände zu haben. Bei 10 keV Photonenenergie ist die Wellenlänge gerade 0.12398 nm. Dies liegt im Bereich der relevanten Atomabstände in Festkörpern. 2. Teilchen mit Ruhemasse m0. Hier unterscheiden wir jetzt noch die Bereiche niedriger Energie ( Ekin << m0c2) und die Bereiche hoher Energie. Die Energie E ist die Summe aus Ruhenergie und kinetischer Energie. E m0c 2 Ekin Damit ist dann: 2 E 2 m0c 2 Ekin 2 m02 c 4 2m0c 2 Ekin Ekin Relevant für die Beugung an Festkörpern ist der Bereich niedriger Energie (Ekin << m0c2). Dort kann man sich auf die ersten beiden Terme beschränken 2 E 2 m02 c 4 2m0c 2 Ekin p 2c 2 m02 c 4 'beugungs_sonden.doc' 8.12.2016 GAWD Seite 14 2 GAWD's MATLAB Analysen p 2c 2 p2 Ekin 2m 0c 2 2m 0 Somit wird: p 2m0 Ekin und somit: , und für die Wellenlänge hat man: h 2m0 Ekin Die kinetische Energie der Teilchen wird meistens in eV angegeben, und somit hat man: a) Für Elektronen und Neutronen: SI_me=9.10938188e-31; SI_mn=1.67492716e-27; fact_elektronen=SI_h/sqrt(2*SI_me*SI_e), fact_neutronen=SI_h/sqrt(2*SI_mn*SI_e), fact_elektronen = 1.2264e-009 fact_neutronen = 2.8601e-011 lambda_elektronen=fact_elektronen./sqrt(E); lambda_neutronen=fact_neutronen./sqrt(E); loglog(E,lambda_elektronen*1e9,'b-',E,lambda_neutronen*1e9,'r','Linewidth',3);xlabel('Energie /eV');ylabel('Wellenlänge /nm'); 0 10 -1 Wellenlänge /nm 10 -2 10 -3 10 -4 10 -5 10 1 10 2 10 3 10 4 10 5 10 6 10 Energie /eV 'beugungs_sonden.doc' 8.12.2016 GAWD Seite 15 3 GAWD's MATLAB Analysen Während die Wellenlängen für Elektronen im Bereich bis ca. 100 eV (langsame Elektronen) durchaus im richtigen Bereich der Atomabstände liegen, muss man für Neutronen zu deutlich niedrigeren Energien gehen. Eneutron=logspace(-3,2,NE); lambda_neutronen=fact_neutronen./sqrt(Eneutron); loglog(Eneutron,lambda_neutronen*1e9,'r-','Linewidth',3);xlabel('Energie /eV');ylabel('Wellenlänge /nm'); 0 10 -1 Wellenlänge /nm 10 -2 10 -3 10 -3 10 -2 10 -1 10 0 10 1 10 2 10 Energie /eV Bei Neutronen muss die Energie im Bereich von ca. 10 meV bis 100 meV liegen, um die Wellenlängen in den für die Streuung an Festkörpern relavanten Bereich zu bringen. Neutronen mit dieser niedrigen Energie nennt man "thermische Neutronen". 'beugungs_sonden.doc' 8.12.2016 GAWD Seite 16 4 beugung_1D.jnt Seite 17 delta=0.005 1 0.9 0.8 Elektronendichte 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 Seite 18 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 Ort (nm) 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 400 delta = 0.005 350 300 FFT Amplitude 250 200 150 100 50 0 0 5 10 15 20 25 Ortsfrequenz (nm-1) 30 35 40 45 50 1 delta = 0.02 0.9 0.8 Elektronendichte 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 Seite 19 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 Ort (nm) 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 1500 delta = 0.02 FFT Amplitude 1000 500 0 0 5 10 15 20 25 Ortsfrequenz (nm-1) 30 35 40 45 50 delta = 0.05 1 0.9 0.8 Elektronendichte 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 Seite 20 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 Ort (nm) 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2500 delta=0.05 2000 FFT Amplitude 1500 1000 500 0 0 5 10 15 20 25 Ortsfrequenz (nm-1) 30 35 40 45 50 1 0.9 0.8 Elektronendichte 0.7 0.6 0.5 0.4 0.3 0.2 0.1 delta=0.1nm 0 0 Seite 21 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 Ort (nm) 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 800 700 600 FFT Amplitude 500 400 300 200 100 0 0 Seite 22 5 10 15 20 25 Ortsfrequenz (nm-1) 30 35 40 45 50 delta = 0.04 1 Elektronendichte 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 2.5 Ort (nm) 3 3.5 4 4.5 5 2500 delta = 0.04 FFT Amplitude 2000 1500 1000 500 0 0 Seite 23 5 10 15 20 25 30 Ortsfrequenz (nm-1) 35 40 45 50 delta = 0.04 1 Elektronendichte 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 2.5 Ort (nm) 3 3.5 4 4.5 5 1200 delta = 0.04 1000 FFT Amplitude 800 600 400 200 0 0 Seite 24 5 10 15 20 25 30 Ortsfrequenz (nm-1) 35 40 45 50 delta = 0.01 Bais: 2 Atome 1 Elektronendichte 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 2.5 Ort (nm) 3 3.5 4 4.5 5 1200 delta = 0.01 Bais: 2 Atome 1000 FFT Amplitude 800 600 400 200 0 0 Seite 25 5 10 15 20 25 30 Ortsfrequenz (nm-1) 35 40 45 50 delta = 0.01 Basis: 2 Atome 1 Elektronendichte 0.8 0.6 0.4 0.2 0 0 Seite 26 0.5 1 1.5 2 2.5 Ort (nm) 3 3.5 4 4.5 5 1200 delta = 0.01 Basis: 2 Atome 1000 FFT Amplitude 800 600 400 200 0 0 Seite 27 5 10 15 20 25 30 Ortsfrequenz (nm-1) 35 40 45 50 beugung_2d.jnt Seite 28 50 create_exp_2d(512,16,10,0.01,0.01,500) 10000 40 9000 30 8000 O rts fre q u e n z (n m -1 ) 20 7000 10 6000 0 5000 -10 4000 -20 3000 -30 2000 -40 1000 -50 -50 Seite 29 -40 -30 -20 -10 0 10 Ortsfrequenz (nm-1) 20 30 40 50 50 create_exp_2d(512,16,10,0.01,0.01,500) 10000 40 9000 30 8000 O rts fre q u e n z (n m -1 ) 20 7000 10 6000 0 5000 -10 4000 -20 3000 -30 2000 -40 1000 -50 -50 -40 -30 -20 -10 0 10 Ortsfrequenz (nm-1) 20 30 40 50 create_exp_2d(512,16,10,0.01,0.01,500) x-Schnitt 600 FFT Amplitude 500 400 300 200 100 0 -50 Seite 30 -40 -30 -20 -10 0 10 Ortsfrequenz(nm-1) 20 30 40 50 create_exp_2d(512,16,10,0.01,0.01,500) y-Schnitt 600 FFT Amplitude 500 400 300 200 100 0 -50 Seite 31 -40 -30 -20 -10 0 10 -1 Ortsfrequenz (nm ) 20 30 40 50 50 create_exp_2d(512,16,10,0.01,0.01,100) 1400 40 30 1200 O rts fre q u e n z (n m -1 ) 20 1000 10 800 0 -10 600 -20 400 -30 -40 -50 -50 Seite 32 200 -40 -30 -20 -10 0 10 Ortsfrequenz (nm-1) 20 30 40 50 1000 1000 800 800 600 600 400 400 200 200 0 -50 -40 Seite 33 -30 -20 -10 0 10 Ortsfrequenz (nm-1) 20 30 40 create_exp_2d(512,16,10,0.01,0.01,100) Schnitt: y 1200 create_exp_2d(512,16,10,0.01,0.01,100) Schnitt: x F F T A m p le F F T A m p litu d e 1200 50 0 -50 -40 -30 -20 -10 0 10 Ortsfrequenz (nm-1) 20 30 40 50 x 10 50 a (0.875,0.125) , b (0.25,0.75) 2.5 40 30 2 O rts fre q u e n z (n m -1 ) 20 10 1.5 0 -10 1 -20 -30 0.5 -40 -50 -50 Seite 34 -40 -30 -20 -10 0 10 Ortsfrequenz (nm-1) 20 30 40 50 4 Seite 35 Seite 36 Seite 37 graphene.jnt benzene anthracene naphtalene pyrene Seite 38 Seite 39 Seite 40 Seite 41 Seite 42 Seite 43 Seite 44 Seite 45 Seite 46 Seite 47 GAWD's MATLAB Analysen Das Graphen-Gitter Schaut man Graphen im Ortsraum oberflächlich an, dann hat man den Eindruck einer hexagonalen Struktur. Dies ist jedoch nicht der Fall, denn im Zentrum jedes Hexagons ist eben kein C-Atom! Das Gitter ist vielmehr ein "Honigwaben-Gitter". a1=[1 0]; a2=[0.5 –sqrt(3)/2]; b1=[0 0]; b2=(2/3)*(a1+a2); Jetzt erzeugen wir z.B. 20*20 Einheitszellen: Nx=20; Ny=20; x=zeros(1,2*Nx*Ny); y=zeros(1,2*Nx*Ny); ind=0; for i1=1:Nx for i2=1:Ny ind=ind+1; x(ind)=(i1-1)*a1(1)+(i2-1)*a2(1)+b1(1); y(ind)=(i1-1)*a1(2)+(i2-1)*a2(2)+b1(2); ind=ind+1; x(ind)=(i1-1)*a1(1)+(i2-1)*a2(1)+b2(1); y(ind)=(i1-1)*a1(2)+(i2-1)*a2(2)+b2(2); end end plot(x,y,'ro','Linewidth',2);axis([10 20 -15 -5]); 'graphene_lattice.doc' 8.12.2016 GAWD Seite 48 1 GAWD's MATLAB Analysen -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 10 11 12 13 14 15 16 17 18 19 20 Jetzt tic; Nxx=1024; Nyy=1024; xx=linspace(10,20,Nxx); yy=linspace(-16,-6,Nyy); rho=zeros(Nxx,Nyy); for i3=1:800 if( (x(i3) >=10) && (x(i3)<=20)) if( (y(i3) >=-16) && (y(i3)<=-6)) for i1=1:Nxx for i2=1:Nyy rr=(xx(i1)-x(i3))^2+(yy(i2)-y(i3))^2; rho(i1,i2)=rho(i1,i2)+exp(-10*rr); end end end end end toc, Elapsed time is 1008.440921 seconds. meshc(rho); 'graphene_lattice.doc' 8.12.2016 GAWD Seite 49 2 GAWD's MATLAB Analysen So sieht die Ladungsdichte aus. pcolor(rho);shading('interp');colorbar(); 'graphene_lattice.doc' 8.12.2016 GAWD Seite 50 3 GAWD's MATLAB Analysen Man erkennt die Honigwabenstruktur. mittelwert=sum(sum(rho))/(Nxx*Nyy), mittelwert = 0.7078 rho=rho-mittelwert; tic; rho_fft=fft2(rho); toc, rho_fft=fftshift(rho_fft); kx=linspace(-0.05,0.05,Nxx); ky=linspace(-0.05,0.05,Nyy); Elapsed time is 0.081016 seconds. pcolor(kx,ky,sqrt(abs(rho_fft).^2));shading('interp');axis([-0.004 0.004 -0.004 0.004]);colorbar(); 'graphene_lattice.doc' 8.12.2016 GAWD Seite 51 4 GAWD's MATLAB Analysen Im Wesentlichen sieht man Punkte im reziproken Gitter. rho_log=10*log10(sqrt(abs(rho_fft).^2)); for i1=1:Nxx for i2=1:Nyy if(rho_log(i1,i2) < 30) rho_log(i1,i2)= 30; end end end pcolor(kx,ky,rho_log);shading('interp');axis([-0.004 0.004 -0.004 0.004]);colorbar(); 'graphene_lattice.doc' 8.12.2016 GAWD Seite 52 5 GAWD's MATLAB Analysen 'graphene_lattice.doc' 8.12.2016 GAWD Seite 53 6