拓扑光子晶体--基于Comsol仿真的Chern number计算方法

今天看到有些同学在求Chern number的计算方法,正好前段时间我有花时间做过相关的工作,本着科研共享的精神,来分享一下我的方法。

由于我不是专业做这个方向的研究人员,所以我就不能做更多理论方面的解释了,直接给大家一步步说明我的算法就好了。0.0

准备工具:COMSOL +MATLAB

参考文献:PRL 100,013905 (2008) + J.phys.Soc.Jpn. vol,74 no,6 (2005)

步骤

  1. 利用COMSOL求解光子晶体结构的本征频率:把第一布里渊区等分成n1*n2个点,点命名为N(ki,kj)(i=1:n1,j=1:n2)好了,于是可以得到n1*n2个本征频率解,保存他们的电场或磁场分布(按介质的不同保存,比如说是Si和Air就分别保存两个区域的场分布)。特别注意的是由于求解器的问题有可能有些结构在算本征频率的时候,同一条能带的解的位置会不一样。例如我想求4条能带的Chern number,但是N14和N20(只是举例)的解并不是正好跟能带位置对应的地方(即解的位置不等于能带位置的话会影响后面的计算)。所以建议每次求解完之后简单的在COMSOL中把这些解放在图中画一下,仔细比对一下(不用把n1*n2个点都画出来,只用画简约布里渊区边界的那些点就足够精确了(从效率上来说,当然时间够有兴趣可以导出来在其他工具中画出三维的(k1,k2,freq)图来确认))。

  2. 得到了n1*n2个本征频率下的电场/磁场强度分布后导出保存为EH1.txt+EH2.txt(两种介质)文件:(注意每个介质的实部虚部的导出,我是比较麻烦每次分实部虚部导出两个文件(总共4个文件)再相加的)这里多说一句,对于那些对COMSOL不是很熟悉的人,首先COMSOL导出的电场数据我假设是4条能带11*11=121个点即会有484个不同的场分布,每个场分布中假设有10000个点(这个跟网格划分有关),则我导出的数据为10000*484的矩阵,加上COMSOL的位置(x,y)信息则导出数据为10000*486的矩阵。

  3. 在得到EH1.txt+EH2.txt文件之后下一步就是对这两个10000*486的矩阵进行插值处理了:首先在进行插值之前要把各个能带之间的数据分割开来,在这个案例中能带数为4,则对3:end列的数据每隔4个为一个能带的场分布(即3,7,11,...为第一能带,4,8,12,...为第二能带)命名为Eh1,Eh2,Eh3,Eh4(Air)+Eh5,Eh6,Eh7,Eh8(Si)。(Eh为10000*121的矩阵对应了121个不同的点N(ki,kj))。

以求第一个能带的chern number为例。首先对Eh1,Eh5进行插值,griddata命令即可。插值以后的场分布分别称为eH1和eH5。

计算Chern number

理论上的东西大家可以参考上面推荐的两个文献资料,计算过程简单来说是,
Int1\operatorname{conj}\left(e H 1_{(i, j)}\right) * e H 1_{(i+1, j)}+\operatorname{conj}\left(e H 5_{(i, j)}\right) * e H 5_{(i+1, j)}做面积分,
同理,
Int2\operatorname{conj}\left(e H 1_{(i+1, j)}\right) * e H 1_{(i+1, j+1)}+\operatorname{conj}\left(e H 5_{(i+1, j)}\right) * e H 5_{(i+1, j+1)}做面积分,
Int3\operatorname{conj}\left(e H 1_{(i, j+1)}\right) * e H 1_{(i+1, j+1)}+\operatorname{conj}\left(e H 5_{(i, j+1)}\right) * e H 5_{(i+1, j+1)}做面积分,
Int4\operatorname{conj}\left(e H 1_{(i, j)}\right) * e H 1_{(i, j+1)}+\operatorname{conj}\left(e H 5_{(i, j)}\right) * e H 5_{(i, j+1)}做面积分,
然后
C_{(i, j)}=\ln \left(\frac{I n t 1}{a b s(I n t 1)} * \frac{I n t 2}{a b s(I n t 2)} / \frac{I n t 3}{a b s(I n t 3)} / \frac{I n t 4}{a b s(I n t 4)}\right)
最后
Chern number =\sum_{1}^{10} \sum_{1}^{10} C_{(a, b)} / 2 / \pi / 1 i

很多不够准确的地方大家见谅,如果有什么错误后续会改,希望大家科研顺利。合作共享是科研的出路!

有问题的同学可以去我某乎上的文章找一些答案,网址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355

推荐阅读更多精彩内容