Wiki

Version 9 (Emmanuel Quemener, 25/02/2011 16:39)

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