Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Nearest neighbours in graphene

  1. Aug 10, 2015 #1
    Can help me for the write program for calculating nearest neighbours in graphene????
    Program the nearest neighbours for armchair graphene nanoribbon same as the follow:
    close all
    clear all
    clc
    L = 2;
    H = 4;

    lineatoms = 2 * H + 1;

    for i = 1:lineatoms

    if mod(i,2)==1
    x(1,i) = .71;
    else
    x(1,i) = 0;
    end

    y(1,i) = (i-1)*1.23;
    end

    index = 1;

    for i = lineatoms +1 : 2*lineatoms

    if mod(i,2)==0
    x(1,i) = 2.13;
    else
    x(1,i)= 2.84;
    end

    y(1,i) = y(1,i -index);

    index = index+2;


    end
    for i = 2:L
    for j = 1: 2*lineatoms
    x(i,j) = x(1,j) + 4.26*(i-1);
    y(i,j) = y(1,j);
    end
    end

    figure;
    for i = 1:L
    plot (x(i,:),y(i,:), 'bo','MarkerFaceColor','b');
    hold on;
    end
    axis equal;

    z = size(x)
    lastatm = z(2)
    atomnums = 1: lastatm;
    corneratms = [1 lastatm/2 lastatm/2+1 lastatm];
    nn(1,1) = 1+1;
    nn(1,2) = lastatm;
    nn(lastatm,1) = 1;
    nn(lastatm,2) = lastatm-1;


    nn(corneratms(2),1) = corneratms(2)-1;
    nn(corneratms(2),2) = corneratms(2)+1;
    nn(corneratms(3),1) = corneratms(3)-1;
    nn(corneratms(3),2) = corneratms(3)+1;

    X = x(1,:); Y = y(1,:);
    batm = lastatm-3;

    for i = 2:lastatm/2 -1

    nn(i,1) = i-1;
    nn(i,2) = i+1;
    nn(i,3) = i+batm;

    nnf(i,1) = i-1;
    nnf(i,2) = i+1;
    batm = batm -2;
    end

    batm = 3;
    for i = lastatm/2+2:lastatm-1

    nn(i,1) = i-batm;
    nn(i,2) = i-1;
    nn(i,3) = i+1;
    batm = batm + 2;
    end
    a = 2.46;
    e2p =0; t=-2.550; s=.2;
    kx = -1*pi/a:.01:1*pi/a;
    ky = -.05*pi/a:.01:.05*pi/a;

    a1 = 0.71; a2 = 1.23; a3 = 1.42;

    for m = 1: length(kx)
    for n = 1:length(ky)

    KX = kx(m);
    KY = ky(n);

    for i = 1:2*lineatoms
    for j = 1:3

    nene = nn(i,j); % three nearest neighbours

    if nene ~= 0
    num = (Y(nene)-Y(i))
    denom = (X(nene)-X(i));

    if (denom > 0 && num > 0)
    H(i,nene) = exp(1i*KX*a1 + 1i*KY*a2);
    S(i,nene) = s * H(i,nene);
    elseif (denom < 0 && num < 0)
    H(i,nene) = exp(-1i*KX*a1 - 1i*KY*a2);
    S(i,nene) = s * H(i,nene);
    elseif (denom < 0 && num > 0)
    H(i,nene) = exp(-1i*KX*a1 + 1i*KY*a2);
    S(i,nene) = s * H(i,nene);
    elseif (denom > 0 && num < 0)
    H(i,nene) = exp(1i*KX*a1 - 1i*KY*a2);
    S(i,nene) = s * H(i,nene);
    elseif (denom > 0 && num == 0 && denom ==1.42)
    H(i,nene) = exp(1i*KX*a3);
    S(i,nene) = s * H(i,nene);
    elseif (denom > 0 && num == 0 && denom == 2*1.42)
    H(i,nene) = exp(-1i*KX*a3);
    S(i,nene) = s * H(i,nene);
    elseif (denom < 0 && num == 0 && denom == -1.42)
    H(i,nene) = exp(-1i*KX*a3);
    S(i,nene) = s * H(i,nene);
    elseif (denom < 0 && num == 0 && denom == -2*1.42)
    H(i,nene) = exp(1i*KX*a3);
    S(i,nene) = s * H(i,nene);
    end

    end
    end
    H(i,i) = 0;
    S(i,i) = 1;
    end

    ee = eig(t*H,S); % Eigen value calculation
    % ee = eig( H );


    for k = 1:2*lineatoms
    E(m,n,k) = ee(k);
    end

    end
    end

    figure;
    for k = 1 :2*lineatoms
    plot(kx, E(:,:,k));
    hold on;
    end
     
  2. jcsd
  3. Aug 15, 2015 #2
    Thanks for the post! This is an automated courtesy bump. Sorry you aren't generating responses at the moment. Do you have any further information, come to any new conclusions or is it possible to reword the post?
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Nearest neighbours in graphene
Loading...