------------------------------------------------------------------------
INPUT FILE DESCRIPTION

Program: neb.x / NEB / Quantum Espresso
------------------------------------------------------------------------


Input data format: { } = optional, [ ] = it depends, | = or

All quantities whose dimensions are not explicitly specified are in
RYDBERG ATOMIC UNITS

BEWARE: TABS, DOS <CR><LF> CHARACTERS ARE POTENTIAL SOURCES OF TROUBLE

General input file structure:
===============================================================================

neb.x DOES NOT READ FROM STANDARD INPUT
There are two ways for running a calculation with neb.x:
1) specifying a file to parse with the ./neb.x -inp or
 neb.x -input command line option.
2) or specifying the number of copies of PWscf input ./neb.x -input\_images.

For case 1) a file containing KEYWORDS has to be written (see below).
These KEYWORDS tells the parser which part of the file regards neb specifics
and which part regards the energy/force engine (at the moment only PW).
After the parsing different files are generated: neb.dat, with
neb specific variables and a set of pw_*.in PWscf input files like
one for each input 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
...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) neb.dat and all pw_1.in, pw_2.in ... should be already present.

Structure of the input data (file neb.dat) :
===============================================================================

&PATH
  ...
/

[ CLIMBING_IMAGES
   list of images, separated by a comma ]



========================================================================
NAMELIST: &PATH

   +--------------------------------------------------------------------
   Variable:       string_method
   
   Type:           CHARACTER
   Default:        'neb'
   Description:    a string describing the task to be performed:
                      'neb',
                      'smd'
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       restart_mode
   
   Type:           CHARACTER
   Default:        'from_scratch'
   Description:    'from_scratch'  : from scratch
                   
                   'restart'       : from previous interrupted run
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       nstep_path
   
   Type:           INTEGER
   Description:    number of ionic + electronic steps
   Default:        1
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       num_of_images
   
   Type:           INTEGER
   Default:        0
   Description:    Number of points used to discretize the path
                   (it must be larger than 3).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       opt_scheme
   
   Type:           CHARACTER
   Default:        'quick-min'
   Description:    Specify the type of optimization scheme:
                   
                   'sd'         : steepest descent
                   
                   'broyden'    : quasi-Newton Broyden's second method (suggested)
                   
                   'broyden2'   : another variant of the quasi-Newton Broyden's
                                  second method to be tested and compared with the
                                  previous one.
                   
                   'quick-min'  : an optimisation algorithm based on the
                                  projected velocity Verlet scheme
                   
                   'langevin'   : finite temperature langevin dynamics of the
                                  string (smd only). It is used to compute the
                                  average path and the free-energy profile.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       CI_scheme
   
   Type:           CHARACTER
   Default:        'no-CI'
   Description:    Specify the type of Climbing Image scheme:
                   
                   'no-CI'      : climbing image is not used
                   
                   'auto'       : original CI scheme. The image highest in energy
                                  does not feel the effect of springs and is
                                  allowed to climb along the path
                   
                   'manual'     : images that have to climb are manually selected.
                                  See also CLIMBING_IMAGES card
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       first_last_opt
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    Also the first and the last configurations are optimized
                   "on the fly" (these images do not feel the effect of the springs).
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       minimum_image
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    Assume a "minimum image criterion" to build the path. If an atom
                   moves by more than half the length of a crystal axis between one
                   image and the next in the input (before interpolation),
                   an appropriate periodic replica of that atom is chosen.
                   Useful to avoid jumps in the initial reaction path.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       temp_req
   
   Type:           REAL
   Default:        0.D0 Kelvin
   Description:    Temperature used for the langevin dynamics of the string.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       ds
   
   Type:           REAL
   Default:        1.D0
   Description:    Optimisation step length ( Hartree atomic units ).
                   If opt_scheme="broyden", ds is used as a guess for the
                   diagonal part of the Jacobian matrix.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variables:      k_max, k_min
   
   Type:           REAL
   Default:        0.1D0 Hartree atomic units
   Description:    Set them to use a Variable Elastic Constants scheme
                   elastic constants are in the range [ k_min, k_max ]
                   this is useful to rise the resolution around the saddle point.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       path_thr
   
   Type:           REAL
   Default:        0.05D0 eV / Angstrom
   Description:    The simulation stops when the error ( the norm of the force
                   orthogonal to the path in eV/A ) is less than path_thr.
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       use_masses
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If. TRUE. the optimisation of the path is performed using
                   mass-weighted coordinates. Useful together with quick-min
                   optimization scheme, if some bonds are much stiffer than
                   others. By assigning a larger (fictitious) mass to atoms
                   with stiff bonds, one may use a longer time step "ds"
   +--------------------------------------------------------------------
   
   +--------------------------------------------------------------------
   Variable:       use_freezing
   
   Type:           LOGICAL
   Default:        .FALSE.
   Description:    If. TRUE. the images are optimised according to their error:
                   only those images with an error larger than half of the largest
                   are optimised. The other images are kept frozen.
   +--------------------------------------------------------------------
   
===END OF NAMELIST======================================================


========================================================================
CARD: CLIMBING_IMAGES 

   OPTIONAL CARD, NEEDED ONLY IF CI_SCHEME = 'MANUAL', IGNORED OTHERWISE !
   
   /////////////////////////////////////////
   // Syntax:                             //
   /////////////////////////////////////////
   
      CLIMBING_IMAGES 
         index1, index2, ... indexN
   
   /////////////////////////////////////////
   
   DESCRIPTION OF ITEMS:
   
      +--------------------------------------------------------------------
      Variables:      index1, index2, ... indexN
      
      Type:           INTEGER
      Description:    index1, index2, ..., indexN are indices of the images to which the
                      Climbing-Image procedure apply. If more than one image is specified
                      they must be separated by a comma.
      +--------------------------------------------------------------------
      
      
===END OF CARD==========================================================