root / doc / Mini_help.tex @ 2
Historique | Voir | Annoter | Télécharger (15,31 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 HesUpd: 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 initial order. default is .TRUE. most of the time. |
221 |
\item OptProd: True if one wants to optimize the geometry of the products. |
222 |
\item OptReac: True if one wants to optimize the geometry of the reactants. |
223 |
\item PathOnly:TRUE if one wants to generate the initial path, and stops. |
224 |
\item Hinv: if True, then Hessian inversed is used. |
225 |
\item IniHup: if True, then Hessian inverse is extrapolated using the initial path calculations. |
226 |
\item HupNeighbour: if True, then Hessian inverse is extrapolated using the neighbouring points of the path. |
227 |
\item FFrozen: True if one wants to freeze the positions of some atoms. |
228 |
If True, a \verb!&frozenlist! namelist containing the list of frozen atoms must be given. |
229 |
If VASP is used, and frozen is not given |
230 |
here, the program will use the F flags of the input geometry |
231 |
\item FCart: True if one wants to describe some atoms using cartesian coordinates. |
232 |
*** Only used in 'mixed' calculations. *** |
233 |
If True, a \verb!&cartlist! namelist containing the list of cart atoms must be given. |
234 |
By default, only frozen atoms are described in cartesian coordinates. |
235 |
|
236 |
\item Autocart: True if you want to let the program choosing the cartesian atoms. |
237 |
\item VMD: TRUE if you want to use VMD to look at the Path. Used only for VASP for now |
238 |
\end{description} |
239 |
|
240 |
More to come... have a look at the files provided in the |
241 |
\texttt{examples} directory. In particular, you will find there three |
242 |
directories containing easy-to-use examples. That is, each directory contains |
243 |
all the files you need to launch the application. For now, you have working |
244 |
examples for: |
245 |
\begin{enumerate} |
246 |
\item \texttt{Gaussian}: Examples using sequential call |
247 |
to Gaussian to calculate the energies and forces along the path. |
248 |
\item \texttt{VASP}: Examples using |
249 |
to VASP to calculate the energies and forces along the path. |
250 |
As VASP can perform NEB calculations, Path can use it in two ways: |
251 |
Serial or Parallel. |
252 |
\begin{itemize} |
253 |
\item[Serial] |
254 |
In the Serial mode, Path uses Vasp to compute the energy and forces of each image separately (as it does for Gaussian for example). |
255 |
Therefore, the INCAR file should not contain any references to the number of images (no IMAGES command!). |
256 |
|
257 |
\item[Parallel] |
258 |
In the Parallel mode, Path uses VASP to compute at once the energies and forces for all the images (as VASP does for a NEB calculation). |
259 |
Therefore, the INCAR file MUST contain the IMAGES command. |
260 |
More, the directories 00, 01, ... should exist. |
261 |
|
262 |
\item[Home or Scratch ?] |
263 |
On our local cluster, it is adviced to perform the calculations on the |
264 |
/scratch directory that is local rather than on the /home that is |
265 |
mounted via NFS and is thus slow. |
266 |
However, when doing so, we sometimes had troubles with VASP, and |
267 |
discovered that all files should be copied on the /scratch of all |
268 |
machines. |
269 |
Therefore, the scripts are a bit tricky. |
270 |
In case your computer center is similar to ours, we provide 2 SGE |
271 |
scripts: |
272 |
\begin{itemize} |
273 |
\item[run\_Path\_SGE\_home] performs the VASP calculations in the /home |
274 |
directory |
275 |
\item[run\_Path\_SGE\_scratch] creates the directories, copies the |
276 |
files and performs the VASP calculations in the local /scratch |
277 |
directories. |
278 |
\end{itemize} |
279 |
\end{itemize} |
280 |
\item \texttt{Mopac}: Examples using sequential call |
281 |
to MOPAC2009 to calculate the energies and forces along the path. |
282 |
\item \texttt{Test}: Examples using the analytical HCN potential |
283 |
energy surface to calculate the energies and forces along the path. |
284 |
As this is fast, we also provide other Analysis tools. |
285 |
See README files in the Cart and Zmat subdirectories. |
286 |
\end{enumerate} |
287 |
|
288 |
\subsection{Path analysis} |
289 |
In order to analyse the path evolution, we provide some utilities, in |
290 |
the \texttt{utils} directory. \texttt{xyz2scan} and \texttt{xyz2path} |
291 |
have to be compiled. For this, go to either the \texttt{src} or the |
292 |
\texttt{utils} directory and type \texttt{make utils}. |
293 |
Here is a brief description of these utilities. |
294 |
|
295 |
\begin{itemize} |
296 |
\item \texttt{AnaPath} and/or \texttt{AnaPathref} \\ |
297 |
These scripts analyse a calculated path. They use \texttt{xyz2path} to |
298 |
convert the cartesian coordinates saved by \Path{} into a data file |
299 |
(called PathName.datl) that be plotted using the gnuplot files that are |
300 |
also created. They all plot the path energy but in different ways: |
301 |
\begin{itemize} |
302 |
\item[PathName\_l.gplot] plots the energy of the first iteration (the |
303 |
initial path) together with the energy of the following iterations, |
304 |
but one at a time. |
305 |
\item[PathName\_l2.gplot] plots the energy of the path for all |
306 |
iterations, with respect to the |
307 |
curvilinear distance along the path. |
308 |
\item[PathName\_l3.gplot] plots the energy of the path for all |
309 |
iterations, with respect to the index of the images. |
310 |
\end{itemize} |
311 |
\item \texttt{xyz2path} and \texttt{xyz2scan} convert a bunch of |
312 |
cartesian coordinates into |
313 |
a data file. They are very similar: the only difference is the way |
314 |
they print their results. For \texttt{xyz2scan} the analyses are |
315 |
indiced using the geometry number whereas \texttt{xyz2path} computes |
316 |
the mass weighted distance between two geometries and uses this |
317 |
distance to index the results. \\ |
318 |
They both use a file called 'list' to perform the analysis, which has |
319 |
the following structure: each line contains the type of the value you |
320 |
want to follow, it can be: |
321 |
\begin{itemize} |
322 |
\item[b] for a Bond distance |
323 |
\item[a] for an angle |
324 |
\item[d] for a dihedral |
325 |
\item[c] to create a center of mass |
326 |
\end{itemize} |
327 |
This descriptor is followed by the number of the atoms involved. The |
328 |
exception, is the \texttt{c} command that is followed by the number of |
329 |
atoms used to define this center of mass, and then the index of the atoms. |
330 |
A typical file can be: |
331 |
\begin{verbatim} |
332 |
b 1 2 |
333 |
b 2 3 |
334 |
a 1 2 3 |
335 |
c 2 1 2 <- create a new atom located at the middle of the 1-2 bond. |
336 |
\end{verbatim} |
337 |
|
338 |
The cartesian geometries have to follow the XMol format. If the |
339 |
comment line contains \texttt{E=} then \texttt{xyz2scan} and |
340 |
\texttt{xyz2path} will read the following number and take it as the |
341 |
image energy. |
342 |
\end{itemize} |
343 |
|
344 |
\end{document} |