我的这部分代码有问题,它返回给材料的扩散分析师
from pymatgen.analysis.diffusion.analyzer import (
DiffusionAnalyzer,
fit_arrhenius,
get_conversion_factor,
)
import json
from pymatgen.analysis.diffusion.aimd.van_hove import VanHoveAnalysis
%matplotlib inline
data = json.load(open(".../py.pro/mp-1138_LiF.json", "r"))
new_obj = DiffusionAnalyzer.from_dict(data)
vhfunc = VanHoveAnalysis(diffusion_analyzer=new_obj, avg_nsteps=5, ngrid=101, rmax=10.0,
step_skip=5, sigma=0.1, species = ["Li", "F"])
vhfunc.get_3d_plot(mode="self")
vhfunc.get_3d_plot(mode="distinct")
关键错误说明了这一点
KeyError Traceback (most recent call last)
<ipython-input-4-17584fdb7b1f> in <module>
3 data = json.load(open("J:/py.pro/mp-1138_LiF.json", "r"))
4
----> 5 new_obj = DiffusionAnalyzer.from_dict(data)
6
7 vhfunc = VanHoveAnalysis(diffusion_analyzer=new_obj, avg_nsteps=5, ngrid=101, rmax=10.0,
~\Anaconda3\lib\site-packages\pymatgen\analysis\diffusion\analyzer.py in from_dict(cls, d)
766 return cls(
767 structure,
--> 768 np.array(d["displacements"]),
769 specie=d["specie"],
770 temperature=d["temperature"],
KeyError: 'displacements'
它是如何解决的? 它会返回程序吗?