« Précédent - Version 21/22 (diff) - Suivant » - Version actuelle
Paul Fleurat-Lessard, 04/08/2011 18:05


Portage de Path en Open Source

English version : WikiEnglish

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]]

Mots clés : détermination de mécanismes., optimisation de chemin de réaction, coordonnées "chimiques"

Introduction

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.

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.

Le Pourquoi

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.
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.
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.

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.
h2. Le Quoi

Le travail se décompose en plusieurs étapes :

  • vérifier la compatibilité du logiciel avec un environnement de développement OpenSource (pour le compilateur, les librairies, etc)
  • remplacer le cas échéant les librairies propriétaires utilisées par des équivalents Open Source
  • assurer la pérennité du logiciel en le préparant aux futurs standard de Fortran (Fortran 95)
  • créer une forge de développement pour permettre aux personnes intéressées de participer à son enrichissement

Le Qui

  • Pour qui : le logiciel est destiné à un public de chimistes théoriques
  • Par qui :
    • le chef de projet fonctionnel est Paul Fleurat-Lassard
    • le chef de projet informatique est Emmanuel Quemener

Le Quand

Aucune pression temporelle spécifique n'existe pour l'heure sur ce travail.

Le Où

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.
Le PSMN sera utilisé pour évaluer la portabilité sur des compilateurs commerciaux et sur d'autre.

Le Combien

L'utilisation d'outils OpenSource étant le contexte du projet, autant que possible, aucun coût logiciel n'est, pour l'heure, envisagé.

Le Comment

  1. Vérification de la compilation sur architecture Open Source
  2. Création d'un projet sur une forge en accès restreint
  3. Evaluation des routines propriétaires à remplacer
  4. Développement d'un jeu de tests pour l'intégraton
  5. Evaluation des librairies de remplacement
  6. Remplacement des fonctions par leurs équivalents
  7. Vérification du fonctionnement par l'application du jeu de test
  8. Ouverture du projet sur la forge en accès public
  9. Paquetage du logiciel sur la distribution Debian

Téléchargement du logiciel OpenPath

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

Le dossier path contient, dans le Repository, tous les sources du programme.

Il est nécessaire de disposer d'un client subversion pour télécharger les sources.

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
  • l'identifiant présenté ici est celui associé à la session utilisateur : ici carteuser
  • si l'identifiant convient :
    • entrer le mot de passe
  • si l'identifiant ne convient pas :
    • taper <entrée>
    • entrer son identifiant à la suite de Username:
    • entrer son mot de passe à l'invite Password for '<mon identifiant>':
Authentication realm: <http://forge.cbp.ens-lyon.fr:80> Redmine SVN Repository
Password for 'carteuser':
...

La version courante du projet est la 4 à la réalisation de cette documentation.

Compilation du logiciel Carte

Par défaut,

Sur architecture Open Source

# Deplacement dans le dossier de Path, le programme principal
cd openpath/src
# Lancement de la compilation
make

La compilation démarre sous GFortran par défaut et présente les sorties (partielles) suivantes

...
Path.exe has been created.
gfortran -g  -Wall -fbounds-check -o ../utils/xyz2scan ../utils/Xyz2Scan.f
gfortran -g  -Wall -fbounds-check -o ../utils/xyz2path ../utils/Xyz2Path.f

Utilities have been created.
Make sure that they are in your PATH environment
rm m_mrgrnk.mod

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.

Exécution du logiciel Carte

Seul, pour récupérer la documentation

Appliquer la commande :

# Dans le dossier de la compilation
./Path.exe -help

Le programme renvoie vers le shell :

 Path mini-help
 --------------

 Use: Path Input_file Output_file
 Input_file starts with a Namelist called path

 Compulsory variables are:
 NGeomi: Number of geometries defining the Initial path
 NGeomf: Number of geometries defining the Final path
 Nat   : Number of atoms

 Other options
 Input: string that indicates the type of the input geometries.
 Accepted values are: Cart (or Xmol or Xyz) or Vasp
 Prog: string that indicates the program that will be used for energy and gradient calculations.
       Accepted values are: Gaussian, Vasp, Mopac or Ext
       In case of a Gaussian or Mopac calculations, input must be set to Cart.
       One example of a gaussian/mopac input should be added at the end of the
       input file.See example file Test_G03.path or Test_Mopac.path
       In the case of a VASP calculation, if input is set to Cart, then
     the preamble of a VASP calculation should be added at the end of
     the input file. See example file Test_VASP_cart.path
     In the case of a VASP calculation, one should also give value of the 
     Runmode variable
 Runmode: This indicates wether one should use VASP routine to calculate the energy
        and gradient of the whole path or not. If one wants to use VASP,
        Runmode must be set to PARA.
 PathName: Prefix used to save the path. Default is Path
 Poscar: string that will be used as the prefix for the different 
         POSCAR files in a VASP calculations. Usefull only if PathOnly=.TRUE.,
         not used for internal calculations.
  CalcName: Prefix for the files used for the energy and gradient calculations
  ISuffix: Suffix for the input file.
  OSuffix: suffix for the output file.
 IGeomRef: Index of the geometry used to construct the internal coordinates.
       Valid only for Coord=Zmat, Hybrid or Mixed
 Fact: REAL used to define if two atoms are linked.
       If d(A,B)<=fact*(rcov(A)+rcov(B)), then A and B are considered Linked.
 debugFile: Name of the file that indicates which subroutine should print debug info.
 Coord: System of coordinates to use. Possible choices are:
        - CART (or Xyz): works in cartesian
        - Zmat: works in internal coordinates (Zmat)
        - Mixed: frozen atoms, as well as atoms defined by the 
        'cart' array(see below) are describe in CARTESIAN, whereas the
        others are described in Zmat
        - Baker: use of Baker coordinates, also called delocalized internal coordinates
        - Hybrid: geometries are described in zmat, but the gradient are used in cartesian
 Step_method: method to compute the step for optimizing a geometry; choices are:
        - RFO: Rational function optimization
        - GDIIS: Geometry optimization using direct inversion in the iterative supspace
  HesUpd: method to update the hessian. By default, it is Murtagh-Sargent
       Except for geometry optimization where it is BFGS.
 MaxCyc: maximum number of iterations for the path optimization
 Smax: Maximum length of a step during path optimization
 SThresh: Step Threshold to consider that the path is stationary
 GThresh: Gradient Threshold to consider that the path is stationary, only orthogonal part is taken
 FTan: We moving the path, this gives the proportion of the displacement tangent to the path
       that is kept. FTan=1. corresponds to the full displacement, 
       whereas FTan=0. gives a displacement orthogonal to the path.
 IReparam: The path is not reparameterised at each iteration. This gives the frequency of reparameterization.
 ISpline: By default, a linear interpolation is used to generate the path.
          This option indicates the first step where spline interpolation is used.

 Arrays:
 Rcov: Array containing the covalent radii of the first 80 elements.
       You can modify it using, rcov(6)=0.8.
 Mass: Array containing the atomic mass of the first 80 elements.
 AtTypes: Name of the different atoms used in a VASP calculations.
 If not given, Path will read the POTCAR file.

 Flags:
 MW:  Flag. True if one wants to work in Mass Weighted coordinates. Default=.TRUE.
 Renum: Flag. True if one wants to reoder the atoms in the initial order. default is .TRUE. most of the time.
 OptProd: True if one wants to optimize the geometry of the products.
 OptReac: True if one wants to optimize the geometry of the reactants.
 PathOnly:TRUE if one wants to generate the initial path, and stops.
 Hinv: if True, then Hessian inversed is used.
 IniHup: if True, then Hessian inverse is extrapolated using the initial path calculations.
 HupNeighbour: if True, then Hessian inverse is extrapolated using the neighbouring points of the path.
 FFrozen: True if one wants to freeze the positions of some atoms.
          If True, a &frozenlist namelist containing the list of frozen atoms must be given.
           If VASP is used, and frozen is not given
  here, the program will use the F flags of the input geometry
 FCart:  True if one wants to describe some atoms using cartesian coordinates. 
         *** Only used in 'mixed' calculations. ***
       If True, a &cartlist namelist containing the list of cart atoms must be given.
       By default, only frozen atoms are described in cartesian coordinates.

 DynMaxStep: if TRUE, the maximum allowed step is updated at each step, for each geometry.
         If energy goes up, Smax=Smax*0.8, if not Smax=Smax*1.2. 
        It is ensured that the dynamical Smax is within [0.5*SMax_0,2*Smax_0]
 Autocart: True if you want to let the program choosing the cartesian atoms.
 VMD: TRUE if you want to use VMD to look at the Path. Used only for VASP for now
 WriteVASP: TRUE if you want to print the images coordinates in POSCAR files.
 See also the POSCAR option. This can be used only if prog or input=VASP.

Exécution d'un exemple complet Test_HCN_zmat_test

# Se deplacer dans le dossier des exemples
cd ../examples/Test/Zmat
# Lancer l'execution : utilisation de l'exemple 
../../../src/Path.exe HCN_zmat.path HCN_zmat.out

Le document de sortie Test_HCN_zmat_test.out (disponible dans Files) commence et termine par les lignes suivantes :

 Path v4.1793 (c) PFL/PD 2007-2010
 Input has been set to the default: XYZ                             
 Working in MW coordinates
 Prog=TEST
 EGrad.f90, L73, IOpt=           0
 EGrad.f90, L73, IOpt=           0
 EGrad.f90, L73, IOpt=           0
 EGrad.f90, L73, IOpt=           0
 EGrad.f90, L73, IOpt=           0
 EGrad.f90, L73, IOpt=           0
 EGrad.f90, L73, IOpt=           0
 EGrad.f90, L73, IOpt=           0
 EGrad.f90, L73, IOpt=           0
 EGrad.f90, L73, IOpt=           0
 GeomTmp=
  1.053  1.113  2.832
 GeomCart=
  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000  0.000
--- snip snip ---
 Extrapol_int u,xgeom(NGeomI),s,dist,s-dist   11.000000000000000        11.000000000000000        1.3530023123052950        1.3530023123053081      -1.31006316905768472E-014