问题标签 [pymatgen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
514 浏览

pymatgen - 从 pymatgen 结构对象中提取坐标和原子类型

提取原子坐标列表的语法是什么,[[x1, y1, z1], [x2, y2, z2], ...] 和原子种类列表,例如。[1,1,1,1,...] 来自 pymatgen 结构对象?

0 投票
1 回答
378 浏览

python - Pymatgen:如何将查询结果转换为结构

我们有现有的代码来获取许多材料(> 60,000)的一些材料属性。

但是对于这个项目,我们需要特定形式的信息,即结构。我可以通过单独为每个材质 ID 调用它们来轻松获得这些结构:

在 matproj.py 中调用此函数:

问题是,这需要很长时间(> 4 小时),有时会在调用 API 期间卡住。

有没有办法避免调用 API 60,000 次并转换初始查询结果?

0 投票
1 回答
149 浏览

pymatgen - 在 Pymatgen 中使用 SlabGenerator 切割特定终止

我正在尝试使用 pymatgen 模型来切割 Fe2O3 和 Al2O3 上的特定终止。在 SlabGenerator 中,它的参数之一是 in_unit_planes(bool),默认 =false。

它在说明中说我可以设置为 Angstrong 或以 hkl 平面为单位。有谁知道“以 hkl 平面为单位”是什么意思,我该如何设置才能切割特定的 Al/Fe 端接和 Oxigen 端接?

当我设置 min_slab_size 和 min_vacuum_size 时,它​​返回了一个包含太多层的结构,我无法确定slab 结构中的层数。

0 投票
1 回答
241 浏览

python - pymatgen 的命令行实用程序

我已经安装了 python 包 pymatgen,当我在我的 Jupyter 笔记本中使用它时它可以完美地工作。但是,现在我想按照此处指定的方式进行 POSCAR 设置:https ://pymatgen.org/installation.html 但是当我pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>在命令行(Linux)中运行:(使用我的目录)时,它找不到它并且我得到错误:

编辑:我找到了文件“pmg”,它看起来如下:

如果我运行python pmg我会得到错误:

但是这个确切的模块“pymatgen.cli.pmg”我可以毫无问题地导入到我的jupyter笔记本中。而且我还是不太明白,因为在安装指南中,它说应该直接运行“pmg config…”

0 投票
1 回答
70 浏览

python - 如何使用 Python For-loop 编写文件

我是 SO 和自学 Python 的新手。我正在使用 Pymatgen 学习计算材料科学,我有一个问题一直在努力解决,但在任何地方都找不到答案。我有一个像图片一样的脚本输出列表。

我想使用 for 循环写入不同的文件以进行可视化。我一直在像下面的脚本一样手动编写输出,并希望使用 for 循环来简化脚本并使其看起来更好。

0 投票
1 回答
42 浏览

python - which() 命令只能使用 ./ 查找可执行文件

我正在使用 pymatgen,它有一个 BaderAnalysis 类(https://github.com/materialsproject/pymatgen/blob/v2020.4.29/pymatgen/command_line/bader_caller.py)。此类需要一个名为 bader 的可执行文件(来自另一个来源的二进制文件),因此它使用 which() 检查文件是否存在。我确实有文件,我可以手动运行 bader 程序,但我总是收到文件不存在的错误。如果我手动尝试 which() 命令,结果发现它只找到前缀 ./

输出:无

./坏人

如何以 which 命令在没有前缀的情况下找到它的方式制作它?(因为 pymatgen 类if not which("bader") or which("bader.exe"): 'error message...'在初始化类时会逐字运行。

0 投票
0 回答
116 浏览

python - 如何在python3中使用for循环从列表中打印子列表(字符串)?

我正在尝试使用 for 循环从列表中获取每个子列表,如下面的列表。我的 for 循环有效,但他们只给了我列表中的最后一项 11 次。我需要一些帮助,请。

输出

在此处输入图像描述

这是我用来打印和写入 txt 文件的代码

0 投票
0 回答
72 浏览

pymatgen - 在 pymatgen 和材料项目网站中使用 MPRester.query() 为“mp-22590”获取不同的 INCAR 文件

我在 pymatgen 和材料项目网站上使用 MPRester.query() 获得了 ID 'mp-22590' 的不同 INCAR 文件。

使用 MPRester.query():

mpr = MPRester('My_API_key')

数据=mpr.query('mp-22590',['input.incar'])[0]

我得到的 INCAR 是:

算法 = 正常

AMIX = 0.2

AMIX_MAG = 0.8

BMIX = 0.001

BMIX_MAG = 0.001

执行 = 520

伊布瑞恩 = 1

ICHARG = 1

ISIF = 3

伊斯梅尔 = 1

ISPIN = 2

LDAU = 真

LDAUJ = 0 0 0

LDAUL = 0 2 0

LDAUTYPE = 2

LDAUU = 0 5.3 0

LREAL = 自动

LWAVE = 真

MAGMOM = 12 * 0.6 4 * 5.0 4 * 0.6

内勒姆 = 100

NELMDL = 6

尼尔明 = 3

NPAR = 1

新南威尔士州 = 200

PREC = 准确

西格玛 = 0.2

系统 = Rubyvaspy :: o fe la


并从材料项目网站访问“mp-22590”的 VASP 输入文件,INCAR 是:

算法 = 快速

EDIFF = 0.001

执行 = 520

伊布瑞恩 = 2

ICHARG = 1

ISIF = 3

伊斯梅尔 = -5

ISPIN = 2

LDAU = 真

LDAUJ = 0 0 0

LDAUL = 0 2 0

LDAUPRINT = 1

LDAUTYPE = 2

LDAUU = 0 5.3 0

LMAXMIX = 6

LORBIT = 11

LREAL = 自动

LWAVE = 假

MAGMOM = 4 * 0.6 4 * 5.0 12 * 0.6

内勒姆 = 100

新南威尔士州 = 99

PREC = 准确

西格玛 = 0.05

难道我做错了什么?我将不胜感激这方面的任何帮助。

谢谢

0 投票
2 回答
985 浏览

python - 通过 MPRester 查询材料时出现 IProgress 错误

我在spyder3. 我在执行以下操作时遇到错误:

错误是:

在处理上述异常的过程中,又出现了一个异常:

但我没有使用Jupyter notebook并且ipywidgets已更新。在Google 协作中工作时不会发生此问题。

0 投票
0 回答
28 浏览

pymatgen - Download data with topological classification

In the materials project database, In the electronic structure part of compounds, there is a tag for “Topological Classification”. I am wondering if this data can be added to the properties of the query?

Any help would be appreciated. Thanks.