Calculer et Utiliser les dérivées secondes de l'énergie

A propos des dérivées de l'énergie

Le calcul des dérivées premières de la fonction "énergie" conduit au vecteur gradient

Quand ce vecteur est nul, on est sur un point "stationnaire" de l'espace des géométries, c'est la fin de l'optimisation. Il faut caractériser ce point stationnaire pour savoir si la géométrie de la molécule correspond à un minimum (puits) ou un état de transition (col ou saddle point). Cette caractérisation a besoin de la matrice des dérivées secondes, la matrice HESSIENNE de la fonction "énergie":

Calcul du hessien dans GAMESS

Pour ce faire on précise dans $CONTRL RUNTYP=HESSIAN au lieu de RUNTYP=ENERGY ou autre. Et on précise dans le groupe $FORCE la méthode de calcul: METHOD=ANALYTIC. Attention le calcul n'est rapide (analytique) que par la méthode Hartree-Fock. Pour les autres méthodes, comme la DFT par exemple, GAMESS procède par différentiation du gradient: il fait la differentiation numérique du gradient analytique METHOD=SEMINUM. Il peut aussi procéder par différentiation de l'énergie FULLNUM , selon les 3N coordonnées de la molécule ayant N atomes. Ce qui demande beaucoup de calculs si N est grand.

Utilisation du hessien: caractérisation

Le calcul du hessien permet de caractériser la géométrie comme un minimum ou un état de transition: l'analyse des modes de vibration montre en effet une unique fréquence imaginaire quand on a un état de transition. Le job 300235 montre un minimum dans le propene. Le job 300867 montre un état de transition dans le propene. La visualisation de la fréquence imaginaire (affichée comme négative) permet de mieux comprendre la différence entre ces 2 géométries. Le calcul indique une petite barrière de 9 kJ/mol.
Pour caractériser une géométrie lors d'une optimisation, on garde $CONTRL RUNTYP=OPTIMIZE. Le simple ajout du groupe $FORCE conduit au calcul du hessien et à son analyse vibrationnelle en fin d'optimisation.

Utilisation du hessien: Spectre IR

Le calcul du hessien conduit à une analyse de ses valeurs propres dans le cadre de l'approximation harmonique. On simule ainsi le spectre IR des molécules. La précision est en général très bonne. A noter qu'au niveau Hartre-Fock on surestime un peu les valeurs des fréquences des modes normaux. Attention ChemCompute a tendance à reoptimiser la géométrie quand on la récupèred'un calcul précédent. Il faut décocher les cases correspondantes.


Exemples

Calcul du hessien analytiquement

Utilisation pour visualiser les 3N déplacements.

 !! filename=Propene_RHF_HESSIEN_Cs_job_300220
 !
 $CONTRL SCFTYP=RHF MAXIT=200 RUNTYP=HESSIAN
  MULT=1 ICHARG=0
 $END
 $FORCE METHOD=ANALYTIC $END
 $DATA
 
  C1
 C 6.0 -0.33725 -0.30716 0.00029
 C 6.0 0.78687 -0.99610 -0.00027
 C 6.0 -0.43526 1.19225 0.00008
 H 1.0 -1.27544 -0.84023 0.00031
 H 1.0 1.74959 -0.51328 -0.00019
 H 1.0 0.78948 -2.07169 -0.00015
 H 1.0 0.54610 1.65343 0.00024
 H 1.0 -0.97632 1.54533 -0.87398
 H 1.0 -0.97692 1.54562 0.87367
 $END
 $BASIS GBASIS=N31 NGAUSS=6
  NDFUNC=1 NPFUNC=0 $END
 $SYSTEM TIMLIM=2879 MWORDS=250 $END
 $SCF DIRSCF=.T. $END
 $GUESS GUESS=HUCKEL $END

Calcul du hessien seminumérique

C'est à dire différentiation du gradient analytique. NVIB=2 indique de faire une double différenciation (un pas de chaque coté). NVIB=2 est obligatoire pour le calcul FULLNUM


 ! Propene_RHF_HESSIEN_Cs job 300220
 !
 $CONTRL SCFTYP=RHF MAXIT=200 RUNTYP=HESSIAN
  MULT=1 ICHARG=0
 $END
 $FORCE METHOD=SEMINUM NVIB=2 $END
 $DATA
 
  C1
 C 6.0 -0.33725 -0.30716 0.00029
 C 6.0 0.78687 -0.99610 -0.00027
 C 6.0 -0.43526 1.19225 0.00008
 H 1.0 -1.27544 -0.84023 0.00031
 H 1.0 1.74959 -0.51328 -0.00019
 H 1.0 0.78948 -2.07169 -0.00015
 H 1.0 0.54610 1.65343 0.00024
 H 1.0 -0.97632 1.54533 -0.87398
 H 1.0 -0.97692 1.54562 0.87367
 $END
 $BASIS GBASIS=N31 NGAUSS=6
  NDFUNC=1 NPFUNC=0 $END
 $SYSTEM TIMLIM=2879 MWORDS=250 $END
 $SCF DIRSCF=.T. $END
 $GUESS GUESS=HUCKEL $END