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