问题标签 [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.
pymatgen - 从 pymatgen 结构对象中提取坐标和原子类型
提取原子坐标列表的语法是什么,[[x1, y1, z1], [x2, y2, z2], ...] 和原子种类列表,例如。[1,1,1,1,...] 来自 pymatgen 结构对象?
python - Pymatgen:如何将查询结果转换为结构
我们有现有的代码来获取许多材料(> 60,000)的一些材料属性。
但是对于这个项目,我们需要特定形式的信息,即结构。我可以通过单独为每个材质 ID 调用它们来轻松获得这些结构:
在 matproj.py 中调用此函数:
问题是,这需要很长时间(> 4 小时),有时会在调用 API 期间卡住。
有没有办法避免调用 API 60,000 次并转换初始查询结果?
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 结构中的层数。
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…”
python - 如何使用 Python For-loop 编写文件
我是 SO 和自学 Python 的新手。我正在使用 Pymatgen 学习计算材料科学,我有一个问题一直在努力解决,但在任何地方都找不到答案。我有一个像图片一样的脚本输出列表。
我想使用 for 循环写入不同的文件以进行可视化。我一直在像下面的脚本一样手动编写输出,并希望使用 for 循环来简化脚本并使其看起来更好。
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...'
在初始化类时会逐字运行。
python - 如何在python3中使用for循环从列表中打印子列表(字符串)?
我正在尝试使用 for 循环从列表中获取每个子列表,如下面的列表。我的 for 循环有效,但他们只给了我列表中的最后一项 11 次。我需要一些帮助,请。
输出
这是我用来打印和写入 txt 文件的代码
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
难道我做错了什么?我将不胜感激这方面的任何帮助。
谢谢
python - 通过 MPRester 查询材料时出现 IProgress 错误
我在spyder3
. 我在执行以下操作时遇到错误:
错误是:
在处理上述异常的过程中,又出现了一个异常:
但我没有使用Jupyter notebook并且ipywidgets已更新。在Google 协作中工作时不会发生此问题。
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.