root / doc / Mini_help.tex
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} |