Material Project와 Ciitrination API를 사용한 대역 갭 비교
의 목적
Material Project의 일차원 원리를 통해 계산된 대극 데이터와Citrination의 실험값을 비교한다.
작업 환경
$ pip install matminer
$ pip install pymatgen
Ciitrination(실험값)
import numpy as np
import pandas as pd
# pandasの設定
pd.set_option('display.width', 1000)
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
import warnings
warnings.filterwarnings('ignore')
from matminer.data_retrieval.retrieve_Citrine import CitrineDataRetrieval
api_key = xxxxxxxxxxxxx # CitrinationのAPI key
c = CitrineDataRetrieval(api_key)
df = c.get_dataframe(criteria={'data_type': 'EXPERIMENTAL', 'max_results': 100},
properties=['Band gap', 'Temperature'],
common_fields=['chemicalFormula'])
df.rename(columns={'Band gap': 'Experimental band gap'}, inplace=True)
Material Project(계산 값)
from pymatgen import MPRester, Composition
api_key = yyyyyyyyyyy # Material ProjectのAPI key
mpr = MPRester(api_key)
def get_MP_bandgap(formula):
"""Given a composition, get the band gap energy of the ground-state structure
at that composition
Args:
composition (string) - Chemical formula
Returns:
(float) Band gap energy of the ground state structure"""
reduced_formula = Composition(formula).get_integer_formula_and_factor()[0]
struct_lst = mpr.get_data(reduced_formula)
if struct_lst:
return sorted(struct_lst, key=lambda e: e['energy_per_atom'])[0]['band_gap']
df['Computed band gap'] = df['chemicalFormula'].apply(get_MP_bandgap)
결실
from matminer.figrecipes.plot import PlotlyFig
pf = PlotlyFig(df, x_title='Experimental band gap (eV)',
y_title='Computed band gap (ev)',mode='notebook',
fontsize=20, ticksize=15)
pf.xy([('Experimental band gap', 'Computed band gap'), ([0, 10], [0, 10])],
modes=['markers', 'lines'], lines=[{}, {'color': 'black', 'dash': 'dash'}],
labels='chemicalFormula', showlegends=False)
참고 자료
Reference
이 문제에 관하여(Material Project와 Ciitrination API를 사용한 대역 갭 비교), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/funabashi800/items/4c9767abb2282f2330e8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)