如何区分两列中不同数据_如何在VESTA中区分不同表面层的原子

本文介绍了如何在VESTA软件中通过脚本区分不同表面层的原子,以实现更好的结构立体感展示。通过将不同层的原子替换成其他元素,可以定制它们的显示效果。以Li在Cu(111)表面吸附为例,详细阐述了使用脚本进行原子替换和在VESTA中调整显示效果的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VESTA是一款常用到的结构作图软件,上手容易,效果不错。做表面反应的同学为了得到比较好的结构立体感,可以将表面的原子突出而将次表面的原子弱化显示。但是VESTA只能对同种元素的显示做修改,而基底的不同层原子类型通常是相同的,因此在作图时,无法区分不同层的原子,也就没法定制它们各自的显示效果了。 经过探索,我们找到了一种可以变通方法可以实现这种效果,也就是使用脚本resort.py,将不同层的原子替换成别的元素,这样在VESTA中自然可以达到区分的效果。resort.py需要在python环境下运行,同时依赖numpy第三方库。

我们以Li在铜表面的吸附为例讲解脚本的使用。下图是Li原子在Cu(111)表面的FCC位的吸附的默认显示效果。

e53ae6127a542bf4dc6ce85b27a12e7a.png

VESTA将所有的Cu原子以相同的效果显示,从俯视图根本无法确定Li的吸附位置。下面是我们使用resort.py对原子进行魔法替换后,再用VESTA调整的显示效果。将表层Cu原子以橘色显示,而次表面原子以淡黄色显示以区分。层间再添加键以增强立体效果。我们将讲解使用VESTA绘制该图的步骤。

2b76691e5bc05a2ce2a4c6cafc13bfb4.png

在终端运行以下命令:

tamas@tamas-PC:~/Desktop$ python resort.py 
Now reading vasp structures.
Found 7 layers, choose how many layers want to substitute with various elements------>6

程序会自动读取CONTCAR的结构并进行分层,提示我们体系一共有7层(包含Li原子),我们选择将底下的6层元素替换为周期表后周期放射性元素,生成POSCAR-bak结构文件。可以看到铜基底已经被替换成放射性元素,这些元素一般不会是我们用到的基底。如果分层的判断不是你想要的,可以手动修改resort.py脚本里的判读阈值thresthold=1.5 #A来调节分层效果。

 Xe La Pr Nd Pm Sm Li
16 16 16 16 16 16 1

我们使用VESTA打开POSCAR-bak,效果如下图:

7552ac3dc9f2883463343df046715b07.png

接下来我们调节不同层院子的显示效果,在左边栏点击Properties-Atoms标签栏-Radius and color。 对表面原子Sm,次表面原子Pm和第三层原子Nd分别做以下设置,原子半径依次降低。

66326e28deb8c2f7714c8df42995d733.png

然后对不同原子层添加键,菜单栏点击Edit-Bonds,在表面原子Sm-次表面原子Pm和次表面原子Pm-第三层原子Nd之间添加键。键的显示效果可以在Properties-Bonds标签栏-Bond style里面调节键的显示效果。

f13f88443e294bc80a3a33863ed32036.png

Boundary里面多显示几个周期,最后再手动删除(delect键)多余的原子(Select 框选)即可。

8a5eb2dc1861b54746fdd99e157a3786.png

脚本可以在我的Github仓库下载。(https://github.com/tamaswells/VASP_script/blob/master/resort.py)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值