SST Lab Dokuwiki Header header picture

ユーザ用ツール

サイト用ツール


seminar:h_on_co111

コバルト(111)表面の水素吸着

コバルト(111)表面スラブ模型

from ASE import Atom
d = 1./6
h = 1./6
atoms = []
atoms.append(Atom('Co', (0.0,     0.0,    0.0), magmom=1.6))
atoms.append(Atom('Co', (0.5,     0.0,    0.0), magmom=1.6))
atoms.append(Atom('Co', (0.0,     0.5,    0.0), magmom=1.6))
atoms.append(Atom('Co', (0.5,     0.5,    0.0), magmom=1.6))
atoms.append(Atom('Co', (      d,       d, -h), magmom=1.6))
atoms.append(Atom('Co', (0.5 + d,       d, -h), magmom=1.6))
atoms.append(Atom('Co', (      d, 0.5 + d, -h), magmom=1.6))
atoms.append(Atom('Co', (0.5 + d, 0.5 + d, -h), magmom=1.6))
 
from ASE import ListOfAtoms
slab = ListOfAtoms(atoms)
 
from math import sqrt
a = 2.5
c = 1.622*a
a1 = (2*a,         0,   0)
a2 = (  a, a*sqrt(3),   0)
a3 = (  0,         0, 3*c)
cell = [a1, a2, a3]
slab.SetUnitCell(cell)
 
from ASE.IO.xyz import WriteXYZ
WriteXYZ('Co_slab.xyz', atoms = slab)
 
from Dacapo import Dacapo
 
calc = Dacapo(spinpol=True)              # this calculation should be spinpolarized
calc.SetNumberOfBands(10 + 8*6 + 1*1)
calc.SetPlaneWaveCutoff(340)
calc.SetDensityCutoff(340)
 
from ASE.Utilities.ChadiCohen import CC18_1x1
calc.SetBZKPoints(CC18_1x1)
 
calc.SetNetCDFFile('Co_slab.nc')
calc.SetTxtFile('Co_slab.text')
 
calc.SetSymmetryOn()
 
slab.SetCalculator(calc)
calc.Calculate()
d = 1./6
h = 1./6
positions_of_metal_atoms = []
positions_of_metal_atoms.append((0.0    , 0.0    , 0.0))
positions_of_metal_atoms.append((0.0    , 0.0    , 0.0))
positions_of_metal_atoms.append((0.5    , 0.0    , 0.0))
positions_of_metal_atoms.append((0.0    , 0.5    , 0.0))
positions_of_metal_atoms.append((0.5    , 0.5    , 0.0))
positions_of_metal_atoms.append((      d,       d,  -h))
positions_of_metal_atoms.append((0.5 + d,       d,  -h))
positions_of_metal_atoms.append((      d, 0.5 + d,  -h))
positions_of_metal_atoms.append((0.5 + d, 0.5 + d,  -h))
number_of_metal_atoms = len(positions_of_metal_atoms)
 
from math import sqrt
a = 2.5
c = 1.622*a
a1 = (2*a,         0,   0)
a2 = (  a, a*sqrt(3),   0)
a3 = (  0,         0, 3*c)
cell = [a1, a2, a3]
 
 
from ASE import Atom, ListOfAtoms
 
metal_atoms = []
for v in positions_of_metal_atoms:
  metal_atoms.append(Atom('Co', v, magmom=1.6))
slab = ListOfAtoms(atoms)
slab.SetUnitCell(cell)
 
from ASE.IO.xyz import WriteXYZ
WriteXYZ('Co_slab.xyz', atoms = slab)
 
from Dacapo import Dacapo
 
calc = Dacapo(spinpol=True)              # this calculation should be spinpolarized
calc.SetNumberOfBands(10 + 8*6 + 1*1)
calc.SetPlaneWaveCutoff(340)
calc.SetDensityCutoff(340)
 
from ASE.Utilities.ChadiCohen import CC18_1x1
calc.SetBZKPoints(CC18_1x1)
 
calc.SetNetCDFFile('Co_slab.nc')
calc.SetTxtFile('Co_slab.text')
 
calc.SetSymmetryOn()
 
slab.SetCalculator(calc)
calc.Calculate()

atop席吸着状態

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki