Quantum Espresso の出力ファイル変換の例¶
Author: 小林亮
Date: 2024-07-19
In [2]:
# 最初にいくつかのパッケージのインポート
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
from IPython.display import display
sns.set_theme(context='talk', style='ticks')
In [3]:
# ase.io.read, ase.io.write を利用する
import ase
import ase.io
print(ase.__version__)
3.23.0b1
In [4]:
# QE outputを読み込む
atoms = ase.io.read('./QE.out', index=':')
len(atoms)
Out[4]:
400
In [5]:
# 各ステップのエネルギー抽出
epots = []
for i,a in enumerate(atoms):
epots.append(a.get_potential_energy()/len(a))
In [6]:
# エネルギーの推移をグラフ化
fig, ax = plt.subplots(figsize=(5,5))
steps = [ i for i in range(len(epots)) ]
ax.plot(steps, epots,)
ax.set_xlabel('Iterations')
ax.set_ylabel('Potential energy (Ry/atom)')
#ax.legend(frameon=False)
plt.show()
In [7]:
# 10ステップ毎の構造をPOSCAR形式で出力.
for i,a in enumerate(atoms):
if i % 10 != 0: continue
ase.io.write(f'POSCAR_{i:05d}', a, format='vasp', vasp5=True)
# POSCAR_00010のような連番のファイルが出力されるので, Ovitoなどで可視化できる
In [8]:
# !rm POSCAR_0*
In [ ]: