补充脚本:构建超大转角结构

文摘   2024-11-06 17:34   福建  

上一节

上一节关于构建转角的代码中(下面可链接),介绍了如何使用ASE 库构建超大转角体系。

[新版]构建转角晶格代码(超简单)

原理就是分别构建两层supercell,然后把他们拼起来,但是最后是这种形式:

poscar
1.0
a11 a12 a13
a21 a22 a23
a31 a32 a33
A B A B
n1 n2 n1 n2
Direct
... ...
... ...

就是元素都是起来的。比如构建MoS2,那么6,7行可能是这种形式:

Mo S Mo S
100 200 100 200

有几位读者私信问我,如果想让元素合并,该如何处理?

其实很简单,用ASE构建一个1*1*1 的胞就可以了。

代码如下:

from ase.io import read, write
from ase.build.supercells import make_supercell
import numpy as np
fn = 'POSCAR_moire.vasp'
fout = 'moire_bilayer.vasp'
M = [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
pos = read(fn)
sup_cell_u = make_supercell(pos, M)
write(fout, sup_cell_u, vasp5=True, sort=True, direct=True)

这样生成的moire_bilayer.vasp就是合并好的

结果就会变这样:

Mo S  
200 400


计算凝聚态物理
介绍常见第一性原理软件的使用,数据处理,模型、数值、解析计算介绍凝聚态物理研究动态python,she’ll ,vasp
 最新文章