【ASE】笔记总结

news2024/7/6 17:33:39

这里写自定义目录标题

    • ASE 介绍
    • ASE 的安装
    • 文件格式的转化
        • 命令行操作
        • 图形界面操作
        • Python代码操作[2]
        • 支持的文件转化格式
    • ASE(三):图形界面查看/建立/修改结构
        • 图形界面召唤
        • 查看结构
    • python代码查看/建立结构
        • 读写、查看结构
        • 建立结构
        • 分子
    • 周期性体系

https://nb.bohrium.dp.tech/detail/7217528884?utm_source=csdn

https://zhuanlan.zhihu.com/p/446086740?utm_id=0

https://blog.csdn.net/qq_40481843/article/details/128170814

pip install --upgrade ase
  • read(),write()函数,作用分别是:将结构信息读取为atom object,将atom object写入文件;
  • atom_object.get_positions()函数,可以获取atom object中所有的原子坐标信息,数据形式为列表;
  • atom.index,atom.symbol,可以获取atom object中某种元素所对应所有原子索引

del atom_object[atom_index] ,删除atom object中某个原子

ASE 介绍

ASE (Atomic Simulation Environment) 是计算化学/计算材料领域的一个很好用的工具,能够用于建模、文件格式转化、计算结果分析与可视化,它内置了结构优化、过渡态计算、分子动力学模拟等一些常用的计算方法。同时,ASE有很多常用计算软件的接口 (calculators),用于生成输入文件,批量处理计算与运行。

它是一个Python库,同时也有图形界面 (GUI)和命令行工具,非常容易上手。官网的Tutorials有很多计算的示例代码,对计算小白超级友好。

GUI:https://wiki.fysik.dtu.dk/ase/ase/gui/gui.html#index-0

命令行工具:https://wiki.fysik.dtu.dk/ase/cmdline.html

示例:https://wiki.fysik.dtu.dk/ase/tutorials/tutorials.html

在这里插入图片描述

从结构的初始建模,输入文件中参数设置,计算任务提交,到结果可视化与分析的一个完整计算流程,都可以通过ASE完成,更简单来说,通过一个Python文件就可以完成。

虽然针对不同的计算软件已有许多计算脚本,比如VASPKIT[6],Gaussian的一些脚本[7]等,但是这些脚本往往只适用于某一个特定的软件。如果在研究中需要使用多个软件进行计算,需要批量生成或处理文件,ASE是一个不错的选择。

ASE 的安装

https://wiki.fysik.dtu.dk/ase/install.html

无论是Windows, Linux还是Mac OS X系统的安装,官网都有详细的介绍。安装不难,一步步跟着教程做即可。

装完ASE以后记得设置环境变量!
(这样可以使用命令行方式快速使用 ase)

文件格式的转化

使用Material Studio建模,用VASP做计算时通常需要将构建的xsd或cif文件转化为POSCAR文件进行输入。

有许多脚本/软件可以做到这一点,比如:

  • 用VESTA打开cif文件,另存为.vasp文件,修改名称为POSCAR。(VESTA的好处是能够选择使用direct坐标还是cartesian坐标)
  • 使用VASPKIT的105或106的cif2pos.py或xsd2pos.py。
  • Material Studio脚本xsd2pos.pl。
  • OpenBabel。

那如果后续想用其他软件处理优化好的结构呢?那又要去寻找对应的软件。这个时候,ASE的优势就凸显出来了。

在命令行输入命令 ase convert input output ,其中input 为建好的结构文件,output是转化后的文件。

命令行操作

只需要在终端输入下面这行即可将Cu.cif文件转化为POSCAR文件。

ase convert Cu.cif POSCAR

之前大师兄网站讲ASE[1]的时候使用的是这个命令,

ase gui Cu.cif -o POSCAR 

试了一下也可以正常转化,不过会有一个UserWarning: You should be using “ase convert …” instead! 的警告。

看来ASE官方还是推荐使用ase convert,直译过来就是ase 转化,需要敲的命令更少,也更好记。

图形界面操作

很多时候建完模希望先打开看一眼结构对不对,再转换成输入文件。可以先用

ase gui Cu.cif

可视化,再通过菜单栏的 File-save 另存为POSCAR。不过这种操作和使用VESTA转化也没什么区别了……

图形界面的好处是可以固定原子!

在图形界面选择原子并固定,另存为POSCAR的时候会把固定的信息也存储下来,即POSCAR中的T T T/ F F F,比使用其他脚本根据z坐标设置固定范围方便得多,也不会固定错原子(血泪教训)。

Python代码操作[2]

本质上就是文件的读和写。

from ase.io import read, write

Cu = read('Cu.cif') # 有多帧结构时可以指定index

# 一般来说中间会对Cu结构进行一些操作……

write('POSCAR', Cu) # write可以有很多参数,不过这样就可以转化为想要的POSCAR文件了
支持的文件转化格式

https://wiki.fysik.dtu.dk/ase/ase/io/io.html#module-ase.io

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

当然,这种文件转化不止适用于POSCAR和cif文件,ASE支持很多很多文件格式,常用的计算软件的输入输出文件都可以进行处理。

https://zhuanlan.zhihu.com/p/585635093?utm_id=0

ASE(三):图形界面查看/建立/修改结构

图形界面召唤

在命令行输入:

ase gui

即可。图形界面长这样

看上去比较普通,但还挺好用的。

查看结构
ase gui 结构名

python代码查看/建立结构

https://wiki.fysik.dtu.dk/ase/ase/build/build.html#module-ase.build

上一篇介绍了怎么用图形界面查看/建立/修改结构,但ASE更常见的应用是基于python代码来研究结构。建议将这篇和上一篇对比着看。

读写、查看结构
from ase.visualize import view #从ASE查看结构的模块visualize导入view
from ase.io import read #导入ASE读取文件的函数read

structure = read('***') #***是结构文件名,支持绝大多数格式
view(structure) #会弹出和命令行使用ase gui ***一样的图形界面

#也可以将结构写入文件
from ase.io import write
write('***',structure)

view()函数也可以有其他的关键词,比如view(atoms, viewer=‘VMD’, data=…) 。

  • viewer可以有: ‘ase.gui’, ‘gopenmol’, ‘vmd’, ‘rasmol’, ‘paraview’, ‘ngl’, ‘x3d’
  • data可以显示3D数据,比如电荷密度。
建立结构

无论是分子还是周期性体系,都可以通过ASE构建。

分子

ASE有一个叫G2的数据库,里面有常见的分子。

from ase.collections import g2
print(g2.names)  

'''
#数据库里的分子
    ['PH3', 'P2', 'CH3CHO', 'H2COH', 'CS', 'OCHCHO', 'C3H9C', 'CH3COF',
    'CH3CH2OCH3', 'HCOOH', 'HCCl3', 'HOCl', 'H2', 'SH2', 'C2H2',
    'C4H4NH', 'CH3SCH3', 'SiH2_s3B1d', 'CH3SH', 'CH3CO', 'CO', 'ClF3',
    'SiH4', 'C2H6CHOH', 'CH2NHCH2', 'isobutene', 'HCO', 'bicyclobutane',
    'LiF', 'Si', 'C2H6', 'CN', 'ClNO', 'S', 'SiF4', 'H3CNH2',
    'methylenecyclopropane', 'CH3CH2OH', 'F', 'NaCl', 'CH3Cl',
    'CH3SiH3', 'AlF3', 'C2H3', 'ClF', 'PF3', 'PH2', 'CH3CN',
    'cyclobutene', 'CH3ONO', 'SiH3', 'C3H6_D3h', 'CO2', 'NO',
    'trans-butane', 'H2CCHCl', 'LiH', 'NH2', 'CH', 'CH2OCH2',
    'C6H6', 'CH3CONH2', 'cyclobutane', 'H2CCHCN', 'butadiene', 'C',
    'H2CO', 'CH3COOH', 'HCF3', 'CH3S', 'CS2', 'SiH2_s1A1d', 'C4H4S',
    'N2H4', 'OH', 'CH3OCH3', 'C5H5N', 'H2O', 'HCl', 'CH2_s1A1d',
    'CH3CH2SH', 'CH3NO2', 'Cl', 'Be', 'BCl3', 'C4H4O', 'Al', 'CH3O',
    'CH3OH', 'C3H7Cl', 'isobutane', 'Na', 'CCl4', 'CH3CH2O', 'H2CCHF',
    'C3H7', 'CH3', 'O3', 'P', 'C2H4', 'NCCN', 'S2', 'AlCl3', 'SiCl4',
    'SiO', 'C3H4_D2d', 'H', 'COF2', '2-butyne', 'C2H5', 'BF3', 'N2O',
    'F2O', 'SO2', 'H2CCl2', 'CF3CN', 'HCN', 'C2H6NH', 'OCS', 'B', 'ClO',
    'C3H8', 'HF', 'O2', 'SO', 'NH', 'C2F4', 'NF3', 'CH2_s3B1d',
    'CH3CH2Cl', 'CH3COCl', 'NH3', 'C3H9N', 'CF4', 'C3H6_Cs', 'Si2H6',
    'HCOOCH3', 'O', 'CCH', 'N', 'Si2', 'C2H6SO', 'C5H8', 'H2CF2', 'Li2',
    'CH2SCH2', 'C2Cl4', 'C3H4_C3v', 'CH3COCH3', 'F2', 'CH4', 'SH',
    'H2CCO', 'CH3CH2NH2', 'Li', 'N2', 'Cl2', 'H2O2', 'Na2', 'BeH',
    'C3H4_C2v', 'NO2']

'''

from ase.build.molecule import extra
print(extra.keys())  
    #输出:dict_keys(['Be2', 'C7NH5', 'BDA', 'biphenyl', 'C60'])

使用molecule()函数构建分子:

from ase.build import molecule
atoms = molecule('H2O')

周期性体系

  1. 纳米管

ase.build的nanotube()构建,默认是碳纳米管,n和m是纳米管的(n,m)标记。

ase.build.nanotube(n,m,length=1,bond=1.42,symbol='C',verbose=False,vacuum=None)
  1. 石墨烯纳米带
ase.build.graphene_nanoribbon(n,m,type='zigzag',saturated=False,C_H=1.09,C_C=1.42,vacuum=None,magnetic=False,initial_mag=1.12,sheet=False,main_element='C',saturate_element='H')
  1. 体相

简单的bulk金属可以使用ase.build模块的bulk()函数构建。

ase.build.bulk(name:str,crystalstructure:Optional[str]=None,a:Optional[float]=None,b:Optional[float]=None,c:Optional[float]=None,*,alpha:Optional[float]=None,covera:Optional[float]=None,u:Optional[float]=None,orthorhombic:bool=False,cubic:bool=False,basis=None)

from ase.build import bulk
a1 = bulk('Cu', 'fcc', a=3.6) # 得到Cu原胞,1个原子
a1.cell #查看晶格常数
'''
晶胞:
array([[ 0. ,  1.8,  1.8],
       [ 1.8,  0. ,  1.8],
       [ 1.8,  1.8,  0. ]])
'''


a2 = bulk('Cu', 'fcc', a=3.6, orthorhombic=True) #ASE默认,2个Cu原子
'''
array([[ 0. ,  1.8,  1.8],
       [ 1.8,  0. ,  1.8],
       [ 1.8,  1.8,  0. ]])
'''


a3 = bulk('Cu', 'fcc', a=3.6, cubic=True) #惯用晶胞conventional cell,4个原子
'''
array([[ 3.6,  0. ,  0. ],
       [ 0. ,  3.6,  0. ],
       [ 0. ,  0. ,  3.6]])
'''
  1. 表面

ase.build模块下有一些常见晶面、晶体结构的函数,可以直接调用:

  • fcc: fcc100(), fcc110(), fcc111(), fcc211(), fcc111_root()
  • bcc: bcc100(), bcc110(), bcc111() * - bcc111_root()
  • hcp: hcp0001(), hcp10m10(), hcp0001_root()
  • diamond: diamond100(), diamond111()

也可以使用surface()函数构建不那么常见的界面

ase.build.surface(lattice,indices,layers,vacuum=None,tol=1e-10,periodic=False)

比如:

s1 = surface('Au', (2, 1, 1), 9) #Au211面,9层
s1.center(vacuum=10, axis=2) #在c方向加10Å真空层

ASE的局限性在于只能构建简单、常见的结构,在建模效率上可能不如Material Studio点几下就行那么方便,研究复杂结构更多地还是从Materials Project等数据库下载,或者根据文献里的结构进行修改。那这个究竟有什么用呢?个人觉得Python代码的好处是它的灵活性,在需要批量生成结构、与其他代码联用等场景则非常有用;另一个优点则是稳定性,对一个初学者来说,在可视化建模软件点错了几个设置可能会影响建出的模型,但使用同一份Python代码建出来的则是一样的结构。

(使用ASE修改结构后续再慢慢填坑吧。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1821927.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试分类介绍

大家好,软件测试是确保软件质量的关键环节之一,通过对软件系统的各个方面进行测试,可以发现和解决潜在的问题,提高软件的稳定性、可靠性和用户满意度。在软件测试领域,根据测试的目的、方法和对象的不同,可…

Linux常⽤服务器构建-ssh和scp

目录 1.ssh <1>ssh介绍 <2>安装ssh A.安装ssh服务器 B.远程登陆 <3>使⽤ssh连接服务器 2.scp 本地⽂件复制到远程&#xff1a; 本地⽬录复制到远程&#xff1a; 远程⽂件复制到本地&#xff1a; 远程⽬录复制到本地&#xff1a; 1.ssh <1>…

VMware ESXi 8.0U2c macOS Unlocker OEM BIOS ConnectX-3 网卡定制版 (集成驱动版)

VMware ESXi 8.0U2c macOS Unlocker & OEM BIOS ConnectX-3 网卡定制版 (集成驱动版) 发布 ESXi 8.0U2 集成驱动版&#xff0c;在个人电脑上运行企业级工作负载 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-8-u2-sysin/&#xff0c;查看最新版。原创作…

ubuntu gitlab 部署 私有git库

我的版本 ubuntu-22.04.2-live-server-amd64 GitLab 社区版 v17.0.1 注意剩余硬盘需要3GB以上 一、更新软件 sudo apt update二、gitLab 需要一些依赖项才能正常运行 sudo apt install -y curl openssh-server ca-certificates postfix1、出现邮件 选择 “Internet Site”并…

农业领域科技查新点提炼方法附案例!

农业学科是人类通过改造和利用生物有机体(植物、动物、微生物等)及各种自然资源(光、热、水、土壤等)生产出人类需求的农产品的过程&#xff0c;人类在这一过程中所积累的科学原理、技术、工艺和技能&#xff0c;统称为农业科学技术&#xff0c;该领域具有研究范围广、综合性强…

el-date-picker 有效时间精确到时分秒 且给有效时间添加标记

el-date-picker实现有效日期做标记且时分秒限制选择范围 代码如下&#xff1a; // html部分 <el-date-pickerv-model"dateTime"type"datetime":picker-options"pickerOptions" > </el-date-picker>// js部分 /*** 回放有效日期开始时…

工业网关在智能制造中的具体应用和效果-天拓四方

随着工业4.0时代的到来&#xff0c;智能制造正逐渐成为工业领域的发展趋势。作为连接物理世界与数字世界的桥梁&#xff0c;工业网关在智能制造中发挥着至关重要的作用。本案例将详细阐述工业网关在某一制造企业中的具体应用&#xff0c;展示其如何助力企业实现数字化转型&…

yolo案例项目学习记录

box-ocr: 监控摄像头视频流实时计数传送带的货物&#xff0c;并提取货物上面文字或二维码 1.本地环境&#xff1a; 1.1torch、torchvison、torchaudio版本对应关系 PyTorch中torch、torchvision、torchaudio、torchtext版本对应关系_torch2.0.1对应的torchvision-CSDN博客 1…

代码签名证书如何选择

代码签名证书分为OV代码签名证书和EV代码签名证书。 OV代码签名证书在申请时只需要验证申请主体的真实性&#xff0c;部署安装后可以保护代码的完整性&#xff0c;防止代码被篡改&#xff0c;携带不良信息。 EV代码签名证书是OV代码签名证书的升级版&#xff0c;对代码的保护…

文本转语音软件有哪些?高效阅读的方法都在这

在快节奏的生活中&#xff0c;我们总是在寻找节省时间的高效方法。 长时间盯着屏幕阅读&#xff0c;不仅效率低下&#xff0c;还可能让我们的眼睛感到疲惫。这时候&#xff0c;文字转语音技术就像一场及时雨&#xff0c;它让我们能够在休息眼睛的同时&#xff0c;通过耳朵来享…

综合性SCI期刊,中科院1区TOP,IF=16.6,收稿范围非常广泛

一、期刊名称 Nature Communications 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;综合性期刊 影响因子&#xff1a;16.6 中科院分区&#xff1a;1区TOP 三、期刊征稿范围 Nature Communications是一本开放获取的多学科期刊&#xff0c;致力于发表生物…

vue/react/js 常用的原生获取当前页面的url网址的相关方法

目录 第一章 场景 第二章 总结 第一章 场景 最近实现需求时遇到这么一种情况&#xff1a; 本地url —— 线上url —— 需求&#xff1a;需要将token清除掉 注意事项&#xff1a;token不是#/后面的参数&#xff0c;说明并不是我们前端返回的&#xff0c;vue路由的方法使用不…

小白都能看懂的 “栈”

什么是栈&#xff1f;首先引用维基百科的解释&#xff1a; 栈&#xff08;stack&#xff09;是计算机科学中的一种抽象资料类型&#xff0c;只允许在有序的线性资料集合的一端&#xff08;称为堆栈顶端&#xff0c;top&#xff09;进行加入数据&#xff08;push&#xff09;和移…

PMP考试新考纲以及题型有哪些变化?

一、PMP简介 PMP&#xff08;Project Management Professional&#xff09;是项目管理协会&#xff08;PMI&#xff09;在全球范围内推出的项目经理资格认证。获得PMP证书不仅可以提升项目经理的管理水平&#xff0c;还能直接展现个人竞争力&#xff0c;是项目管理专业人士身份…

4S店试驾线上预约小程序源码系统 前后端分离 带完整的源代码包+安装部署教程

系统概述 这款 4S 店试驾线上预约小程序源码系统旨在为 4S 店和消费者提供便捷、高效的试驾预约服务。通过小程序&#xff0c;消费者可以轻松预约试驾&#xff0c;4S 店可以方便地管理预约信息&#xff0c;提高工作效率和服务质量。 代码示例 系统特色功能一览 1.便捷的预约流…

【乐吾乐2D可视化组态编辑器】下载离线部署包

下载离线部署包 乐吾乐2D可视化/大屏可视化支持导出为可直接部署运行的html文件。 乐吾乐2D可视化组态编辑器地址&#xff1a;https://2d.le5le.com/ 1. 从“文件”菜单选择“下载离线部署包” 【提示】离线部署包是需要付费下载&#xff0c;首次体验&#xff0c;可以选择&…

面向对象编程重载

系列文章目录 文章目录 系列文章目录前言一、重载&#xff08;overload&#xff09; 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了…

今年的就业环境不容乐观,你想好怎么应对了吗

今年的就业环境不容乐观&#xff0c;你想好怎么应对了吗 毕业生进入职场的历程往往充满挑战和未知&#xff0c;尤其是在当前经济环境下&#xff0c;失业问题愈发凸显。本文通过分享几位年轻人的真实经历&#xff0c;剖析大学生及职场人士面临的困境&#xff0c;并提供应对策略…

体验亚马逊AIGC——Amazon Bedrock

前言 随着人工智能技术的不断发展&#xff0c;我们已经进入了一个全新的时代&#xff0c;即AI驱动的时代。在这个时代&#xff0c;人工智能已经逐渐成为我们生活中不可或缺的一部分&#xff0c;它可以帮助我们更好地处理各种复杂的问题&#xff0c;提高我们的工作效率&#xff…

Intellij IDEA开发Android项目打包生成APK

在 IntelliJ IDEA 左上方中选择 “Build” -> “Generate Signed Bundle / APK…”选择“APK”——“Next”——“Create New…”&#xff08;Password随便填123456即可&#xff09; “Next”——选择release&#xff08;APK生成后默认存放在本项目的release文件夹里&#x…