18.11.2012 Views

ASE Manual Release 3.6.1.2825 CAMd - CampOS Wiki

ASE Manual Release 3.6.1.2825 CAMd - CampOS Wiki

ASE Manual Release 3.6.1.2825 CAMd - CampOS Wiki

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>ASE</strong> <strong>Manual</strong>, <strong>Release</strong> 3.6.1.2828<br />

In all three filters only the hydrogen atoms are made visible. When asking for the positions only the positions of<br />

the hydrogen atoms are returned.<br />

7.16 Nudged elastic band<br />

The Nudged Elastic Band method is a technique for finding transition paths (and corresponding energy barriers)<br />

between given initial and final states. The method involves constructing a “chain” of “replicas” or “images” of the<br />

system and relaxing them in a certain way.<br />

Relevant literature References:<br />

1. H. Jonsson, G. Mills, and K. W. Jacobsen, in ‘Classical and Quantum Dynamics in Condensed Phase Systems’,<br />

edited by B. J. Berne, G. Cicotti, and D. F. Coker, World Scientific, 1998 [standard formulation]<br />

2. ‘Improved Tangent Estimate in the NEB method for Finding Minimum Energy Paths and Saddle Points’,<br />

Graeme Henkelman and Hannes Jonsson, J. Chem. Phys. 113, 9978 (2000) [improved tangent estimates]<br />

3. ‘A Climbing-Image NEB Method for Finding Saddle Points and Minimum Energy Paths’, Graeme Henkelman,<br />

Blas P. Uberuaga and Hannes Jonsson, J. Chem. Phys. 113, 9901 (2000)<br />

7.16.1 The NEB class<br />

This module defines one class:<br />

class ase.neb.NEB(images, k=0.1, climb=False, parallel=False, world=None)<br />

Nudged elastic band.<br />

images: list of Atoms objects Images defining path from initial to final state.<br />

k: float or list of floats Spring constant(s). One number or one for each spring.<br />

climb: bool Use a climbing image (default is no climbing image).<br />

parallel: bool Distribute images over processors.<br />

Example of use, between initial and final state which have been previously saved in A.traj and B.traj:<br />

from ase import io<br />

from ase.neb import NEB<br />

from ase.optimize import MDMin<br />

# Read initial and final states:<br />

initial = io.read(’A.traj’)<br />

final = io.read(’B.traj’)<br />

# Make a band consisting of 5 images:<br />

images = [initial]<br />

images += [initial.copy() for i in range(3)]<br />

images += [final]<br />

neb = NEB(images)<br />

# Interpolate linearly the potisions of the three middle images:<br />

neb.interpolate()<br />

# Set calculators:<br />

for image in images[1:4]:<br />

image.set_calculator(MyCalculator(...))<br />

# Optimize:<br />

optimizer = MDMin(neb, trajectory=’A2B.traj’)<br />

optimizer.run(fmax=0.04)<br />

Be sure to use the copy method (or similar) to create new instances of atoms within the list of images fed to the<br />

NEB. Do not use something like [initial for i in range(3)], as it will only create references to the original atoms<br />

object.<br />

Notice the use of the interpolate() method to get a good initial guess for the path from A to B.<br />

7.16. Nudged elastic band 143

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!