Statistics
| Revision:

## root / doc / Mini_help.tex @ 9

 1 \documentclass[a4paper,11pt]{article} %\usepackage{times} \usepackage{graphicx} \usepackage[body={16cm,24.5cm}]{geometry} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{ae,aecompl} %\input{m-pictex.tex} %\usepackage{m-ch-en} \usepackage{amsmath,amssymb} %\usepackage{slashbox} %\usepackage{psfrag} %\usepackage{multirow} %\usepackage{amscd} %\usepackage{empheq} %\usepackage{yhmath} %\usepackage{array} \usepackage{fancyhdr} %\usepackage{braket} \usepackage{marvosym} %\usepackage{xr} \DeclareGraphicsExtensions{.eps,.ps} \graphicspath{{.}{../}} \renewcommand{\arraystretch}{1.2} \setcounter{tocdepth}{2} \makeatletter \@addtoreset{section}{part} \makeatother \lhead[]{} \rhead[]{} \cfoot{} \title{Opt'n Path mini-help} \author{P. Fleurat-Lessard, P. Dayal \\ Laboratoire de Chimie de l'ENS Lyon, 46 all\'ee d'Italie, F-69364 Lyon Cedex 7} \date{March 2013} \def\Path{\texttt{Opt'n Path}} \begin{document} \maketitle \section{Introduction} \Path{} is a program that can optimize a reaction path between two structures. The algorithm to optimize the path is close to the string method. The originality of this program lies in the coordinate set it can use to generate and optimize the path. This program is an independant program that calls standard electronic structure codes to get the energies and forces it needs to optimize the reaction path. For now, it is coupled to Gaussian, MOPAC, Vasp, Turbomole and Siesta. \section{Installation} We suppose here that you will install \Path{} into a directory called \texttt{optnpath}. First, create the directory: \begin{verbatim} mkdir optnpath cd optnpath mv ../optnpath_x.yy.tgz . \end{verbatim} Uncompress the archive: \begin{verbatim} gunzip optnpath_x.yy.tgz tar -xvf Optnpath.tar \end{verbatim} You should now have this \texttt{Mini\_help.pdf} file and 4 directories (doc, src, utils, examples). \section{Compilation} Go to the directory in which you have uncompressed the files. Change to the \texttt{src} directory. Edit the \texttt{Makefile} to change the \texttt{Machine} description according to the compiler you want to use. Main choices are: gfortran, g95, ifort, pgf, xlf and pathscale for now. You might also have to check that the locations of the libraries are ok. Type \texttt{make}. You should now have a file called \texttt{Path.exe} in this directory, as well as two utilities called \texttt{xyz2scan} and \texttt{xyz2path} located in the \texttt{utils} directories. You should copy all these executables to your \texttt{~/bin} directory (or any place from which they can be executed). \section{Use} \subsection{Path calculation} To call \Path{}, you can type: \verb=Path.exe Input_file Output_file= The input file \texttt{Input\_file} is based on a namelist and looks like: \begin{verbatim} &path nat=3, ! Number of atoms ngeomi=3, ! Number of initial geometries ngeomf=12, !Number of geometries along the path OptReac=.T., ! Do you want to optimize the reactants ? OptProd=.T., ! Optimize the products coord='zmat', ! We use Z-matrix coordinates maxcyc=31, ! Max number of iterations IReparam=2,! re-distribution of points along the path every 2 iterations ISpline=50, ! Start using spline interpolation at iteration 50 Hinv=.T. , ! Use inverse of the Hessian internally (default: T) MW=T, ! Works in Mass Weighted coordiante (default T) PathName='Path_HCN_zmat_test', ! Name of the file used for path outputs prog='gaussian',! we use G03 to get energy and gradients SMax=0.1 ! Displacement cannot exceed 0.1 atomic units (or mass weighted at. unit) / 3 Energy : 0.04937364 H 0.0000 0.0000 0.0340 C 0.0000 0.0000 1.1030 N 0.0000 0.0000 2.2631 3 Energy : 0.04937364 H 0.0000 1.1000 1.1030 C 0.0000 0.0000 1.1030 N 0.0000 0.0000 2.2631 3 CNH H 0.000000 0.000000 3.3 C 0.000000 0.000000 1.1 N 0.000000 0.000000 2.26 %chk=Test #P AM1 FORCE HCN est bien 0,1 H 0.000000 0.000000 0.000000 C 0.000000 0.000000 1.000 N 0.000000 0.000000 3.00 \end{verbatim} \subsubsection{Compulsory variables are:} \begin{description} \item[NGeomi:] Number of geometries defining the Initial path \item[NGeomf:] Number of geometries defining the Final path \item[Nat:] Number of atoms \end{description} \subsubsection{Other options:} \begin{description} \item[Input:] String that indicates the type of the input geometries. Accepted values are: Cart (or Xmol or Xyz), Vasp, Turbomole or Siesta. \item[Prog:] string that indicates the program that will be used for energy and gradient calculations. Accepted values are: Gaussian, Mopac, Vasp, Turbomole, Siesta or Ext. \\ \begin{itemize} \item In case of a Gaussian calculations, input must be set to Cart. One example of a gaussian input should be added at the end of the input file.See example file \texttt{Test\_HCN\_zmat\_g03.path}. \\ \item In the case of a VASP calculation, if input is set to Cart, then the preamble of a VASP calculation s\item \texttt{Mopac}: Examples using sequential call to MOPAC2009 to calculate the energies and forces along the path. hould be added at the end of the input file. See example file \texttt{Test\_VASP\_cart.path}. In the case of a VASP calculation, one should also give value of the \texttt{RunMode} variable . \item In the case of a SIESTA calculation, an example of a Siesta input file should be added at the end of the input file. See \texttt{Test\_Siesta.path}. \end{itemize} \item[RunMode:] When running on a multi-processor machine, this indicates wether \Path{} should calculate the energy and gradient of the whole path in parallel or not. User has two options. One is to calculate the energy and gradient of each point sequentially. This is usefull when running on one (or two) processors. In this case, \texttt{RunMode} should be put to \texttt{SERIAL}.When running in parallel with 8 or more processors, one can use VASP to calculate simultaneously the energies and gradients for all points, as in a normal NEB calculation. In this case, \texttt{RunMode} must be set to \texttt{PARA}. \emph{For now, this is usefull only for VASP.} \\ \item[ProgExe:] Name (with full path) of the executable to be used to get energies and gradients. For example, if VASP is used in parallel, one might have something like: \\ \verb!ProgExe='/usr/local/mpich/bin/mpirun -machinefile machine -np 8 ~/bin/VASP_46'!. Another option that I use, is to put \verb!ProgExe='./run_vasp'! and I put every option needed to run VASP into the \texttt{run\_vasp} file. \item[EReac:] (REAL) By default, \Path{} does not compute the energy of the reactants and products. This thus indicates the reactants energy to \Path{} to have better plots at the end. \item[EProd:] (REAL) By default, \Path{} does not compute the energy of the reactants and products. This thus indicates the products energy to \Path{} to have better plots. \item[PathName:] Prefix used to save the path. Default is Path \item[Poscar:] string that will be used as the prefix for the different POSCAR files in a VASP calculations. Usefull only if PathOnly=.TRUE., not used for internal calculations. \item[CalcName:] Prefix for the files used for the energy and gradient calculations \item[ISuffix:] Suffix for the input file used for energy and gradient calculations. The full inputfile name will thus be \textit{CalcName}.\textit{ISuffix}. \item[OSuffix:] Suffix for the output file used for energy and gradient calculations. The full outputfile name will thus be \textit{CalcName}.\textit{OSuffix}. \item[IGeomRef:] Index of the geometry used to construct the internal coordinates. Valid only for Coord=Zmat, Hybrid or Mixed. \item[Fact:] REAL used to define if two atoms are linked. If $d(A,B) \leq fact*(rcov(A)+rcov(B))$, then A and B are considered Linked. \item[debugFile:] Name of the file that indicates which subroutine should print debug info. \item[Coord:] System of coordinates to use. Possible choices are: \begin{itemize} \item CART (or Xyz): works in cartesian \item Zmat: works in internal coordinates (Zmat) \item Mixed: frozen atoms, as well as atoms defined by the 'cart' array(see below) are describe in CARTESIAN, whereas the others are described in Zmat \item Baker: use of Baker coordinates, also called delocalized internal coordinates \item Hybrid: geometries are described in zmat, but the gradient are used in cartesian \end{itemize} \item[Step\_method:] method to compute the step for optimizing a geometry; choices are: \begin{itemize} \item RFO: Rational function optimization \item GDIIS: Geometry optimization using direct inversion in the iterative supspace \end{itemize} \item[HUpdate:] method to update the hessian. By default, it is Murtagh-Sargent Except for geometry optimization where it is BFGS. \item[MaxCyc:] maximum number of iterations for the path optimization \item[Smax:] Maximum length of a step during path optimization \item[SThresh:] Step Threshold to consider that the path is stationary \item[GThresh:] Gradient Threshold to consider that the path is stationary, only orthogonal part is taken \item[FTan:] We moving the path, this gives the proportion of the displacement tangent to the path that is kept. FTan=1. corresponds to the full displacement, whereas FTan=0. gives a displacement orthogonal to the path. \item[IReparam:] The path is not reparameterised at each iteration. This gives the frequency of reparameterization. \item[IReparamT:] When the path is not reparameterised at each iteration, this gives the frequency of reparameterization of the \emph{tangents}. \item[ISpline:] By default, a linear interpolation is used to generate the path. This option indicates the first step where spline interpolation is used. \item[BoxTol:] Real between 0. and 1. When doing periodic calculations, it might happen that an atom moves out of the unit cell. Path detects this by comparing the displacement to boxtol: if an atom moves by more than Boxtol, then it is moved back into the unit cell. Default value: 0.5. \item[FrozTol:] (Real) This indicates the threshold to determine wether an atom moves between two images. Default is 1e-4. \item[OptGeom:] This INTEGER indicates the index of the geometry you want to optimize. If \texttt{OptGeom} is set, then \Path{} performs a geometry optimization instead of a path interpolation. \item[GeomFile:] Name of the file to print the geometries and their energy during a geometry optimization. If this variable is not given then nothing is printed. \item[AnaFile:] Name of the file to print the values of the geometrical parameters that are monitored if \texttt{AnaGeom=.TRUE.}. Default is \textit{PathName}.dat \item[GplotFile:] Name of the \texttt{gnuplot} file to plot the evolution of the geometrical parameters that are monitored if \texttt{AnaGeom=.TRUE.}. Default is \textit{PathName}.gplot %% Not described here: NMaxPtPath, NGintMax (too technical ?) \end{description} \subsubsection{Arrays:} \begin{description} \item[Rcov:] Array containing the covalent radii of the first 86 elements. You can modify it using, \verb!rcov(6)=0.8!. \item[Mass:] Array containing the atomic mass of the first 86 elements. \item[AtTypes:] Name of the different atoms used in a VASP calculations. If not given, Path will read the POTCAR file. \end{description} \subsubsection{Flags:} \begin{description} \item[MW:] Flag. True if one wants to work in Mass Weighted coordinates. Default=.TRUE. \item[Renum:] Flag. True if one wants to reoder the atoms in the initial order. default is .TRUE. unless for \texttt{Coord} equals \texttt{CART}. \item[OptProd:] True if one wants to optimize the geometry of the products. \item[OptReac:] True if one wants to optimize the geometry of the reactants. \item[CalcEProd:] if TRUE the product energy will be computed. Default is FALSE. Not Compatible with \texttt{RunMode=Para}. \item[CalcEReac:] if TRUE the reactants energy will be computed. Default is FALSE. Not Compatible with \texttt{RunMode=Para}. \item[PathOnly:] TRUE if one wants to generate the initial path, and stops. \item[Align:] If .FALSE., successive geometries along the path are not aligned on each other before path interpolation. Default is .TRUE. if there are 4 atoms or more. \item[Hinv:] if True, then Hessian inversed is used. \item[IniHup:] if True, then Hessian inverse is extrapolated using the initial path calculations. \item[HupNeighbour:] if True, then Hessian inverse is extrapolated using the neighbouring points of the path. \item[FFrozen:] True if one wants to freeze the positions of some atoms. If True, a \verb!&frozenlist! namelist containing the list of frozen atoms must be given. If VASP is used, and frozen is not given here, the program will use the F flags of the input geometry \item[FCart:] True if one wants to describe some atoms using cartesian coordinates. *** Only used in 'mixed' calculations. *** If True, a \verb!&cartlist! namelist containing the list of cart atoms must be given. By default, only frozen atoms are described in cartesian coordinates. \item[Autocart:] True if you want to let the program choosing the cartesian atoms. \item[VMD:] TRUE if you want to use VMD to look at the Path. Used only for VASP for now. \item[WriteVASP:] TRUE if you want to print the images coordinates in POSCAR files. See also the POSCAR option. This can be used only if prog or input=VASP. \item[AnaGeom:] If TRUE, Opt'n Path will create a file .dat for geometries analysis. If True, Opt'n Path will look for the AnaList namelist after the Path Namelist. \item[DynMaxStep:] if TRUE, the maximum allowed step is updated at each step, for each geometry. If energy goes up, $Smax=Smax*0.8$, if not $Smax=Smax*1.2$. It is ensured that the dynamical Smax is within $[0.5*SMax_0,2*Smax_0]$. \end{description} \subsubsection{Additional namelists:} \begin{description} \item[\&cartlist list= \ldots{} \&end] This gives the list of atoms that are described using cartesian coordinates. Read only if \texttt{FCart=.TRUE.}. To indicate an atom range, from 1 to 5 for example, one can put 1 -5 in the list. For example: \\ \texttt{\&cartlist list = 1 2 6 12 -20 \&end} \\ will described atoms 1, 2, 6, 12, 13, 14, 15, 16, 17, 18, 19 and 20 in cartesian. \item[\&Frozenlist list= \ldots{} \&end] This gives the list of atoms that are frozen during optimization. Read only if \texttt{FFrozen=.TRUE.}. To indicate an atom range, from 1 to 5 for example, one can put 1 -5 in the list. \item[\&Analist nb= \ldots{} \&end] list of variables for geometry analysis. If present and if AnaGeom=T then Opt'n Path will read it and print the values of the variable in a .dat file If AnaGeom is T but Analist is not given, then Path.dat just contains the energy. Analist contains the number of variables to monitor: Nb, and is followed by the description of the variables among: b(ond) At1 At2 a(ngle) At1 At2 At3 d(ihedral) At1 At2 At3 At4 c NbAt At1 At2 At3 At4 At5... to create a center of mass. The centers of mass are added at the end of the real atoms of the system. \end{description} \subsection{Examples} More to come... have a look at the files provided in the \texttt{examples} directory. In particular, you will find there three directories containing easy-to-use examples. That is, each directory contains all the files you need to launch the application. For now, you have working examples for: \begin{enumerate} \item \texttt{Gaussian}: Examples using sequential call to Gaussian to calculate the energies and forces along the path. \item \texttt{VASP}: Examples using to VASP to calculate the energies and forces along the path. As VASP can perform NEB calculations, Path can use it in two ways: Serial or Parallel. \begin{itemize} \item[Serial] In the Serial mode, Path uses Vasp to compute the energy and forces of each image separately (as it does for Gaussian for example). Therefore, the INCAR file should not contain any references to the number of images (no IMAGES command!). \item[Parallel] In the Parallel mode, Path uses VASP to compute at once the energies and forces for all the images (as VASP does for a NEB calculation). Therefore, the INCAR file MUST contain the IMAGES command. More, the directories 00, 01, ... should exist. \item[Home or Scratch ?] On our local cluster, it is adviced to perform the calculations on the /scratch directory that is local rather than on the /home that is mounted via NFS and is thus slow. However, when doing so, we sometimes had troubles with VASP, and discovered that all files should be copied on the /scratch of all machines. Therefore, the scripts are a bit tricky. In case your computer center is similar to ours, we provide 2 SGE scripts: \begin{itemize} \item[run\_Path\_SGE\_home] performs the VASP calculations in the /home directory \item[run\_Path\_SGE\_scratch] creates the directories, copies the files and performs the VASP calculations in the local /scratch directories. \end{itemize} \end{itemize} \item \texttt{Mopac}: Examples using sequential call to MOPAC to calculate the energies and forces along the path. \item \texttt{Siesta}: Examples using sequential call to Siesta to calculate the energies and forces along the path. \item \texttt{Test}: Examples using the analytical HCN potential energy surface to calculate the energies and forces along the path. As this is fast, we also provide other Analysis tools. See README files in the Cart and Zmat subdirectories. \end{enumerate} \subsection{Path analysis} In order to analyse the path evolution, we provide some utilities, in the \texttt{utils} directory. \texttt{xyz2scan} and \texttt{xyz2path} have to be compiled. For this, go to either the \texttt{src} or the \texttt{utils} directory and type \texttt{make utils}. Here is a brief description of these utilities. \begin{itemize} \item \texttt{AnaPath} and/or \texttt{AnaPathref} \\ These scripts analyse a calculated path. They use \texttt{xyz2path} to convert the cartesian coordinates saved by \Path{} into a data file (called PathName.datl) that be plotted using the gnuplot files that are also created. They all plot the path energy but in different ways: \begin{itemize} \item[PathName\_l.gplot] plots the energy of the first iteration (the initial path) together with the energy of the following iterations, but one at a time. \item[PathName\_l2.gplot] plots the energy of the path for all iterations, with respect to the curvilinear distance along the path. \item[PathName\_l3.gplot] plots the energy of the path for all iterations, with respect to the index of the images. \end{itemize} \item \texttt{xyz2path} and \texttt{xyz2scan} convert a bunch of cartesian coordinates into a data file. They are very similar: the only difference is the way they print their results. For \texttt{xyz2scan} the analyses are indiced using the geometry number whereas \texttt{xyz2path} computes the mass weighted distance between two geometries and uses this distance to index the results. \\ They both use a file called 'list' to perform the analysis, which has the following structure: each line contains the type of the value you want to follow, it can be: \begin{itemize} \item[b] for a Bond distance \item[a] for an angle \item[d] for a dihedral \item[c] to create a center of mass \end{itemize} This descriptor is followed by the number of the atoms involved. The exception, is the \texttt{c} command that is followed by the number of atoms used to define this center of mass, and then the index of the atoms. A typical file can be: \begin{verbatim} b 1 2 b 2 3 a 1 2 3 c 2 1 2 <- create a new atom located at the middle of the 1-2 bond. \end{verbatim} The cartesian geometries have to follow the XMol format. If the comment line contains \texttt{E=} then \texttt{xyz2scan} and \texttt{xyz2path} will read the following number and take it as the image energy. \end{itemize} \end{document}