清晨好,您是今天最早来到科研通的研友!由于当前在线用户较少,发布求助请尽量完整地填写文献信息,科研通机器人24小时在线,伴您科研之路漫漫前行!

下面将为你提供一个用 MATLAB 计算并绘制 zigzag 石墨烯 ribbons 能带和态密度的代码示例。

综合讨论 3351 0 2
艾妮吗
艾妮吗 来自江西 发表于:2025-05-21 21:34:54

下面将为你提供一个用 MATLAB 计算并绘制 zigzag 石墨烯 ribbons 能带和态密度的代码示例。

 

思路概述

  1. 构建哈密顿量:根据 zigzag 石墨烯 ribbons 的结构特点,考虑最近邻跳跃相互作用构建哈密顿量矩阵。
  2. 计算能带:在一定的动量空间内对哈密顿量进行对角化,得到本征值,即能带。
  3. 计算态密度:通过对能带进行展宽处理来计算态密度。
  4. 代码解释

    1. 参数设置:定义了条带长度 L、最近邻跳跃能 t、动量点数 Nk、能量范围 Emin 和 Emax、能量点数 NE 以及展宽因子 eta
    2. 动量空间和能带计算:在动量空间 kx 内循环,对每个动量点构建哈密顿量矩阵 H,并进行对角化得到本征值,即能带 bands
    3. 态密度计算:在能量网格 E_grid 上,通过对能带进行展宽处理(洛伦兹展宽)计算态密度 DOS
    4. 绘图:使用 subplot 函数将能带图和态密度图绘制在同一窗口中。

    你可以根据需要调整参数,如条带长度 L、动量点数 Nk 等,以获得不同的结果。

% 参数设置

L = 20; % 条带长度

t = 1; % 最近邻跳跃能

Nk = 200; % 动量点数

Emin = -3*t; % 能量最小值

Emax = 3*t; % 能量最大值

NE = 200; % 能量点数

eta = 0.01; % 展宽因子

 

% 动量空间

kx = linspace(-pi, pi, Nk);

bands = zeros(2*L, Nk);

 

% 构建哈密顿量并计算能带

for ik = 1:Nk

    H = zeros(2*L);

    for n = 1:L

        % 本元胞内 A - B 子晶格跳跃

        if n < L

            H(2*n - 1, 2*n + 1) = -t;

            H(2*n + 1, 2*n - 1) = -t;

            H(2*n, 2*n + 2) = -t;

            H(2*n + 2, 2*n) = -t;

        end

        % 相邻元胞间 A - B 子晶格跳跃

        H(2*n - 1, 2*n) = -t * exp(1i * kx(ik));

        H(2*n, 2*n - 1) = -t * exp(-1i * kx(ik));

    end

    % 对角化哈密顿量

    [~, E] = eig(H);

    E = diag(E);

    [E_sorted, ~] = sort(E);

    bands(:, ik) = E_sorted;

end

 

% 计算态密度

E_grid = linspace(Emin, Emax, NE);

DOS = zeros(NE, 1);

for iE = 1:NE

    for ik = 1:Nk

        for n = 1:2*L

            DOS(iE) = DOS(iE) + eta / ((E_grid(iE) - bands(n, ik))^2 + eta^2);

        end

    end

end

DOS = DOS / (Nk * pi);

 

% 绘制能带图

figure;

subplot(1, 2, 1);

for n = 1:2*L

    plot(kx, bands(n, :));

    hold on;

end

xlabel('$k_x$', 'Interpreter', 'latex');

ylabel('Energy', 'Interpreter', 'latex');

title('Band Structure of Zigzag Graphene Ribbons', 'Interpreter', 'latex');

grid on;

 

% 绘制态密度图

subplot(1, 2, 2);

plot(DOS, E_grid);

xlabel('Density of States', 'Interpreter', 'latex');

ylabel('Energy', 'Interpreter', 'latex');

title('Density of States of Zigzag Graphene Ribbons', 'Interpreter', 'latex');

grid on;

 


本帖完毕
回帖
  • 等待你,消灭零评论
更新
PDF的下载单位、IP信息已删除 (2025-6-4)

科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
AA完成签到 ,获得积分10
6秒前
雪山飞龙发布了新的文献求助10
8秒前
20秒前
ceeray23发布了新的文献求助20
25秒前
发呆员发布了新的文献求助10
35秒前
旅行者完成签到,获得积分10
46秒前
TXZ06发布了新的文献求助10
1分钟前
科研通AI6应助发呆员采纳,获得10
1分钟前
lululemontree应助大刘采纳,获得30
1分钟前
1分钟前
大喜喜发布了新的文献求助10
1分钟前
LinglongCai完成签到 ,获得积分10
1分钟前
灿烂而孤独的八戒完成签到 ,获得积分0
1分钟前
英俊的铭应助科研通管家采纳,获得10
1分钟前
雪山飞龙发布了新的文献求助10
1分钟前
2分钟前
激动的似狮完成签到,获得积分10
2分钟前
雪山飞龙发布了新的文献求助10
2分钟前
雪山飞龙完成签到,获得积分10
2分钟前
barry发布了新的文献求助10
2分钟前
ceeray23发布了新的文献求助20
2分钟前
tt完成签到,获得积分10
2分钟前
发呆员发布了新的文献求助10
2分钟前
科研通AI2S应助发呆员采纳,获得10
3分钟前
3分钟前
白日睡觉发布了新的文献求助10
3分钟前
3分钟前
玛卡巴卡爱吃饭完成签到 ,获得积分10
3分钟前
雪山飞龙发布了新的文献求助10
3分钟前
英俊的铭应助白日睡觉采纳,获得10
3分钟前
lovelife完成签到,获得积分10
3分钟前
大喜喜发布了新的文献求助10
4分钟前
量子星尘发布了新的文献求助10
4分钟前
王聪冲冲冲完成签到 ,获得积分10
4分钟前
科研通AI2S应助科研通管家采纳,获得10
5分钟前
5分钟前
6分钟前
Tales完成签到 ,获得积分10
7分钟前
7分钟前
7分钟前
热门帖子
关注 科研通微信公众号,转发送积分 5584778
求助须知:如何正确求助?哪些是违规求助? 4668667
关于积分的说明 14771555
捐赠科研通 4613925
什么是DOI,文献DOI怎么找? 2530220
邀请新用户注册赠送积分活动 1499084
关于科研通互助平台的介绍 1467531
最新评论
不需要 7小时前
多签到就好啦 7小时前
感谢平台 10小时前
感谢平台 11小时前
签到在哪啊? 11小时前
签到改了吗 11小时前
话说这不时的公布捐款,会不会被举报没有偷税漏税啊?如果站主没有缴税的话,也没申请公益机构之类 12小时前
好用好用 12小时前