Ti添加したNb3SnのDOSを第一原理計算で求めて比較してみる
最近は第一原理計算を勉強している。 Nb3SnはTiなどの元素を微量添加することで超伝導特性が向上することが知られていて、その材料探索に第一原理計算を利用できる。 学生時代は難易度が高いし、どこから手を出していいのか全くわからなかったが、最近はAIがあるので勉強も捗る。 計算ソフトにはQuantum Espresso (以下QE) を利用するのが一般的とされるが、そのまま利用するのではなく、python側でQEを呼び出せるASEというpythonライブラリを利用するのが良さそうだ。
Nb, Sn, Tiの擬ポテンシャルファイルはQEの公式ページからダウンロードできる。 計算が速いとされるウルトラソフトポテンシャルを利用してみる。
まずは結晶構造の最適化計算から初める。 原子を配置してみて、最もエネルギーが小さくなった構造を安定とするような計算だと私は捉えている。 その次にscf (self-consistent field)、nscfと計算を進めてDOSが求められる。
構造最適化は以下のようなコードで計算できる。
nb3sn = Atoms(
symbols=symbols,
scaled_positions=positions,
cell=[a, a, a],
pbc=True
)
pseudopotentials = {
'Nb': 'Nb.pbe-spn-rrkjus_psl.1.0.0.UPF',
'Sn': 'Sn.pbe-dn-rrkjus_psl.1.0.0.UPF'
}
profile = EspressoProfile(
command='pw.x',
pseudo_dir='content'
)
input_data = {
'control': {
'tstress': True,
'tprnfor': True,
},
'system': {
'ecutwfc': 60,
'ecutrho': 480,
'occupations': 'smearing',
'smearing': 'mv',
'degauss': 0.02
},
'electrons': {
'conv_thr': 1e-8
}
}
calc = Espresso(
profile=profile,
pseudopotentials=pseudopotentials,
input_data=input_data,
kpts=(6, 6, 6)
)
nb3sn.calc = calc
ucf = FrechetCellFilter(nb3sn)
opt=LBFGS(ucf)
opt.run(fmax=0.005)
print("optimized cell: ", nb3sn.cell)
print("Lattice parameters: ", nb3sn.cell.lengths())
print("Lattice angle: ", nb3sn.cell.angles())
print("Total Energy: ", nb3sn.get_potential_energy())nscf, band, dosの計算コードは割愛する。
純粋なNb3SnとSnを1つTiに置換したNb3SnでDOSを求めてみた。
以下が純粋なNb3SnのDOS。

以下がSnサイトを1つTiに添加したNb3SnのDOS

Ti置換したものがフェルミ準位のDOSが低下している。 今回の計算では単位胞の1つのSnをTiに置換しているため、従来よりも遥かに多い量のTi添加を行っていることになる。 supercellで計算を行うことで実際の添加量に近づけるのがよいが、手元のPCのマシンスペックではなかなか厳しそうだ。
Back