[ase-users] Restarting NEB
Roberto Schimmenti
roberto at cccp.unipa.it
Mon Nov 17 13:49:40 CET 2014
First of all thank you for your suggestion;
I tried with something like:
initial = read('initial.traj')
final = read('final.traj')
constraint = FixAtoms(mask=[atom.tag > 1 for atom in initial])
calc = Siesta(label='initial',
xc='KBM',
kpts=[10,10,1])
images = io.read('neb.traj at -5:')
for image in images[1:-1]:
image.set_calculator(calc)
image.set_constraint(constraint)
neb = NEB(images, k=[0.15, 0.15, 0.25, 0.15, 0.15], climb=True)
qn = BFGS(neb, trajectory='neb2.traj')
qn.run(fmax=0.04)
but I can argue from the out file that the neb restart the calculation
from the beginning; I tried also to delete the initial and final images
read lines with no results; moreover with this adjustement I can't specify
any costraint even if I change the for cycle with something like:
images = io.read('neb.traj at -5:')
constraint = FixAtoms(mask=[atom.tag > 1 for atom in images])
for image in images[1:-1]:
image.set_calculator(calc)
image.set_constraint(constraint)
Any suggestions???
Thank you
> On 11/12/2014 01:53 PM, Roberto Schimmenti wrote:
>> Dear ASE-users
>>
>> I'm encountering some problem for restarting NEB calculations using
>> ASE+SIESTA; I know that there are several topic concerning this in the
>> mailing list but I would like a more detailed explanation unpon setting
>> up
>> a NEB calculation using old trajectory file.
>>
>>
>> This is one of my typical input file:
>>
>> initial = read('initial.traj')
>> final = read('final.traj')
>> constraint = FixAtoms(mask=[atom.tag > 1 for atom in initial])
>>
>>
>> calc = Siesta(label='systemxx',
>> xc='KBM',
>> ....)
>>
>> images = [initial]
>> for i in range(4):
>> image = initial.copy()
>> image.set_calculator(calc)
>> image.set_constraint(constraint)
>> images.append(image)
>> images.append(final)
>>
>> neb = NEB(images,k=[0.15,0.15,0.25,0.15,0.15],climb=True)
>> neb.interpolate()
>> qn = BFGS(neb, trajectory='neb.traj')
>> qn.run(fmax=0.04)
>>
>>
>> With this I can obtain a neb.traj file in wich all the path optimization
>> are included.
>>
>> I know from the manual that it's possible to use images=
>> io.read('neb.traj'@-5) but I don't understand how this can be used for
>> taking into account only the last iterations of the trajectory file.
>> Could
>> you provide me more complete example?
>
> In your case (with 6 images) that should be something like:
>
> images = io.read('neb.traj at -6:')
> for image in images[1:-1]:
> image.set_calculator(calc)
> image.set_constraint(constraint)
>
> neb = NEB(images, k=[0.15, 0.15, 0.25, 0.15, 0.15], climb=True)
> qn = BFGS(neb, trajectory='neb2.traj')
> qn.run(fmax=0.04)
>
> Check first with ase-gui that you have the right path:
>
> ase-gui neb.traj at -6:
>
> Jens Jørgen
>
--
Roberto Schimmenti
Ph.D. student
Università degli Studi di Palermo
Dipartimento di Fisica e Chimica
Viale delle Scienze, Ed. 17
90128 PALERMO (PA)
More information about the ase-users
mailing list