折腾Rsoft能带图的三两事

Rsoft能带绘制

最近在实验室被光子晶体能带仿真搞得头大,发现这玩意儿的能带图绘制简直是个玄学现场。官方教程看着挺美好,实操起来分分钟教你做人。特别是那个BandSOLVE模块,每次手动调参数都能让我怀疑自己是不是色盲------毕竟红橙黄绿青蓝紫的能带线混在一起实在辣眼睛。

后来发现用脚本才是王道,直接上硬货:

vbscript 复制代码
' 能带计算自动化脚本
Set app = CreateObject("RSoft.BandSOLVE")
app.OpenFile("D:\PhC\Triangular_Lattice.bse") 
app.CalculateBandStructure 
While app.IsBusy 
    WScript.Sleep 1000 
Wend
app.ExportBandData "C:\output\band_data.txt", 0

这段脚本里藏着三个大坑:路径必须用反斜杠、计算完成需要死等、导出版本号参数千万别手抖。我第一次跑的时候因为用了正斜杠,系统直接给我弹了个火星文报错,当场自闭半小时。

能带数据到手后才是重头戏。用Python画图时发现Rsoft输出的k点坐标居然是相对值,得手动换算成布里渊区路径。这时候不祭出numpy大招都不行:

python 复制代码
# 布里渊区路径修正器
k_points = np.loadtxt('band_data.txt')[:,0]
Gamma_to_K = k_points[:50] * 0.5  # 六边形晶格修正系数
M_to_Gamma = k_points[50:100] * np.sqrt(3)/3
# 拼接后记得在拐点处插入NaN避免连线

这堆修正系数可不是我瞎编的,是拿正六边形晶格的倒空间基矢硬算出来的。有次师弟偷懒没做坐标变换,结果能带图画出来像条歪歪扭扭的贪吃蛇,被导师当场抓获。

Rsoft能带绘制

最刺激的还是超晶格能带分析。当我把重复单元数从5改到10时,原本流畅的能带突然开始鬼畜:

matlab 复制代码
% 能带折叠观察术
folded_bands = zeros(100,20);
for n = 1:5
    folded_bands(:,n) = original_bands(:,1) + (n-1)*pi/a;
end
% 此处建议备好速效救心丸

这种时候就得靠紧束缚近似来救命。有次为了验证计算结果,我左手握着Rsoft的输出数据,右手拿着自己写的紧束缚模型代码,活像个占卜师在对照水晶球和塔罗牌。

折腾久了发现几个保命技巧:1. 每次跑脚本前备份bse文件;2. 定期清理临时文件防止内存泄漏;3. 遇到诡异能带先检查边界条件。上周刚有个哥们因为忘了设PML边界,算出来的能带自带隐身特效------所有模式都跑光了。

说到底,Rsoft这玩意就像个脾气古怪的老教授。你按他的规矩来,能带图画得比教科书还漂亮;要是自作聪明,分分钟给你整出个量子艺术展。现在我的项目组里流传着新梗:没在深夜被Rsoft虐哭过的人,不足以谈光子人生。

相关推荐
tritone11 天前
使用阿贝云免费云服务器学习Vagrant,是一次非常顺畅的体验。作为一名开发者
服务器·学习·vagrant
86Eric19 天前
Vagrant 镜像打包与新环境部署全流程实操(避坑指南)
运维·vagrant·virtualbox·vagrantfile
lipWOFb1 个月前
极限学习机ELM预测算法MATLAB程序,注释清楚,直接运行即可“ - MATLAB程序分享:...
vagrant
qq_463408421 个月前
vagrant虚拟环境的Ubuntu 22.04 LTS环境Docker如何快速部署openJiuwen平台
人工智能·ubuntu·vagrant·openjiuwen
linux修理工1 个月前
vagrant vmware
运维·ruby·vagrant
allanGold2 个月前
【Mac】【Vagrant】【类xshell的Termora】centos连接步骤
macos·centos·vagrant
linux修理工2 个月前
vagrant ubuntu 22.04 ansible 配置
ubuntu·ansible·vagrant
蓝象_3 个月前
使用Vagrant创建虚拟机以及安装Docker
docker·vagrant
乔公子搬砖6 个月前
小程序开发提效:npm支持、Vant Weapp组件库与API Promise化(八)
前端·javascript·微信小程序·js·promise·vagrant·事件绑定