Exemplo n.º 1
0
atoms = BodyCenteredCubic('Fe', directions=cell)
atoms.set_initial_magnetic_moments([5,5])
atoms.set_cell([a,a,a], scale_atoms=True)
#atoms.set_cell([a,a,a])

carbon = Atom('C', position=(0,0.5*a,0.5*a), charge=0.4)

atoms = atoms*(2,2,2) + carbon

constraint = FixAtoms(indices=[8,10])

atoms.set_constraint(constraint)


init = atoms.copy()

final = atoms.copy()
final[-1].position = [0, 0.5*a, (0.5+0.25)*a]

for i in range(0,18):
    os.system('mkdir {:02d}'.format(i))
    os.chdir('{:02d}'.format(i))
    atoms[-1].position = [0,(0.75-(0.25/17.*i))*a,(0.5+(0.25/17.*i))*a]
 #   view(atoms)
    write('POSCAR', atoms)
    os.chdir('..')

view(init)
view(final)

Exemplo n.º 2
0
#slab2 = surface(fcc, (1,1,1), 35)
#slab2 = slab2*(5,5,1)
slab2.set_pbc([1, 1, 1])

print range(421, 431) + range(442, 451) + range(462, 470) + range(
    483, 490) + range(503, 509) + range(524, 529) + range(544, 548) + range(
        565, 567) + [586]
slab3 = slab1.copy()
del slab3[range(421, 431) + range(442, 451) + range(462, 470) +
          range(483, 490) + range(503, 509) + range(524, 529) +
          range(544, 548) + range(565, 567) + [586]]
#slab2 = slab1.copy()
#del slab2[[0,1]]

view(slab1)
write('slab1.pdb', slab1)
write('slab2.pdb', slab2)
write('slab3.pdb', slab3)

#view(slab1)
#view(slab2)
#view(slab3)

slab1.set_calculator(calc)

#opt = BFGS(slab1, trajectory='slab1.traj')
#opt.run(fmax=0.02)

#write('slab1.pdb', slab1)

p1 = slab1.get_potential_energy() / slab1.get_number_of_atoms()
Exemplo n.º 3
0
atoms = BodyCenteredCubic('Fe', directions=cell)
atoms.set_initial_magnetic_moments([5,5])
atoms.set_cell([a,a,a], scale_atoms=True)
#atoms.set_cell([a,a,a])

carbon = Atom('C', position=(0,0.5*a,0.5*a), charge=0.4)

atoms = atoms*(2,2,2) + carbon

constraint = FixAtoms(indices=[8,10])

atoms.set_constraint(constraint)


init = atoms.copy()

final = atoms.copy()
final[-1].position = [0, 0.5*a, (0.5+0.25)*a]

for i in range(0,18):
    os.system('mkdir {:02d}'.format(i))
    os.chdir('{:02d}'.format(i))
    atoms[-1].position = [0,0.5*a,(0.5+(0.25/17.*i))*a]
 #   view(atoms)
    write('POSCAR', atoms)
    os.chdir('..')

view(init)
view(final)

Exemplo n.º 4
0
slab2 = fcc111('Ni', size=(20,20,29), a=a, orthogonal=True)
slab2.set_pbc([1,1,1])

print range(421,431)+range(442,451)+range(462,470)+range(483,490)+range(503,509)+range(524,529)+range(544,548)+range(565,568)+range(585,587)+[606]
slab3 = slab1.copy()
del slab3[range(5421,5436)]

# del slab3[range(1,15)]

mask = [ atom.position[0] < 1.5 or atom.position[1] < 1.0 or atom.position[2] < 0.1 for atom in slab3]
constraint = FixAtoms(mask=mask)
slab3.set_constraint(constraint)

view(slab3)
write('slab3-Ni-disl.pdb',slab3)

slab3.set_calculator(calc)

#opt = BFGS(slab3, trajectory='slab3.traj')
# opt.run(fmax=0.02)

n = slab3.get_number_of_atoms()
p = slab3.get_potential_energy() / n
v = slab3.get_volume() / n

print n, p, v

T = 10
dyn = Langevin(slab3, 5 * units.fs, T * units.kB, 0.002)
Exemplo n.º 5
0
init = read('work-1/init/CONTCAR')
final = read('work-1/init/CONTCAR')

a = final.get_cell()[0][0]
final[-1].position = [0, 3. / 8. * a, 1. / 4. * a]

# constraint = FixAtoms(mask=[atom.symbol=='Fe' for atom in init])
#constraint = FixAtoms(mask=[atom.tag < 1 for atom in init])

constraint = FixAtoms(mask=[])
init.set_constraint(constraint)

images = [init]
for i in range(8):
    image = init.copy()
    images.append(image)
images.append(final)

neb = NEB(images)
neb.interpolate()

for i in range(neb.nimages):
    image = neb.images[i]
    constraint = FixAtoms(mask=[atom.tag < 1 for atom in image])
    image.set_constraint(constraint)
    os.system('mkdir {:02d}'.format(i))
    os.chdir('{:02d}'.format(i))
    write('POSCAR', image)
    os.chdir('..')
Exemplo n.º 6
0
init = read('work-1/init/CONTCAR')
final = read('work-1/final/CONTCAR')

a = final.get_cell()[0][0]
final[-1].position = [0, 3./8.*a, 1./4.*a]

# constraint = FixAtoms(mask=[atom.symbol=='Fe' for atom in init])
#constraint = FixAtoms(mask=[atom.tag < 1 for atom in init])

constraint = FixAtoms(mask=[])
init.set_constraint(constraint)

images = [init]
for i in range(8):
    image = init.copy()
    images.append(image)
images.append(final)

neb = NEB(images)
neb.interpolate()

for i in range(neb.nimages):
    image = neb.images[i]
    constraint = FixAtoms(mask=[atom.symbol == 'Fe' for atom in image])
    image.set_constraint(constraint)
    os.system('mkdir {:02d}'.format(i))
    os.chdir('{:02d}'.format(i))
    write('POSCAR', image)
    os.chdir('..')

Exemplo n.º 7
0
    483, 490) + range(503, 509) + range(524, 529) + range(544, 548) + range(
        565, 567) + [586]
slab3 = slab1.copy()
del slab3[range(5421, 5436)]

# del slab3[range(1,15)]

mask = [
    atom.position[0] < 1.5 or atom.position[1] < 1.0 or atom.position[2] < 0.1
    for atom in slab3
]
constraint = FixAtoms(mask=mask)
slab3.set_constraint(constraint)

view(slab3)
write('slab3-Fe-disl.pdb', slab3)

slab3.set_calculator(calc)

#opt = BFGS(slab3, trajectory='slab3.traj')
# opt.run(fmax=0.02)

n = slab3.get_number_of_atoms()
p = slab3.get_potential_energy() / n
v = slab3.get_volume() / n

print n, p, v

T = 10
dyn = Langevin(slab3, 5 * units.fs, T * units.kB, 0.002)
Exemplo n.º 8
0
slab3 = slab1.copy()
del slab3[range(421, 431) + range(442, 451) + range(462, 470) +
          range(483, 490) + range(503, 509) + range(524, 529) +
          range(544, 548) + range(565, 568) + range(585, 587) + [606]]

# del slab3[range(1,15)]

mask = [
    atom.position[0] < 1.5 or atom.position[1] < 1.0 or atom.position[2] < 0.1
    for atom in slab3
]
constraint = FixAtoms(mask=mask)
slab3.set_constraint(constraint)

view(slab3)
write('slab3-Ni.pdb', slab3)

slab3.set_calculator(calc)

#opt = BFGS(slab3, trajectory='slab3.traj')
# opt.run(fmax=0.02)

n = slab3.get_number_of_atoms()
p = slab3.get_potential_energy() / n
v = slab3.get_volume() / n

print n, p, v

T = 10
dyn = Langevin(slab3, 5 * units.fs, T * units.kB, 0.002)
Exemplo n.º 9
0
#slab2 = surface(fcc, (1,1,1), 35)
#slab2 = slab2*(5,5,1)
slab2.set_pbc([1, 1, 1])

print range(421, 431) + range(442, 451) + range(462, 470) + range(
    483, 490) + range(503, 509) + range(524, 529) + range(544, 548) + range(
        565, 567) + [586]
slab3 = slab1.copy()
del slab3[range(421, 431) + range(442, 451) + range(462, 470) +
          range(483, 490) + range(503, 509) + range(524, 529) +
          range(544, 548) + range(565, 567) + [586]]
#slab2 = slab1.copy()
#del slab2[[0,1]]

view(slab1)
write('slab1-Ni.pdb', slab1)
write('slab2-Ni.pdb', slab2)
write('slab3-Ni.pdb', slab3)

#view(slab1)
#view(slab2)
#view(slab3)

slab1.set_calculator(calc)

#opt = BFGS(slab1, trajectory='slab1.traj')
#opt.run(fmax=0.02)

#write('slab1.pdb', slab1)

p1 = slab1.get_potential_energy() / slab1.get_number_of_atoms()
Exemplo n.º 10
0
slab3 = slab1.copy()
del slab3[range(421, 431) + range(442, 451) + range(462, 470) +
          range(483, 490) + range(503, 509) + range(524, 529) +
          range(544, 548) + range(565, 568) + range(585, 587) + [606]]

# del slab3[range(1,15)]

mask = [
    atom.position[0] < 1.5 or atom.position[1] < 1.0 or atom.position[2] < 0.1
    for atom in slab3
]
constraint = FixAtoms(mask=mask)
slab3.set_constraint(constraint)

view(slab3)
write('slab3-Fe.pdb', slab3)

slab3.set_calculator(calc)

#opt = BFGS(slab3, trajectory='slab3.traj')
# opt.run(fmax=0.02)

n = slab3.get_number_of_atoms()
p = slab3.get_potential_energy() / n
v = slab3.get_volume() / n

print n, p, v

T = 10
dyn = Langevin(slab3, 5 * units.fs, T * units.kB, 0.002)