用cython编写的vasp dft代码输出的xml文件的快速解析器。
quantum_esperanto的Python项目详细描述
quantum esperanto是用cython编写的dft代码(vasp截至目前)输出的xml文件的快速解析器。 它利用了lxml(libxml2库的python包装器)及其cython接口。 XML文件以透明的方式解析为Python字典。它真的很快,比 pymatgen项目使用的分析器。
安装
由于量子世界语尚未在pypi上,因此可以从GitHub:
$ git clone https://github.com/tilde-lab/quantum_esperanto $ cd quantum_esperanto $ pip install .
软件包的python先决条件是numpy和lxml(应与pip一起自动安装)。 此外,系统中必须存在c编译器,如gcc。
可以在开发模式下安装包。这将安装Cython以及nose测试套件。 要执行此操作,请在克隆存储库并更改目录后发出以下命令:
$ cd quantum_esperanto $ pip install -e .[dev]
安装后,可以运行几个测试来检查安装是否成功完成。可能是 使用quantum_esperanto目录中的以下命令完成:
$ python setup.py test
如果一切正常,就可以开始使用这个包了。
用法
解析器可以非常简单的方式使用。首先,必须实例化解析器,然后parse_file 解析器的方法返回已分析值的字典:
fromquantum_esperanto.vaspimportVaspParserparser=VaspParser()d=parser.parse_file('vasprun.xml')
解析器的可能参数是:
- 恢复
- (布尔值,默认值:true)允许恢复损坏的xml的标志。它在未完成的情况下非常有用 但是,它在第一个XML错误上退出,返回的字典包含解析值到 仅第一个XML错误。当需要XML恢复时,将向stderr打印警告。
- 白名单
- (list,默认值:none)只需分析的父标记名列表。如果没有,则分析所有标记。
分析结果
解析的结果是一个遵循vasprun.xml结构的字典。字典的钥匙是 标记名(用于i、v、varray标记)或tag:tag name构造(用于具有名称的标记 属性),或者只是标记自己。值是转换为正确类型的标记内容(由^{tt14}指定$ 标记属性)或(对于varray和set)numpy数组。Fortran溢出(用***表示)转换为 浮点值为nan,整数值为maxint。
示例:
xml文件
<structurename="primitive_cell"><crystal><varrayname="basis"><v> 1.43300000 1.43300000 1.43300000 </v><v> 1.43300000 -1.43300000 -1.43300000 </v><v> -1.43300000 1.43300000 -1.43300000 </v></varray><iname="volume"> 11.77059895 </i><varrayname="rec_basis"><v> 0.34891835 0.34891835 0.00000000 </v><v> 0.34891835 -0.00000000 -0.34891835 </v><v> -0.00000000 0.34891835 -0.34891835 </v></varray></crystal><varrayname="positions"><v> 0.00000000 0.00000000 0.00000000 </v></varray></structure>
结果字典(用pprint打印):
{'structure:primitive_cell':{'crystal':{'basis':array([[1.433,1.433,1.433],[1.433,-1.433,-1.433],[-1.433,1.433,-1.433]]),'rec_basis':array([[0.34891835,0.34891835,0.],[0.34891835,-0.,-0.34891835],[-0.,0.34891835,-0.34891835]]),'volume':11.77059895},'positions':array([[0.,0.,0.]])}}
许可证
Quantum世界语获得麻省理工学院许可。