电子结构计算的综合I/O验证器
项目描述
pymatgen-io-validation
此包是 pymatgen
的扩展,用于执行 I/O 验证。具体来说,此包检查特定计算与提供的输入集之间的差异;它还检查在组合使用某些输入参数时存在的已知错误,以及一些其他小检查。创建此包的动机是为了确保材料项目(MP)外部小组执行的 VASP 计算符合 MP 数据,从而使他们的原始数据能够包含在 MP 数据库中。
安装
您可以通过运行以下命令安装此包:
pip install pymatgen-io-validation
用法
对于验证来自原始文件的计算,请运行
from pymatgen.io.validation import ValidationDoc
validation_doc = ValidationDoc.from_directory(dir_name = path_to_vasp_calculation_directory)
在上面的例子中,可以通过 validation_doc.valid
访问计算是否通过验证器。此外,可以通过 validation_doc.reasons
访问未验证计算的原因(对于有效的计算,这将为空)。最后但同样重要的是,可以通过 validation_doc.warnings
访问潜在问题的警告(有时是轻微的,有时是重大的)。
对于验证来自 TaskDoc
对象的计算(来自 Emmet 包),请运行
from pymatgen.io.validation import ValidationDoc
validation_doc = ValidationDoc.from_task_doc(task_doc = my_task_doc)
贡献者
理由
参数 | 原因 |
---|---|
ADDGRID | ADDGRID 必须设置为 False。MP 使用 ADDGRID = False,因为 VASP 手册中提到“请勿在所有计算中使用此标记 [ADDGRID]!”。ADDGRID 可能会影响输出的力,因此所有计算都必须将 ADDGRID 设置为 False 以确保兼容性。 |
AEXX / AMGGAX / AMGGAC / AGGAX / ALDAC / ALDAX | 除非在特定的 MP 输入集中指定,否则这些参数应该是 VASP 的默认值,因为更改它们实际上是改变了理论水平。 |
ALGO / IALGO | ALGO 必须是以下之一:“Normal”、“Conjugate”、“All”、“Fast”、“Exact”。(这分别对应于 IALGO 的 38、58、58、68、90)。 |
DEPER / EBREAK / WEIMIN | 根据 VASP 维基,不应更改 DEPER、EBREAK 和 WEIMIN,因此 MP 要求它们保持为默认值。 |
EDIFF | EDIFF 必须等于或大于相关 MP 输入集中的值。这将确保与 MP 数据库中的结果兼容。 |
EDIFFG | 应与相关 MP 输入集中的值相同或更好。对于基于能量的截止值的 MP 输入集,计算的最后两个步骤之间的能量变化必须小于指定的 EDIFFG(即使您的计算使用基于力的收敛,能量也必须在 MP 输入集的规范内收敛)。相同的逻辑适用于具有基于力的 EDIFFG 设置的 MP 输入集。 |
EFERMI | EFERMI 必须是以下之一:“LEGACY”、“MIDGAP” |
EFIELD | 用于构建主要 MP 数据库的当前 MP 输入集没有设置 EFIELD,因此我们要求将其取消设置或设置为 0。 |
ENAUG | 如果相关 MP 输入集中存在 ENAUG,则计算中的 ENAUG 必须等于或优于该值。 |
ENCUT | ENCUT 必须等于或大于相关 MP 输入集中的值,否则结果可能无法与 MP 兼容。 |
ENINI | ENINI不应为高通量计算进行调整,因此应保持等于相关MP输入集中使用的ENCUT值。相关MP输入集中的ENCUT值以上的值也将被接受,尽管我们预计这种情况很少见,并且不推荐这样做。 |
EPSILON | EPSILON必须设置为VASP默认值1。改变介质的介电常数将导致结果与MP不兼容。 |
GGA / METAGGA | 使用的理论水平必须与相关MP输入集匹配。此外,GGA和METAGGA不应同时设置,因为这已被证明会导致严重错误的结果。有关更多详细信息,请参阅https://github.com/materialsproject/atomate2/issues/453#issuecomment-1699605867。 |
GGA_COMPAT | GGA_COMPAT必须设置为VASP默认值True。VASP手册仅推荐在非偶极磁性计算中将此设置为False,但这些计算目前未包含在MP数据库中。 |
IBRION | IBRION的值必须是:-1、1、2。其他IBRION值对应于未包含在MP数据库中的非标准DFT计算形式。(请注意,虽然声子数据包含在MP数据库中,但这些值不是使用,例如,IBRION = 5来计算的。这种逻辑适用于所有其他不允许的IBRION值)。 |
ICHARG | ICHARG必须设置以与计算类型兼容。例如,如果相关MP输入集是用于SCF计算,则必须使用ICHARG $\leq 9$。对于NSCF计算,ICHARG的值必须与相关MP输入集中包含的值完全匹配。 |
ICORELEVEL | ICORELEVEL必须设置为0。MP不显式计算核心能量。 |
IDIPOL | IDIPOL必须设置为0(VASP默认值)。 |
IMAGES | IMAGES必须设置为0以与MP计算匹配。 |
INIWAV | INIWAV必须设置为VASP默认值1,以确保与MP计算的一致性。 |
ISPIN | 所有ISPIN的值都被允许,但应注意的是,几乎所有MP计算都允许自旋对称性打破,并具有铁磁、反铁磁或非磁性序。 |
ISMEAR | 适当的ISMEAR取决于材料的带隙(这事先是无法知道的)。根据VASP手册:对于金属(带隙=0),[0, 1, 2]范围内的任何ISMEAR值都是可接受的。对于非金属(带隙>0),[-5, 0]范围内的任何ISMEAR值都是可接受的。因此,对于执行正常松弛/静态计算并希望确保其计算与MP兼容的用户,我们建议将ISMEAR设置为0。 |
ISIF | MP允许任何ISIF $\geq 2$。这种限制仅仅是因为所有ISIF $\geq 2$的值都输出完整的应力张量。 |
ISYM | ISYM必须是-1、0、1、2之一,除非相关MP输入集使用混合泛函,在这种情况下,ISYM=3也是允许的。 |
ISTART | ISTART必须是0、1、2之一。 |
IVDW | IVDW必须设置为0。MP目前不应用任何vdW色散校正。 |
IWAVPR | IWAVPR必须设置为0(默认值)。VASP不建议用户设置此标签。 |
KGAMMA | KGAMMA必须设置为True(VASP默认值)。这仅在未使用KPOINTS文件时相关。 |
KSPACING / KPOINTS | KSPACING参数或KPOINTS文件必须至少对应于相关MP输入集指定的非对称简化布里渊区中KPOINTS数量的0.9倍(即不是第一布里渊区不可约楔的K点数量)。因此,可以选择指定KPOINTS的任何一种方法。这确保了计算使用与MP相当数量的k点。 |
K点网格类型(对于KPOINTS) | K点网格的类型必须适用于计算中晶体结构的对称性。例如,对于六方密堆积结构,必须使用$\Gamma$中心网格。使用Pymatgen生成的所有K点都应该有效。 |
LASPH | LASPH必须设置为True(这不是VASP的默认设置)。 |
LCALCEPS | LCALCEPS必须设置为False(这是VASP的默认设置)。 |
LBERRY | LBERRY必须设置为False(这是VASP的默认设置)。 |
LCALCPOL | LCALCPOL必须设置为False(这是VASP的默认设置)。 |
LCHIMAG | LCHIMAG必须设置为False(这是VASP的默认设置)。 |
LCORR | LCORR在IALGO=58的计算中必须设置为True(这是VASP的默认设置)。 |
LDAU / LDAUU / LDAUJ / LDAUL / LDAUTYPE | 对于DFT$+U $计算,所有与$+U$或$+J$校正相关的参数必须与相关MP输入集中指定的参数完全匹配。或者,LDAU = False(DFT)总是可接受的。 |
LDIPOL | LDIPOL必须设置为False(这是VASP的默认设置)。 |
LMONO | LMONO必须设置为False(这是VASP的默认设置)。 |
LEFG | LEFG必须设置为False(这是VASP的默认设置),除非相关MP输入集明确指定为True。 |
LEPSILON | LEPSILON必须设置为False(这是VASP的默认设置),除非相关MP输入集明确指定为True。 |
LHFCALC | LHFCALC的值应与相关MP输入集中的值相匹配,否则将导致计算中应用的理论水平发生变化。 |
LHYPERFINE | LHYPERFINE必须设置为False(这是VASP的默认设置)。 |
LKPROJ | LKPROJ必须设置为False(这是VASP的默认设置)。 |
LKPOINTS_OPT | LKPOINTS_OPT必须设置为False。 |
LMAXPAW | LMAXPAW必须保持未指定,因为VASP维基百科指出:“应使用LMAXPAW的默认设置来评估能量”。 |
LMAXMIX | LMAXMIX必须设置为6。这是基于Aaron Kaplan(@esoteric-ephemera)的测试——请参阅https://github.com/materialsproject/pymatgen/issues/3322中的"bench_vasp_pars.docx"文档。 |
LMAXTAU | LMAXTAU必须设置为6(这是使用LASPH = True时的VASP默认值)。 |
LMP2LT / LSMP2LT | 两者都必须设置为False(这是VASP的默认设置) |
LNONCOLLINEAR / LSORBIT | 两者都必须设置为False(这是VASP的默认设置) |
LOCPROJ | LOCPROJ必须设置为None(这是VASP的默认设置)。 |
LOPTICS | LOPTICS必须设置为False(这是VASP的默认设置),除非相关MP输入集明确指定。 |
LORBIT | 如果用户还设置了ISPIN=2,则LORBIT不能为None,否则所有LORBIT的值都是可接受的。这是因为在ISPIN=2和LORBIT = None同时设置时,不会输出磁化值。 |
LREAL | 如果相关MP输入集中的LREAL是“Auto”,则用户必须是“Auto”或False之一。否则,如果相关MP输入集中的LREAL是False,则用户必须使用False。 |
LRPA | LRPA必须设置为False(这是VASP的默认设置)。MP目前不支持随机相近似(RPA)计算。 |
LSPECTRAL | LSPECTRAL必须设置为False(这是大多数计算的VASP默认设置)。 |
LSUBROT | LSUBROT必须设置为False(这是VASP的默认设置)。 |
MAGMOM | 允许任何初始磁矩,但任何给定原子的最终总磁矩必须小于5 $\mu_B$(玻尔磁子)(除了Gd和Eu元素,必须小于10 $\mu_B$)。这只是一个过滤错误数据的方法。 |
ML_LMFF | ML_LMFF必须设置为False(这是VASP的默认设置)。 |
NGX / NGY / NGZ | NGX/NGY/NGZ的值必须至少是VASP生成相应参数的默认值的0.9倍。如果用户没有指定这些参数,计算应该与MP数据兼容。 |
NGFX / NGFY / NGFZ | NGFX/NGFY/NGFZ的值必须至少是VASP生成的相应参数默认值的0.9倍。如果用户根本未指定这些参数,计算应与MP数据兼容。 |
NLSPLINE | NLSPLINE应设置为False(VASP默认值),除非由相关的MP输入集明确指定。 |
NBANDS | NBANDS必须大于$\mathrm{ceil}(\mathrm{NELECT}/2) + 1$(避免简并的最小允许带数)且小于4倍(避免简并的最小允许带数)。对于高通量计算,通常建议不直接设置此参数。有关更多信息,请参阅https://github.com/materialsproject/custodian/issues/224。 |
NELECT | NELECT的值不得改变为VASP为特定结构和计算伪势能所使用的默认值。确保NELECT符合MP数据的最简单方法是简单地不在INCAR文件中指定NELECT。 |
NWRITE | NWRITE必须设置为$\geq 2$(VASP默认值是2)。 |
POTIM | POTIM $\leq 5$。我们建议不要在INCAR文件中设置POTIM,而是允许VASP将其设置为默认值0.5。 |
PSTRESS | PSTRESS必须设置为正好是0.0(VASP默认值)。 |
PREC | PREC必须是以下之一:“High”,“Accurate”。 |
ROPT | ROPT应设置为小于或等于默认ROPT值(该值基于PREC标记设置)。因此,建议不要在INCAR文件中设置ROPT标记。 |
RWIGS | RWIGS不应在INCAR文件中设置。 |
SCALEE | SCALEE不应在INCAR文件中设置。 |
SYMPREC | SYMPREC必须小于或等于1e-3(这是截至2024年3月Custodian包将SYMPREC设置为的最大值)。对于通用用途,我们建议将SYMPREC保留为您所需MP输入集生成的默认值。 |
SIGMA | 设置SIGMA有一些规则
|
VCA | MP数据不包括VASP的虚晶近似(VCA)计算。因此,此参数不应设置。 |
VASP版本 | 允许以下版本的VASP:5.4.4或$>$ 6.0.0。例如,版本$<=$ 5.4.3不允许,而版本6.3.1是允许的。 |
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
pymatgen_io_validation-0.0.4.tar.gz (46.2 KB 查看散列值)
构建分发
关闭
pymatgen_io_validation-0.0.4.tar.gz的散列值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 616b0e9c8b566e42a42c0f904ce75144ab2fc4808cf90b0bda0f71aa59469574 |
|
MD5 | 1d9f5734952cd7781da5c671e31162e8 |
|
BLAKE2b-256 | 73204f86dd0e831512504c11fa643cb2d45c15a58470e470a9631d9a4828e2c5 |
关闭
pymatgen_io_validation-0.0.4-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 44836e8aad061afcfb3e85de951efd370ef29047f7f62d5fd9cf4cca48be7c4f |
|
MD5 | 164b4e5500c762939c46b3a876d1f918 |
|
BLAKE2b-256 | 80eeafeec6fd36833e216b7407896d1d5dfb04e5dbba32e029329ef0083a2110 |