next up previous contents
Next: 6 Performances Up: User's Guide for The Previous: 4.2 Parallelization levels   Contents

5 Using PWneb

Reminder 1: NEB calculations are no longer performed by pw.x. In order to perform a NEB calculation, you should compile NEB/src/neb.x (command make neb from the main QUANTUM ESPRESSO directory, or commend make from the NEB directory).

Reminder 2: neb.x does not read from standard input. You cannot use input redirection, as in neb.x < neb.in ....

A NEB calculation can be run in two different ways:

  1. by reading a single input file, to be specified using command-line options neb.x -inp or neb.x -input;
  2. by specifying the number N of images (i.e. points in the configuration space), using command-line option neb.x -input_images N, and providing input data in a neb.dat file and in files pw_X.in, X = 1,..., N .

For case 1) the input file contains KEYWORDS (see below for format specifications). These KEYWORDS enable the code to distinguish which part of the file contains NEB-specific data and which parts contains input data for the energy and force computational engine (currently only PW). After the parsing, different files are generated: neb.dat, with NEB-specific input data, and a set of PWscf input files pw_1.in,..,pw_N.in PWscf input files, one for each set of atomic position. All options for a single SCF calculation apply.

The general structure of the file to be parsed is:

BEGIN
BEGIN_PATH_INPUT
~... neb specific namelists and cards
END_PATH_INPUT
BEGIN_ENGINE_INPUT
BEGIN_ENGINE_INPUT
~...pw specific namelists and cards
BEGIN_POSITIONS
FIRST_IMAGE
~...pw ATOMIC_POSITIONS card
INTERMEDIATE_IMAGE
~...pw ATOMIC_POSITIONS card
LAST_IMAGE
~...pw ATOMIC_POSITIONS card
END_POSITIONS
~... other pw specific cards
END_ENGINE_INPUT
END

For case 2), the neb.dat file and all pw_X.in should be already present.

A detailed description of all NEB-specific input variables is contained in files Doc/INPUT_NEB.*. See Example 17.

A NEB calculation will produce a number of files in the current directory (i.e. in the directory were the code is run) containing additional information on the minimum-energy path. The files are organized as following (where prefix is specified in the input file):

prefix.dat
is a three-column file containing the position of each image on the reaction coordinate (arb. units), its energy in eV relative to the energy of the first image and the residual error for the image in eV/a0 .
prefix.int
contains an interpolation of the path energy profile that pass exactly through each image; it is computed using both the image energies and their derivatives
prefix.path
information used by QUANTUM ESPRESSO to restart a path calculation, its format depends on the input details and is undocumented
prefix.axsf
atomic positions of all path images in the XCrySDen animation format: to visualize it, use xcrysden -axsf prefix.axsf
prefix.xyz
atomic positions of all path images in the generic xyz format, used by many quantum-chemistry softwares
prefix.crd
path information in the input format used by pw.x, suitable for a manual restart of the calculation

"NEB calculation are a bit tricky in general and require extreme care to be setup correctly. NEB also takes easily hundreds of iteration to converge, of course depending on the number of atoms and of images. Here is some free advice:

  1. Don't use Climbing Image (CI) from the beginning. It makes convergence slower, especially if the special image changes during the convergence process (this may happen if CI_scheme='auto' and if it does it may mess up everything). Converge your calculation, then restart from the last configuration with CI option enabled (note that this will increase the barrier).
  2. Carefully choose the initial path. Remember that QUANTUM ESPRESSO assumes continuity between the first and the last image at the initial condition. In other words, periodic images are NOT used; you may have to manually translate an atom by one or more unit cell base vectors in order to have a meaningful initial path. You can visualize NEB input files with XCrySDen as animations, take some time to check if any atoms overlap or get very close in the initial path (you will have to add intermediate images, in this case).
  3. Try to start the NEB process with most atomic positions fixed, in order to converge the more "problematic" ones, before leaving all atoms move.
  4. Especially for larger systems, you can start NEB with lower accuracy (less k-points, lower cutoff) and then increase it when it has converged to refine your calculation.
  5. Use the Broyden algorithm instead of the default one: it is a bit more fragile, but it removes the problem of "oscillations" in the calculated activation energies. If these oscillations persist, and you cannot afford more images, focus to a smaller problem, decompose it into pieces.
  6. A gross estimate of the required number of iterations is (number of images) * (number of atoms) * 3. Atoms that do not move should not be counted. It may take half that many iterations, or twice as many, but more or less that's the order of magnitude, unless one starts from a very good or very bad initial guess.
(Courtesy of Lorenzo Paulatto)

The code path_int.x is is a tool to generate a new path (what is actually generated is the restart file) starting from an old one through interpolation (cubic splines). The new path can be discretized with a different number of images (this is its main purpose), images are equispaced and the interpolation can be also performed on a subsection of the old path. The input file needed by path_int.x can be easily set up with the help of the self-explanatory path_int.sh shell script.


next up previous contents
Next: 6 Performances Up: User's Guide for The Previous: 4.2 Parallelization levels   Contents
Layla Martin-Samos Colomer 2012-05-10