# @surface

### サイト用ツール

seminar:slabmodel

# Si(111)スラブ模型

3×3の大きさの(111)面を6層(3二重層)重ねたスラブ模型1)ListOfAtomsオブジェクトをつくる。

from math import sqrt
from Numeric import array
############################################
dh = 1.48        # Si-H  bond length
b  = 2.35        # Si-Si bond length
############################################
c = b*4/sqrt(3)  # lattice constant of cubic cell
a = c/sqrt(2)    # side of triangle in (111) plane
d = b + b/3      # separation of double layers along [111] direction
############################################
NV = 6 # NV-double layer spacing for vacuum
NL = 3 # Slab contains NL double layers
N = 3  # NxN super structure
############################################
######### unit cell (super cell) setting ##########
u1 = a*sqrt(3)/2*N
u2 = a/2*N
u3 = d*(NL + NV)
a1 = (u1, u2, 0)
a2 = (u1, -u2, 0)
a3 = (0, 0, u3)
###################################################
###################################################
from ASE import Atom
atoms = []
for iLayer in range(NL*2):
iHLayer = iLayer%2
iDLayer = iLayer/2
iShifts = ((iLayer + 1)/2)%3
for iX in range(N):
for iY in range(N):
xPos = (iX + iShifts/3.)/N
yPos = (iY + iShifts/3.)/N
zPos = ((1 + iDLayer)*d + iHLayer*b/3)/u3
atoms.append(Atom('Si', (xPos, yPos, zPos), tag = 1))
# ----------------------------------------------------------
###################################################
from ASE import ListOfAtoms
slab = ListOfAtoms(atoms)
slab.SetUnitCell([a1, a2, a3])
###################################################

できたら最後に

from ASE.IO.xyz import WriteXYZ
WriteXYZ('slab_model.xyz', atoms = slab)

を付け加えてxyzフォーマットファイルを作成し、Jmol/iMolでできを確認せよ。

# ----------------------------------------------------------
for iX in range(N):
for iY in range(N):
xPos = (iX*1.)/N
yPos = (iY*1.)/N
zPos = (d - dh)/u3
atoms.append(Atom('H', (xPos, yPos, zPos)))
for iX in range(N):
for iY in range(N):
xPos = (iX + (NL%3)/3.)/N
yPos = (iY + (NL%3)/3.)/N
zPos = (NL*d + b/3 + dh)/u3
atoms.append(Atom('H', (xPos, yPos, zPos)))
1)

seminar/slabmodel.txt · 最終更新: 2022/08/23 13:34 by 127.0.0.1