差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

seminar:h_on_co111 2009/06/01 14:39 現在
ライン 1: ライン 1:
 +====== コバルト(111)表面の水素吸着 ======
 +===== コバルト(111)表面スラブ模型 =====
 +
 +<code python>
 +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()
 +
 +</code>
 +
 +<code python>
 +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()
 +
 +</code>
 +
 +
 +===== atop席吸着状態 =====
seminar/h_on_co111.txt · 最終更新: 2009/06/01 14:39 by kimi
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0