Statistiques
| Révision :

root / doc / Mini_help.tex @ 4

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

1
\documentclass[a4paper,11pt]{article}
2
\usepackage{a4wide}
3
%\usepackage{times}
4
\usepackage{graphicx}
5
\usepackage[body={16cm,24.5cm}]{geometry}
6
\usepackage[latin1]{inputenc}
7
\usepackage[T1]{fontenc}
8
\usepackage{ae,aecompl} 
9
%\input{m-pictex.tex}
10
%\usepackage{m-ch-en}
11
\usepackage{amsmath,amssymb}
12
%\usepackage{slashbox}
13
%\usepackage{psfrag}
14
%\usepackage{multirow}
15
%\usepackage{amscd}
16
%\usepackage{empheq}
17
%\usepackage{yhmath}
18
%\usepackage{array}
19
\usepackage{fancyhdr}
20
%\usepackage{braket}
21
\usepackage{marvosym}
22
%\usepackage{xr}
23

    
24

    
25
\DeclareGraphicsExtensions{.eps,.ps}
26
\graphicspath{{.}{../}}
27

    
28
\renewcommand{\arraystretch}{1.2}
29
\setcounter{tocdepth}{2}
30
\makeatletter
31
\@addtoreset{section}{part}
32
\makeatother
33

    
34
\lhead[]{}
35
\rhead[]{}
36
\cfoot{}
37
\title{OpenPath mini-help}
38
\author{P. Fleurat-Lessard, P. Dayal \\
39
Laboratoire de Chimie de l'ENS Lyon, 46 all?e d'Italie, F-69364 Lyon
40
Cedex 7}
41
\date{Feb. 2011}
42

    
43
\def\Path{\texttt{OpenPath}}
44
\begin{document}
45
\maketitle
46

    
47
\section{introduction}
48
\Path{} is a program that can optimize a reaction path between two
49
  structures. The algorithm to optimize the path is close to the string
50
  method. The originality of this program lies in the coordinate set it
51
 can use to generate and optimize the path.
52

    
53
This program is an independant program that calls standard electronic
54
  structure codes to get the energies and forces it needs to optimize
55
  the reaction path. For now, it is coupled to Gaussian, MOPAC2009,
56
  Vasp and Turbomole.
57

    
58
\section{Installation}
59
We suppose here that you will install \Path{} into a directory called
60
\texttt{OpenPath}. First, create the directory: 
61
\begin{verbatim}
62
 mkdir OpenPath
63
 cd OpenPath
64
 mv ../OpenPath.tgz .
65
\end{verbatim}
66
Uncompress the archive:
67
\begin{verbatim}
68
 gunzip OpenPath.tgz
69
 tar -xvf OpenPath.tar
70
\end{verbatim}
71
You should now have this \texttt{Mini\_help.pdf} file and 4 directories (doc, src, utils, examples).
72

    
73
\section{Compilation}
74
Go to the directory  in which you have uncompressed the files.
75
Change to the \texttt{src} directory. 
76
Edit the \texttt{Makefile} to change the \texttt{Machine} description
77
according to the compiler you want to use. Main choices are:
78
gfortran, g95, ifort, pgf, xlf and pathscale for now. You might also
79
have to check that the locations of 
80
the libraries are ok.
81
Type \texttt{make}. You should now have a file called
82
\texttt{Path.exe} in this directory, as well as two utilities called
83
\texttt{xyz2scan} and \texttt{xyz2path} located in the \texttt{utils}
84
directories. You should copy all these executables to your
85
\texttt{~/bin} directory (or any place from which they can be executed).
86

    
87
\section{Use}
88
\subsection{Path calculation}
89
 To call \Path{}, you can type:
90
\verb=Path.exe Input_file Output_file=
91
The input file \texttt{Input\_file} is based on a namelist and looks like:
92
\begin{verbatim}
93
 &path
94
 nat=3, ! Number of atoms
95
 ngeomi=3, ! Number of initial geometries 
96
 ngeomf=12, !Number of geometries along the path
97
 OptReac=.T., ! Do you want to optimize the reactants ?
98
 OptProd=.T., ! Optimize the products
99
 coord='zmat', ! We use Z-matrix coordinates
100
 maxcyc=31, ! Max number of iterations 
101
 IReparam=2,! re-distribution of points along the path every 2 iterations
102
 ISpline=50, ! Start using spline interpolation at iteration 50
103
 Hinv=.T. , ! Use inverse of the Hessian internally (default: T)
104
 MW=T, ! Works in Mass Weighted coordiante (default T)
105
 PathName='Path_HCN_zmat_test', ! Name of the file used for path outputs
106
 prog='gaussian',! we use G03 to get energy and gradients
107
 SMax=0.1 ! Displacement cannot exceed 0.1 atomic units (or mass weighted at. unit)
108
 /
109
  3
110
 Energy :      0.04937364
111
 H     0.0000     0.0000     0.0340
112
 C     0.0000     0.0000     1.1030
113
 N     0.0000     0.0000     2.2631
114
  3
115
 Energy :      0.04937364
116
 H     0.0000     1.1000     1.1030
117
 C     0.0000     0.0000     1.1030
118
 N     0.0000     0.0000     2.2631
119
3
120
 CNH
121
H 0.000000    0.000000    3.3
122
C 0.000000    0.000000    1.1
123
N 0.000000    0.000000    2.26
124
%chk=Test
125
#P  AM1 FORCE
126

    
127
 HCN est bien 
128

    
129
0,1
130
H 0.000000    0.000000    0.000000
131
C 0.000000    0.000000    1.000
132
N 0.000000    0.000000    3.00
133

    
134
\end{verbatim}
135

    
136
   Compulsory variables are: 
137
\begin{description}
138
\item          NGeomi: Number of geometries defining the Initial path 
139
\item          NGeomf: Number of geometries defining the Final path 
140
\item         Nat   : Number of atoms 
141
\end{description}
142
           
143
          Other options 
144
\begin{description}
145
\item  Input: string that indicates the type of the input geometries.
146
          Accepted values are: Cart (or Xmol or Xyz) or Vasp 
147
\item    Prog: string that indicates the program that will be used for energy and gradient calculations. 
148
               Accepted values are: Gaussian, Vasp or Ext. \\
149
                In case of a Gaussian calculations, input must be set to Cart. 
150
                One example of a gaussian input should be added at the end of the 
151
                input file.See example file \texttt{Test\_HCN\_zmat\_g03.path}. \\
152
                In the case of a VASP calculation, if input is set to Cart, then 
153
              the preamble of a VASP calculation should be added at the end of 
154
              the input file. See example file \texttt{Test\_VASP\_cart.path}. 
155
              In the case of a VASP calculation, one should also give value of the  
156
              \texttt{RunMode} variable .
157

    
158
\item RunMode: This indicates wether \Path{} should use VASP
159
              routine to calculate the energy and gradient of the whole path
160
              or not. User has two options. One is to calculate the energy and
161
              gradient of each point sequentially. This is usefull when
162
              running on one (or two) processors. In this case,
163
              \texttt{RunMode} should be put to \texttt{SERIAL}.When running
164
              in parallel with 8 or more processors, one can use VASP to
165
              calculate simultaneously the energies and gradients for all
166
              points, as in a normal NEB calculation. In this case,
167
              \texttt{RunMode} must be set to \texttt{PARA}.
168
\item ProgExe: Name (with full path) of the executable to be used to get
169
  energies and gradients. For example, if VASP is used in parallel, one might
170
  have something like: \\ 
171
\verb!ProgExe='/usr/local/mpich/bin/mpirun -machinefile machine -np 8 ~/bin/VASP_46'!.
172
Another option that I use, is to put \verb!ProgExe='./run_vasp'! and I put every option needed to run VASP
173
into the \texttt{run\_vasp} file. 
174
\item   PathName: Prefix used to save the path. Default is Path 
175
\item   Poscar: string that will be used as the prefix for the different  
176
           POSCAR files in a VASP calculations. Usefull only if PathOnly=.TRUE., 
177
           not used for internal calculations. 
178
\item   IGeomRef: Index of the geometry used to construct the internal coordinates. 
179
         Valid only for Coord=Zmat, Hybrid or Mixed 
180
\item   Fact: REAL used to define if two atoms are linked. 
181
         If $d(A,B) \leq fact*(rcov(A)+rcov(B))$, then A and B are considered Linked. 
182
\item   debugFile: Name of the file that indicates which subroutine should print debug info. 
183
\item   Coord: System of coordinates to use. Possible choices are: 
184
          - CART (or Xyz): works in cartesian 
185
          - Zmat: works in internal coordinates (Zmat) 
186
          - Mixed: frozen atoms, as well as atoms defined by the  
187
          'cart' array(see below) are describe in CARTESIAN, whereas the 
188
          others are described in Zmat  
189
          - Baker: use of Baker coordinates, also called delocalized internal coordinates 
190
          - Hybrid: geometries are described in zmat, but the gradient are used in cartesian 
191
\item   Step\_method: method to compute the step for optimizing a geometry; choices are:  
192
          - RFO: Rational function optimization 
193
          - GDIIS: Geometry optimization using direct inversion in the iterative supspace 
194
\item    HUpdate: method to update the hessian. By default, it is Murtagh-Sargent 
195
         Except for geometry optimization where it is BFGS. 
196
\item   MaxCyc: maximum number of iterations for the path optimization 
197
\item   Smax: Maximum length of a step during path optimization 
198
\item   SThresh: Step Threshold to consider that the path is stationary 
199
\item   GThresh: Gradient Threshold to consider that the path is stationary, only orthogonal part is taken 
200
\item   FTan: We moving the path, this gives the proportion of the displacement tangent to the path 
201
         that is kept. FTan=1. corresponds to the full displacement,  
202
         whereas FTan=0. gives a displacement orthogonal to the path. 
203
\item   IReparam: The path is not reparameterised at each iteration. This gives the frequency of reparameterization. 
204
\item   ISpline: By default, a linear interpolation is used to generate the path. 
205
            This option indicates the first step where spline interpolation is used. 
206
\end{description}
207
           
208
          Arrays: 
209
\begin{description}
210
\item   Rcov: Array containing the covalent radii of the first 80 elements. 
211
         You can modify it using, \verb!rcov(6)=0.8!. 
212
\item   Mass: Array containing the atomic mass of the first 80 elements. 
213
\item   AtTypes: Name of the different atoms used in a VASP calculations. 
214
          If not given, Path will read the POTCAR file. 
215
\end{description}
216
           
217
          Flags: 
218
\begin{description}
219
\item        MW:  Flag. True if one wants to work in Mass Weighted coordinates. Default=.TRUE. 
220
\item       Renum: Flag. True if one wants to reoder the atoms in the
221
  initial order. default is .TRUE. most of the time.  
222
\item       OptProd: True if one wants to optimize the geometry of the products. 
223
\item       OptReac: True if one wants to optimize the geometry of the reactants. 
224
\item       CalcEProd: if TRUE the product energy will be
225
  computed. Default is FALSE. Not Compatible with RunMode=Para". 
226
\item       CalcEReac: if TRUE the reactants energy will be
227
  computed. Default is FALSE. Not Compatible with RunMode=Para". 
228
\item       PathOnly:TRUE if one wants to generate the initial path, and stops.  
229
\item       Hinv: if True, then Hessian inversed is used. 
230
\item       IniHup: if True, then Hessian inverse is extrapolated
231
  using the initial path calculations.  
232
\item       HupNeighbour: if True, then Hessian inverse is
233
  extrapolated using the neighbouring points of the path.  
234
\item       FFrozen: True if one wants to freeze the positions of some atoms.  
235
                If True, a \verb!&frozenlist! namelist containing the
236
                list of frozen atoms must be given.  
237
                 If VASP is used, and frozen is not given 
238
        here, the program will use the F flags of the input geometry 
239
\item       FCart:  True if one wants to describe some atoms using cartesian coordinates.  
240
               *** Only used in 'mixed' calculations. *** 
241
             If True, a \verb!&cartlist! namelist containing the list of cart atoms must be given. 
242
             By default, only frozen atoms are described in cartesian coordinates. 
243
        
244
\item       Autocart: True if you want to let the program choosing the cartesian atoms. 
245
\item       VMD: TRUE if you want to use VMD to look at the Path. Used only for VASP for now 
246
\end{description}
247

    
248
More to come...      have a look at the files provided in the
249
\texttt{examples} directory. In particular, you will find there three
250
directories containing easy-to-use examples. That is, each directory contains
251
all the files you need to launch the application. For now, you have working
252
examples for:
253
\begin{enumerate}
254
\item \texttt{Gaussian}: Examples  using sequential call
255
  to Gaussian to calculate the energies and forces along the path. 
256
\item \texttt{VASP}: Examples  using 
257
  to VASP to calculate the energies and forces along the path.
258
As VASP can perform NEB calculations, Path can use it in two ways:
259
Serial or Parallel. 
260
\begin{itemize}
261
\item[Serial] 
262
In the Serial mode, Path uses Vasp to compute the energy and forces of
263
each image separately (as it does for Gaussian for example). 
264
Therefore, the INCAR file should not contain any references to the
265
number of images (no IMAGES command!). 
266

    
267
\item[Parallel]
268
In the Parallel mode, Path uses VASP to compute at once the energies
269
and forces for all the images (as VASP does for a NEB calculation). 
270
Therefore, the INCAR file MUST contain the IMAGES command.
271
More, the directories 00, 01, ... should exist.
272

    
273
\item[Home or Scratch ?]
274
On our local cluster, it is adviced to perform the calculations on the
275
/scratch directory that is local rather than on the /home that is
276
mounted  via NFS and is thus slow. 
277
However, when doing so, we sometimes had troubles with VASP, and
278
discovered that all files should be copied on the /scratch of all
279
machines. 
280
Therefore, the scripts are a bit tricky.
281
In case your computer center is similar to ours, we provide 2 SGE
282
scripts: 
283
\begin{itemize}
284
\item[run\_Path\_SGE\_home] performs the VASP calculations in the /home
285
directory 
286
\item[run\_Path\_SGE\_scratch] creates the directories, copies the
287
  files and performs the VASP calculations in the local /scratch
288
  directories.
289
\end{itemize}
290
\end{itemize}
291
\item \texttt{Mopac}: Examples  using sequential call
292
  to MOPAC2009 to calculate the energies and forces along the path.
293
\item \texttt{Test}: Examples  using the analytical HCN potential
294
  energy surface to calculate the energies and forces along the path.
295
As this is fast, we also provide other Analysis tools.
296
See README files in the Cart and Zmat subdirectories.
297
\end{enumerate}
298

    
299
\subsection{Path analysis}
300
In order to analyse the path evolution, we provide some utilities, in
301
the \texttt{utils} directory. \texttt{xyz2scan} and \texttt{xyz2path}
302
have to be compiled. For this, go to either the \texttt{src} or the
303
\texttt{utils} directory and type \texttt{make utils}.
304
Here is a brief description of these utilities.
305

    
306
\begin{itemize}
307
\item \texttt{AnaPath} and/or \texttt{AnaPathref} \\
308
These scripts analyse a calculated path. They use \texttt{xyz2path} to
309
convert the cartesian coordinates saved by \Path{} into a data file
310
(called PathName.datl) that be plotted using the gnuplot files that are
311
also created. They all plot the path energy  but in different ways:
312
\begin{itemize}
313
\item[PathName\_l.gplot] plots the energy of the first iteration (the
314
  initial path) together with the energy of the following iterations,
315
  but one at a time.
316
\item[PathName\_l2.gplot]  plots the energy of the path for all
317
  iterations, with respect to the
318
curvilinear distance along the path.
319
\item[PathName\_l3.gplot]  plots the energy of the path for all
320
  iterations, with respect to the index of the images.
321
\end{itemize}
322
\item \texttt{xyz2path} and \texttt{xyz2scan} convert a bunch of
323
  cartesian coordinates into 
324
  a data file. They are very similar: the only difference is the way
325
  they print their results. For \texttt{xyz2scan} the analyses are
326
  indiced using the geometry number whereas \texttt{xyz2path} computes
327
  the mass weighted distance between two geometries and uses this
328
  distance to index the results. \\
329
They both use a file called 'list' to perform the analysis,  which has
330
the following structure:  each line contains the type of the value you
331
want to follow, it can be:
332
\begin{itemize}
333
\item[b]  for a Bond distance
334
\item[a] for an angle
335
\item[d] for a dihedral
336
\item[c] to create a center of mass
337
\end{itemize}
338
This descriptor is followed by the number of the atoms involved.  The
339
exception, is the \texttt{c} command that is followed by the number of
340
atoms used to define this center of mass, and then the index of the atoms.
341
A typical file can be:
342
\begin{verbatim}
343
 b  1  2
344
 b 2  3
345
 a 1 2 3
346
 c  2 1 2   <- create a new atom located at the middle of the 1-2 bond.
347
\end{verbatim}
348

    
349
The cartesian geometries have to follow the XMol format. If the
350
comment line contains \texttt{E=} then \texttt{xyz2scan} and
351
\texttt{xyz2path} will read the following number and take it as the
352
image energy.
353
\end{itemize}
354

    
355
\end{document}