Statistiques
| Révision :

root / doc / Mini_help.tex @ 6

Historique | Voir | Annoter | Télécharger (15,58 ko)

1 1 pfleura2
\documentclass[a4paper,11pt]{article}
2 1 pfleura2
\usepackage{a4wide}
3 1 pfleura2
%\usepackage{times}
4 1 pfleura2
\usepackage{graphicx}
5 1 pfleura2
\usepackage[body={16cm,24.5cm}]{geometry}
6 1 pfleura2
\usepackage[latin1]{inputenc}
7 1 pfleura2
\usepackage[T1]{fontenc}
8 1 pfleura2
\usepackage{ae,aecompl}
9 1 pfleura2
%\input{m-pictex.tex}
10 1 pfleura2
%\usepackage{m-ch-en}
11 1 pfleura2
\usepackage{amsmath,amssymb}
12 1 pfleura2
%\usepackage{slashbox}
13 1 pfleura2
%\usepackage{psfrag}
14 1 pfleura2
%\usepackage{multirow}
15 1 pfleura2
%\usepackage{amscd}
16 1 pfleura2
%\usepackage{empheq}
17 1 pfleura2
%\usepackage{yhmath}
18 1 pfleura2
%\usepackage{array}
19 1 pfleura2
\usepackage{fancyhdr}
20 1 pfleura2
%\usepackage{braket}
21 1 pfleura2
\usepackage{marvosym}
22 1 pfleura2
%\usepackage{xr}
23 1 pfleura2
24 1 pfleura2
25 1 pfleura2
\DeclareGraphicsExtensions{.eps,.ps}
26 1 pfleura2
\graphicspath{{.}{../}}
27 1 pfleura2
28 1 pfleura2
\renewcommand{\arraystretch}{1.2}
29 1 pfleura2
\setcounter{tocdepth}{2}
30 1 pfleura2
\makeatletter
31 1 pfleura2
\@addtoreset{section}{part}
32 1 pfleura2
\makeatother
33 1 pfleura2
34 1 pfleura2
\lhead[]{}
35 1 pfleura2
\rhead[]{}
36 1 pfleura2
\cfoot{}
37 1 pfleura2
\title{OpenPath mini-help}
38 1 pfleura2
\author{P. Fleurat-Lessard, P. Dayal \\
39 1 pfleura2
Laboratoire de Chimie de l'ENS Lyon, 46 all?e d'Italie, F-69364 Lyon
40 1 pfleura2
Cedex 7}
41 1 pfleura2
\date{Feb. 2011}
42 1 pfleura2
43 1 pfleura2
\def\Path{\texttt{OpenPath}}
44 1 pfleura2
\begin{document}
45 1 pfleura2
\maketitle
46 1 pfleura2
47 1 pfleura2
\section{introduction}
48 1 pfleura2
\Path{} is a program that can optimize a reaction path between two
49 1 pfleura2
  structures. The algorithm to optimize the path is close to the string
50 1 pfleura2
  method. The originality of this program lies in the coordinate set it
51 1 pfleura2
 can use to generate and optimize the path.
52 1 pfleura2
53 1 pfleura2
This program is an independant program that calls standard electronic
54 1 pfleura2
  structure codes to get the energies and forces it needs to optimize
55 1 pfleura2
  the reaction path. For now, it is coupled to Gaussian, MOPAC2009,
56 1 pfleura2
  Vasp and Turbomole.
57 1 pfleura2
58 1 pfleura2
\section{Installation}
59 1 pfleura2
We suppose here that you will install \Path{} into a directory called
60 1 pfleura2
\texttt{OpenPath}. First, create the directory:
61 1 pfleura2
\begin{verbatim}
62 1 pfleura2
 mkdir OpenPath
63 1 pfleura2
 cd OpenPath
64 1 pfleura2
 mv ../OpenPath.tgz .
65 1 pfleura2
\end{verbatim}
66 1 pfleura2
Uncompress the archive:
67 1 pfleura2
\begin{verbatim}
68 1 pfleura2
 gunzip OpenPath.tgz
69 1 pfleura2
 tar -xvf OpenPath.tar
70 1 pfleura2
\end{verbatim}
71 1 pfleura2
You should now have this \texttt{Mini\_help.pdf} file and 4 directories (doc, src, utils, examples).
72 1 pfleura2
73 1 pfleura2
\section{Compilation}
74 1 pfleura2
Go to the directory  in which you have uncompressed the files.
75 1 pfleura2
Change to the \texttt{src} directory.
76 1 pfleura2
Edit the \texttt{Makefile} to change the \texttt{Machine} description
77 1 pfleura2
according to the compiler you want to use. Main choices are:
78 1 pfleura2
gfortran, g95, ifort, pgf, xlf and pathscale for now. You might also
79 1 pfleura2
have to check that the locations of
80 1 pfleura2
the libraries are ok.
81 1 pfleura2
Type \texttt{make}. You should now have a file called
82 1 pfleura2
\texttt{Path.exe} in this directory, as well as two utilities called
83 1 pfleura2
\texttt{xyz2scan} and \texttt{xyz2path} located in the \texttt{utils}
84 1 pfleura2
directories. You should copy all these executables to your
85 1 pfleura2
\texttt{~/bin} directory (or any place from which they can be executed).
86 1 pfleura2
87 1 pfleura2
\section{Use}
88 1 pfleura2
\subsection{Path calculation}
89 1 pfleura2
 To call \Path{}, you can type:
90 1 pfleura2
\verb=Path.exe Input_file Output_file=
91 1 pfleura2
The input file \texttt{Input\_file} is based on a namelist and looks like:
92 1 pfleura2
\begin{verbatim}
93 1 pfleura2
 &path
94 1 pfleura2
 nat=3, ! Number of atoms
95 1 pfleura2
 ngeomi=3, ! Number of initial geometries
96 1 pfleura2
 ngeomf=12, !Number of geometries along the path
97 1 pfleura2
 OptReac=.T., ! Do you want to optimize the reactants ?
98 1 pfleura2
 OptProd=.T., ! Optimize the products
99 1 pfleura2
 coord='zmat', ! We use Z-matrix coordinates
100 1 pfleura2
 maxcyc=31, ! Max number of iterations
101 1 pfleura2
 IReparam=2,! re-distribution of points along the path every 2 iterations
102 1 pfleura2
 ISpline=50, ! Start using spline interpolation at iteration 50
103 1 pfleura2
 Hinv=.T. , ! Use inverse of the Hessian internally (default: T)
104 1 pfleura2
 MW=T, ! Works in Mass Weighted coordiante (default T)
105 1 pfleura2
 PathName='Path_HCN_zmat_test', ! Name of the file used for path outputs
106 1 pfleura2
 prog='gaussian',! we use G03 to get energy and gradients
107 1 pfleura2
 SMax=0.1 ! Displacement cannot exceed 0.1 atomic units (or mass weighted at. unit)
108 1 pfleura2
 /
109 1 pfleura2
  3
110 1 pfleura2
 Energy :      0.04937364
111 1 pfleura2
 H     0.0000     0.0000     0.0340
112 1 pfleura2
 C     0.0000     0.0000     1.1030
113 1 pfleura2
 N     0.0000     0.0000     2.2631
114 1 pfleura2
  3
115 1 pfleura2
 Energy :      0.04937364
116 1 pfleura2
 H     0.0000     1.1000     1.1030
117 1 pfleura2
 C     0.0000     0.0000     1.1030
118 1 pfleura2
 N     0.0000     0.0000     2.2631
119 1 pfleura2
3
120 1 pfleura2
 CNH
121 1 pfleura2
H 0.000000    0.000000    3.3
122 1 pfleura2
C 0.000000    0.000000    1.1
123 1 pfleura2
N 0.000000    0.000000    2.26
124 1 pfleura2
%chk=Test
125 1 pfleura2
#P  AM1 FORCE
126 1 pfleura2
127 1 pfleura2
 HCN est bien
128 1 pfleura2
129 1 pfleura2
0,1
130 1 pfleura2
H 0.000000    0.000000    0.000000
131 1 pfleura2
C 0.000000    0.000000    1.000
132 1 pfleura2
N 0.000000    0.000000    3.00
133 1 pfleura2
134 1 pfleura2
\end{verbatim}
135 1 pfleura2
136 1 pfleura2
   Compulsory variables are:
137 1 pfleura2
\begin{description}
138 1 pfleura2
\item          NGeomi: Number of geometries defining the Initial path
139 1 pfleura2
\item          NGeomf: Number of geometries defining the Final path
140 1 pfleura2
\item         Nat   : Number of atoms
141 1 pfleura2
\end{description}
142 1 pfleura2
143 1 pfleura2
          Other options
144 1 pfleura2
\begin{description}
145 1 pfleura2
\item  Input: string that indicates the type of the input geometries.
146 1 pfleura2
          Accepted values are: Cart (or Xmol or Xyz) or Vasp
147 1 pfleura2
\item    Prog: string that indicates the program that will be used for energy and gradient calculations.
148 1 pfleura2
               Accepted values are: Gaussian, Vasp or Ext. \\
149 1 pfleura2
                In case of a Gaussian calculations, input must be set to Cart.
150 1 pfleura2
                One example of a gaussian input should be added at the end of the
151 1 pfleura2
                input file.See example file \texttt{Test\_HCN\_zmat\_g03.path}. \\
152 1 pfleura2
                In the case of a VASP calculation, if input is set to Cart, then
153 1 pfleura2
              the preamble of a VASP calculation should be added at the end of
154 1 pfleura2
              the input file. See example file \texttt{Test\_VASP\_cart.path}.
155 1 pfleura2
              In the case of a VASP calculation, one should also give value of the
156 1 pfleura2
              \texttt{RunMode} variable .
157 1 pfleura2
158 1 pfleura2
\item RunMode: This indicates wether \Path{} should use VASP
159 1 pfleura2
              routine to calculate the energy and gradient of the whole path
160 1 pfleura2
              or not. User has two options. One is to calculate the energy and
161 1 pfleura2
              gradient of each point sequentially. This is usefull when
162 1 pfleura2
              running on one (or two) processors. In this case,
163 1 pfleura2
              \texttt{RunMode} should be put to \texttt{SERIAL}.When running
164 1 pfleura2
              in parallel with 8 or more processors, one can use VASP to
165 1 pfleura2
              calculate simultaneously the energies and gradients for all
166 1 pfleura2
              points, as in a normal NEB calculation. In this case,
167 1 pfleura2
              \texttt{RunMode} must be set to \texttt{PARA}.
168 1 pfleura2
\item ProgExe: Name (with full path) of the executable to be used to get
169 1 pfleura2
  energies and gradients. For example, if VASP is used in parallel, one might
170 1 pfleura2
  have something like: \\
171 1 pfleura2
\verb!ProgExe='/usr/local/mpich/bin/mpirun -machinefile machine -np 8 ~/bin/VASP_46'!.
172 1 pfleura2
Another option that I use, is to put \verb!ProgExe='./run_vasp'! and I put every option needed to run VASP
173 1 pfleura2
into the \texttt{run\_vasp} file.
174 1 pfleura2
\item   PathName: Prefix used to save the path. Default is Path
175 1 pfleura2
\item   Poscar: string that will be used as the prefix for the different
176 1 pfleura2
           POSCAR files in a VASP calculations. Usefull only if PathOnly=.TRUE.,
177 1 pfleura2
           not used for internal calculations.
178 1 pfleura2
\item   IGeomRef: Index of the geometry used to construct the internal coordinates.
179 1 pfleura2
         Valid only for Coord=Zmat, Hybrid or Mixed
180 1 pfleura2
\item   Fact: REAL used to define if two atoms are linked.
181 1 pfleura2
         If $d(A,B) \leq fact*(rcov(A)+rcov(B))$, then A and B are considered Linked.
182 1 pfleura2
\item   debugFile: Name of the file that indicates which subroutine should print debug info.
183 1 pfleura2
\item   Coord: System of coordinates to use. Possible choices are:
184 1 pfleura2
          - CART (or Xyz): works in cartesian
185 1 pfleura2
          - Zmat: works in internal coordinates (Zmat)
186 1 pfleura2
          - Mixed: frozen atoms, as well as atoms defined by the
187 1 pfleura2
          'cart' array(see below) are describe in CARTESIAN, whereas the
188 1 pfleura2
          others are described in Zmat
189 1 pfleura2
          - Baker: use of Baker coordinates, also called delocalized internal coordinates
190 1 pfleura2
          - Hybrid: geometries are described in zmat, but the gradient are used in cartesian
191 1 pfleura2
\item   Step\_method: method to compute the step for optimizing a geometry; choices are:
192 1 pfleura2
          - RFO: Rational function optimization
193 1 pfleura2
          - GDIIS: Geometry optimization using direct inversion in the iterative supspace
194 1 pfleura2
\item    HUpdate: method to update the hessian. By default, it is Murtagh-Sargent
195 1 pfleura2
         Except for geometry optimization where it is BFGS.
196 1 pfleura2
\item   MaxCyc: maximum number of iterations for the path optimization
197 1 pfleura2
\item   Smax: Maximum length of a step during path optimization
198 1 pfleura2
\item   SThresh: Step Threshold to consider that the path is stationary
199 1 pfleura2
\item   GThresh: Gradient Threshold to consider that the path is stationary, only orthogonal part is taken
200 1 pfleura2
\item   FTan: We moving the path, this gives the proportion of the displacement tangent to the path
201 1 pfleura2
         that is kept. FTan=1. corresponds to the full displacement,
202 1 pfleura2
         whereas FTan=0. gives a displacement orthogonal to the path.
203 1 pfleura2
\item   IReparam: The path is not reparameterised at each iteration. This gives the frequency of reparameterization.
204 1 pfleura2
\item   ISpline: By default, a linear interpolation is used to generate the path.
205 1 pfleura2
            This option indicates the first step where spline interpolation is used.
206 1 pfleura2
\end{description}
207 1 pfleura2
208 1 pfleura2
          Arrays:
209 1 pfleura2
\begin{description}
210 1 pfleura2
\item   Rcov: Array containing the covalent radii of the first 80 elements.
211 1 pfleura2
         You can modify it using, \verb!rcov(6)=0.8!.
212 1 pfleura2
\item   Mass: Array containing the atomic mass of the first 80 elements.
213 1 pfleura2
\item   AtTypes: Name of the different atoms used in a VASP calculations.
214 1 pfleura2
          If not given, Path will read the POTCAR file.
215 1 pfleura2
\end{description}
216 1 pfleura2
217 1 pfleura2
          Flags:
218 1 pfleura2
\begin{description}
219 1 pfleura2
\item        MW:  Flag. True if one wants to work in Mass Weighted coordinates. Default=.TRUE.
220 1 pfleura2
\item       Renum: Flag. True if one wants to reoder the atoms in the
221 1 pfleura2
  initial order. default is .TRUE. most of the time.
222 1 pfleura2
\item       OptProd: True if one wants to optimize the geometry of the products.
223 1 pfleura2
\item       OptReac: True if one wants to optimize the geometry of the reactants.
224 1 pfleura2
\item       CalcEProd: if TRUE the product energy will be
225 1 pfleura2
  computed. Default is FALSE. Not Compatible with RunMode=Para".
226 1 pfleura2
\item       CalcEReac: if TRUE the reactants energy will be
227 1 pfleura2
  computed. Default is FALSE. Not Compatible with RunMode=Para".
228 1 pfleura2
\item       PathOnly:TRUE if one wants to generate the initial path, and stops.
229 1 pfleura2
\item       Hinv: if True, then Hessian inversed is used.
230 1 pfleura2
\item       IniHup: if True, then Hessian inverse is extrapolated
231 1 pfleura2
  using the initial path calculations.
232 1 pfleura2
\item       HupNeighbour: if True, then Hessian inverse is
233 1 pfleura2
  extrapolated using the neighbouring points of the path.
234 1 pfleura2
\item       FFrozen: True if one wants to freeze the positions of some atoms.
235 1 pfleura2
                If True, a \verb!&frozenlist! namelist containing the
236 1 pfleura2
                list of frozen atoms must be given.
237 1 pfleura2
                 If VASP is used, and frozen is not given
238 1 pfleura2
        here, the program will use the F flags of the input geometry
239 1 pfleura2
\item       FCart:  True if one wants to describe some atoms using cartesian coordinates.
240 1 pfleura2
               *** Only used in 'mixed' calculations. ***
241 1 pfleura2
             If True, a \verb!&cartlist! namelist containing the list of cart atoms must be given.
242 1 pfleura2
             By default, only frozen atoms are described in cartesian coordinates.
243 1 pfleura2
244 1 pfleura2
\item       Autocart: True if you want to let the program choosing the cartesian atoms.
245 1 pfleura2
\item       VMD: TRUE if you want to use VMD to look at the Path. Used only for VASP for now
246 1 pfleura2
\end{description}
247 1 pfleura2
248 1 pfleura2
More to come...      have a look at the files provided in the
249 1 pfleura2
\texttt{examples} directory. In particular, you will find there three
250 1 pfleura2
directories containing easy-to-use examples. That is, each directory contains
251 1 pfleura2
all the files you need to launch the application. For now, you have working
252 1 pfleura2
examples for:
253 1 pfleura2
\begin{enumerate}
254 1 pfleura2
\item \texttt{Gaussian}: Examples  using sequential call
255 1 pfleura2
  to Gaussian to calculate the energies and forces along the path.
256 1 pfleura2
\item \texttt{VASP}: Examples  using
257 1 pfleura2
  to VASP to calculate the energies and forces along the path.
258 1 pfleura2
As VASP can perform NEB calculations, Path can use it in two ways:
259 1 pfleura2
Serial or Parallel.
260 1 pfleura2
\begin{itemize}
261 1 pfleura2
\item[Serial]
262 1 pfleura2
In the Serial mode, Path uses Vasp to compute the energy and forces of
263 1 pfleura2
each image separately (as it does for Gaussian for example).
264 1 pfleura2
Therefore, the INCAR file should not contain any references to the
265 1 pfleura2
number of images (no IMAGES command!).
266 1 pfleura2
267 1 pfleura2
\item[Parallel]
268 1 pfleura2
In the Parallel mode, Path uses VASP to compute at once the energies
269 1 pfleura2
and forces for all the images (as VASP does for a NEB calculation).
270 1 pfleura2
Therefore, the INCAR file MUST contain the IMAGES command.
271 1 pfleura2
More, the directories 00, 01, ... should exist.
272 1 pfleura2
273 1 pfleura2
\item[Home or Scratch ?]
274 1 pfleura2
On our local cluster, it is adviced to perform the calculations on the
275 1 pfleura2
/scratch directory that is local rather than on the /home that is
276 1 pfleura2
mounted  via NFS and is thus slow.
277 1 pfleura2
However, when doing so, we sometimes had troubles with VASP, and
278 1 pfleura2
discovered that all files should be copied on the /scratch of all
279 1 pfleura2
machines.
280 1 pfleura2
Therefore, the scripts are a bit tricky.
281 1 pfleura2
In case your computer center is similar to ours, we provide 2 SGE
282 1 pfleura2
scripts:
283 1 pfleura2
\begin{itemize}
284 1 pfleura2
\item[run\_Path\_SGE\_home] performs the VASP calculations in the /home
285 1 pfleura2
directory
286 1 pfleura2
\item[run\_Path\_SGE\_scratch] creates the directories, copies the
287 1 pfleura2
  files and performs the VASP calculations in the local /scratch
288 1 pfleura2
  directories.
289 1 pfleura2
\end{itemize}
290 1 pfleura2
\end{itemize}
291 1 pfleura2
\item \texttt{Mopac}: Examples  using sequential call
292 1 pfleura2
  to MOPAC2009 to calculate the energies and forces along the path.
293 1 pfleura2
\item \texttt{Test}: Examples  using the analytical HCN potential
294 1 pfleura2
  energy surface to calculate the energies and forces along the path.
295 1 pfleura2
As this is fast, we also provide other Analysis tools.
296 1 pfleura2
See README files in the Cart and Zmat subdirectories.
297 1 pfleura2
\end{enumerate}
298 1 pfleura2
299 1 pfleura2
\subsection{Path analysis}
300 1 pfleura2
In order to analyse the path evolution, we provide some utilities, in
301 1 pfleura2
the \texttt{utils} directory. \texttt{xyz2scan} and \texttt{xyz2path}
302 1 pfleura2
have to be compiled. For this, go to either the \texttt{src} or the
303 1 pfleura2
\texttt{utils} directory and type \texttt{make utils}.
304 1 pfleura2
Here is a brief description of these utilities.
305 1 pfleura2
306 1 pfleura2
\begin{itemize}
307 1 pfleura2
\item \texttt{AnaPath} and/or \texttt{AnaPathref} \\
308 1 pfleura2
These scripts analyse a calculated path. They use \texttt{xyz2path} to
309 1 pfleura2
convert the cartesian coordinates saved by \Path{} into a data file
310 1 pfleura2
(called PathName.datl) that be plotted using the gnuplot files that are
311 1 pfleura2
also created. They all plot the path energy  but in different ways:
312 1 pfleura2
\begin{itemize}
313 1 pfleura2
\item[PathName\_l.gplot] plots the energy of the first iteration (the
314 1 pfleura2
  initial path) together with the energy of the following iterations,
315 1 pfleura2
  but one at a time.
316 1 pfleura2
\item[PathName\_l2.gplot]  plots the energy of the path for all
317 1 pfleura2
  iterations, with respect to the
318 1 pfleura2
curvilinear distance along the path.
319 1 pfleura2
\item[PathName\_l3.gplot]  plots the energy of the path for all
320 1 pfleura2
  iterations, with respect to the index of the images.
321 1 pfleura2
\end{itemize}
322 1 pfleura2
\item \texttt{xyz2path} and \texttt{xyz2scan} convert a bunch of
323 1 pfleura2
  cartesian coordinates into
324 1 pfleura2
  a data file. They are very similar: the only difference is the way
325 1 pfleura2
  they print their results. For \texttt{xyz2scan} the analyses are
326 1 pfleura2
  indiced using the geometry number whereas \texttt{xyz2path} computes
327 1 pfleura2
  the mass weighted distance between two geometries and uses this
328 1 pfleura2
  distance to index the results. \\
329 1 pfleura2
They both use a file called 'list' to perform the analysis,  which has
330 1 pfleura2
the following structure:  each line contains the type of the value you
331 1 pfleura2
want to follow, it can be:
332 1 pfleura2
\begin{itemize}
333 1 pfleura2
\item[b]  for a Bond distance
334 1 pfleura2
\item[a] for an angle
335 1 pfleura2
\item[d] for a dihedral
336 1 pfleura2
\item[c] to create a center of mass
337 1 pfleura2
\end{itemize}
338 1 pfleura2
This descriptor is followed by the number of the atoms involved.  The
339 1 pfleura2
exception, is the \texttt{c} command that is followed by the number of
340 1 pfleura2
atoms used to define this center of mass, and then the index of the atoms.
341 1 pfleura2
A typical file can be:
342 1 pfleura2
\begin{verbatim}
343 1 pfleura2
 b  1  2
344 1 pfleura2
 b 2  3
345 1 pfleura2
 a 1 2 3
346 1 pfleura2
 c  2 1 2   <- create a new atom located at the middle of the 1-2 bond.
347 1 pfleura2
\end{verbatim}
348 1 pfleura2
349 1 pfleura2
The cartesian geometries have to follow the XMol format. If the
350 1 pfleura2
comment line contains \texttt{E=} then \texttt{xyz2scan} and
351 1 pfleura2
\texttt{xyz2path} will read the following number and take it as the
352 1 pfleura2
image energy.
353 1 pfleura2
\end{itemize}
354 1 pfleura2
355 1 pfleura2
\end{document}