Statistiques
| Révision :

root / doc / Mini_help.tex @ 9

Historique | Voir | Annoter | Télécharger (20,17 ko)

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

    
23

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

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

    
33
\lhead[]{}
34
\rhead[]{}
35
\cfoot{}
36
\title{Opt'n Path mini-help}
37
\author{P. Fleurat-Lessard, P. Dayal \\
38
Laboratoire de Chimie de l'ENS Lyon, 46 all\'ee d'Italie, F-69364 Lyon
39
Cedex 7}
40
\date{March 2013}
41

    
42
\def\Path{\texttt{Opt'n Path}}
43
\begin{document}
44
\maketitle
45

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

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

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

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

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

    
126
 HCN est bien 
127

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

    
133
\end{verbatim}
134

    
135
\subsubsection{Compulsory variables are:}
136
\begin{description}
137
\item[NGeomi:] Number of geometries defining the Initial path 
138
\item[NGeomf:] Number of geometries defining the Final path 
139
\item[Nat:] Number of atoms 
140
\end{description}
141

    
142
          
143
\subsubsection{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), Vasp, Turbomole or Siesta.
147
\item[Prog:] string that indicates the program that will be used for energy and gradient calculations. 
148
               Accepted values are: Gaussian, Mopac, Vasp, Turbomole, Siesta or Ext. \\
149
\begin{itemize}
150
\item   In case of a Gaussian calculations, input must be set to Cart. 
151
                One example of a gaussian input should be added at the end of the 
152
                input file.See example file \texttt{Test\_HCN\_zmat\_g03.path}. \\
153
\item       In the case of a VASP calculation, if input is set to Cart, then 
154
              the preamble of a VASP calculation s\item \texttt{Mopac}: Examples  using sequential call
155
  to MOPAC2009 to calculate the energies and forces along the path.
156
hould be added at the end of 
157
              the input file. See example file \texttt{Test\_VASP\_cart.path}. 
158
              In the case of a VASP calculation, one should also give value of the  
159
              \texttt{RunMode} variable .
160
\item  In the case of a SIESTA calculation, an example of a Siesta input file
161
     should be added at the end of the input file. See \texttt{Test\_Siesta.path}.
162
\end{itemize}
163

    
164
\item[RunMode:] When running on a multi-processor machine, this indicates
165
  wether \Path{} should calculate the energy and gradient of the whole path in parallel
166
              or not. User has two options. One is to calculate the energy and
167
              gradient of each point sequentially. This is usefull when
168
              running on one (or two) processors. In this case,
169
              \texttt{RunMode} should be put to \texttt{SERIAL}.When running
170
              in parallel with 8 or more processors, one can use VASP to
171
              calculate simultaneously the energies and gradients for all
172
              points, as in a normal NEB calculation. In this case,
173
              \texttt{RunMode} must be set to \texttt{PARA}. 
174
 \emph{For now, this is usefull only for VASP.} \\
175

    
176
\item[ProgExe:] Name (with full path) of the executable to be used to get
177
  energies and gradients. For example, if VASP is used in parallel, one might
178
  have something like: \\ 
179
\verb!ProgExe='/usr/local/mpich/bin/mpirun -machinefile machine -np 8 ~/bin/VASP_46'!.
180
Another option that I use, is to put \verb!ProgExe='./run_vasp'! and I put every option needed to run VASP
181
into the \texttt{run\_vasp} file. 
182
\item[EReac:] (REAL) By default, \Path{} does not compute the energy of the reactants
183
 and products. This thus indicates the reactants energy to \Path{} to have better plots
184
 at the end.
185
\item[EProd:] (REAL) By default, \Path{} does not compute the energy of the reactants
186
 and products. This thus indicates the products energy to \Path{} to have better plots.
187
\item[PathName:] Prefix used to save the path. Default is Path 
188
\item[Poscar:] string that will be used as the prefix for the different  
189
           POSCAR files in a VASP calculations. Usefull only if PathOnly=.TRUE., 
190
           not used for internal calculations. 
191
\item[CalcName:] Prefix for the files used for the energy and gradient calculations
192
\item[ISuffix:] Suffix for the input file used for energy and gradient calculations. 
193
The full inputfile name will thus be \textit{CalcName}.\textit{ISuffix}.
194
\item[OSuffix:] Suffix for the output file used for energy and gradient calculations.
195
 The full outputfile name will thus be \textit{CalcName}.\textit{OSuffix}.
196
\item[IGeomRef:] Index of the geometry used to construct the internal coordinates. 
197
         Valid only for Coord=Zmat, Hybrid or Mixed.
198
\item[Fact:] REAL used to define if two atoms are linked. 
199
         If $d(A,B) \leq fact*(rcov(A)+rcov(B))$, then A and B are considered Linked. 
200
\item[debugFile:] Name of the file that indicates which subroutine should print debug info. 
201
\item[Coord:] System of coordinates to use. Possible choices are: 
202
\begin{itemize}
203
\item CART (or Xyz): works in cartesian 
204
\item Zmat: works in internal coordinates (Zmat) 
205
\item Mixed: frozen atoms, as well as atoms defined by the  
206
          'cart' array(see below) are describe in CARTESIAN, whereas the 
207
          others are described in Zmat  
208
\item  Baker: use of Baker coordinates, also called delocalized internal coordinates 
209
\item Hybrid: geometries are described in zmat, but the gradient are used in cartesian 
210
\end{itemize}
211
\item[Step\_method:] method to compute the step for optimizing a geometry; choices are:  
212
\begin{itemize}
213
\item RFO: Rational function optimization 
214
\item GDIIS: Geometry optimization using direct inversion in the iterative supspace 
215
\end{itemize}
216
\item[HUpdate:] method to update the hessian. By default, it is Murtagh-Sargent 
217
         Except for geometry optimization where it is BFGS. 
218
\item[MaxCyc:] maximum number of iterations for the path optimization 
219
\item[Smax:] Maximum length of a step during path optimization 
220
\item[SThresh:] Step Threshold to consider that the path is stationary 
221
\item[GThresh:] Gradient Threshold to consider that the path is stationary, only orthogonal part is taken 
222
\item[FTan:] We moving the path, this gives the proportion of the displacement tangent to the path 
223
         that is kept. FTan=1. corresponds to the full displacement,  
224
         whereas FTan=0. gives a displacement orthogonal to the path. 
225
\item[IReparam:] The path is not reparameterised at each iteration. This gives the 
226
frequency of reparameterization.  
227
\item[IReparamT:] When the path is not reparameterised at each iteration, this gives the 
228
frequency of reparameterization of the \emph{tangents}.
229
\item[ISpline:] By default, a linear interpolation is used to generate the path. 
230
            This option indicates the first step where spline interpolation is used. 
231
\item[BoxTol:]  Real between 0. and 1. When doing periodic calculations, 
232
        it might happen that an atom moves out of the unit cell.
233
        Path detects this by comparing the displacement to boxtol:
234
        if an atom moves by more than Boxtol, then it is moved back into the unit cell. Default value: 0.5.
235
\item[FrozTol:]  (Real) This indicates the threshold to determine wether an atom moves between two images. Default is 1e-4.
236
\item[OptGeom:] This INTEGER indicates the index of the geometry you want to optimize. 
237
If \texttt{OptGeom} is set, then \Path{} performs a geometry optimization instead of a path interpolation.
238
\item[GeomFile:]  Name of the file to print the geometries and their energy
239
      during a geometry optimization. If this variable is not given
240
      then nothing is printed.
241
\item[AnaFile:]  Name of the file to print the values of the geometrical parameters
242
that are monitored if \texttt{AnaGeom=.TRUE.}. Default is \textit{PathName}.dat
243
\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
244
%% Not described here: NMaxPtPath, NGintMax (too technical ?)
245
\end{description}
246
           
247
\subsubsection{Arrays:}
248
\begin{description}
249
\item[Rcov:] Array containing the covalent radii of the first 86 elements. 
250
         You can modify it using, \verb!rcov(6)=0.8!. 
251
\item[Mass:] Array containing the atomic mass of the first 86 elements. 
252
\item[AtTypes:] Name of the different atoms used in a VASP calculations. 
253
          If not given, Path will read the POTCAR file. 
254
\end{description}
255
           
256
\subsubsection{Flags:}
257
\begin{description}
258
\item[MW:]  Flag. True if one wants to work in Mass Weighted coordinates. Default=.TRUE. 
259
\item[Renum:] Flag. True if one wants to reoder the atoms in the
260
  initial order. default is .TRUE. unless for \texttt{Coord} equals \texttt{CART}.
261
\item[OptProd:] True if one wants to optimize the geometry of the products. 
262
\item[OptReac:] True if one wants to optimize the geometry of the reactants. 
263
\item[CalcEProd:] if TRUE the product energy will be
264
  computed. Default is FALSE. Not Compatible with \texttt{RunMode=Para}. 
265
\item[CalcEReac:] if TRUE the reactants energy will be
266
  computed. Default is FALSE. Not Compatible with \texttt{RunMode=Para}. 
267
\item[PathOnly:] TRUE if one wants to generate the initial path, and stops.  
268
\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.
269
\item[Hinv:] if True, then Hessian inversed is used. 
270
\item[IniHup:] if True, then Hessian inverse is extrapolated
271
  using the initial path calculations.  
272
\item[HupNeighbour:]  if True, then Hessian inverse is
273
  extrapolated using the neighbouring points of the path.  
274
\item[FFrozen:] True if one wants to freeze the positions of some atoms.  
275
                If True, a \verb!&frozenlist! namelist containing the
276
                list of frozen atoms must be given.  
277
                 If VASP is used, and frozen is not given 
278
        here, the program will use the F flags of the input geometry 
279
\item[FCart:]  True if one wants to describe some atoms using cartesian coordinates.  
280
               *** Only used in 'mixed' calculations. *** 
281
             If True, a \verb!&cartlist! namelist containing the list of cart atoms must be given. 
282
             By default, only frozen atoms are described in cartesian coordinates. 
283
        
284
\item[Autocart:] True if you want to let the program choosing the cartesian atoms. 
285
\item[VMD:] TRUE if you want to use VMD to look at the Path. Used only for VASP for now.
286
\item[WriteVASP:] TRUE if you want to print the images coordinates in POSCAR files.
287
See also the POSCAR option. This can be used only if prog or input=VASP.
288
\item[AnaGeom:] If TRUE, Opt'n Path will create a file .dat for geometries analysis.
289
        If True, Opt'n Path will look for the AnaList namelist after the Path Namelist.
290
\item[DynMaxStep:] if TRUE, the maximum allowed step is updated at each step, for each geometry.
291
        If energy goes up, $Smax=Smax*0.8$, if not $Smax=Smax*1.2$. 
292
       It is ensured that the dynamical Smax is within $[0.5*SMax_0,2*Smax_0]$.
293
\end{description}
294

    
295
\subsubsection{Additional namelists:}
296
\begin{description}
297
\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: \\
298
\texttt{\&cartlist list = 1 2 6 12 -20 \&end} \\
299
will described atoms 1, 2, 6, 12, 13, 14, 15, 16, 17, 18, 19 and 20 in cartesian.
300
\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. 
301
\item[\&Analist nb= \ldots{} \&end] list of variables for geometry analysis. If present and if AnaGeom=T then
302
     Opt'n Path will read it and print the values of the variable in a .dat file
303
    If AnaGeom is T but Analist is not given, then Path.dat just contains the energy. 
304
Analist contains the number of variables to monitor: Nb, and is followed by the description
305
of the variables among:
306
b(ond) At1 At2
307
a(ngle) At1 At2 At3
308
d(ihedral) At1 At2 At3 At4
309
c NbAt At1 At2 At3 At4 At5... to create a center of mass. The centers of mass are added
310
at the end of the real atoms of the system.
311
\end{description}
312

    
313
\subsection{Examples}
314
More to come...      have a look at the files provided in the
315
\texttt{examples} directory. In particular, you will find there three
316
directories containing easy-to-use examples. That is, each directory contains
317
all the files you need to launch the application. For now, you have working
318
examples for:
319
\begin{enumerate}
320
\item \texttt{Gaussian}: Examples  using sequential call
321
  to Gaussian to calculate the energies and forces along the path. 
322
\item \texttt{VASP}: Examples  using 
323
  to VASP to calculate the energies and forces along the path.
324
As VASP can perform NEB calculations, Path can use it in two ways:
325
Serial or Parallel. 
326
\begin{itemize}
327
\item[Serial] 
328
In the Serial mode, Path uses Vasp to compute the energy and forces of
329
each image separately (as it does for Gaussian for example). 
330
Therefore, the INCAR file should not contain any references to the
331
number of images (no IMAGES command!). 
332

    
333
\item[Parallel]
334
In the Parallel mode, Path uses VASP to compute at once the energies
335
and forces for all the images (as VASP does for a NEB calculation). 
336
Therefore, the INCAR file MUST contain the IMAGES command.
337
More, the directories 00, 01, ... should exist.
338

    
339
\item[Home or Scratch ?]
340
On our local cluster, it is adviced to perform the calculations on the
341
/scratch directory that is local rather than on the /home that is
342
mounted  via NFS and is thus slow. 
343
However, when doing so, we sometimes had troubles with VASP, and
344
discovered that all files should be copied on the /scratch of all
345
machines. 
346
Therefore, the scripts are a bit tricky.
347
In case your computer center is similar to ours, we provide 2 SGE
348
scripts: 
349
\begin{itemize}
350
\item[run\_Path\_SGE\_home] performs the VASP calculations in the /home
351
directory 
352
\item[run\_Path\_SGE\_scratch] creates the directories, copies the
353
  files and performs the VASP calculations in the local /scratch
354
  directories.
355
\end{itemize}
356
\end{itemize}
357
\item \texttt{Mopac}: Examples  using sequential call
358
  to MOPAC to calculate the energies and forces along the path.
359
\item \texttt{Siesta}: Examples  using sequential call
360
  to Siesta to calculate the energies and forces along the path.
361
\item \texttt{Test}: Examples  using the analytical HCN potential
362
  energy surface to calculate the energies and forces along the path.
363
As this is fast, we also provide other Analysis tools.
364
See README files in the Cart and Zmat subdirectories.
365
\end{enumerate}
366

    
367
\subsection{Path analysis}
368
In order to analyse the path evolution, we provide some utilities, in
369
the \texttt{utils} directory. \texttt{xyz2scan} and \texttt{xyz2path}
370
have to be compiled. For this, go to either the \texttt{src} or the
371
\texttt{utils} directory and type \texttt{make utils}.
372
Here is a brief description of these utilities.
373

    
374
\begin{itemize}
375
\item \texttt{AnaPath} and/or \texttt{AnaPathref} \\
376
These scripts analyse a calculated path. They use \texttt{xyz2path} to
377
convert the cartesian coordinates saved by \Path{} into a data file
378
(called PathName.datl) that be plotted using the gnuplot files that are
379
also created. They all plot the path energy  but in different ways:
380
\begin{itemize}
381
\item[PathName\_l.gplot] plots the energy of the first iteration (the
382
  initial path) together with the energy of the following iterations,
383
  but one at a time.
384
\item[PathName\_l2.gplot]  plots the energy of the path for all
385
  iterations, with respect to the
386
curvilinear distance along the path.
387
\item[PathName\_l3.gplot]  plots the energy of the path for all
388
  iterations, with respect to the index of the images.
389
\end{itemize}
390
\item \texttt{xyz2path} and \texttt{xyz2scan} convert a bunch of
391
  cartesian coordinates into 
392
  a data file. They are very similar: the only difference is the way
393
  they print their results. For \texttt{xyz2scan} the analyses are
394
  indiced using the geometry number whereas \texttt{xyz2path} computes
395
  the mass weighted distance between two geometries and uses this
396
  distance to index the results. \\
397
They both use a file called 'list' to perform the analysis,  which has
398
the following structure:  each line contains the type of the value you
399
want to follow, it can be:
400
\begin{itemize}
401
\item[b]  for a Bond distance
402
\item[a] for an angle
403
\item[d] for a dihedral
404
\item[c] to create a center of mass
405
\end{itemize}
406
This descriptor is followed by the number of the atoms involved.  The
407
exception, is the \texttt{c} command that is followed by the number of
408
atoms used to define this center of mass, and then the index of the atoms.
409
A typical file can be:
410
\begin{verbatim}
411
 b  1  2
412
 b 2  3
413
 a 1 2 3
414
 c  2 1 2   <- create a new atom located at the middle of the 1-2 bond.
415
\end{verbatim}
416

    
417
The cartesian geometries have to follow the XMol format. If the
418
comment line contains \texttt{E=} then \texttt{xyz2scan} and
419
\texttt{xyz2path} will read the following number and take it as the
420
image energy.
421
\end{itemize}
422

    
423
\end{document}