ASE와 GPAW로 DFT 계산하기
10132 단어 JupyterLab파이썬ASEGPAWDFT
다음 예제는 JupyterLab을 사용하여 수행되었습니다.
설치
Anaconda로 만든 Python 환경에 pip로 ASE와 GPAW를 설치하십시오.
$ pip install ase --user
$ pip install gpaw --user
GPAW PAW 데이터 세트도 다운로드하십시오.
$ gpaw install-data $HOME/gpaw-data
설치는 이상으로 끝납니다.
이 단계에서 내 환경은 다음과 같습니다.
$ python --version
Python 3.7.6
$ pip list installed | grep -e ase -e gpaw
ase 3.19.1
gpaw 20.1.0
GPAW의 계산 조건
다음 조건으로
GPAW
클래스를 인스턴스화합니다.from gpaw import GPAW, PW
gpaw = GPAW(mode=PW(300), xc='PBE')
수소 분자의 모델 만들기
ase.build
모듈은 소분자 사전 설정을 포함합니다.molecule
함수에 분자식을 전달하기 만하면 3 차원 분자 모델 인 Atoms
객체를 만들 수 있습니다.이번에는 고립계의 계산을 하고 싶기 때문에, 작성한
Atoms
오브젝트의 center
메소드를 호출해, 모델에 3.0A의 진공층을 추가하고 있습니다.from ase.build import molecule
atoms_h2 = molecule('H2')
atoms_h2.center(vacuum=3.)
view
함수로 시각화 할 수 있으므로 분자의 구조를 확인해 봅시다.from ase.visualize import view
view(atoms_h2)
계산 수행
Atoms
GPAW의 Calculator
를 객체에 연결하고 get_potential_energy
함수를 호출하면 GPAW 계산이 수행됩니다.atoms_h2.set_calculator(gpaw)
e_h2 = atoms_h2.get_potential_energy() # takes several seconds
수소 원자의 계산
수소 원자에 대해서도 마찬가지로 계산을 실시합니다.
atoms_h = molecule('H')
atoms_h.center(vacuum=3.)
atoms_h.set_calculator(GPAW(mode=PW(300), xc='PBE', hund=True))
e_h = atoms_h.get_potential_energy()
결과 표시
마지막으로 결과를 정리해 봅시다.
H2의 원자화 에너지 $\Delta E $는 다음 식으로 얻을 수 있습니다.
$\Delta E = 2 E_{\rm H} - E_{\rm H_2}$
동시에 분자 구조도 노트북에 표시해 보겠습니다.
matplotlib의 래퍼 인
ase.visualize.plot
모듈을 사용하십시오.import matplotlib.pyplot as plt
from ase.visualize.plot import plot_atoms
delta_e = 2 * e_h - e_h2
print(f'Atomization Energy: {delta_e: 5.2f} eV')
fig, ax = plt.subplots(1, 2, figsize=(8,6))
title = f'Calculation Result for {atoms_h2.get_chemical_formula()}\n' + \
f'Total Energy : {atoms_h2.get_potential_energy(): 5.2f} eV'
ax[0].set_title(title)
ax[0].axis('off')
plot_atoms(atoms_h2, ax=ax[0], rotation='90x')
title = f'Calculation Result for {atoms_h.get_chemical_formula()}\n' + \
f'Total Energy : {atoms_h.get_potential_energy(): 5.2f} eV'
ax[1].set_title(title)
ax[1].axis('off')
plot_atoms(atoms_h, ax=ax[1], rotation='90x')
plt.show()
참고
Reference
이 문제에 관하여(ASE와 GPAW로 DFT 계산하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/oyster-tempura/items/2102996ab6b87e54e5a7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)