Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
South China University of Technology PowerPoint Presentation
Download Presentation
South China University of Technology

South China University of Technology

182 Views Download Presentation
Download Presentation

South China University of Technology

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. South China University of Technology Growth of Cluster Xiao-BaoYang Department of Physics www.compphys.cn

  2. nearest=[0 1 0 -1 1 0 -1 0 1 -1 -1 1 ]; • Square and triangular lattice clear x=[0 0]; %initial edge=[0 1 0 -1 1 0 -1 0]; nearest=edge; for ii=1:3%generation x=[x edge]; tmp=edge; for jj=1:size(tmp,1) edge=[edge repmat(tmp(jj,:),size(nearest,1),1)+nearest]; end edge=setdiff(edge,x,'rows'); end for ii=1:length(x) t=[1 0]*x(ii,1)+[0.5 0.866]*x(ii,2); plot(t(1),t(2),'*') hold on end for ii=1:length(edge) t=[1 0]*edge(ii,1)+[0.5 0.866]*edge(ii,2); plot(t(1),t(2),'o') hold on end axis equal

  3. Simulation of cluster 1) Adding atoms 2) Atom diffusion allowed Adding and deleting to conserve the number of atoms 3) Energy estimation 4) Accept or reject the configuration

  4. Main Program • Definition x/edge/nearest • Add atoms to form cluster of N atoms and count the bonds • Structure displaying • Loop transformation of x, maintaining spanning, updating edge, counting bonds • Structure displaying

  5. Add atoms to form cluster of N atoms and count the bonds NNnum=size(nearest,1); %number of nearest bonds for ii=1:24 growsite=ceil(length(edge)*rand); %choose one site randomly to add an atom tmp=repmat(edge(growsite,:),NNnum,1)+nearest; [q,qq]=intersect(x(:,1:end-1),tmp,'rows'); %counting the bonds of each atom x(qq,end)=x(qq,end)+1; x=[x edge(growsite,:) length(qq)]; tmp=[tmp edge]; edge=setdiff(tmp,x(:,1:end-1),'rows'); %update edge for next growth end

  6. Loop transformation of x, maintaining spanning, updating edge, counting bonds for ii=1:3000 xbak=x; edgebak=edge; [x,edge]=transformsquare(x,edge,nearest,NNnum); if sum(x(:,end))<sum(xbak(:,end)) x=xbak; edge=edgebak; end end

  7. [x,edge]=transformsquare(x,edge,nearest,NNnum); • Select atoms on the surface • Check whether the remaining clusters is spanning—from one NN of deleting atom, the percolation should be confirmed • Update bonds of each atom • Update edge • Add one atom from edge

  8. spanning=0; %check the spanning cluster while spanning==0 nx=x(x(:,end)<NNnum,1:end-1); %find the surface atom with bonds less than NNnum dsite=nx(ceil(size(nx,1)*rand),:); NNdsite=repmat(dsite,NNnum,1)+nearest; %NN of dsite nx=setdiff(x(:,1:end-1),dsite,'rows'); % delete a surface atom tmp=intersect(nx,NNdsite,'rows'); tp1=tmp(1,:); tp2=[tp1 repmat(tp1,NNnum,1)+nearest]; tp2=intersect(tp2,nx,'rows'); while size(tp1,1)<size(tp2,1) %find largest spanning ones tp1=tp2; for jj=1:size(tp1,1) tp2=[tp2 repmat(tp1(jj,:),NNnum,1)+nearest]; end tp2=intersect(tp2,nx,'rows'); end if size(tp2,1)==size(nx,1) spanning=1; %confirm percolation end end Spanning check in deletion

  9. update edge and number total bonds %update edge and number total bonds [q,qq]=intersect(x(:,1:end-1),NNdsite,'rows'); x(qq,end)=x(qq,end)-1;% bonds update [q,qq]=intersect(x(:,1:end-1),dsite,'rows'); x(qq,:)=[]; %delete atoms %update edge edge=[edge dsite]; for ii=1:size(NNdsite) if length(intersect(repmat(NNdsite(ii,:),NNnum,1)+nearest,x(:,1:end-1),'rows'))==0 edge=setdiff(edge,NNdsite(ii,:),'rows'); %delete the edge only belongs to dsite end end

  10. add atoms from edge growsite=ceil(length(edge)*rand); %choose one site randomly to add an atom tmp=repmat(edge(growsite,:),NNnum,1)+nearest; [q,qq]=intersect(x(:,1:end-1),tmp,'rows'); %counting the bonds of each atom x(qq,end)=x(qq,end)+1; x=[x edge(growsite,:) length(qq)]; tmp=[tmp edge]; edge=setdiff(tmp,x(:,1:end-1),'rows'); %update edge for next growth

  11. Triangular lattice nearest =[ 0 1 0 0 -1 0 1 0 0 -1 0 0 -1 1 0 1 -1 0]; NNnum=size(nearest,1); %number of nearest bonds % structure shown for ii=1:length(x) t=[1 0]*x(ii,1)+[0.5 0.866]*x(ii,2); plot(t(1),t(2),'*') hold on end for ii=1:length(edge) t=[1 0]*edge(ii,1)+[0.5 0.866]*edge(ii,2); plot(t(1),t(2),'o') hold on end axis equal

  12. Graphene fragments and • hexagonal lattice growth ACS nano,6,8203(2012)

  13. The Role of Surface Oxygen in the Growth of Large Single-Crystal Graphene on Copper oxygen (O) on the Cu surface substantially decreased the graphene nucleation density by passivating Cu surface active sites. Control of surface O enabled repeatable growth of centimeter-scale single-crystal graphene domains. Oxygen also accelerated graphene domain growth and shifted the growth kinetics fromedge-attachment–limited to diffusion-limited. Oxygen-Rich Cu / Oxygen-Free Cu Science 342, 720 (2013)

  14. Science 342, 720 (2013)

  15. nearest =[ %1 NN %2 0 1 -1 -1 1 1 -1 0 1 0 0 -1 ]; NNnum=size(nearest,1)/2; %number of nearest bonds Hexagonal lattice growth x=[0 0 1 0]; %initial edge=[0 1 2 1 1 2 1 0 2 ]; tmp=repmat(edge(growsite,:),NNnum,1)+nearest; %square lattice tmp=[ones(NNnum,1)*edge(growsite,1:2)+nearest(edge(growsite,end):2:end,1:2) ones(NNnum,1)*mod(edge(growsite,end),2)+1]; for ii=1:length(x) if x(ii,3)==1 plot(x(ii,1)+0.5*x(ii,2),0.866*x(ii,2),'*') else plot(x(ii,1)+0.5*x(ii,2)-1,0.866*x(ii,2)-1/1.732,'r*') end hold on end

  16. Magic structures of BCC/FCC clusters Stacking Principle and Magic Sizes of Transition Metal Nanoclusters Based on Generalized Wulff Construction, PRL 111, 115501 (2013)

  17. Searching possible BCC/FCC clusters FCC basis=[ 0 0.5 0.5 0.5 0 0.5 0.5 0.5 0 ]; nearest =[ -1 0 0 -1 0 1 -1 1 0 0 -1 0 0 -1 1 0 0 -1 0 0 1 0 1 -1 0 1 0 1 -1 0 1 0 -1 1 0 0 ]; BCC basis=[ 0.5 0.5 -0.5 -0.5 0.5 0.5 0.5 -0.5 0.5 ]; nearest =[ -1 -1 -1 -1 0 0 0 -1 0 0 0 -1 0 0 1 0 1 0 1 0 0 1 1 1 ]; x(:,1:end-1)*basis

  18. Diamond fragments Science 299, 96 (2003);PRL, 103,047402(2009)

  19. nearest =[ %1 NN %2 0 1 -1 -1 1 1 -1 0 1 0 0 -1 ]; NNnum=size(nearest,1)/2; Diamond lattice growth x=[0 0 1 0]; edge=[0 1 2 1 1 2 1 0 2 ]; nearest =[ %1 NN %2 -1 0 0 %2 1 0 0 %1 0 -1 0 %2 0 1 0 0 0 -1 %2 0 0 1 0 0 0 %2 0 0 0 ]; NNnum=size(nearest,1)/2; tmp=[ones(NNnum,1)*edge(growsite,1:2)+nearest(edge(growsite,end):2:end,1:2) ones(NNnum,1)*mod(edge(growsite,end),2)+1]; x=[0 0 0 1 0]; edge=[ -1 0 0 2 0 -1 0 2 0 0 -1 2 0 0 0 2 ]; tmp=[ones(NNnum,1)*edge(growsite,1:3)+nearest(edge(growsite,end):2:end,:) ones(NNnum,1)*mod(edge(growsite,end),2)+1];

  20. xyztran.m function y=xyztran(x) % transfer Direct into Cart basis=[ 0.5 0.5 0 0 0.5 0.5 0.5 0 0.5 ]; for pp=1:length(x) ii=x(pp,1); jj=x(pp,2); kk=x(pp,3); if x(pp,4)==1 xcart(pp,1)=ii*basis(1,1)+jj*basis(2,1)+kk*basis(3,1); xcart(pp,2)=ii*basis(1,2)+jj*basis(2,2)+kk*basis(3,2); xcart(pp,3)=ii*basis(1,3)+jj*basis(2,3)+kk*basis(3,3); else xcart(pp,1)=0.25+ii*basis(1,1)+jj*basis(2,1)+kk*basis(3,1); xcart(pp,2)=0.25+ii*basis(1,2)+jj*basis(2,2)+kk*basis(3,2); xcart(pp,3)=0.25+ii*basis(1,3)+jj*basis(2,3)+kk*basis(3,3); end end y=xcart*3.5538;

  21. Magic structures of diamond clusters PRB 83, 205314 (2011)

  22. the simplex method m >=1 and n <=2m + 2. The key task is to determine the lower limit of n for a certain m, for which it is difficult to find out the expected inequalities. (i) start from an arbitrary configuration of XmHn (n <=2m + 2), allowing X atoms on the surface to walk randomly in the crystal lattice and saturate the configuration with H atoms where necessary, and (ii) accept the new configuration when the H-atom number is nonincreasing, otherwise the new geometry will be accepted with the probability of 1/|dn|, where dnis the increment of the H-atom number.

  23. First principle calculations

  24. Ising model The simplest Ising model assumes an interaction only between nearest neighbors: Ernst Ising For a certain J, the lowest energy? the corresponding structure?

  25. Optimization (Page 475) Simulated Annealing Minimization s ← s0; e ← E(s) // Initial state, energy. sbest ← s; ebest ← e // Initial "best" solution k ← 0 // Energy evaluation count. while k < kmax and e > emax // While time left & not good enough: T ← temperature(k/kmax) // Temperature calculation. snew ← neighbour(s) // Pick some neighbour. enew ← E(snew) // Compute its energy. if P(e, enew, T) > random() then // Should we move to it? s ← snew; e ← enew // Yes, change state. if e < ebest then // Is this a new best? sbest ← snew; ebest ← enew // Save 'new neighbour' to 'best found'. k ← k + 1 // One more evaluation done return sbest // Return the best solution found.

  26. Homework Final stable states of square lattices under Ising model with Simulated Annealing. Sending to 17273799@qq.com when ready For lecture notes, refer to http://www.compphys.cn/~xbyang/