Statistiques
| Révision :

root / doc / Mini_help.tex @ 4

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

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