Wiki

Version 22 (Paul Fleurat-Lessard, 12/03/2012 11:22)

1 22 Paul Fleurat-Lessard
h1. The OpenPath project has been renamed into Opt'n Path.
2 22 Paul Fleurat-Lessard
3 22 Paul Fleurat-Lessard
*Check it at:*
4 22 Paul Fleurat-Lessard
[[http://perso.ens-lyon.fr/paul.fleurat-lessard/ReactionPath.html]]
5 22 Paul Fleurat-Lessard
6 22 Paul Fleurat-Lessard
7 22 Paul Fleurat-Lessard
8 22 Paul Fleurat-Lessard
9 22 Paul Fleurat-Lessard
10 2 Emmanuel Quemener
h1. Portage de Path en Open Source
11 1 Emmanuel Quemener
12 16 Emmanuel Quemener
English version : [[WikiEnglish]]
13 15 Emmanuel Quemener
14 1 Emmanuel Quemener
Les éléments suivants sont repris de la page officielle du CBP sur le projet [[http://www.cbp.ens-lyon.fr/tiki-index.php?page=CarteOpenSource&bl=y]]
15 1 Emmanuel Quemener
16 1 Emmanuel Quemener
*Mots clés :* détermination de mécanismes., optimisation de chemin de réaction, coordonnées "chimiques"
17 1 Emmanuel Quemener
18 1 Emmanuel Quemener
h2. Introduction
19 1 Emmanuel Quemener
20 1 Emmanuel Quemener
Lorsque l'on considère des processus simples , mettant en jeu des réactifs de taille modeste, l'expérience du chimiste (ou du physicien, biochimiste...) est souvent suffisante pour avoir une idée raisonnable du mécanisme réactionnel sous-jacent. Cependant, dès que l'on considère un système réaliste, la détermination des mécanismes devient un art, et l'outil numérique devient un outil nécéssaire. Cependant, la plupart des méthodes actuelles génèrent un premier chemin possible, et tentent de l’améliorer de façon itérative. Une des difficultés à surmonter est le nombre très important de degrés de liberté d’une telle réaction : parmi tous les substituants, lesquels sont réellement décisifs pour le cours de la réaction ? L’expérience montre que souvent une très grande partie des substituants joue un rôle spectateur pendant une majorité des étapes élémentaires. Cependant, les programmes classiques ne savent pas différencier un groupe spectateur d’un groupe actif, et doivent ainsi considérer des milliers de distorsions possibles.
21 1 Emmanuel Quemener
22 1 Emmanuel Quemener
Notre approche est originale car notre programme de recherche de mécanisme se base sur la notion de groupe et de fonction réactive (telles qu’un substituant méthyle, un carbonyle…) et non plus simplement sur les atomes. Ceci permet la plupart du temps d’obtenir des chemins initiaux plus proches du processus réel que les méthodes standards. De plus, nous utilisons des algorithmes robustes et efficaces pour optimiser le chemin ce qui conduit à des temps de calculs bien inférieurs à ceux des approches usuelles.
23 1 Emmanuel Quemener
24 1 Emmanuel Quemener
h2. Le Pourquoi
25 1 Emmanuel Quemener
26 1 Emmanuel Quemener
Carte est un logiciel de construction et d'optimisation de chemin de réactions développé en Fortran 90 développé par Paul Fleurat-Lassard depuis une quinzaine d'années.
27 1 Emmanuel Quemener
Carte utilise une analyse des systèmes réactifs basée sur la notion de groupes réactifs et de groupes spectateurs, ce qui lui permet d'être très efficace dans la construction d'un chemin initial et dans son optimisation pour trouver le mécanisme d'un processus.
28 1 Emmanuel Quemener
Pour optimiser les chemins, Carte est couplé à des 'moteurs énergétiques' tels que Gaussian, MOPAC2009 ou VASP. Il existe aussi déjà la possibilité de le coupler à un code quelconque en utilisant des fichiers formatés.
29 1 Emmanuel Quemener
30 1 Emmanuel Quemener
De manière à assurer la pérennité du logiciel, de permettre son extension par la contribution des utilisateurs, de valoriser son existence dans le domaine des logiciels scientifiques, il serait souhaitable que ce logiciel puisse être compilé le plus simplement possible sur les architectures de calcul scientifique classiques, souvent basées autour de distribution GNU/Linux.
31 1 Emmanuel Quemener
h2. Le Quoi
32 1 Emmanuel Quemener
33 1 Emmanuel Quemener
Le travail se décompose en plusieurs étapes :
34 1 Emmanuel Quemener
35 1 Emmanuel Quemener
* vérifier la compatibilité du logiciel avec un environnement de développement OpenSource (pour le compilateur, les librairies, etc)
36 1 Emmanuel Quemener
* remplacer le cas échéant les librairies propriétaires utilisées par des équivalents Open Source
37 1 Emmanuel Quemener
* assurer la pérennité du logiciel en le préparant aux futurs standard de Fortran (Fortran 95)
38 1 Emmanuel Quemener
* créer une forge de développement pour permettre aux personnes intéressées de participer à son enrichissement 
39 1 Emmanuel Quemener
40 1 Emmanuel Quemener
h2. Le Qui
41 1 Emmanuel Quemener
42 1 Emmanuel Quemener
* Pour qui : le logiciel est destiné à un public de chimistes théoriques
43 1 Emmanuel Quemener
* Par qui :
44 1 Emmanuel Quemener
** *le chef de projet fonctionnel* est Paul Fleurat-Lassard
45 1 Emmanuel Quemener
** *le chef de projet informatique* est Emmanuel Quemener 
46 1 Emmanuel Quemener
47 1 Emmanuel Quemener
h2. Le Quand
48 1 Emmanuel Quemener
49 1 Emmanuel Quemener
Aucune pression temporelle spécifique n'existe pour l'heure sur ce travail.
50 1 Emmanuel Quemener
51 1 Emmanuel Quemener
h2. Le Où
52 1 Emmanuel Quemener
53 1 Emmanuel Quemener
Le Centre Blaise Pascal mettra à disposition ses ressources matérielles et logicielles pour l'intégration logicielle dans un domaine OpenSource. Les environnements matériels se limiteront aux architectures i686 et x86_64.
54 1 Emmanuel Quemener
Le PSMN sera utilisé pour évaluer la portabilité sur des compilateurs commerciaux et sur d'autre.
55 1 Emmanuel Quemener
56 1 Emmanuel Quemener
h2. Le Combien
57 1 Emmanuel Quemener
58 1 Emmanuel Quemener
L'utilisation d'outils OpenSource étant le contexte du projet, autant que possible, aucun coût logiciel n'est, pour l'heure, envisagé.
59 1 Emmanuel Quemener
60 1 Emmanuel Quemener
h2. Le Comment
61 1 Emmanuel Quemener
62 1 Emmanuel Quemener
# Vérification de la compilation sur architecture Open Source
63 1 Emmanuel Quemener
# Création d'un projet sur une forge en accès restreint
64 1 Emmanuel Quemener
# Evaluation des routines propriétaires à remplacer
65 1 Emmanuel Quemener
# Développement d'un jeu de tests pour l'intégraton
66 1 Emmanuel Quemener
# Evaluation des librairies de remplacement
67 1 Emmanuel Quemener
# Remplacement des fonctions par leurs équivalents
68 1 Emmanuel Quemener
# Vérification du fonctionnement par l'application du jeu de test
69 1 Emmanuel Quemener
# Ouverture du projet sur la forge en accès public
70 1 Emmanuel Quemener
# Paquetage du logiciel sur la distribution Debian 
71 1 Emmanuel Quemener
72 3 Paul Fleurat-Lessard
h1. Téléchargement du logiciel OpenPath
73 1 Emmanuel Quemener
74 21 Paul Fleurat-Lessard
Le lien suivant permet de récupérer directement les sources du logiciels : http://forge.cbp.ens-lyon.fr/redmine/attachments/download/26/openpath_1.42.tgz
75 7 Emmanuel Quemener
76 1 Emmanuel Quemener
Le dossier @path@ contient, dans le _Repository_, tous les sources du programme.
77 1 Emmanuel Quemener
78 1 Emmanuel Quemener
Il est nécessaire de disposer d'un client @subversion@ pour télécharger les sources.
79 1 Emmanuel Quemener
80 2 Emmanuel Quemener
La récupération de l'ensemble des sources du projet se réalise avec la commande suivante : @svn checkout http://forge.cbp.ens-lyon.fr/svn/openpath@
81 1 Emmanuel Quemener
* l'identifiant présenté ici est celui associé à la session utilisateur : ici @carteuser@
82 1 Emmanuel Quemener
* si l'identifiant convient : 
83 1 Emmanuel Quemener
** entrer le mot de passe 
84 1 Emmanuel Quemener
* si l'identifiant ne convient pas : 
85 1 Emmanuel Quemener
** taper <entrée>
86 1 Emmanuel Quemener
** entrer son identifiant à la suite de @Username: @
87 1 Emmanuel Quemener
** entrer son mot de passe à l'invite @Password for '<mon identifiant>':@
88 1 Emmanuel Quemener
89 1 Emmanuel Quemener
<pre>
90 1 Emmanuel Quemener
Authentication realm: <http://forge.cbp.ens-lyon.fr:80> Redmine SVN Repository
91 1 Emmanuel Quemener
Password for 'carteuser':
92 2 Emmanuel Quemener
...
93 1 Emmanuel Quemener
</pre>
94 1 Emmanuel Quemener
95 1 Emmanuel Quemener
La version courante du projet est la 4 à la réalisation de cette documentation.
96 1 Emmanuel Quemener
97 1 Emmanuel Quemener
h1. Compilation du logiciel Carte
98 1 Emmanuel Quemener
99 1 Emmanuel Quemener
Par défaut, 
100 1 Emmanuel Quemener
101 1 Emmanuel Quemener
h2. Sur architecture Open Source
102 1 Emmanuel Quemener
103 1 Emmanuel Quemener
<pre>
104 1 Emmanuel Quemener
# Deplacement dans le dossier de Path, le programme principal
105 4 Emmanuel Quemener
cd openpath/src
106 1 Emmanuel Quemener
# Lancement de la compilation
107 1 Emmanuel Quemener
make
108 1 Emmanuel Quemener
</pre>
109 1 Emmanuel Quemener
110 1 Emmanuel Quemener
La compilation démarre sous GFortran par défaut et présente les sorties (partielles) suivantes
111 1 Emmanuel Quemener
<pre>
112 2 Emmanuel Quemener
...
113 5 Emmanuel Quemener
Path.exe has been created.
114 5 Emmanuel Quemener
gfortran -g  -Wall -fbounds-check -o ../utils/xyz2scan ../utils/Xyz2Scan.f
115 5 Emmanuel Quemener
gfortran -g  -Wall -fbounds-check -o ../utils/xyz2path ../utils/Xyz2Path.f
116 5 Emmanuel Quemener
117 5 Emmanuel Quemener
Utilities have been created.
118 5 Emmanuel Quemener
Make sure that they are in your PATH environment
119 5 Emmanuel Quemener
rm m_mrgrnk.mod
120 1 Emmanuel Quemener
</pre>
121 1 Emmanuel Quemener
122 5 Emmanuel Quemener
Au 25 février 2011, quelques avertissements informent que nombre de variables déclarées sont non utilisées. Ces avertissements ne gênent en rien la compilation et l'exécution du programme.
123 1 Emmanuel Quemener
124 1 Emmanuel Quemener
h1. Exécution du logiciel Carte
125 1 Emmanuel Quemener
126 1 Emmanuel Quemener
h2. Seul, pour récupérer la documentation
127 1 Emmanuel Quemener
128 1 Emmanuel Quemener
Appliquer la commande : 
129 1 Emmanuel Quemener
<pre>
130 1 Emmanuel Quemener
# Dans le dossier de la compilation
131 1 Emmanuel Quemener
./Path.exe -help
132 1 Emmanuel Quemener
</pre>
133 1 Emmanuel Quemener
134 1 Emmanuel Quemener
Le programme renvoie vers le _shell_ :
135 1 Emmanuel Quemener
<pre>
136 1 Emmanuel Quemener
 Path mini-help
137 1 Emmanuel Quemener
 --------------
138 1 Emmanuel Quemener
 
139 1 Emmanuel Quemener
 Use: Path Input_file Output_file
140 1 Emmanuel Quemener
 Input_file starts with a Namelist called path
141 1 Emmanuel Quemener
 
142 1 Emmanuel Quemener
 Compulsory variables are:
143 1 Emmanuel Quemener
 NGeomi: Number of geometries defining the Initial path
144 1 Emmanuel Quemener
 NGeomf: Number of geometries defining the Final path
145 1 Emmanuel Quemener
 Nat   : Number of atoms
146 1 Emmanuel Quemener
 
147 1 Emmanuel Quemener
 Other options
148 1 Emmanuel Quemener
 Input: string that indicates the type of the input geometries.
149 1 Emmanuel Quemener
 Accepted values are: Cart (or Xmol or Xyz) or Vasp
150 1 Emmanuel Quemener
 Prog: string that indicates the program that will be used for energy and gradient calculations.
151 1 Emmanuel Quemener
       Accepted values are: Gaussian, Vasp, Mopac or Ext
152 1 Emmanuel Quemener
       In case of a Gaussian or Mopac calculations, input must be set to Cart.
153 1 Emmanuel Quemener
       One example of a gaussian/mopac input should be added at the end of the
154 1 Emmanuel Quemener
       input file.See example file Test_G03.path or Test_Mopac.path
155 1 Emmanuel Quemener
       In the case of a VASP calculation, if input is set to Cart, then
156 1 Emmanuel Quemener
     the preamble of a VASP calculation should be added at the end of
157 1 Emmanuel Quemener
     the input file. See example file Test_VASP_cart.path
158 1 Emmanuel Quemener
     In the case of a VASP calculation, one should also give value of the 
159 1 Emmanuel Quemener
     Runmode variable
160 1 Emmanuel Quemener
 Runmode: This indicates wether one should use VASP routine to calculate the energy
161 1 Emmanuel Quemener
        and gradient of the whole path or not. If one wants to use VASP,
162 1 Emmanuel Quemener
        Runmode must be set to PARA.
163 1 Emmanuel Quemener
 PathName: Prefix used to save the path. Default is Path
164 1 Emmanuel Quemener
 Poscar: string that will be used as the prefix for the different 
165 1 Emmanuel Quemener
         POSCAR files in a VASP calculations. Usefull only if PathOnly=.TRUE.,
166 1 Emmanuel Quemener
         not used for internal calculations.
167 5 Emmanuel Quemener
  CalcName: Prefix for the files used for the energy and gradient calculations
168 5 Emmanuel Quemener
  ISuffix: Suffix for the input file.
169 5 Emmanuel Quemener
  OSuffix: suffix for the output file.
170 1 Emmanuel Quemener
 IGeomRef: Index of the geometry used to construct the internal coordinates.
171 1 Emmanuel Quemener
       Valid only for Coord=Zmat, Hybrid or Mixed
172 1 Emmanuel Quemener
 Fact: REAL used to define if two atoms are linked.
173 1 Emmanuel Quemener
       If d(A,B)<=fact*(rcov(A)+rcov(B)), then A and B are considered Linked.
174 1 Emmanuel Quemener
 debugFile: Name of the file that indicates which subroutine should print debug info.
175 1 Emmanuel Quemener
 Coord: System of coordinates to use. Possible choices are:
176 1 Emmanuel Quemener
        - CART (or Xyz): works in cartesian
177 1 Emmanuel Quemener
        - Zmat: works in internal coordinates (Zmat)
178 1 Emmanuel Quemener
        - Mixed: frozen atoms, as well as atoms defined by the 
179 1 Emmanuel Quemener
        'cart' array(see below) are describe in CARTESIAN, whereas the
180 1 Emmanuel Quemener
        others are described in Zmat
181 1 Emmanuel Quemener
        - Baker: use of Baker coordinates, also called delocalized internal coordinates
182 1 Emmanuel Quemener
        - Hybrid: geometries are described in zmat, but the gradient are used in cartesian
183 1 Emmanuel Quemener
 Step_method: method to compute the step for optimizing a geometry; choices are:
184 1 Emmanuel Quemener
        - RFO: Rational function optimization
185 1 Emmanuel Quemener
        - GDIIS: Geometry optimization using direct inversion in the iterative supspace
186 1 Emmanuel Quemener
  HesUpd: method to update the hessian. By default, it is Murtagh-Sargent
187 1 Emmanuel Quemener
       Except for geometry optimization where it is BFGS.
188 1 Emmanuel Quemener
 MaxCyc: maximum number of iterations for the path optimization
189 1 Emmanuel Quemener
 Smax: Maximum length of a step during path optimization
190 1 Emmanuel Quemener
 SThresh: Step Threshold to consider that the path is stationary
191 1 Emmanuel Quemener
 GThresh: Gradient Threshold to consider that the path is stationary, only orthogonal part is taken
192 1 Emmanuel Quemener
 FTan: We moving the path, this gives the proportion of the displacement tangent to the path
193 1 Emmanuel Quemener
       that is kept. FTan=1. corresponds to the full displacement, 
194 1 Emmanuel Quemener
       whereas FTan=0. gives a displacement orthogonal to the path.
195 1 Emmanuel Quemener
 IReparam: The path is not reparameterised at each iteration. This gives the frequency of reparameterization.
196 1 Emmanuel Quemener
 ISpline: By default, a linear interpolation is used to generate the path.
197 1 Emmanuel Quemener
          This option indicates the first step where spline interpolation is used.
198 1 Emmanuel Quemener
 
199 1 Emmanuel Quemener
 Arrays:
200 1 Emmanuel Quemener
 Rcov: Array containing the covalent radii of the first 80 elements.
201 1 Emmanuel Quemener
       You can modify it using, rcov(6)=0.8.
202 1 Emmanuel Quemener
 Mass: Array containing the atomic mass of the first 80 elements.
203 1 Emmanuel Quemener
 AtTypes: Name of the different atoms used in a VASP calculations.
204 1 Emmanuel Quemener
 If not given, Path will read the POTCAR file.
205 1 Emmanuel Quemener
 
206 1 Emmanuel Quemener
 Flags:
207 1 Emmanuel Quemener
 MW:  Flag. True if one wants to work in Mass Weighted coordinates. Default=.TRUE.
208 1 Emmanuel Quemener
 Renum: Flag. True if one wants to reoder the atoms in the initial order. default is .TRUE. most of the time.
209 1 Emmanuel Quemener
 OptProd: True if one wants to optimize the geometry of the products.
210 1 Emmanuel Quemener
 OptReac: True if one wants to optimize the geometry of the reactants.
211 1 Emmanuel Quemener
 PathOnly:TRUE if one wants to generate the initial path, and stops.
212 1 Emmanuel Quemener
 Hinv: if True, then Hessian inversed is used.
213 1 Emmanuel Quemener
 IniHup: if True, then Hessian inverse is extrapolated using the initial path calculations.
214 1 Emmanuel Quemener
 HupNeighbour: if True, then Hessian inverse is extrapolated using the neighbouring points of the path.
215 1 Emmanuel Quemener
 FFrozen: True if one wants to freeze the positions of some atoms.
216 1 Emmanuel Quemener
          If True, a &frozenlist namelist containing the list of frozen atoms must be given.
217 1 Emmanuel Quemener
           If VASP is used, and frozen is not given
218 1 Emmanuel Quemener
  here, the program will use the F flags of the input geometry
219 1 Emmanuel Quemener
 FCart:  True if one wants to describe some atoms using cartesian coordinates. 
220 1 Emmanuel Quemener
         *** Only used in 'mixed' calculations. ***
221 1 Emmanuel Quemener
       If True, a &cartlist namelist containing the list of cart atoms must be given.
222 1 Emmanuel Quemener
       By default, only frozen atoms are described in cartesian coordinates.
223 1 Emmanuel Quemener
 
224 1 Emmanuel Quemener
 DynMaxStep: if TRUE, the maximum allowed step is updated at each step, for each geometry.
225 1 Emmanuel Quemener
         If energy goes up, Smax=Smax*0.8, if not Smax=Smax*1.2. 
226 1 Emmanuel Quemener
        It is ensured that the dynamical Smax is within [0.5*SMax_0,2*Smax_0]
227 1 Emmanuel Quemener
 Autocart: True if you want to let the program choosing the cartesian atoms.
228 1 Emmanuel Quemener
 VMD: TRUE if you want to use VMD to look at the Path. Used only for VASP for now
229 5 Emmanuel Quemener
 WriteVASP: TRUE if you want to print the images coordinates in POSCAR files.
230 5 Emmanuel Quemener
 See also the POSCAR option. This can be used only if prog or input=VASP.
231 5 Emmanuel Quemener
</pre> 
232 1 Emmanuel Quemener
233 1 Emmanuel Quemener
h2. Exécution d'un exemple complet Test_HCN_zmat_test
234 1 Emmanuel Quemener
235 1 Emmanuel Quemener
<pre>
236 1 Emmanuel Quemener
# Se deplacer dans le dossier des exemples
237 6 Emmanuel Quemener
cd ../examples/Test/Zmat
238 1 Emmanuel Quemener
# Lancer l'execution : utilisation de l'exemple 
239 6 Emmanuel Quemener
../../../src/Path.exe HCN_zmat.path HCN_zmat.out
240 1 Emmanuel Quemener
</pre>
241 1 Emmanuel Quemener
242 1 Emmanuel Quemener
Le document de sortie @Test_HCN_zmat_test.out@ (disponible dans @Files@) commence et termine par les lignes suivantes :
243 6 Emmanuel Quemener
<pre>
244 6 Emmanuel Quemener
 Path v4.1793 (c) PFL/PD 2007-2010
245 6 Emmanuel Quemener
 Input has been set to the default: XYZ                             
246 6 Emmanuel Quemener
 Working in MW coordinates
247 6 Emmanuel Quemener
 Prog=TEST
248 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
249 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
250 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
251 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
252 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
253 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
254 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
255 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
256 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
257 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
258 6 Emmanuel Quemener
 GeomTmp=
259 6 Emmanuel Quemener
  1.053  1.113  2.832
260 6 Emmanuel Quemener
 GeomCart=
261 6 Emmanuel Quemener
  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
262 6 Emmanuel Quemener
--- snip snip ---
263 6 Emmanuel Quemener
 Extrapol_int u,xgeom(NGeomI),s,dist,s-dist   11.000000000000000        11.000000000000000        1.3530023123052950        1.3530023123053081      -1.31006316905768472E-014
264 6 Emmanuel Quemener
</pre>