[ase-users] NEB Calculation

Ask Hjorth Larsen asklarsen at gmail.com
Tue Jan 16 14:32:33 CET 2018


Hi,

2018-01-16 12:33 GMT+01:00 Abid Channa <abid_channa04 at yahoo.com>:
> Hey Ask Hjorth,     (Repeated : Diffusion of Pt from fcc to hcp via top)
>
> I got your point. But problem is that , if I am fixing a point at top site
> for doing one NEB calculation from fcc to top. I have to relax both stages .
> It is ok in fcc site case , while problem is occurring at ontop site (If I
> am keeping this fixed, How I relax my top system before doing NEB).

Relax the intermediate (top) configuration and use it as end-point in both NEBs.

Why would one keep it fixed when the other end points are relaxed?
You can use e.g. a FixCartesian constraint if the top configuration
happens to be unstable.

Best regards
Ask


>
> If I am not wrong, you are saying that I  do first NEB from fcc (relaxed)
> site to top (fixed/unrelaxed) and then second NEB from top (fixed) to hcp
> (relaxed) ? .
>
> Best,
>
> ___________________________________
>
>                  ABID  ALI
>
> PhD (Marie Curie-ITN) Fellow
> Theoretical Chemistry
> Science Institute, University of Iceland
>
>
>
> On Sunday, January 14, 2018, 3:18:12 PM GMT, Ask Hjorth Larsen
> <asklarsen at gmail.com> wrote:
>
>
> Hi.
>
> 2018-01-11 1:03 GMT+01:00 Abid Channa <abid_channa04 at yahoo.com>:
>> Hey Ask Hjorth,
>>
>> Bundle of thanks for your replies. this script was reaction pathway from
>> fcc
>> to hcp site via bridge.
>> Now I want to get my reaction pathway from fcc to hcp via top not bridge
>> (Diffusion of Pt adatom from fcc to hcp via top).  For doing this, How I
>> modify my script ?
>
> Since you have a fixed point in the middle now, I'd do two NEBs: One
> from fcc to top, and one from top to hcp.
>
> Best regards
>
> Ask
>
>>
>> Best,
>>
>>
>> ___________________________________
>>
>>                  ABID  ALI
>>
>> PhD (Marie Curie-ITN) Fellow
>> Theoretical Chemistry
>> Science Institute, University of Iceland
>>
>>
>>
>> On Wednesday, January 10, 2018, 10:59:47 PM GMT+5, Ask Hjorth Larsen
>> <asklarsen at gmail.com> wrote:
>>
>>
>> Hi,
>>
>> 2018-01-10 17:59 GMT+01:00 Abid Channa <abid_channa04 at yahoo.com>:
>>> My target is " Diffusion of Pt adatom from fcc to hcp via Bridge" ,
>>> system
>>> is fcc, Pt 111
>>>
>>> Script is
>>>
>>> 1- for fcc site in which I have described my initial.traj
>>>
>>> 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())
>>>
>>> # Initial state:
>>> qn = QuasiNewton(slab, trajectory='initial.traj')
>>> qn.run(fmax=0.05)
>>>
>>> 2-for hcp site in which I have described my final.traj
>>>
>>>
>>>
>>> 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, 'hcp')
>>> 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())
>>>
>>> # Final state:
>>> qn = QuasiNewton(slab, trajectory='final.traj')
>>> qn.run(fmax=0.05)
>>>
>>>  3-Script for NEB calculation in which I have defined initial.traj fcc
>>> site
>>> and final.traj hcp site.
>>>
>>>
>>> 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,
>>
>> Okay, that is clear.
>>
>> As far as I can see it works correctly though: The final five images
>> of the output trajectory describe the reaction path from the fcc site
>> to an adjacent hcp site.  What was the exact source of trouble?
>>
>> Best regards
>> Ask


More information about the ase-users mailing list