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

综合讨论 235 0 1
艾妮吗
艾妮吗 来自江西 发表于: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;

 


本帖完毕
回帖
  • 等待你,消灭零评论
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
刚刚
Elsa完成签到,获得积分10
1秒前
科研通AI5应助kkkkkoi采纳,获得10
2秒前
Owen应助nnn采纳,获得10
2秒前
夏天无完成签到,获得积分10
3秒前
3秒前
好好学习完成签到,获得积分10
4秒前
充电宝应助鳗鱼曼文采纳,获得10
4秒前
Furmark_14完成签到,获得积分0
5秒前
5秒前
9秒前
从容芮应助caicai采纳,获得30
10秒前
10秒前
10秒前
搞怪网络发布了新的文献求助10
11秒前
刻苦半雪完成签到,获得积分10
11秒前
nyddyy完成签到,获得积分10
13秒前
农学小王完成签到 ,获得积分10
14秒前
共享精神应助宫野珏采纳,获得10
14秒前
15秒前
RHJ完成签到 ,获得积分10
16秒前
16秒前
科研通AI5应助wxnice采纳,获得10
18秒前
18秒前
19秒前
温玉完成签到,获得积分10
20秒前
彭于彦祖应助spzdss采纳,获得20
21秒前
21秒前
wu完成签到 ,获得积分10
21秒前
22秒前
caicai完成签到,获得积分10
22秒前
jinagqoand完成签到,获得积分10
22秒前
YifanWang应助Yang采纳,获得30
24秒前
浮世发布了新的文献求助10
24秒前
24秒前
温玉发布了新的文献求助10
24秒前
和谐灯泡完成签到,获得积分10
25秒前
25秒前
kkkkkoi发布了新的文献求助10
25秒前
科研通AI2S应助欣慰的傲菡采纳,获得10
25秒前
热门帖子
关注 科研通微信公众号,转发送积分 3838587
求助须知:如何正确求助?哪些是违规求助? 3380942
关于积分的说明 10516287
捐赠科研通 3100475
什么是DOI,文献DOI怎么找? 1707527
邀请新用户注册赠送积分活动 821794
科研通“疑难数据库(出版商)”最低求助积分说明 772949
最新评论
大家都应助那么快真的是手动的吗?我以为是啥自动工具 3小时前
需要积分 16小时前
需要积分 16小时前
需要积分 20小时前
需要积分 20小时前
需要积分 21小时前
请举报,或提交工单即可 22小时前
需要积分 22小时前