====== コバルト(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席吸着状態 =====