Wiki

Version 19 (Paul Fleurat-Lessard, 23/06/2011 09:08)

1 2 Emmanuel Quemener
h1. Portage de Path en Open Source
2 1 Emmanuel Quemener
3 16 Emmanuel Quemener
English version : [[WikiEnglish]]
4 15 Emmanuel Quemener
5 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]]
6 1 Emmanuel Quemener
7 1 Emmanuel Quemener
*Mots clés :* détermination de mécanismes., optimisation de chemin de réaction, coordonnées "chimiques"
8 1 Emmanuel Quemener
9 1 Emmanuel Quemener
h2. Introduction
10 1 Emmanuel Quemener
11 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.
12 1 Emmanuel Quemener
13 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.
14 1 Emmanuel Quemener
15 1 Emmanuel Quemener
h2. Le Pourquoi
16 1 Emmanuel Quemener
17 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.
18 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.
19 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.
20 1 Emmanuel Quemener
21 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.
22 1 Emmanuel Quemener
h2. Le Quoi
23 1 Emmanuel Quemener
24 1 Emmanuel Quemener
Le travail se décompose en plusieurs étapes :
25 1 Emmanuel Quemener
26 1 Emmanuel Quemener
* vérifier la compatibilité du logiciel avec un environnement de développement OpenSource (pour le compilateur, les librairies, etc)
27 1 Emmanuel Quemener
* remplacer le cas échéant les librairies propriétaires utilisées par des équivalents Open Source
28 1 Emmanuel Quemener
* assurer la pérennité du logiciel en le préparant aux futurs standard de Fortran (Fortran 95)
29 1 Emmanuel Quemener
* créer une forge de développement pour permettre aux personnes intéressées de participer à son enrichissement 
30 1 Emmanuel Quemener
31 1 Emmanuel Quemener
h2. Le Qui
32 1 Emmanuel Quemener
33 1 Emmanuel Quemener
* Pour qui : le logiciel est destiné à un public de chimistes théoriques
34 1 Emmanuel Quemener
* Par qui :
35 1 Emmanuel Quemener
** *le chef de projet fonctionnel* est Paul Fleurat-Lassard
36 1 Emmanuel Quemener
** *le chef de projet informatique* est Emmanuel Quemener 
37 1 Emmanuel Quemener
38 1 Emmanuel Quemener
h2. Le Quand
39 1 Emmanuel Quemener
40 1 Emmanuel Quemener
Aucune pression temporelle spécifique n'existe pour l'heure sur ce travail.
41 1 Emmanuel Quemener
42 1 Emmanuel Quemener
h2. Le Où
43 1 Emmanuel Quemener
44 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.
45 1 Emmanuel Quemener
Le PSMN sera utilisé pour évaluer la portabilité sur des compilateurs commerciaux et sur d'autre.
46 1 Emmanuel Quemener
47 1 Emmanuel Quemener
h2. Le Combien
48 1 Emmanuel Quemener
49 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é.
50 1 Emmanuel Quemener
51 1 Emmanuel Quemener
h2. Le Comment
52 1 Emmanuel Quemener
53 1 Emmanuel Quemener
# Vérification de la compilation sur architecture Open Source
54 1 Emmanuel Quemener
# Création d'un projet sur une forge en accès restreint
55 1 Emmanuel Quemener
# Evaluation des routines propriétaires à remplacer
56 1 Emmanuel Quemener
# Développement d'un jeu de tests pour l'intégraton
57 1 Emmanuel Quemener
# Evaluation des librairies de remplacement
58 1 Emmanuel Quemener
# Remplacement des fonctions par leurs équivalents
59 1 Emmanuel Quemener
# Vérification du fonctionnement par l'application du jeu de test
60 1 Emmanuel Quemener
# Ouverture du projet sur la forge en accès public
61 1 Emmanuel Quemener
# Paquetage du logiciel sur la distribution Debian 
62 1 Emmanuel Quemener
63 3 Paul Fleurat-Lessard
h1. Téléchargement du logiciel OpenPath
64 1 Emmanuel Quemener
65 19 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/10/openpath-1.3.tgz
66 7 Emmanuel Quemener
67 1 Emmanuel Quemener
Le dossier @path@ contient, dans le _Repository_, tous les sources du programme.
68 1 Emmanuel Quemener
69 1 Emmanuel Quemener
Il est nécessaire de disposer d'un client @subversion@ pour télécharger les sources.
70 1 Emmanuel Quemener
71 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@
72 1 Emmanuel Quemener
* l'identifiant présenté ici est celui associé à la session utilisateur : ici @carteuser@
73 1 Emmanuel Quemener
* si l'identifiant convient : 
74 1 Emmanuel Quemener
** entrer le mot de passe 
75 1 Emmanuel Quemener
* si l'identifiant ne convient pas : 
76 1 Emmanuel Quemener
** taper <entrée>
77 1 Emmanuel Quemener
** entrer son identifiant à la suite de @Username: @
78 1 Emmanuel Quemener
** entrer son mot de passe à l'invite @Password for '<mon identifiant>':@
79 1 Emmanuel Quemener
80 1 Emmanuel Quemener
<pre>
81 1 Emmanuel Quemener
Authentication realm: <http://forge.cbp.ens-lyon.fr:80> Redmine SVN Repository
82 1 Emmanuel Quemener
Password for 'carteuser':
83 2 Emmanuel Quemener
...
84 1 Emmanuel Quemener
</pre>
85 1 Emmanuel Quemener
86 1 Emmanuel Quemener
La version courante du projet est la 4 à la réalisation de cette documentation.
87 1 Emmanuel Quemener
88 1 Emmanuel Quemener
h1. Compilation du logiciel Carte
89 1 Emmanuel Quemener
90 1 Emmanuel Quemener
Par défaut, 
91 1 Emmanuel Quemener
92 1 Emmanuel Quemener
h2. Sur architecture Open Source
93 1 Emmanuel Quemener
94 1 Emmanuel Quemener
<pre>
95 1 Emmanuel Quemener
# Deplacement dans le dossier de Path, le programme principal
96 4 Emmanuel Quemener
cd openpath/src
97 1 Emmanuel Quemener
# Lancement de la compilation
98 1 Emmanuel Quemener
make
99 1 Emmanuel Quemener
</pre>
100 1 Emmanuel Quemener
101 1 Emmanuel Quemener
La compilation démarre sous GFortran par défaut et présente les sorties (partielles) suivantes
102 1 Emmanuel Quemener
<pre>
103 2 Emmanuel Quemener
...
104 5 Emmanuel Quemener
Path.exe has been created.
105 5 Emmanuel Quemener
gfortran -g  -Wall -fbounds-check -o ../utils/xyz2scan ../utils/Xyz2Scan.f
106 5 Emmanuel Quemener
gfortran -g  -Wall -fbounds-check -o ../utils/xyz2path ../utils/Xyz2Path.f
107 5 Emmanuel Quemener
108 5 Emmanuel Quemener
Utilities have been created.
109 5 Emmanuel Quemener
Make sure that they are in your PATH environment
110 5 Emmanuel Quemener
rm m_mrgrnk.mod
111 1 Emmanuel Quemener
</pre>
112 1 Emmanuel Quemener
113 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.
114 1 Emmanuel Quemener
115 1 Emmanuel Quemener
h1. Exécution du logiciel Carte
116 1 Emmanuel Quemener
117 1 Emmanuel Quemener
h2. Seul, pour récupérer la documentation
118 1 Emmanuel Quemener
119 1 Emmanuel Quemener
Appliquer la commande : 
120 1 Emmanuel Quemener
<pre>
121 1 Emmanuel Quemener
# Dans le dossier de la compilation
122 1 Emmanuel Quemener
./Path.exe -help
123 1 Emmanuel Quemener
</pre>
124 1 Emmanuel Quemener
125 1 Emmanuel Quemener
Le programme renvoie vers le _shell_ :
126 1 Emmanuel Quemener
<pre>
127 1 Emmanuel Quemener
 Path mini-help
128 1 Emmanuel Quemener
 --------------
129 1 Emmanuel Quemener
 
130 1 Emmanuel Quemener
 Use: Path Input_file Output_file
131 1 Emmanuel Quemener
 Input_file starts with a Namelist called path
132 1 Emmanuel Quemener
 
133 1 Emmanuel Quemener
 Compulsory variables are:
134 1 Emmanuel Quemener
 NGeomi: Number of geometries defining the Initial path
135 1 Emmanuel Quemener
 NGeomf: Number of geometries defining the Final path
136 1 Emmanuel Quemener
 Nat   : Number of atoms
137 1 Emmanuel Quemener
 
138 1 Emmanuel Quemener
 Other options
139 1 Emmanuel Quemener
 Input: string that indicates the type of the input geometries.
140 1 Emmanuel Quemener
 Accepted values are: Cart (or Xmol or Xyz) or Vasp
141 1 Emmanuel Quemener
 Prog: string that indicates the program that will be used for energy and gradient calculations.
142 1 Emmanuel Quemener
       Accepted values are: Gaussian, Vasp, Mopac or Ext
143 1 Emmanuel Quemener
       In case of a Gaussian or Mopac calculations, input must be set to Cart.
144 1 Emmanuel Quemener
       One example of a gaussian/mopac input should be added at the end of the
145 1 Emmanuel Quemener
       input file.See example file Test_G03.path or Test_Mopac.path
146 1 Emmanuel Quemener
       In the case of a VASP calculation, if input is set to Cart, then
147 1 Emmanuel Quemener
     the preamble of a VASP calculation should be added at the end of
148 1 Emmanuel Quemener
     the input file. See example file Test_VASP_cart.path
149 1 Emmanuel Quemener
     In the case of a VASP calculation, one should also give value of the 
150 1 Emmanuel Quemener
     Runmode variable
151 1 Emmanuel Quemener
 Runmode: This indicates wether one should use VASP routine to calculate the energy
152 1 Emmanuel Quemener
        and gradient of the whole path or not. If one wants to use VASP,
153 1 Emmanuel Quemener
        Runmode must be set to PARA.
154 1 Emmanuel Quemener
 PathName: Prefix used to save the path. Default is Path
155 1 Emmanuel Quemener
 Poscar: string that will be used as the prefix for the different 
156 1 Emmanuel Quemener
         POSCAR files in a VASP calculations. Usefull only if PathOnly=.TRUE.,
157 1 Emmanuel Quemener
         not used for internal calculations.
158 5 Emmanuel Quemener
  CalcName: Prefix for the files used for the energy and gradient calculations
159 5 Emmanuel Quemener
  ISuffix: Suffix for the input file.
160 5 Emmanuel Quemener
  OSuffix: suffix for the output file.
161 1 Emmanuel Quemener
 IGeomRef: Index of the geometry used to construct the internal coordinates.
162 1 Emmanuel Quemener
       Valid only for Coord=Zmat, Hybrid or Mixed
163 1 Emmanuel Quemener
 Fact: REAL used to define if two atoms are linked.
164 1 Emmanuel Quemener
       If d(A,B)<=fact*(rcov(A)+rcov(B)), then A and B are considered Linked.
165 1 Emmanuel Quemener
 debugFile: Name of the file that indicates which subroutine should print debug info.
166 1 Emmanuel Quemener
 Coord: System of coordinates to use. Possible choices are:
167 1 Emmanuel Quemener
        - CART (or Xyz): works in cartesian
168 1 Emmanuel Quemener
        - Zmat: works in internal coordinates (Zmat)
169 1 Emmanuel Quemener
        - Mixed: frozen atoms, as well as atoms defined by the 
170 1 Emmanuel Quemener
        'cart' array(see below) are describe in CARTESIAN, whereas the
171 1 Emmanuel Quemener
        others are described in Zmat
172 1 Emmanuel Quemener
        - Baker: use of Baker coordinates, also called delocalized internal coordinates
173 1 Emmanuel Quemener
        - Hybrid: geometries are described in zmat, but the gradient are used in cartesian
174 1 Emmanuel Quemener
 Step_method: method to compute the step for optimizing a geometry; choices are:
175 1 Emmanuel Quemener
        - RFO: Rational function optimization
176 1 Emmanuel Quemener
        - GDIIS: Geometry optimization using direct inversion in the iterative supspace
177 1 Emmanuel Quemener
  HesUpd: method to update the hessian. By default, it is Murtagh-Sargent
178 1 Emmanuel Quemener
       Except for geometry optimization where it is BFGS.
179 1 Emmanuel Quemener
 MaxCyc: maximum number of iterations for the path optimization
180 1 Emmanuel Quemener
 Smax: Maximum length of a step during path optimization
181 1 Emmanuel Quemener
 SThresh: Step Threshold to consider that the path is stationary
182 1 Emmanuel Quemener
 GThresh: Gradient Threshold to consider that the path is stationary, only orthogonal part is taken
183 1 Emmanuel Quemener
 FTan: We moving the path, this gives the proportion of the displacement tangent to the path
184 1 Emmanuel Quemener
       that is kept. FTan=1. corresponds to the full displacement, 
185 1 Emmanuel Quemener
       whereas FTan=0. gives a displacement orthogonal to the path.
186 1 Emmanuel Quemener
 IReparam: The path is not reparameterised at each iteration. This gives the frequency of reparameterization.
187 1 Emmanuel Quemener
 ISpline: By default, a linear interpolation is used to generate the path.
188 1 Emmanuel Quemener
          This option indicates the first step where spline interpolation is used.
189 1 Emmanuel Quemener
 
190 1 Emmanuel Quemener
 Arrays:
191 1 Emmanuel Quemener
 Rcov: Array containing the covalent radii of the first 80 elements.
192 1 Emmanuel Quemener
       You can modify it using, rcov(6)=0.8.
193 1 Emmanuel Quemener
 Mass: Array containing the atomic mass of the first 80 elements.
194 1 Emmanuel Quemener
 AtTypes: Name of the different atoms used in a VASP calculations.
195 1 Emmanuel Quemener
 If not given, Path will read the POTCAR file.
196 1 Emmanuel Quemener
 
197 1 Emmanuel Quemener
 Flags:
198 1 Emmanuel Quemener
 MW:  Flag. True if one wants to work in Mass Weighted coordinates. Default=.TRUE.
199 1 Emmanuel Quemener
 Renum: Flag. True if one wants to reoder the atoms in the initial order. default is .TRUE. most of the time.
200 1 Emmanuel Quemener
 OptProd: True if one wants to optimize the geometry of the products.
201 1 Emmanuel Quemener
 OptReac: True if one wants to optimize the geometry of the reactants.
202 1 Emmanuel Quemener
 PathOnly:TRUE if one wants to generate the initial path, and stops.
203 1 Emmanuel Quemener
 Hinv: if True, then Hessian inversed is used.
204 1 Emmanuel Quemener
 IniHup: if True, then Hessian inverse is extrapolated using the initial path calculations.
205 1 Emmanuel Quemener
 HupNeighbour: if True, then Hessian inverse is extrapolated using the neighbouring points of the path.
206 1 Emmanuel Quemener
 FFrozen: True if one wants to freeze the positions of some atoms.
207 1 Emmanuel Quemener
          If True, a &frozenlist namelist containing the list of frozen atoms must be given.
208 1 Emmanuel Quemener
           If VASP is used, and frozen is not given
209 1 Emmanuel Quemener
  here, the program will use the F flags of the input geometry
210 1 Emmanuel Quemener
 FCart:  True if one wants to describe some atoms using cartesian coordinates. 
211 1 Emmanuel Quemener
         *** Only used in 'mixed' calculations. ***
212 1 Emmanuel Quemener
       If True, a &cartlist namelist containing the list of cart atoms must be given.
213 1 Emmanuel Quemener
       By default, only frozen atoms are described in cartesian coordinates.
214 1 Emmanuel Quemener
 
215 1 Emmanuel Quemener
 DynMaxStep: if TRUE, the maximum allowed step is updated at each step, for each geometry.
216 1 Emmanuel Quemener
         If energy goes up, Smax=Smax*0.8, if not Smax=Smax*1.2. 
217 1 Emmanuel Quemener
        It is ensured that the dynamical Smax is within [0.5*SMax_0,2*Smax_0]
218 1 Emmanuel Quemener
 Autocart: True if you want to let the program choosing the cartesian atoms.
219 1 Emmanuel Quemener
 VMD: TRUE if you want to use VMD to look at the Path. Used only for VASP for now
220 5 Emmanuel Quemener
 WriteVASP: TRUE if you want to print the images coordinates in POSCAR files.
221 5 Emmanuel Quemener
 See also the POSCAR option. This can be used only if prog or input=VASP.
222 5 Emmanuel Quemener
</pre> 
223 1 Emmanuel Quemener
224 1 Emmanuel Quemener
h2. Exécution d'un exemple complet Test_HCN_zmat_test
225 1 Emmanuel Quemener
226 1 Emmanuel Quemener
<pre>
227 1 Emmanuel Quemener
# Se deplacer dans le dossier des exemples
228 6 Emmanuel Quemener
cd ../examples/Test/Zmat
229 1 Emmanuel Quemener
# Lancer l'execution : utilisation de l'exemple 
230 6 Emmanuel Quemener
../../../src/Path.exe HCN_zmat.path HCN_zmat.out
231 1 Emmanuel Quemener
</pre>
232 1 Emmanuel Quemener
233 1 Emmanuel Quemener
Le document de sortie @Test_HCN_zmat_test.out@ (disponible dans @Files@) commence et termine par les lignes suivantes :
234 6 Emmanuel Quemener
<pre>
235 6 Emmanuel Quemener
 Path v4.1793 (c) PFL/PD 2007-2010
236 6 Emmanuel Quemener
 Input has been set to the default: XYZ                             
237 6 Emmanuel Quemener
 Working in MW coordinates
238 6 Emmanuel Quemener
 Prog=TEST
239 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
240 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
241 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
242 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
243 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
244 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
245 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
246 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
247 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
248 6 Emmanuel Quemener
 EGrad.f90, L73, IOpt=           0
249 6 Emmanuel Quemener
 GeomTmp=
250 6 Emmanuel Quemener
  1.053  1.113  2.832
251 6 Emmanuel Quemener
 GeomCart=
252 6 Emmanuel Quemener
  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
253 6 Emmanuel Quemener
--- snip snip ---
254 6 Emmanuel Quemener
 Extrapol_int u,xgeom(NGeomI),s,dist,s-dist   11.000000000000000        11.000000000000000        1.3530023123052950        1.3530023123053081      -1.31006316905768472E-014
255 6 Emmanuel Quemener
</pre>