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)
#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()
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)
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)
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('..')
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('..')
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)
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)
#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()
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)