[ase-users] NEB Calculation
Abid Channa
abid_channa04 at yahoo.com
Tue Jan 9 17:03:04 CET 2018
Hey,I am trying to calculate NEB from fcc to hcp via bridge . I am confused that I can do this in single system and in single script or I just prepared two systems separately like first fcc site (initial1.traj and final1.taj) and then hcp site (initial2.traj and final.traj2). After relaxing these system then I calculate NEB calculation by taking initial1.traj of fcc and final2.traj of hcp system.Attached whole script system preparation and then NEB calculationfrom ase.build import fcc111, add_adsorbate
from ase.constraints import FixAtoms
from ase.calculators.emt import EMT
from ase.optimize import QuasiNewton
slab = fcc111('Pt', size=(4, 4, 7))
add_adsorbate(slab, 'Pt', 1.7, 'fcc')
slab.center(axis=2, vacuum=4.0)
mask = [atom.tag > 5 for atom in slab]
slab.set_constraint(FixAtoms(mask=mask))
slab.set_calculator(EMT())
qn = QuasiNewton(slab, trajectory='initial.traj')
qn.run(fmax=0.05)
# Final state:
slab[-1].x += slab.get_cell()[0, 0] / 2
qn = QuasiNewton(slab, trajectory='final.traj')
qn.run(fmax=0.05)
NEB script
from ase.io import read
from ase.constraints import FixAtoms
from ase.calculators.emt import EMT
from ase.neb import NEB
from ase.optimize import BFGS
initial = read('initial.traj')
final = read('final.traj')
constraint = FixAtoms(mask=[atom.tag > 1 for atom in initial])
images = [initial]
for i in range(3):
image = initial.copy()
image.set_calculator(EMT())
image.set_constraint(constraint)
images.append(image)
images.append(final)
neb = NEB(images)
neb.interpolate()
qn = BFGS(neb, trajectory='neb.traj')
qn.run(fmax=0.05)Best,___________________________________
ABID ALI
PhD (Marie Curie-ITN) FellowTheoretical ChemistryScience Institute, University of Iceland
From: Ask Hjorth Larsen <asklarsen at gmail.com>
To: Abid Channa <abid_channa04 at yahoo.com>
Cc: Ase-users <ase-users at listserv.fysik.dtu.dk>
Sent: Tuesday, January 9, 2018 3:31 PM
Subject: Re: [ase-users] NEB Calculation
Hi,
2018-01-09 15:17 GMT+01:00 Abid Channa <abid_channa04 at yahoo.com>:
> Hey Ask Hjorth,
>
> Thanks for reply. But still I have unclear. I am trying determine MEP by
> performing NEB calculation from fcc to hcp site Via bridge.
> If I am taking system with adding adatom on fcc , it gives diffusion results
> from fcc to fcc , but I am trying from fcc to hcp
> and if I am adding adatom on hcp site, it gives results with hcp to hcp .
>
> I think there is some mis understanding in script ?
Maybe you are accidentally setting up the NEB from one image to the same image?
You would need to attach the NEB part of the code.
Best regards
Ask
>
> Best,
>
>
> ___________________________________
>
> ABID ALI
>
> PhD (Marie Curie-ITN) Fellow
> Theoretical Chemistry
> Science Institute, University of Iceland
>
> ________________________________
> From: Ask Hjorth Larsen <asklarsen at gmail.com>
> To: Abid Channa <abid_channa04 at yahoo.com>
> Cc: Ase-users <ase-users at listserv.fysik.dtu.dk>
> Sent: Tuesday, January 9, 2018 12:17 PM
> Subject: Re: [ase-users] NEB Calculation
>
> Hi,
>
> 2018-01-09 12:50 GMT+01:00 Abid Channa via ase-users
> <ase-users at listserv.fysik.dtu.dk>:
>> Hello users,
>>
>> I am doing NEB calculations . My system is Pt (fcc111) unit cell 4,4 with
>> 7
>> layers.
>>
>> My target is to determine MEP by performing NEB calculations of " Pt
>> adatom
>> diffusion from fcc-hcp sites via bridge. I am running following script .
>> it
>> gives diffusion from fcc to fcc not hcp . Is there any problem in my
>> script
>> or I am not defining correct final stage in script ? . Kindly help me in
>> order to make script or How I define my initial stage as fcc site and
>> final
>> stage as hcp site in my script.
>>
>> from ase.build import fcc111, add_adsorbate
>> from ase.constraints import FixAtoms
>> from ase.calculators.emt import EMT
>> from ase.optimize import QuasiNewton
>>
>> slab = fcc111('Pt', size=(4, 4, 7))
>> add_adsorbate(slab, 'Pt', 1.7, 'fcc')
>> slab.center(axis=2, vacuum=4.0)
>>
>> mask = [atom.tag > 5 for atom in slab]
>>
>> slab.set_constraint(FixAtoms(mask=mask))
>>
>> slab.set_calculator(EMT())
>>
>> qn = QuasiNewton(slab, trajectory='initial.traj')
>> qn.run(fmax=0.05)
>>
>> # Final state:
>> slab[-1].x += slab.get_cell()[0, 0] / 2
>
> Is that an hcp site?
>
> Try add_adsorbate(..., 'hcp') when generating the second image.
>
> Best regards
> Ask
>
>
>> qn = QuasiNewton(slab, trajectory='final.traj')
>>
>> qn.run(fmax=0.05)
>>
>> Best,
>>
>> ___________________________________
>>
>> ABID ALI
>>
>> PhD (Marie Curie-ITN) Fellow
>> Theoretical Chemistry
>> Science Institute, University of Iceland
>
>>
>>
>> _______________________________________________
>> ase-users mailing list
>> ase-users at listserv.fysik.dtu.dk
>> https://listserv.fysik.dtu.dk/mailman/listinfo/ase-users
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.fysik.dtu.dk/pipermail/ase-users/attachments/20180109/bff18dc0/attachment-0001.html>
More information about the ase-users
mailing list