[ase-users] NEB Calculation
Ask Hjorth Larsen
asklarsen at gmail.com
Tue Jan 9 19:13:09 CET 2018
Hi,
2018-01-09 17:03 GMT+01:00 Abid Channa <abid_channa04 at yahoo.com>:
> 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.
I don't understand what initial1, final1, initial2 and final2 are as
they are not in the script.
>
> Attached whole script system preparation and then NEB calculation
>
> 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
If you want to do the NEB in the same script, make sure to take a copy:
initial = slab.copy()
slab[-1].x += ....
Else you only modify the previous Atoms object. Maybe that was the
source of the problem?
Best regards
Ask
> 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) 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 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
>>
>>
>>
>
>
More information about the ase-users
mailing list