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

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

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

在终端运行以下命令:

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 Li16 16 16 16 16 16 1

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

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

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

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

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

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

  1. access查询两列信息合并输出_如何在Access中合并两个数据表中的数据

    当我们使用Access处理数据时,我们经常需要合并具有相同表结构的两个数据记录.那么如何实现这一功能呢?以下编辑愿与您分享. 工具/材料 Access 操作方法 打开Access软件,新建两个数据表. ...

  2. python一行输出多个数据_如何在Python中让两个print()函数的输出打印在一行内?

    1.两个连续的print()函数为什么在输出时内容会分行显示? 解:print()中有两个默认参数sep和end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用','代替空格,且默认末尾加 ...

  3. pl/sql中的赋值运算符_如何在SQL中使用AND / OR运算符?

    pl/sql中的赋值运算符 Basically, AND / OR operator is used to retrieving the record from the database. If we ...

  4. linux中python如何调用matlab的数据_?如何在Python中加入多个数据帧?

    全文共2235字,预计学习时长7分钟 来源:Pexels 初学Python编程的人,面临的是各种未知的挑战. 下面是一个几乎让所有更有抱负的数据科学家都感到意外的场景: 你正在处理一个从多个源收集数据 ...

  5. django 静态数据_如何在Django中使用静态数据?

    django 静态数据 Static Data means those data items that we cannot want to change, we want to use them as ...

  6. jsp在mysql中删除数据_如何在jsp页面中删除数据库中的数据

    如何在jsp页面中删除数据库中的数据 各位大虾! 我想在jsp页面上写一个按钮功能,从而动态的删除数据库中的一行数据. 不知道怎么实现 这是我写的一段代码 数据库是MySql UserBean p3= ...

  7. excel中去重计数_如何在Excel中计数

    excel中去重计数 There are lots of different ways to count things in Excel – maybe you need to count the n ...

  8. npm中node更新_如何在Node中管理NPM和功能时保持理智

    npm中node更新 by Ted Gross 泰德·格罗斯(Ted Gross) 如何在Node中管理NPM和功能时保持理智 (How to keep your sanity while manag ...

  9. 符号在excel中的引用_如何在Excel中添加项目符号

    &符号在excel中的引用 There's no built-in feature for bullets in Excel, like there is in a Word document ...

最新文章

  1. 蓝牙stack bluez学习(1)Stack Architecture
  2. 【巷子】---vue基于mint-ui三级联动---【vue】
  3. C++代码片段(四)萃取模板类的模板参数类型
  4. 利用Math.random做背景图像随机切换【前端开发技能必备系列】
  5. one order event handling - 初始化过程
  6. Ubuntu 13.04 软件安装
  7. 他无意间玩了这12个游戏,却掌握了Python基础,前后只用了一个月
  8. 樱桃小丸子-每集标题
  9. 搜索提示的实现(仿百度):附源码和在线demo
  10. android登陆的编写
  11. 高清精美壁纸:2013年6月桌面日历壁纸免费下载
  12. notepad怎么设置python为环境变量_notepad
  13. go 时间格式风格详解
  14. 要管理组策略 您必须以域用户账户登录此计算机,让AD域用户账户只能登陆管理员指定的客户端计算机...
  15. 【百度头条】精准微营销—本地离线92GBQQ群数据库,包含全部版本
  16. UML建模工具最近更新汇总(-2022年7月)共16款:Visual State、UML Diagrammer……
  17. 羽毛球高远球技术动作要领解码
  18. Android手机怎么找回微信好友,安卓手机微信好友删除怎么找回?这三种方法真香...
  19. 考计算机用win10行吗,老电脑适合装win10吗
  20. APP Invertor 蓝牙BLE 个人案例分享 快速开发自己的蓝牙APP

热门文章

  1. 3月9日起陆续开学!快来看看有没有你所在的省份
  2. 赫夫曼树(哈夫曼树)
  3. Mysql高级调优篇——第三章:Sql实战调优场景剖析(上)
  4. locust压测工具:http测试过程与定时停止
  5. 规格选项表管理之保存规格选项表数据
  6. 数据维度爆炸怎么办?详解 5 大常用的特征选择方法
  7. 基于OpenCV的实用图像处理操作
  8. 【OpenCV 4开发详解】轮廓外接多边形
  9. Virtual Box+Centos7.0+Kaldi安装
  10. 揭秘:深度网络背后的数学奥秘