grado de licenciado en ciencias químicas

91
Departamento de Química Física Facultad de Ciencias Universidad de Cádiz ESTUDIO COMPARATIVO DE DIVERSOS MÉTODOS DE OPTIMIZACIÓN DE GEOMETRÍAS MOLECULARES EN COORDENADAS CARTESIANAS Memoria presentada por David Sánchez Peña para optar al Grado de Licenciado en Ciencias Químicas Cádiz, Abril de 2000

Upload: doantu

Post on 06-Jan-2017

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Grado de Licenciado en Ciencias Químicas

Departamento de Química Física Facultad de Ciencias Universidad de Cádiz

ESTUDIO COMPARATIVO DE DIVERSOS MÉTODOS DE OPTIMIZACIÓN DE GEOMETRÍAS MOLECULARES EN

COORDENADAS CARTESIANAS

Memoria presentada por David Sánchez Peña para optar al

Grado de Licenciado en Ciencias Químicas

Cádiz, Abril de 2000

Page 2: Grado de Licenciado en Ciencias Químicas

1

Este trabajo ha sido realizado en el Departamento de Química Física de la Universidad de Cádiz durante los cursos 1997/99.

Deseo expresar mi agradecimiento al Dr. D. Manuel Fernández Núñez

por su dirección y constante apoyo, que ha permitido que esta tesina

pudiera llevarse a cabo.

Page 3: Grado de Licenciado en Ciencias Químicas

2

ÍNDICE

ÍNDICE............................................................................................................................ 2

INTRODUCCIÓN.......................................................................................................... 4

1 OPTIMIZACIÓN DE GEOMETRÍAS MOLECULARES................................. 6

1.1 Superficie de energía potencial y optimización geométrica .............................. 8 1.2 Búsqueda de los mínimos de la superficie de energía potencial........................ 9 1.3 El uso de las coordenadas cartesianas .......................................................... 100 1.4 Criterios de convergencia .............................................................................. 122 1.5 Determinación de direcciones de desplazamiento ........................................... 12 1.6 Minimización a lo largo de la dirección elegida ............................................. 13 1.7 Métodos analizados en este trabajo ................................................................. 16

2 FUNDAMENTOS DE LOS MÉTODOS DE OPTIMIZACIÓN ...................... 17

2.1 Método de la Máxima Pendiente...................................................................... 19 2.2 Método Newton-Raphson ................................................................................. 20

2.2.1 La matriz hessiana ...................................................................................... 20 2.2.2 Uso de coordenadas no redundantes........................................................... 21 2.2.3 Una mejora: el método de la función racional............................................ 23

2.3 Métodos de Gradientes Conjugados ................................................................ 24 2.4 Métodos de Métrica Variable........................................................................... 30

3 PROGRAMACIÓN DE LOS MÉTODOS DE OPTIMIZACIÓN ................... 33

3.1 Uso del programa AVEMO .............................................................................. 35 3.2 La subrutina de optimización ........................................................................... 39 3.3 Programación del método de máxima pendiente ............................................. 46 3.4 Programación de los métodos de gradientes conjugados................................ 48 3.5 Programación de los métodos de métrica variable.......................................... 48 3.6 Cálculo del gradiente ....................................................................................... 53

Page 4: Grado de Licenciado en Ciencias Químicas

3

4 RESULTADOS Y DISCUSIÓN ........................................................................... 55

4.1 Optimización del desplazamiento máximo inicial y del factor de reducción... 57 4.2 Optimización de la tolerancia en el gradiente de energía ............................... 62 4.3 Comparación de la eficiencia de los métodos ensayados ................................ 67 4.4 Comparación con resultados estándar............................................................. 72 4.5 El caso del NO2 ................................................................................................ 79

RESUMEN Y CONCLUSIONES ............................................................................... 80

APÉNDICE: GEOMETRÍAS MOLECULARES INICIALES ............................... 84

BIBLIOGRAFÍA .......................................................................................................... 86

Page 5: Grado de Licenciado en Ciencias Químicas

4

INTRODUCCIÓN

Este trabajo ha sido desarrollado en el Laboratorio de Química Cuántica de la

Universidad de Cádiz. Una de las líneas de investigación de dicho laboratorio es el

cálculo teórico de propiedades moleculares, tales como energías moleculares, distancias

y ángulos de enlace, constantes de fuerza, momentos dipolares o potenciales de

ionización. Para calcular estas propiedades por vía teórica, es necesario suministrar al

programa de cálculo la geometría molecular para la que ha de realizarse el cálculo. Esta

geometría puede ser la experimental, si se conoce, o bien una geometría aproximada

según criterios químicos. Pero el procedimiento más recomendable consiste en

determinar qué geometría molecular hace mínima la energía del sistema, y es en este

caso cuando se hace necesario un programa que efectúe la minimización de la energía

molecular respecto de los parámetros geométricos de la molécula. La optimización

geométrica es un tema bien tratado desde hace tiempo: desde los años cincuenta han ido

desarrollándose diversos métodos de minimización (o maximización, que en el fondo es

equivalente) de funciones de varias variables que intentan alcanzar el extremo local más

próximo a un punto de partida, en el menor número posible de pasos. Estos métodos

matemáticos han sido aplicados en Química Teórica para optimizar geometrías

moleculares, con bastante éxito.

En este trabajo se ha llevado a cabo un estudio detallado de algunos métodos de

optimización geométrica ampliamente utilizados y simultáneamente se ha desarrollado

nuestro propio programa de optimización. Casi todos los programas “comerciales” de

cálculo teórico de propiedades moleculares pueden llevar a cabo optimizaciones

geométricas. Entonces, ¿por qué estudiar unos métodos sobre los que ya hay tanto

escrito? ¿Para qué desarrollar un programa más de optimización?. La razón más

inmediata para nosotros radica en la utilidad de disponer de un programa de

optimización escrito en un lenguaje claro y asequible a cualquiera que sepa programar,

y por tanto, susceptible de ser usado prácticamente sabiendo lo que el programa está

haciendo. Esto evita el inconveniente que presentan los programas habituales, que la

Page 6: Grado de Licenciado en Ciencias Químicas

5

mayoría de las veces deben ser usados como caja negra, (sólo investigadores muy

especializados -y en cierto sentido “valerosos”- se atreverían a hurgar, por ejemplo, en

el código de un programa como el Gaussian). Además brinda al usuario la posibilidad

de modificar el programa adaptándolo a sus necesidades. Esta visión de escribir un

programa de forma sencilla también tiene una clara utilidad didáctica que disfrutarán los

alumnos de nuestra Facultad, quienes serán sus primeros usuarios.

La organización de este trabajo es la siguiente. En el primer capítulo se explica

en qué consiste la optimización de geometrías moleculares y se introducen los

conceptos necesarios para los desarrollos que se realizan posteriormente. En el capítulo

2 se exponen los fundamentos teóricos de los métodos de optimización estudiados. Se

ha tratado de desarrollar los fundamentos matemáticos de un modo razonablemente

riguroso, pero sobre todo procurando que se entiendan de una forma intuitiva. Los

capítulos 3 y 4 contienen la parte más original del trabajo. En el capítulo 3 se describe el

programa que ha sido realizado y el modo de usarlo. Incluye la transcripción de las

subrutinas que forman el proceso de optimización, por si se diera el caso de que este

trabajo fuera leído por alguna persona que no disponga del disquete adjunto. En el

capítulo 4 se exponen los resultados de aplicar el programa a un conjunto de moléculas

de prueba que contienen los elementos de mayor interés en la Química Orgánica:

carbono, hidrógeno, oxígeno y nitrógeno, en diferentes situaciones de enlace. También

se determinan valores óptimos para los parámetros usados por el programa (aunque éste

permite que el usuario los modifique a voluntad): desplazamientos atómicos, factor de

reducción y tolerancia en fuerzas. Por último, se presentan las conclusiones y se da un

esbozo de la dirección que en el futuro puede tomar nuestra investigación sobre el tema:

extensión del programa a coordenadas internas, búsqueda de varios mínimos, etc.

Page 7: Grado de Licenciado en Ciencias Químicas

6

CAPÍTULO 1

1 OPTIMIZACIÓN DE GEOMETRÍAS MOLECULARES

Page 8: Grado de Licenciado en Ciencias Químicas

7

Introducción al Capítulo 1

Se comienza este trabajo con la exposición de los

conceptos necesarios para comprender los desarrollos

posteriores. La superficie de energía potencial se visualiza

como una función definida en un espacio de configuración

de las coordenadas cartesianas de los núcleos, cuyos

mínimos se pueden determinar. Después se da una ligera

idea de la necesidad de un criterio de convergencia óptimo

para los procesos de minimización. Por último se exponen

los algoritmos básicos que se usarán en todo el trabajo: el

desplazamiento a lo largo de cierto vector de dirección y la

minimización lineal por deslizamiento.

Page 9: Grado de Licenciado en Ciencias Químicas

8

1.1 Superficie de energía potencial y optimización geométrica

Los métodos mecanocuánticos (Ab Initio y Semiempíricos) permiten calcular de

forma teórica las propiedades moleculares. Por ejemplo las energías moleculares, las

energías de ionización, los momentos dipolares, etc. También se usan para determinar la

geometría más estable de las moléculas, esto es, aquélla que hace mínima su energía. Es

bien sabido que la energía de una molécula depende de sus distancias y ángulos de

enlace. En muchos casos existe una geometría molecular para la cual esta energía es

mínima. Pero en otros casos existen varias, que corresponden a diversas conformaciones

estables de la molécula en estudio. Las moléculas de cierta complejidad suelen tener

más de una conformación estable y resulta importante saber cual de ellas es la de menor

energía. Por otro lado, los cálculos teóricos reproducen esta dependencia de una forma

más o menos realista según sea el método elegido para calcular la función de onda. La

energía calculada y la geometría a la que corresponde su mínimo dependen pues de cual

sea el método usado para obtenerlas, aproximándose más o menos a las experimentales

según sea la calidad del método (y también la calidad del procedimiento de

determinación experimental). Existen métodos de cálculo de funciones de onda de

diferente complejidad, desde los más simples (Mecánica Molecular) hasta los Ab Initio

con bases grandes e incluso con correlación electrónica. Evidentemente, en general,

Figura 1. El caso más simple de superficie de energía potencial, correspondiente a una molécula diatómica con la distancia internuclear r como única coordenada.

Page 10: Grado de Licenciado en Ciencias Químicas

9

cuanto más sofisticado sea el método usado para calcular la función de onda, tanto más

aproximará las propiedades calculadas a las experimentales, aunque también invertirá

más tiempo en calcularlas y requerirá mayor potencia de cálculo. No obstante, es

importante subrayar que para que esta aproximación teoría-experiencia se produzca, es

necesario que el cálculo teórico y la determinación experimental se refieran realmente al

mismo parámetro, y esto no siempre está claro.

Lo dicho nos conduce a considerar la energía molecular como una función de las

distancias y ángulos de enlace, o de cualquier conjunto de coordenadas que permitan

definir la geometría de la molécula, como pueden ser las coordenadas cartesianas de

cada uno de sus átomos. Esta función es lo que se llama superficie de energía potencial

de la molécula (Figura 1).

1.2 Búsqueda de los mínimos de la superficie de energía potencial

Una de las aplicaciones más estandarizadas de la Química Cuántica es la

determinación teórica de geometrías moleculares estables. Como se dijo más arriba,

éstas corresponden a las conformaciones para las que la energía calculada resulta

mínima, o lo que es lo mismo, a los puntos donde la superficie de energía potencial

presenta sus mínimos. El objetivo de este trabajo no es encontrar mínimos que se

aproximen lo más posible a las geometrías moleculares experimentales1, sino comparar,

optimizar y mejorar algunos de los métodos usados para encontrar esos mínimos.

Tampoco se plantea aquí el desarrollo de un método de minimización que conduzca al

mínimo absoluto de la superficie de energía potencial. De hecho, éste es un problema

aún no del todo resuelto. Los métodos de optimización que vamos a estudiar buscan

simplemente el mínimo “más cercano” a una geometría de partida que se estima en base

a la intuición química y que no tiene porqué ser el más estable de todos los mínimos

existentes.

La minimización se lleva a cabo partiendo de una geometría molecular razonable

y desplazando todos los átomos en direcciones adecuadas (Figura 2) y con una cierta

longitud de paso de forma que la energía calculada para sucesivas geometrías vaya

1 Ya se ha explicado que el grado de aproximación entre la geometría obtenida y la experimental depende del método de cálculo mecanocuántico que se use para generar la función de onda.

Page 11: Grado de Licenciado en Ciencias Químicas

10

decreciendo. Cada método de optimización conlleva una forma propia de escoger las

direcciones en que los átomos deben moverse. En este trabajo vamos a centrarnos en la

optimización del paso con que se busca el mínimo una vez decidida la dirección en que

debe desplazarse cada átomo. Un método de minimización se considerará eficiente si

llega al mínimo buscado en pocos pasos y de forma segura, sin perderse y sin conducir a

otro mínimo no deseado.

1.3 El uso de las coordenadas cartesianas

Aunque hay otras clases de coordenadas muy usadas en optimización

geométrica, en este trabajo se van a usar las coordenadas cartesianas, que son las más

sencillas de construir y manejar. Además, los programas de representación gráfica de

moléculas, tan usados en la actualidad, dan habitualmente las coordenadas atómicas en

forma de matriz de 3N coordenadas cartesianas. Se comprende pues la comodidad que

supone para el químico el poder optimizar la geometría partiendo directamente de la

molécula que acaba de dibujar en su ordenador.

En coordenadas cartesianas la superficie de energía potencial es una función de

3N variables, donde N es el número de átomos de la molécula. Estas 3N variables son

las coordenadas donde están centrados los átomos de la molécula:

E = E ( x1 , y1 , z1 , x2 , y2 , z2 , ... , xN , yN , zN )

O

H H

90º

1 Å O

H H

104º

0.96 Å

Figura 2. Movimiento de los átomos desde una geometríamolecular groseramente aproximada hasta la de energíamínima según el método semiempírico CNDO.

Page 12: Grado de Licenciado en Ciencias Químicas

11

Nótese que la superficie de energía potencial está definida en un espacio de

configuración, en el que se trata la molécula como si fuera un sistema de partículas

clásico.

Para moléculas aisladas, estas 3N coordenadas cartesianas contienen

necesariamente varias redundancias respecto al cálculo de la energía, pues ésta no

puede depender de la localización global de la molécula en el espacio, ni de su

orientación respecto al sistema de referencia. Al tratar la molécula como un sistema de

partículas aislado, se podrían aplicar las condiciones de invariabilidad del centro de

masas y de los ejes principales de inercia [Refs.16-18]. Así se pueden obtener 6

relaciones entre los desplazamientos atómicos (5 si la molécula es lineal) y reducir el

número de grados de libertad a 3N–6 (ó 3N–5). Sin embargo, hemos comprobado que

empleando el conjunto completo de 3N coordenadas se llega normalmente al mínimo

con seguridad y en un número razonable de ciclos. La programación de los algoritmos

también se facilita al trabajar directamente con todo el bloque de coordenadas sin

preocuparse de resolver el sistema de ecuaciones que liga los desplazamientos atómicos

dependientes (sección 2.2.2). Por ello, salvo en un caso (método de Newton-Raphson)

en el que ha sido imprescindible usar coordenadas no redundantes, en todos los demás

se ha usado las 3N coordenadas.

Como ya se ha dicho, existen otras coordenadas aún más usadas que las

cartesianas en optimización geométrica, como por ejemplo las que forman la matriz Z,

las coordenadas internas naturales, o las coordenadas internas deslocalizadas

[Refs. 6-14]. Para moléculas no cíclicas éstas parecen ser más eficientes que las

cartesianas, aunque suelen resultar más difíciles de definir. Pero en moléculas cíclicas

sus variaciones presentan acoplamientos indeseables, es decir, pueden no ser

independientes, de manera que para tratar un caso general nos ha parecido preferible el

empleo de coordenadas cartesianas.

El empleo de las 3N coordenadas cartesianas resulta especialmente

recomendable para optimizar moléculas sometidas a campos eléctricos. En este caso la

energía molecular sí que depende de la orientación de la molécula en el espacio, y si el

campo no es constante, también de su posición global respecto al mismo. De hecho, el

estudio teórico de moléculas adsorbidas sobre redes cristalinas (simuladas mediante la

Page 13: Grado de Licenciado en Ciencias Químicas

12

adición de campos eléctricos a las moléculas) es una de las líneas de investigación del

Laboratorio de Química Cuántica de la Universidad de Cádiz.

1.4 Criterios de convergencia

En un mínimo de la superficie de energía potencial es necesario que las

derivadas de ésta respecto a todas las variables sean nulas. Para identificar cuándo nos

hemos acercado lo suficiente al mínimo, en cada punto del camino se calculan esas

derivadas, deteniendo la minimización cuando la mayor de ellas en valor absoluto sea

menor que una tolerancia establecida de antemano. Uno de los objetivos de este trabajo

es establecer cual es la tolerancia aceptable. Si ésta es demasiado pequeña, para

alcanzarla se necesitan demasiados pasos, de los cuales los últimos resultarán

superfluos, pues la geometría molecular (y la energía) variarían ya muy poco respecto al

mínimo exacto. Por el contrario, si la tolerancia se elige demasiado grande, la geometría

obtenida al dar por finalizada la minimización diferirá demasiado de la verdadera

geometría en el mínimo. En este trabajo se ha supuesto que el máximo error aceptable

respecto de la geometría correspondiente al mínimo exacto debe cifrarse en las

milésimas de angstrom para las distancias de enlace y en las décimas de grado para los

ángulos, ya que es difícil encontrar métodos teóricos ni datos experimentales que

suministren estos parámetros con mayor precisión.

1.5 Determinación de direcciones de desplazamiento

Como ya se ha dicho, la optimización geométrica es un proceso iterativo. Cada

punto del espacio de configuración está determinado por un vector x = (x1 , x2 , ..., x3N),

y cada nuevo punto (en nuestro programa) se obtiene a partir del anterior moviendo los

núcleos según un cierto vector de dirección dk cuyas componentes son unos coeficientes

determinados de forma diferente según el método de optimización de que se trate.

Generalmente su determinación necesita una evaluación del gradiente de la energía

potencial. Todos nuestros métodos de optimización siguen el siguiente algoritmo

general:

kmax

kk ddxx δ+=+1 (1)

Page 14: Grado de Licenciado en Ciencias Químicas

13

donde dmax es el máximo de los valores absolutos de los coeficientes di y δ es el máximo

desplazamiento efectuado, que se realiza a lo largo de la coordenada correspondiente a

dmax. El valor de este desplazamiento máximo es un factor importante en la eficacia de

las optimizaciones. En general, tanto valores demasiado pequeños como demasiado

grandes de δ obligan a efectuar muchas iteraciones, en el primer caso porque en cada

paso se avanza muy poco hacia el mínimo y en el segundo porque “nos pasamos de

largo”, viéndonos abocados a una convergencia oscilante. En este trabajo

determinaremos un valor óptimo para este desplazamiento máximo.

Para evitar posibles problemas de desbordamiento en los ordenadores, en nuestro

programa se normaliza el vector dk. Este detalle no afecta para nada al desarrollo aquí

efectuado.

1.6 Minimización a lo largo de la dirección elegida

Una vez fijado el valor de δ, tenemos dos alternativas:

a) Efectuar cada etapa aplicando una sola vez la ecuación (1) recalculando en cada

etapa la dirección de desplazamiento dk, hasta alcanzar la convergencia (en nuestro

programa, hasta que la mayor componente del gradiente en valor absoluto caiga por

debajo de la tolerancia establecida). Si en alguna etapa se produjera un ascenso en la

energía, significa que se ha sobrepasado la mínima energía correspondiente a la

dirección a lo largo de la cual se está buscando. En ese caso es mejor mover sólo una

fracción de δ, cuyo valor óptimo hay que determinar. Esta forma de proceder tiene la

desventaja de que, al no aprovechar la dirección de desplazamiento obtenida hasta

alcanzar su mínimo, se necesita calcular muchas veces el vector dk. y por tanto, el

gradiente de energía. Nuestro programa calcula las derivadas de la energía

numéricamente, lo que implica un tiempo de cálculo excesivamente largo para la

determinación de cada gradiente.

b) Tratar de encontrar, o por lo menos, acercarse lo más posible al mínimo a lo largo de

la dirección de búsqueda antes de plantearse un cambio de dirección. De esta forma

se aprovechan al máximo las direcciones obtenidas en cada cálculo de dk y

normalmente se ahorra tiempo. Para buscar este mínimo provisional hay que usar

Page 15: Grado de Licenciado en Ciencias Químicas

14

algún algoritmo de minimización monodimensional. Aunque hay abundante

bibliografía sobre minimización de funciones de una variable [Refs. 1,2], hemos

preferido desarrollar un método adaptado a las peculiaridades del problema concreto

de la optimización geométrica molecular.

El método propuesto utiliza un ajuste polinómico. En vez de usar una sola vez la

ecuación (1) y recalcular la dirección d, repetimos los pasos siempre a lo largo de la

misma dirección calculada, evaluando en cada paso sólo la energía, hasta que se llegue a

un aumento de la misma (Figura 3). En este momento, el penúltimo punto calculado es

el que tiene la energía mínima. Podría tomarse como mínimo provisional a lo largo de la

dirección escogida este penúltimo punto, pero hemos comprobado que ajustar los tres

últimos puntos obtenidos a una parábola de variables

− k

maxk

max dddd δδ ,0, , (donde

se ha trasladado el origen de coordenadas a este penúltimo punto) mejora mucho la

exactitud en la estimación de este mínimo y reduce el número de etapas necesario para

d

M m

A

Figura 3. Interpretación gráfica en dos dimensiones de una etapa de deslizamiento. Desde el punto A, donde se ha calculado la dirección de desplazamiento, deslizamos en sentido descendente hasta llegar a un incremento positivo de la energía. En ese momento, el punto de menor energía m es el penúltimo de los calculados.

d

m

A

x1

x2

Page 16: Grado de Licenciado en Ciencias Químicas

15

llegar al mínimo definitivo de la hipersuperficie de energía potencial. Esto es lo que se

ha hecho en este trabajo. Llamaremos deslizamiento a esta repetición de los pasos sin

recalcular la dirección dk. Las coordenadas de un nuevo punto calculado mediante

deslizamiento vienen dadas pues por la siguiente ecuación:

kmax

jj ddxx δ+=+1 (2)

donde no se debe confundir el subíndice j, que indica el número de deslizamiento, con

el k, correspondiente al número de iteración (llamando iteración a cada nuevo cambio de

dirección).

En cuanto al ajuste parabólico, fácilmente se demuestra que el mínimo de la

parábola ajustada al trío de puntos

− k

maxk

max dddd δδ ,0, se encuentra en el punto

1

2

3

4

5

6

7

8

9

10

11

12 13

14

Figura 4. Esquema de una reducción de δ. Después de llegar al punto 4 por deslizamiento, se calcula el nuevo vector de dirección y la energía en los puntos 6 y 7. Resulta que el punto central 4 sigue siendo el de menor energía. Para salir de esta situación se reduce el desplazamiento δ, calculándose la energía en los puntos 8 y 9. Se puede efectuar un paso de deslizamiento, alcanzándose el punto 10. En este momento el punto de menor energía es el 9 y podemos seguir deslizando por una nueva dirección hasta llegar al 13.

Page 17: Grado de Licenciado en Ciencias Químicas

16

( )( ) k

maxmin EEEd

EE dx022 −+

−=+−

+−δ (3)

respecto de xj. En esta expresión, E– es la energía correspondiente al punto de

coordenadas kmaxd

dδ− respecto de xj, E+ es la del punto de coordenadas kmaxd

dδ y E0

corresponde al punto central del ajuste parabólico, xj.

Por supuesto, en este caso también podemos encontrarnos con una situación en

que la energía aumente hacia ambos lados al intentar el primer paso de deslizamiento a

lo largo de la dirección recién calculada (Figura 4). En este caso debemos reducir el

valor de δ hasta poder deslizar. En este trabajo se han determinado los valores del factor

de reducción y de δ que permiten alcanzar el mínimo de la superficie de energía

potencial en el mínimo número de etapas, al menos para nuestro conjunto de 24

moléculas de prueba.

1.7 Métodos analizados en este trabajo

En este trabajo se ha realizado un estudio comparativo de algunos métodos

ampliamente usados en optimización geométrica de moléculas. Se ha comparado

métodos de Quenching (Máxima Pendiente y Newton-Raphson), de gradientes

conjugados (Fletcher-Reeves y Polak-Ribiere) y de métrica variable (Davidon-Fletcher-

Powell y Broyden-Fletcher-Goldfarb-Shanno). A éstos se podría añadir el método del

simplex, pero por los pésimos resultados que hemos encontrado al aplicarlo, no lo

recomendamos en absoluto para la optimización de geometrías moleculares.

La eficiencia de los diferentes métodos de optimización se ha verificado sobre

un conjunto de 24 moléculas que contienen carbono, hidrógeno, nitrógeno y oxígeno, en

diferentes situaciones de enlace que podrían representar las más usuales en Química

Orgánica. De cada método interesa comparar el tiempo empleado en converger al

mínimo, el número de iteraciones necesario, y su seguridad. Esto último significa que

sólo comparamos métodos que conducen al mismo mínimo, lo que queda atestiguado

por la geometría y energía moleculares obtenidas.

Page 18: Grado de Licenciado en Ciencias Químicas

17

Pasaremos a explicar los métodos de optimización, desde el más sencillo (pero

poco eficiente) al más complejo.

Page 19: Grado de Licenciado en Ciencias Químicas

18

CAPÍTULO 2

2 FUNDAMENTOS DE LOS MÉTODOS DE OPTIMIZACIÓN

Page 20: Grado de Licenciado en Ciencias Químicas

19

Introducción al Capítulo 2

En este capítulo se exponen los fundamentos teóricos de

los métodos de optimización comparados en este trabajo.

Se comienza por el método de la Máxima Pendiente, por

ser el más sencillo. Tras poner de manifiesto sus

inconvenientes, se analizan los métodos que hacen uso de

la aproximación cuadrática de la superficie de energía

potencial: Newton-Raphson, Gradientes Conjugados y

Métrica Variable. Se ha pretendido dar un enfoque lo más

intuitivo posible al desarrollo, por lo que creemos que se

puede seguir sin poseer conocimientos matemáticos

demasiado profundos.

Page 21: Grado de Licenciado en Ciencias Químicas

20

2.1 Método de la Máxima Pendiente

Suponiendo que dispusiéramos de las 3N derivadas parciales de la energía

molecular respecto de las coordenadas nucleares, se podrían interpretar las tres

derivadas calculadas sobre cada núcleo i,

( ) ( ) ( )g iEx

g iEy

g iEzx

iy

iz

i= = =

∂∂

∂∂

∂∂

(4)

como las componentes de un gradiente de energía, con lo cual cada núcleo estaría

sometido a una fuerza dirigida en contra de su gradiente:

( ) ( )f gi i Ei= − = − ∇ (5)

A primera vista, si se quiere buscar el mínimo de energía, parece lógico mover todos los

núcleos en las direcciones de las fuerzas que actúen sobre ellos, y mover más aquéllos

que estén sometidos a mayores fuerzas. En definitiva, avanzar sobre cada una de las 3N

coordenadas en una cantidad proporcional a la derivada de la energía molecular respecto

de esa coordenada. La distorsión de la molécula asegura un descenso inicial en la

energía, pasando por un mínimo en esa dirección (al que llamaremos mínimo

provisional) hasta llegar a un ascenso (Figura 5).

Éste es el método de optimización más sencillo de los que hemos estudiado. El

g

M m

A

Figura 5. Un paso del método de máxima pendiente. Nótese cómo, partiendo del punto A en sentido contrario al gradiente, se marcha en sentido descendente en energía hasta alcanzar el mínimo provisional m.

Page 22: Grado de Licenciado en Ciencias Químicas

21

vector de dirección va en sentido contrario al gradiente, dk = –gk, con lo que el nuevo

punto se obtiene modificanco (1):

kmax

kk ggxx δ−=+1 (6)

Las minimizaciones lineales siguen el esquema de deslizamiento ya explicado en la

sección 1.6.

2.2 Método Newton-Raphson

Este método de optimización no ha sido implementado en nuestro programa, ya

que requiere calcular las segundas derivadas de la energía, siendo éste un trabajo que

exige demasiado tiempo cuando se emplea la derivación numérica. De todas formas

debemos revisarlo, pues los métodos de métrica variable, que han resultado ser los más

eficaces de los métodos de optimización ensayados, tienen su origen en el

Newton-Raphson.

2.2.1 La matriz hessiana

El método de Newton-Raphson se basa en el desarrollo de Taylor limitado al

segundo grado de la hipersuperficie de energía potencial:

( ) ( ) ( ) ( ) ( ) ( ) ( )000000 21 xxxxxxxxgxx −−+−+= ••• HttEE (7)

donde x0 es el punto del espacio de configuración donde se hace el desarrollo, x un

punto cercano a él, g(x0) el vector gradiente de la superficie de energía potencial

evaluado en x0

( )0

0x

x

=

ii x

Eg∂∂ (8)

y H (x0) la matriz hessiana, cuadrada y simétrica, que contiene las segundas derivadas

de la energía calculadas también en x0:

Page 23: Grado de Licenciado en Ciencias Químicas

22

( )0

2

0x

x

=

ijij xx

EH∂∂

∂ (9)

En el desarrollo teórico de los métodos de minimización llevado a cabo en este

trabajo, los vectores se interpretan como matrices columna si no llevan superíndice, y

como matrices fila si llevan la t de trasposición.

Derivando la expresión de la energía (7) respecto de las coordenadas xi se

obtiene:

( ) ( ) ( ) ( )000 • xxxxgxg −+= H (10)

De donde se pueden despejar las coordenadas del mínimo, teniendo en cuenta que en

este punto el gradiente se anula:

( ) ( )001

0 • xgxxx −−= H (11)

Si la hipersuperficie de energía potencial fuera una función verdaderamente cuadrática,

la aplicación de la ecuación (11) conduciría al mínimo en un solo paso cualquiera que

fuere el punto de partida. Sin embargo, en la práctica la aproximación (7) sólo es válida

si x y x0 están “suficiente próximos”, lo cual obliga a buscar el mínimo iterativamente.

2.2.2 Uso de coordenadas no redundantes

Para que los pasos del método de Newton-Raphson converjan hacia el mínimo,

es imprescindible que la matriz hessiana sea definida positiva. Hemos comprobado que

esto no ocurre cuando se usa un conjunto de 3N coordenadas cartesianas, debido a las

coordenadas redundantes que contiene. Las segundas derivadas respecto de estas

coordenadas “distorsionan” la matriz hessiana. Para eliminar las 6 (ó 5) coordenadas

redundantes se pueden usar las conocidas condiciones de la mecánica de sistemas

aislados de partículas clásicas: invariabilidad del centro de masas y de los ejes

principales de inercia [Ref. 16-18]. Recordemos brevemente estas condiciones:

Page 24: Grado de Licenciado en Ciencias Químicas

23

a) Invariabilidad traslacional.

Tomemos como referencia el centro de masas molecular. Distorsionamos la molécula

desplazando cada átomo sobre su vector ∆ra. Para que la posición del centro de masas

permanezca invariable debe cumplirse:

maa

N

a=∑ =

10∆r (12)

De esta ecuación se obtienen tres ecuaciones escalares, cada una de las cuales contiene

N variables del espacio de configuración:

m x m y m zaa

N

a aa

N

a aa

N

a= = =∑ ∑ ∑= = =

1 1 10 0 0∆ ∆ ∆; ; (13)

b) Invariancia de rotación

Por otro lado, la condición de invariabilidad de los ejes principales de inercia exige que:

01

=∆×∑=

aa

N

aam rr (14)

de donde se obtienen otras tres ecuaciones escalares:

( )

( )

( )

m y z z y

m x z z x

m x y y x

aa

N

a a a a

aa

N

a a a a

aa

N

a a a a

=

=

=

− =

− =

− =

1

1

1

0

0

0

∆ ∆

∆ ∆

∆ ∆

(15)

En moléculas lineales estas ecuaciones equivalen a sólo dos, ya que una de ellas resulta

ser combinación lineal de las otras dos.

Si se emplean como coordenadas las variaciones de las distancias y ángulos de

enlace, el hessiano resulta ser la matriz de constantes de fuerza, que se puede usar como

hessiano aproximado cuando es conocida. De esta forma se evita el mayor

Page 25: Grado de Licenciado en Ciencias Químicas

24

inconveniente de este método: la extremada lentitud del cálculo de las segundas

derivadas. El hessiano se puede calcular también mediante ecuaciones empíricas

[Refs. 19, 20], mediante doble derivación analítica de las expresiones de la energía

[Refs. 21-29] y mediante derivación numérica de las primeras derivadas analíticas de la

energía [Refs. 30, 31]. Aunque estos últimos procedimientos son mucho más rápidos

que la doble derivación numérica, también presentan inconvenientes. Un hessiano

empírico depende demasiado del tipo de estructuras moleculares que pretenda

modelizar, y las derivadas analíticas son complicadas de programar y dependen del

método de cálculo mecanocuántico que se esté usando para obtener la energía.

2.2.3 Una mejora: el método de la función racional

Como ya se ha dicho, el método de Newton-Raphson necesita que la matriz

hessiana sea definida positiva para converger hacia un mínimo. Esto no siempre ocurre,

sobre todo en las primeras etapas de la minimización, cuando aún se está lejos del

mínimo. En geometrías muy distorsionadas respecto a la de energía mínima, los efectos

de anarmonicidad en la superficie de energía potencial pueden ser importantes, dando

como resultado un hessiano con uno o más valores propios negativos. Mediante el

método de la función racional [Refs. 32-34] se fuerza la obtención de una matriz

hessiana definida positiva, permitiendo proseguir la minimización.

Si el hessiano no es definido positivo, podemos modificar el desarrollo de Taylor

(7) añadiendo un término ½λ(x – x0)t (x – x0), con el parámetro λ convenientemente

elegido. La minimización de la funcional resultante da:

( )( ) ( )01

00 • xgxxx −+−= IH λ (16)

donde I es la matriz unidad. Un valor suficientemente alto de λ hace que la matriz

( ) IH λ+0x sea definida positiva, pero restringe la longitud de paso a una cierta región

donde la nueva aproximación del desarrollo (7) sea razonable.

La versión más simple del método de función racional reemplaza la ecuación

(16) por una de valores propios:

Page 26: Grado de Licenciado en Ciencias Químicas

25

( ) ( )( )

−−=

110

00

0

00 xxxxxg

xgxλt

H (17)

donde la matriz

( ) ( )( )

00

00

xgxgx

tH

se llama hessiano aumentado y tiene dimensión n+1 (n es la dimensión del hessiano,

que como hemos visto, en el método de Newton-Raphson debe ser 3N – 6)

La ecuación de valores propios (17) es equivalente a dos ecuaciones, una escalar

y la otra matricial:

( ) ( )

( ) ( )( ) ( ) 0••

000

00

=−++−−=

xxxxgxxxg

IH λλ t

(18)

De la segunda de estas ecuaciones se puede despejar el vector de coordenadas del nuevo

punto x, resultando una ecuación semejante a la original del método de

Newton-Raphson (11):

( )( ) ( )01

00 xgxxx −+−= IH λ (19)

De la ecuación (19) se deduce que se debe elegir como λ uno de los valores propios del

hessiano aumentado cambiado de signo. Se suele elegir el menor de ellos. El

correspondiente vector propio podría darnos directamente la longitud del paso,

escalándolo para que su última componente sea 1, pero se ha comprobado que este salto

muchas veces es demasiado largo, igual que ocurría al aplicar directamente la ecuación

(11). Por esta razón, normalmente se acepta sólo la dirección del desplazamiento,

determinando su longitud mediante técnicas de minimización lineal. Éste es el método

de optimización usado por el programa Gaussian 94 [Ref. 42], con el cual hemos

comparado nuestros resultados (capítulo 4).

Page 27: Grado de Licenciado en Ciencias Químicas

26

2.3 Métodos de Gradientes Conjugados

Es bien conocido, y nosotros lo comprobado también, que el método de la

Máxima Pendiente resulta ser uno de los menos eficientes, junto con el de

Newton-Raphson. La razón de su poca eficacia puede intuirse mediante la Figura 6. En

ella vemos que al ser cada nuevo desplazamiento perpendicular al anterior, cuando la

superficie de energía potencial presente un valle estrecho, la minimización se verá

obligada a seguir una trayectoria “zigzagueante” (y recordemos que el zigzag se hace en

un espacio ¡de 3N dimensiones!). Pues bien, este zigzagueo es lo que se atenúa en los

métodos de gradientes conjugados.

Estos métodos [Refs. 1-5] se basan en el desarrollo de Taylor de la

hipersuperficie de energía potencial (7). Según este desarrollo, el gradiente de la energía

potencial en un punto x es:

( ) ( ) ( ) ( )000 • xxxxgxg −+= H (20)

y su variación con el punto x:

( ) ( ) xxxg ∆=∆ •0H (21)

Figura 6. Comportamiento del método de Máxima Pendiente ante un valle estrecho. La mutua perpendicularidad de los desplazamiento obliga a seguir una trayectoria zigzagueante.

M

Page 28: Grado de Licenciado en Ciencias Químicas

27

Supongamos que hemos llegado desde el punto xk–1 al punto xk a lo largo de un

cierto vector de dirección dk–1. Sean xk son las coordenadas del mínimo de la

hipersuperficie de energía potencial a lo largo de la dirección dk–1. Por tanto, el

gradiente gk, en el punto xk, es perpendicular a dk–1. Queremos proseguir buscando el

mínimo a lo largo de un nuevo vector dk, lo que expresamos en la forma:

xk+1 = xk + λk dk

Si el gradiente en el punto xk+1 se mantuviera perpendicular a dk–1, entonces

(Figura 7) es evidente que la variación del gradiente también debe ser perpendicular a

dk–1:

( ) ( ) ( )( ) 0•• 111 =−=∆ +−− kktk

tk xgxgdxgd (22)

de donde, según la ecuación (20):

xk+1

xk

gk

gk+1

dk

dk–1

gk+1 – gk

Figura 7. Si el gradiente en el punto xk+1 es perpendicular al plano quecontiene a dk y dk–1, entonces el vector diferencia gk+1 – gknecesariamente debe estar contenido en un plano perpendicular a dk–1.

Page 29: Grado de Licenciado en Ciencias Químicas

28

01 =− ktk dd H (23)

Cuando dos vectores cumplen esta condición, se dice que son conjugados. Un conjunto

de vectores que la cumplan está formado por vectores mutuamente conjugados. Existe

un teorema [Ref. 4, pág. 242] según el cual una sucesión de n desplazamientos

mutuamente conjugados llevan al mínimo exacto de una función cuadrática definida

positiva de n variables. Entonces una forma de minimización más ventajosa que el

método de la Máxima Pendiente consiste en avanzar a lo largo de direcciones que sean

mutuamente conjugadas. Para determinar la dirección de desplazamiento, vamos a

definir dos secuencias de vectores:

1

111

−−−

+−=+=

kkkk

kkkk

dgddgg

γλ H

(24)

Nótese que la primera de estas ecuaciones no es más que una adaptación de la ecuación

xk+1

xk gk

gk+1

dk

dk–1

gk+1 – gk

Figura 8. Si dk es combinación lineal de gk y dk–1 (están los tresvectores en el mismo plano), entonces necesariamentegk+1 y gk deben ser perpendiculares entre sí.

Page 30: Grado de Licenciado en Ciencias Químicas

29

(20), y la segunda, un algoritmo propuesto para determinar la nueva dirección de

búsqueda.

Para determinar λk–1 imponemos la condición de que los sucesivos gradientes

sean perpendiculares entre sí:

0•1 =− ktk gg (25)

Esta condición se deduce de la segunda ecuación de (24), como muestra la Figura 8,

donde se han dibujado en el mismo plano dk, gk y dk–1. Con esta condición y la primera

ecuación de (24), resulta:

11

111

−−

−−− −=

ktk

ktk

k dggg

Hλ (26)

El otro parámetro, γk, se puede calcular a partir de la segunda ecuación de (24), usando

la condición de desplazamientos conjugados (23), resultando:

11

1

−−

−=k

tk

ktk

k ddgd

HHγ (27)

Si pudiésemos determinar γk, usando la segunda ecuación de (24) tendríamos la nueva

dirección a seguir. La ecuación (27) exige la evaluación del hessiano, que como se ha

estudiado anteriormente, es demasiado costosa. Por suerte, hay una forma alternativa de

calcular γk. Multiplicando la primera ecuación de (24) por tkg y usando la condición de

ortogonalidad (25) se encuentra otra forma de calcular λk–1, obteniéndose

1

1•

−− =

ktk

ktk

k dggg

Hλ (28)

Igualando las dos expresiones de λk–1, (26) y (28), se llega a:

kk

tk

ktk

ktk

ktk

ktk

ktk

ktk

ktk γ==−=−=

−−

−−

−−

−− 11

1

11

1

11

1

11 ••

ddgd

gdgd

dgdg

gggg

HH

HH

HH

La tercera igualdad se deduce de la segunda ecuación de (24). Multiplicándola por

Page 31: Grado de Licenciado en Ciencias Químicas

30

Htkd y usando la condición de conjugación, resulta:

ktkk

tk gddd HH −=

Encontramos así una forma de calcular γk que no requiere la evaluación del hessiano,

sino sólo del gradiente actual y del anterior:

11 •

−−=

ktk

ktk

k ggggγ (29)

El algoritmo para obtener un nuevo punto sería pues:

111

1

••

−−−

+

+−=

+=

kk

tk

ktk

kk

kmax

kk d

dgggggd

dxx δ

(30)

donde δ vuelve a ser el desplazamiento máximo inicial y dmax el máximo de los valores

absolutos de las componentes del vector de dirección dk. La realización de sucesivos

deslizamientos a lo largo de dk, según lo explicado en la Sección 1.6 hasta llegar al

mínimo en esa dirección equivale a un solo paso de longitud λk. Preferimos efectuar el

deslizamiento porque la hipersuperficie de energía potencial en la práctica no es una

función cuadrática, lo que limita los razonamientos aquí realizados a una región

restringida.

El método aquí deducido ha sido el de Fletcher-Reeves. Existe una ligera

variación de éste, donde se toma

( )11

1

••

−−

−−=k

tk

ktk

tk

k gggggγ (31)

Esta forma de calcular γk constituye el método de Polak-Ribiere. Parece que los valores

de γk obtenidos a partir de las ecuaciones (29) y (31) debieran ser iguales debido a la

perpendicularidad de gk–1 y gk. Lo serían si la superficie de energía potencial fuera

verdaderamente cuadrática. Al serlo sólo de forma aproximada, gk–1 y gk sólo son ”más

Page 32: Grado de Licenciado en Ciencias Químicas

31

o menos” perpendiculares, igual que en la práctica, dk–1 y dk sólo resultan “más o

menos” conjugados.

Nuestros resultados, mostrados en la Sección 4.3, muestran que los métodos de

gradientes conjugados son mucho más eficientes que el método de la Máxima

Pendiente. Pensamos que ello se debe a que al usar una combinación del gradiente

actual con el desplazamiento anterior, la trayectoria seguida para alcanzar el mínimo es

menos zigzagueante (Figura 9). No se obliga a que cada nueva dirección sea

perpendicular a la anterior.

2.4 Métodos de Métrica Variable

También llamados métodos Cuasi Newton-Raphson, son los métodos de

minimización más eficientes . Los nuevos puntos se obtienen según el algoritmo del

método de Newton-Raphson,

( ) ( )kkmax

kk dxgxxx •1 Bδ−=+ (32)

en donde por comodidad se ha escrito B = H –1, la inversa del hessiano. Como siempre,

dmax vuelve a ser el máximo de los valores absolutos de las componentes del vector

Figura 9. Comportamiento de un método de GradientesConjugados ante un valle estrecho. El zigzagueo del métodode Máxima Pendiente queda amortiguado al determinar lasdirecciones a seguir mediante una combinación lineal delgradiente actual y el desplazamiento anterior.

M

g1

g2

g3

g4

Page 33: Grado de Licenciado en Ciencias Químicas

32

( ) ( )kkk xgxd •B= En los métodos de métrica variable realmente no se calcula el

hessiano ni su inversa, sino que se va construyendo una aproximación a él teniendo en

cuenta los pasos anteriores de la minimización, de forma parecida a como se hace en los

métodos de gradientes conjugados. Desde su aparición en 1959 se han desarrollado

varios algoritmos, todos ellos basados en una relación de recurrencia de tipo

Bk = Bk-1 + C, donde C es una matriz de corrección. La relación de recurrencia debe

satisfacer la condición (21) resultante de aproximar la hipersuperficie de energía

potencial mediante en desarrollo de segundo grado:

( )11 • −− −=− kkkk ggxx B

Los métodos más conocidos son los de Davidon-Fletcher-Powell

[Refs. 1-5, 35, 37] y Broyden-Fletcher-Goldfarb-Shanno [Refs. 1-5]. En el método DFP,

la relación de recurrencia es la siguiente:

1

1

1

111 ·

······

−−−

−=−=

+−=

kkk

kkk

ktk

tkk

kktk

ktkkk

kk

xxsggy

ysss

yyyy

BBBBB

(33)

En el BFGS es parecida, aunque con un término más:

kktk

kk

ktk

kk

kkk

kkk

tkkkk

tk

ktk

tkk

kktk

ktkkk

kk

yyy

yssu

xxsggy

uuyyysss

yyyy

···

·

······

·····

1

1

1

1

11

111

−−

−−−

−=

−=−=

++−=

BB

BBBBBB

(34)

Multiplicando ambos miembros por yk se comprueba fácilmente que ambos

algoritmos satisfacen la condición (21).

En nuestro programa la dirección de búsqueda se determina mediante la fórmula

(32), donde la matriz Bk se calcula mediante (33) o (34) según el método empleado,

salvo en el primer paso. En éste se usa como hessiano la matriz identidad, resultando así

Page 34: Grado de Licenciado en Ciencias Químicas

33

este primer paso análogo a los del método de Máxima Pendiente. Existen versiones de

los métodos de métrica variable que comienzan con un hessiano cuyas componentes son

valores medios de constantes de fuerza, determinados espectroscópicamente o

calculados por vía teórica para cada tipo de enlace, aunque esta estimación inicial del

hessiano sólo se puede efectuar en coordenadas internas. Tras la determinación de la

dirección, sigue la minimización lineal por deslizamiento, de la misma forma que en los

demás métodos estudiados.

La gran ventaja de los métodos de métrica variable es que en pocos pasos

podemos llegar a tener una buena aproximación del hessiano, sin perder tiempo en

calcularlo rigurosamente. Por ello son los métodos más eficaces para la optimización

geométrica.

Page 35: Grado de Licenciado en Ciencias Químicas

34

CAPÍTULO 3

3 PROGRAMACIÓN DE LOS MÉTODOS DE OPTIMIZACIÓN

Page 36: Grado de Licenciado en Ciencias Químicas

35

Introducción al Capítulo 3

Con objeto de verificarlos y compararlos entre sí, hemos

programado en Fortran todos los métodos de optimización

estudiados. En este capítulo se explican los códigos de la

subrutina general de optimización y de las subrutinas

correspondientes a cada uno de los métodos, cuya

diferencia principal radica en el modo de calcular las

direcciones de desplazamiento de los núcleos. También se

incluye la subrutina que calcula numéricamente el

gradiente de la superficie de energía potencial. La lectura

de este capítulo requiere por tanto ciertos conocimientos

del lenguaje Fortran.

Page 37: Grado de Licenciado en Ciencias Químicas

36

Los métodos de optimización explicados en el capítulo anterior han sido

programados por nosotros en lenguaje Fortran e incorporados al paquete de cálculos

semiempíricos AVEMO [Ref. 41], desarrollado en el Departamento de Química Física

de la Universidad de Cádiz. El programa AVEMO permite calcular propiedades

moleculares mediante métodos semiempíricos de tipo NDO con parametrización

arbitraria. Nosotros le hemos incorporado una subrutina general de optimización

geométrica que a su vez llama a otras específicas para cada uno de los métodos de

optimización estudiados. Tanto para facilitar su programación como su lectura por

terceras personas, se ha procurado que el código escrito refleje en la medida de lo

posible el fundamento explicado para cada método. A continuación se describe el

programa AVEMO y la forma de usarlo.

3.1 Uso del programa AVEMO

El paquete AVEMO está formado por siete archivos: AVELG.EXE,

AVEMO.EXE, AVEPPAL.EXE, AVEMO8.PAR, AVEMO9.PAR, POPLE.PAR y

AVEMO.TXT. El primer archivo contiene simplemente la portada inicial.

AVEMO.EXE es un manejador que permite crear y editar archivos de datos.

AVEPPAL.EXE es el programa principal, encargado de realizar los cálculos. Está

formado por un conjunto de módulos escritos en Fortran que se compilan juntos. Los

archivos con extensión PAR contienen algunas parametrizaciones típicas, y por último,

AVEMO.TXT es el archivo de ayuda del programa.

Los módulos que al ser compilados forman el AVEPPAL.EXE son los

siguientes:

AVEPPAL.F90: Lleva el control general del programa. Además contiene las subrutinas

de optimización y de cálculo del gradiente. Las subrutinas de optimización objetos de

este trabajo se encuentran en este archivo.

AVECL.F90: Realiza el cálculo SCF para sistemas de capa cerrada.

AVEOP.F90: Realiza el cálculo SCF para sistemas de capa abierta.

AVEIN.F90: Calcula las integrales necesarias.

Page 38: Grado de Licenciado en Ciencias Químicas

37

AVEOW.F90: Calcula las poblaciones electrónicas y los índices de enlace.

EIGEN.F90: Diagonaliza matrices simétricas.

El programa dispone de un generador de datos y editor de resultados que tiene

en cuenta los cambios realizados en la parte de optimización geométrica, y que permite

un uso sencillo del programa. En adelante nos referiremos al generador/editor como “el

manejador”. Aunque los cálculos se pueden realizar directamente desde el manejador,

sin necesidad de conocer la estructura del archivo de datos, creemos útil conocer dicha

estructura, por ejemplo para poderla modificar directamente si se quiere.

Un archivo de datos típico obtenido con el generador de datos es el siguiente,

que corresponde a un cálculo de las propiedades de la molécula de agua:

H2O Archivo de datos 3 0 1 / 'CNDO' 'CLSD' 0 0 0 0 0 0 0 0 0 0 / 0.00000000 0.00000000 0.00000000 8 0.00000000 0.00000000 0.95000000 1 0.00000000 0.95000000 0.00000000 1 ***** DATOS POTENCIAL: 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ***** DATOS PARAMETRIZACION: POPLE.PAR 1.00000 1.00000 0.00000 0.00000 / 25.39017 9.11100 0.00000 2.27500 –31.00000 22.48900 / 7.17610 0.00000 0.00000 1.20000 -9.00000 20.40900 / 7.17610 0.00000 0.00000 1.20000 -9.00000 20.40900 / ***** DATOS OPTIMIZACION: 1 1 1 / Polak-Ribiere .01 .95 .001 50 / 1 1 1 0 / ***** FINAL DATOS

La primera parte del archivo de datos (hasta la etiqueta ***** DATOS POTENCIAL:)

contiene la siguiente información:

• Línea 1: Un título arbitrario.

Page 39: Grado de Licenciado en Ciencias Químicas

38

• Línea 2: Número de átomos, carga y multiplicidad de la molécula.

• Línea 3: Método de cálculo semiempírico, cálculo de capa cerrada (CLSD) o abierta

(OPEN) y una serie de 0 y/o 1 correspondientes a diferentes opciones que se pueden

elegir mediante el manejador.

• Líneas siguientes: Coordenadas cartesianas y número atómico de cada uno de los

átomos.

Bajo la etiqueta ***** DATOS POTENCIAL: aparecen los coeficientes de un posible

potencial eléctrico externo y bajo ***** DATOS PARAMETRIZACION: los datos

correspondiente a la parametrización empleada. Por último, bajo la etiqueta ***** DATOS

OPTIMIZACION: aparecen los datos correspondiente a la optimización geométrica. Este

segmento del archivo de datos se compone de cuatro líneas, cuyo significado es el

siguiente:

• Línea 1: Aquí aparecen tres claves que pueden valer 1 ó 0, correspondientes a las

direcciones x, y, z. Se minimiza sólo a lo largo de aquellas direcciones marcadas con

1. Por ejemplo, 1 1 0 indica una minimización restringida al plano xy.

• Línea 2: Indica el método de optimización a emplear. Los valores aceptados por el

programa son:

Maxima pendiente

Fletcher-Reeves

Polak-Ribiere

DFP

BFGS

• Línea 3: Contiene los siguientes parámetros necesarios para la optimización:

desplazamiento inicial, factor de reducción, tolerancia en fuerzas y número máximo

de iteraciones. Los valores recomendados, que hemos obtenido a partir del estudio

que luego presentamos, son 0.007, 0.9, 0.001 y 50 respectivamente. Estos valores

pueden variarse a gusto del usuario, lo que puede ser recomendable en casos

especiales.

Page 40: Grado de Licenciado en Ciencias Químicas

39

• Línea 4: Contiene tantos claves 1/0 como átomos tenga la molécula tratada. Se

incluyen en la optimización sólo aquellos átomos que tengan asignado un 1. Al final

se incluye un número que indica el átomo donde se colocará el origen de

coordenadas (si se desea que el origen esté sobre el centro de masas molecular,

aparecerá un 0).

Los datos situados bajo cada etiqueta se leen en diferentes segmentos del

programa principal (archivo AVEPPAL9.F90). En concreto, los datos para la

optimización geométrica se leen en el siguiente segmento:

! ---- LECTURA DE DATOS PARA CALCULO DE LA GEOMETRIA DE ENERGIA MINIMA: if(OPCION.EQ.datos6)then IF(TOLENEL.GT.1.D-12)TOLENEL=1.D-12 IOPG=6 DO 36 I=1,NATOMS 36 NFOR(I)=0 READ(5,*)(NFOR(I),I=1,NATOMS) READ(5,'(A16)')metopt READ(5,*)DELTA,FRED,TOLFOR,nitopt delta=delta/fdist READ(5,*)IOP(1),IOP(2),IOP(3),IREF if(NIT.lt.900)NIT=900 if(NIT.lt.900)NCOM=901 ndens=1 endif

Donde las variables metopt, DELTA, FRED, TOLFOR y nitopt

corresponden respectivamente al método de optimización, desplazamiento máximo

inicial, factor de reducción, tolerancia en fuerzas y número máximo de iteraciones.

Como ya se ha mencionado, el cálculo se puede realizar desde el propio

manejador, o editando directamente un archivo de datos cuya estructura sea la descrita

anteriormente. El programa de cálculo (AVEPPAL.EXE) lee el archivo de datos con el

nombre DAT. En caso de realizar el cálculo desde el manejador, éste se encargará de

generar un archivo con este nombre, mientras que si deseamos ejecutar el programa

directamente, deberemos tener el fichero DAT en el mismo directorio que el programa

AVEPPAL.EXE.

Al realizar el cálculo se genera un archivo de resultados llamado RES que

podemos editar desde el manejador o mediante cualquier editor de textos. Este archivo

contiene información sobre los datos de entrada, las propiedades moleculares calculadas

Page 41: Grado de Licenciado en Ciencias Químicas

40

y el transcurso de la optimización geométrica en el caso de que ésta se hubiera pedido.

Para el ejemplo de la molécula de agua que nos ocupa, una vez efectuada la

optimización geométrica, queda escrita la siguiente información en el archivo RES:

----------------------------------------------------------------- ----------------------------------------------------------------- RESUMEN DE LA MINIMIZACION REALIZADA: ----------------------------------------------------------------- METODO DE OPTIMIZACION: Polak-Ribiere DESPLAZAMIENTO INICIAL (A): 0.0100 FACTOR DE REDUCCION: 0.9500 TOLERANCIA EN LAS FUERZAS: 0.0010 NUMERO MAXIMO DE ITERACIONES: 50 ENSAYO DELTA(A) ENERGIA (U.A.) FUERZA MAXIMA DIAMETRO 0 0.000000 -19.85233392 0.2200 1.3435 1 0.010000 -19.88121570 0.0324 1.4114 2 0.010000 -19.88874675 0.0581 1.5810 3 0.010000 -19.89083190 0.0086 1.6236 4 0.010000 -19.89087577 0.0006 1.6222 Numero de calculos de fuerzas: 5 Numero de deslizamientos: 15 ----------------------------------------------------------------- ----------------------------------------------------------------- PROPIEDADES EN LA GEOMETRIA ESTIMADA : ----------------------------------------------------------------- MATRIZ DE DISTANCIAS INTERNUCLEARES EN ANGSTROM: 1 2 3 1 0.0000 1.0288 1.0291 2 1.0288 0.0000 1.6222 3 1.0291 1.6222 0.0000 ANGULOS DE ENLACE CON VERTICE EN EL NUCLEO 1 2 1 3 = 104.05 -----------------------------------------------------------------

DELTA es el desplazamiento nuclear máximo realizado en cada iteración

(llamado δ en la teoría, capítulos 1 y 2) y DIAMETRO es la mayor de las distancias

internucleares en la molécula.

Page 42: Grado de Licenciado en Ciencias Químicas

41

3.2 La subrutina de optimización

Como se indicó al principio, el programa principal del paquete AVEMO,

AVEPPAL.EXE, es el resultado de la compilación de seis módulos escritos en

Fortran 90: AVEPPAL.F90, AVECL.F90, AVEOP.F90, AVEOW.F90, AVEIN.F90 y

EIGEN.F90. En ellos se encuentran distribuidas todas las subrutinas necesarias para el

cálculo. El archivo AVEPPAL.F90 contiene el programa principal y algunas subrutinas,

entre ellas la subrutina OPTGEOM, que es llamada cuando en el archivo de datos se

pide una optimización de geometría. La subrutina es la siguiente:

! -------------------------------------------------------------------------- ! -------------------------------------------------------------------------- ! --- SUBRUTINA PARA OPTIMIZAR LAS POSICIONES DE LOS NUCLEOS: ! -------------------------------------------------------------------------- ! LAS MINIMIZACIONES LINEALES SE HACEN DESLIZANDO A LO LARGO DE LA ! DIRECCION ELEGIDA HASTA ACOTAR UN MINIMO, QUE SE REFINA AJUSTANDO ! A UNA PARABOLA ! SE OPERA HASTA QUE TODAS LAS FUERZAS SE HACEN INFERIORES A <TOLFOR> ! NITOPT=NUMERO MAXIMO DE ITERACIONES ! METOPT=METODO ELEGIDO PARA LA MINIMIZACION ! E0= ENERGIA DEL PUNTO INICIAL (CALCULADA ANTES DE ENTRAR) ! TOLFOR= LIMITE EN QUE UNA FUERZA SE CONSIDERA DESPRECIABLE. ! DELTA= DESLIZAMIENTO INICIAL (TENTATIVO) ! FRED= FACTOR DE REDUCCION ENTRE DESLIZAMIENTOS SUCESIVOS. ! (...TODO DEBE ENTRAR EN UNIDADES ATOMICAS.) ! --------------------------------------------------------------------------- SUBROUTINE OPTGEOM(E0,TOLFOR,DELTA,FRED,metopt,nitopt) ! --------------------------------------------------------------------------- IMPLICIT DOUBLE PRECISION(A-H,O-Z) COMMON/INFO/CERO,PI,FDIST,C(20,3),NATOMS,CHARGE,MULTIP,AN(20),N COMMON/OPGEOM/NFOR(20),IOP(3),IOPG COMMON/GRADCONJ/foldPR(20,3),coefoldPR(20,3) COMMON/METVAR/foldBFGS(60),coldBFGS(60) INTEGER AN,CHARGE CHARACTER*10 ETIPO CHARACTER*16 metopt DIMENSION FMAX(3),COEF(20,3) DIMENSION ECAL(1000),DELTVTA(1000),FMAX3(1000),DIAM(1000) ivta=1 DELTVTA(1)=0.D0 ECAL(1)=E0 ETIPO='INICIAL ' NCALP=0 NCALF=0 WRITE(4,350) ! ---------------------------------------------------- ! CALCULO DE LAS FUERZAS SOBRE LOS NUCLEOS y ! determinacion de su maxima componente. 1 WRITE(4,400) FMAX(1)=0.D0

Page 43: Grado de Licenciado en Ciencias Químicas

42

FMAX(2)=0.D0 FMAX(3)=0.D0 NCALF=NCALF+1 ! -------------------------------------------------------------------- ! ELECCION DEL MÉTODO DE MINIMIZACION IF(metopt.EQ.'Maxima pendiente')CALL MAXIMA_PENDIENTE(coef,fmax,ivta,e0) IF(metopt.EQ.'Fletcher-Reeves '.OR.metopt.EQ.'Polak-Ribiere ') & CALL GRADIENTES_CONJUGADOS(metopt,coef,fmax,ivta,e0) IF(metopt.EQ.'DFP '.OR.metopt.EQ.'BFGS ') & CALL METRICA_VARIABLE(metopt,coef,fmax,ivta,e0) FMAX3(ivta)=DMAX1(FMAX(1),FMAX(2),FMAX(3)) !---------------------------------------------------------------------- ! CALCULO DEL DIAMETRO DE LA MOLECULA DIAM(ivta)=0.D0 DO 75 I=1,NATOMS DO 75 J=I+1,NATOMS XX=C(I,1)-C(J,1) YY=C(I,2)-C(J,2) ZZ=C(I,3)-C(J,3) DIST=FDIST*DSQRT(XX**2+YY**2+ZZ**2) IF(DIST.GT.DIAM(ivta))DIAM(ivta)=DIST 75 CONTINUE ! -------------------------------------------------------------- ! SI TODAS LAS COMPONENTES DE FUERZAS SON DESPRECIABLES (O SI SE AGOTA EL NUMERO ! DE ITERACIONES), TERMINA: IF(FMAX3(ivta).LT.TOLFOR.OR.ivta.GT.nitopt)THEN IF(ivta.GT.nitopt)WRITE(4,650)nitopt WRITE(4,559)metopt,deltvta(2),fred,TOLFOR,nitopt WRITE(4,566)(I-1,DELTVTA(I),ECAL(I),FMAX3(I),DIAM(I),I=1,ivta) WRITE(4,300)NCALF,NCALP RETURN ENDIF ivta=ivta+1 WRITE(4,450)ivta-1,DELTA*FDIST DELTVTA(ivta)=DELTA*FDIST ETIPO='FUERZA ' ECAL(ivta)=E0 ! --------------------------------------------------------------------- ! INFORMA EN PANTALLA DEL AVANCE DE LA MINIMIZACION: CALL LINEAS(25) WRITE(*,510)ivta-1 WRITE(*,566)((I-1),DELTVTA(I),ECAL(I),FMAX3(I),DIAM(I),I=1,ivta-1) ! --------------------------------------------------------------- ! DETERMINACION DE LOS COEFICIENTES NORMALIZADOS ! DE LA COORDENADA INTERNA: CNORM=0.D0 DO 26 I=1,NATOMS DO 26 J=1,3 CNORM=CNORM+COEF(I,J)**2 26 CONTINUE CNORM=1.D0/DSQRT(CNORM) CMAX=0.D0

Page 44: Grado de Licenciado en Ciencias Químicas

43

DO 27 I=1,NATOMS DO 27 J=1,3 COEF(I,J)=CNORM*COEF(I,J) IF(DABS(COEF(I,J)).GT.CMAX)CMAX=DABS(COEF(I,J)) 27 CONTINUE ! EL DESPLAZAMIENTO EN LA COORDENADA INTERNA SE ELIGE DE FORMA ! QUE EL DESPLAZAMIENTO CARTESIANO MAXIMO SEA EL PROPUESTO: 28 DLT=DELTA/CMAX ! ------------------------------------------------------------ ! ESTIMACION DEL SENTIDO DE MOVIMIENTO RESPECTO A Q : DO 41 I=1,NATOMS DO 41 J=1,3 IF(NFOR(I).EQ.1.AND.IOP(J).EQ.1)C(I,J)=C(I,J)-DLT*COEF(I,J) 41 CONTINUE CALL PUNTO(E1,0) DO 43 I=1,NATOMS DO 43 J=1,3 IF(NFOR(I).EQ.1.AND.IOP(J).EQ.1)C(I,J)=C(I,J)+2.d0*DLT*COEF(I,J) 43 CONTINUE CALL PUNTO(E2,0) ! Se llevan las coordenadas a las del punto central: DO 45 I=1,NATOMS DO 45 J=1,3 IF(NFOR(I).EQ.1.AND.IOP(J).EQ.1)C(I,J)=C(I,J)-DLT*COEF(I,J) 45 CONTINUE ECAL(ivta)=DMIN1(E1,E0,E2) IF(E1.LT.E0.AND.E2.LT.E0)THEN WRITE(*,*)' ' WRITE(4,*)' Geometria de partida PROXIMA A UN MAXIMO' WRITE(4,*)' ( Quiza conviniese PROBAR OTRA )' IF(E1.LT.E2)GOTO 50 IF(E2.LT.E1)GOTO 60 ENDIF 46 IF(E0.LE.E1.AND.E0.LE.E2)GOTO 90 !----------------------------------------------------------------------- ! SI E1<E2 NOS MOVEMOS A LA IZQUIERDA: IF(E1.LT.E0.AND.E2.GT.E0)THEN 50 E2=E0 E0=E1 DO 52 I=1,NATOMS DO 52 J=1,3 IF(NFOR(I).EQ.1.AND.IOP(J).EQ.1)C(I,J)=C(I,J)-2.d0*DLT*COEF(I,J) 52 CONTINUE CALL PUNTO(E1,0) NCALP=NCALP+1 ETIPO='<- DESLIZ '

Page 45: Grado de Licenciado en Ciencias Químicas

44

! Se llevan las coordenadas a las del punto central: DO 54 I=1,NATOMS DO 54 J=1,3 IF(NFOR(I).EQ.1.AND.IOP(J).EQ.1)C(I,J)=C(I,J)+DLT*COEF(I,J) 54 CONTINUE ECAL(ivta)=E0 GOTO 46 ENDIF !----------------------------------------------------------------------- ! SI E2<E1 NOS MOVEMOS A LA DERECHA: IF(E2.LT.E0.AND.E1.GT.E0)THEN 60 E1=E0 E0=E2 DO 62 I=1,NATOMS DO 62 J=1,3 IF(NFOR(I).EQ.1.AND.IOP(J).EQ.1)C(I,J)=C(I,J)+2.D0*DLT*COEF(I,J) 62 CONTINUE CALL PUNTO(E2,0) NCALP=NCALP+1 ETIPO='DESLIZ -> ' ! Se llevan las coordenadas a las del punto central: DO 64 I=1,NATOMS DO 64 J=1,3 IF(NFOR(I).EQ.1.AND.IOP(J).EQ.1)C(I,J)=C(I,J)-DLT*COEF(I,J) 64 CONTINUE ECAL(ivta)=E0 GOTO 46 ENDIF 90 CONTINUE !----------------------------------------------------------------------- ! REFINAMIENTO DEL MINIMIO POR AJUSTE DE E1,E0,E2 A UNA PARABOLA: QMIN=0.5D0*DLT*(E1-E2)/(E1+E2-2.D0*E0) DO 92 I=1,NATOMS DO 92 J=1,3 IF(NFOR(I).EQ.1.AND.IOP(J).EQ.1)C(I,J)=C(I,J)+QMIN*COEF(I,J) 92 CONTINUE CALL PUNTO(E0,0) ECAL(ivta)=E0 !----------------------------------------------------------------------- ! REDUCE DELTA (si procede) Y VUELVE A CALCULAR LAS FUERZAS: IF(ETIPO.EQ.'FUERZA ')DELTA=DELTA*FRED GOTO 1

Page 46: Grado de Licenciado en Ciencias Químicas

45

!----------------------------------------------------------------------- ! FORMATOS CITADOS 300 FORMAT(/,5x,' Numero de calculos de fuerzas:',I4,& /,5x,' Numero de deslizamientos: ',I4,//) 305 FORMAT(/,5X,' ENERGIA TOTAL CALCULADA =',F14.8,' U.A.'//,5x,65('-'),/) 310 FORMAT(/,5X,' X, Y, Z CALCULADAS, ATOMO ',I2,' :',3F11.7) 350 FORMAT(5X,65('-'),/5X,65('-'),/24X,'OPTIMIZACION GEOMETRICA'/5X,65('-')/) 400 FORMAT(12X,' FUERZAS EN UNIDADES ATOMICAS:'//,& 12X,' ATOMO: Fx: Fy: Fz:'/) 410 FORMAT(14X,I3,4X,3F11.4) 450 FORMAT(//,5X,65('-')/,5X,' ITERACION',I2,' (DELTA =',F7.5,')'/) 500 FORMAT(/,5X,' CALCULANDO LA FUERZA SOBRE EL ATOMO NUMERO',I3) 510 FORMAT(/,5X,' ESTIMANDO NUEVA GEOMETRIA'/,5X,' ENSAYO ',I3) 558 FORMAT(//,5X,' LA MAYOR COMPONENTE DE LAS FUERZAS CALCULADAS'/,& 5X,' RESULTA INFERIOR A',F8.5,' U.A.'//) 559 FORMAT(/5X,65('-'),/5X,65('-'),/8X,'RESUMEN DE LA MINIMIZACION REALIZADA:'/5X,65('-')//,& 8X,'METODO DE OPTIMIZACION: ',A16,/,& 8X,'DESPLAZAMIENTO INICIAL (A): ',F6.4/,& 8X,'FACTOR DE REDUCCION: ',F6.4/,& 8X,'TOLERANCIA EN LAS FUERZAS: ',F6.4/,& 8X,'NUMERO MAXIMO DE ITERACIONES: ',I3/) 566 FORMAT(/3X,' ENSAYO DELTA(A) ENERGIA (U.A.) FUERZA MAXIMA DIAMETRO'& /,(7X,I3,4X,F10.6,3X,F14.8,3X,F12.4,7X,F7.4)) 650 FORMAT(//,5X,65('*')/,5X,'A T E N C I O N :'/, & 5X,'LA OPTIMIZACION NO CONVERGIO DESPUES DE',I3,' ITERACIONES'/& 5X,65('*')) RETURN END

La subrutina PUNTO efectúa el cálculo autoconsistente de la energía para las

posiciones nucleares almacenadas en la variable C(I,J) en el momento en que se la

llama. Debemos señalar que existen pequeñas diferencias entre la forma en que el

programa ha sido escrito y la teoría aquí desarrollada. Por ejemplo, el programa no

maneja las coordenadas nucleares como un vector de 3N componentes, sino como una

matriz bidimensional C(I,J) en la que el primer subíndice indica el número de átomo

y el segundo la coordenada (x, y, z). También la llamada a la subrutina FUERZA de

cálculo del gradiente se realiza por separado para cada átomo y el vector de dirección se

vuelve a guardar en una matriz bidimensional: COEF(átomo, coordenada).

El programa está escrito de forma que puede seguirse sin dificultad. Su esquema

de trabajo es el siguiente:

1. Se entra en la subrutina OPTGEOM con una geometría molecular inicial definida

por el usuario, cuya energía ya ha sido calculada por el programa.

2. Según el método de optimización elegido, se llama a diferentes subrutinas

Page 47: Grado de Licenciado en Ciencias Químicas

46

(transcritas más adelante en este mismo capítulo), las cuales calculan el gradiente y

determinan la dirección a seguir.

3. Se calcula el “diámetro” de la molécula (máxima distancia internuclear), magnitud

que proporciona información útil acerca de la marcha de la minimización.

4. Si la mayor componente del gradiente es menor que la tolerancia establecida, se da

por concluida la minimización. Se escribe la información en el archivo de resultados

y abandonamos la subrutina.

5. En caso contrario, comienza una nueva iteración. Se escribe en pantalla información

relativa a las iteraciones anteriores y se normalizan los coeficientes que definen la

dirección a seguir, calculados en el paso 2.

6. Se determina el sentido del deslizamiento (a favor o en contra de los coeficientes)

calculando la energía molecular en ambos sentidos y eligiendo el sentido en que ésta

desciende. Si el punto central es un máximo, se advierte sobre ello y deslizamos

hacia el lado de menor energía. Si la energía correspondiente al punto central es

menor que las dos laterales, vamos al paso 8.

7. Etapa de deslizamiento hacia el lado de menor energía. En cada deslizamiento se

calcula la energía del nuevo punto y se la compara con las dos anteriores, hasta que

se produce un ascenso.

8. Los tres puntos con que hemos acotado el mínimo lineal se ajustan a una parábola,

según lo dicho en el capítulo 1. Se calcula la energía correspondiente a su vértice,

que se usa como energía de partida en el siguiente paso.

9. Si no hemos pasado por la etapa de deslizamiento, se reduce la longitud de paso

según el factor de reducción deseado. La reducción es necesaria para evitar caer en

un ciclo sin fin, pues en la próxima iteración volveríamos a estar en la misma

situación, con los mismos tres puntos, volviendo a ser el central el punto de menor

energía (ver sección 1.6).

10. Vuelta al paso 2.

Page 48: Grado de Licenciado en Ciencias Químicas

47

Los métodos de optimización implementados de forma definitiva son: máxima

pendiente, Fletcher-Reeves, Polak-Ribière, Davidon-Fletcher-Powell (DFP) y

Broyden-Fletcher-Goldfarb-Shanno (BFGS). Se ha estudiado el método de

Newton-Raphson, pero se ha preferido no incluirlo en la versión definitiva, pues invierte

demasiado tiempo en el cálculo numérico del hessiano y además conduce a veces a una

matriz hessiana singular.

3.3 Programación del método de máxima pendiente

La subrutina MAXIMA_PENDIENTE situada en el archivo fuente

AVEPPAL9.F90 es la encargada del cálculo de la dirección de movimiento. El código

es el siguiente:

!----------------------------------------------------------------------------- SUBROUTINE MAXIMA_PENDIENTE(coef,fmax,ivta,e0) !----------------------------------------------------------------------------- ! CALCULA LOS COEFICIENTES QUE DETERMINAN LA DIRECCION A LO LARGO DE LA ! CUAL SE MINIMIZA LA ENERGIA RESPECTO DE LAS COORDENADAS NUCLEARES, ! (SEGUN EL METODO DE LA MAXIMA PENDIENTE) ! ------------------------------------------------------------------------- IMPLICIT DOUBLE PRECISION (A-H,O-Z) COMMON/INFO/CERO,PI,FDIST,C(20,3),NATOMS,CHARGE,MULTIP,AN(20),N COMMON/OPGEOM/NFOR(20),IOP(3),IOPG INTEGER AN,CHARGE DIMENSION FMAX(3),COEF(20,3) ! ---------------------------------------------------------------------------- ! CALCULO DE LAS FUERZAS SOBRE CADA ATOMO DO 25 N1=1,NATOMS COEF(N1,1)=0.d0 COEF(N1,2)=0.d0 COEF(N1,3)=0.d0 IF(NFOR(N1).EQ.0)GOTO 25 WRITE(*,500)N1 CALL FUERZA(N1,E0,FXN,FYN,FZN,CXN,CYN,CZN) WRITE(4,410)N1,FXN,FYN,FZN ! LOS COEFICIENTES (SIN NORMALIZAR) DE LA COORDENADA INTERNA ! SE TOMAN PROPORCIONALES A LA FUERZA F EN CARTESIANAS: COEF(N1,1)=FXN COEF(N1,2)=FYN COEF(N1,3)=FZN IF(DABS(FXN).GT.FMAX(1))FMAX(1)=DABS(FXN) IF(DABS(FYN).GT.FMAX(2))FMAX(2)=DABS(FYN) IF(DABS(FZN).GT.FMAX(3))FMAX(3)=DABS(FZN)

Page 49: Grado de Licenciado en Ciencias Químicas

48

25 CONTINUE 500 FORMAT(/,5X,' CALCULANDO LA FUERZA SOBRE EL ATOMO NUMERO',I3) 410 FORMAT(14X,I3,4X,3F11.4) RETURN END

Esta subrutina es bastante simple, pues se limita a calcular el gradiente de

energía (fuerza para cada átomo y coordenada cartesiana) y almacenarlo en la matriz de

coeficientes COEF(átomo, coordenada). En la Sección 3.6 se explica el funcionamiento

de la subrutina FUERZA, encargada del cálculo del gradiente.

3.4 Programación de los métodos de gradientes conjugados

Para ambos métodos (Fletcher-Reeves y Polak-Ribière) se usa la subrutina

GRADIENTES_CONJUGADOS:

!----------------------------------------------------------------------------- SUBROUTINE GRADIENTES_CONJUGADOS(metopt,coef,fmax,ivta,e0) !----------------------------------------------------------------------------- ! CALCULA LOS COEFICIENTES QUE DETERMINAN LA DIRECCION A LO LARGO DE LA ! CUAL SE MINIMIZA LA ENERGIA RESPECTO DE LAS COORDENADAS NUCLEARES, ! SEGUN EL METODO GRADIENTES CONJUGADOS. ESTAN DISPONIBLES LAS VERSIONES DE ! FLETCHER-REEVES Y POLAK-RIBIERE ! ------------------------------------------------------------------------- IMPLICIT DOUBLE PRECISION (A-H,O-Z) COMMON/INFO/CERO,PI,FDIST,C(20,3),NATOMS,CHARGE,MULTIP,AN(20),N COMMON/OPGEOM/NFOR(20),IOP(3),IOPG COMMON/GRADCONJ/foldPR(20,3),coefoldPR(20,3) INTEGER AN,CHARGE CHARACTER*16 metopt DIMENSION FMAX(3),COEF(20,3) PROD=0.d0 PRODOLD=0.d0 ! ---------------------------------------------------------------------------- ! CALCULO DE LAS FUERZAS SOBRE CADA ATOMO DO 25 N1=1,NATOMS COEF(N1,1)=0.d0 COEF(N1,2)=0.d0 COEF(N1,3)=0.d0 IF(NFOR(N1).EQ.0)GOTO 25 WRITE(*,500)N1 CALL FUERZA(N1,E0,FXN,FYN,FZN,CXN,CYN,CZN) WRITE(4,410)N1,FXN,FYN,FZN COEF(N1,1)=FXN COEF(N1,2)=FYN COEF(N1,3)=FZN

Page 50: Grado de Licenciado en Ciencias Químicas

49

IF(DABS(FXN).GT.FMAX(1))FMAX(1)=DABS(FXN) IF(DABS(FYN).GT.FMAX(2))FMAX(2)=DABS(FYN) IF(DABS(FZN).GT.FMAX(3))FMAX(3)=DABS(FZN) ! Si se elige el metodo de Fletcher-Reeves, se calculan los productos escalares ! f(k)*f(k) y f(k-1)*f(k-1) IF(metopt.EQ.'Fletcher-Reeves ') & PROD=PROD+FXN**2+FYN**2+FZN**2 ! Si el metodo elegido es el de Polak-Ribiere, se calculan ! (f(k)-f(k-1))*f(k) y f(k-1)*f(k-1) IF(metopt.EQ.'Polak-Ribiere ') & PROD=PROD+(FXN-foldPR(N1,1))*FXN+(FYN-foldPR(N1,2))*FYN+(FZN-foldPR(N1,3))*FZN PRODOLD=PRODOLD+foldPR(N1,1)**2+foldPR(N1,2)**2+foldPR(N1,3)**2 ! Los f(k) se van guardando inmediatamente para la siguiente iteracion foldPR(N1,1)=FXN foldPR(N1,2)=FYN foldPR(N1,3)=FZN 25 CONTINUE ! Los coeficientes de desplazamiento se calculan segun ! ! f(k)*f(k) ! d(k) = f(k) + --------------- * d(k-1) ! f(k-1)*f(k-1) ! ! en el metodo de Fletcher-Reeves y segun ! ! (f(k)-f(k-1))*f(k) ! d(k) = f(k) + -------------------- * d(k-1) ! f(k-1)*f(k-1) ! ! en el de Polak-Ribiere IF(ivta.GT.1)THEN DO N1=1,NATOMS COEF(N1,1)=COEF(N1,1)+PROD/PRODOLD*coefoldPR(N1,1) COEF(N1,2)=COEF(N1,2)+PROD/PRODOLD*coefoldPR(N1,2) COEF(N1,3)=COEF(N1,3)+PROD/PRODOLD*coefoldPR(N1,3) ENDDO ENDIF ! Los coeficientes se guardan para la siguiente iteracion DO N1=1,NATOMS coefoldPR(N1,1)=COEF(N1,1) coefoldPR(N1,2)=COEF(N1,2) coefoldPR(N1,3)=COEF(N1,3) ENDDO 500 FORMAT(/,5X,' CALCULANDO LA FUERZA SOBRE EL ATOMO NUMERO',I3) 410 FORMAT(14X,I3,4X,3F11.4) RETURN END

Page 51: Grado de Licenciado en Ciencias Químicas

50

3.5 Programación de los métodos de métrica variable

Al igual que en el caso de gradientes conjugados, dada la similitud entre los

métodos DFP y BFGS se usa la misma subrutina para ambos:

!--------------------------------------------------------------------------------- SUBROUTINE METRICA_VARIABLE(metopt,coef,fmax,ivta,e0) !--------------------------------------------------------------------------------- ! CALCULA LOS COEFICIENTES QUE DETERMINAN LA DIRECCION A LO LARGO DE LA ! CUAL SE MINIMIZA LA ENERGIA RESPECTO DE LAS COORDENADAS NUCLEARES, ! SEGUN EL METODO DE METRICA VARIABLE. ESTAN DISPONIBLES LAS VERSIONES DE ! BROYDEN-FLETCHER-GOLDFARB-SHANNO Y DAVIDON-FLETCHER-POWELL) ! ------------------------------------------------------------------------- IMPLICIT DOUBLE PRECISION (A-H,O-Z) COMMON/INFO/CERO,PI,FDIST,C(20,3),NATOMS,CHARGE,MULTIP,AN(20),N COMMON/OPGEOM/NFOR(20),IOP(3),IOPG COMMON/METVAR/foldBFGS(60),coldBFGS(60) INTEGER AN,CHARGE CHARACTER*16 metopt DIMENSION FMAX(3),COEF(20,3) DIMENSION BK(60,60),BOLD(60,60) DIMENSION FK(60),YK(60),SK(60),CK(60),UK(60) DIMENSION YTB(60),YYTB(60,60),BYYTB(60,60),SST(60,60) DIMENSION BY(60),UUT(60,60),X(60,60) ! ---------------------------------------------------------------------------------- ! EN LA PRIMERA ITERACION LA MATRIZ HESSIANA ES LA UNIDAD: IF(ivta.EQ.1)THEN DO I=1,3*NATOMS DO J=1,3*NATOMS BOLD(I,J)=0.D0 IF(I.EQ.J)BOLD(I,J)=1.D0 ENDDO ENDDO ENDIF ! -------------------------------------------------------------------------------- ! CALCULO DE LAS FUERZAS SOBRE CADA ATOMO DO 35 N1=1,NATOMS COEF(N1,1)=0.d0 COEF(N1,2)=0.d0 COEF(N1,3)=0.d0 IF(NFOR(N1).EQ.0)GOTO 35 WRITE(*,500)N1 CALL FUERZA(N1,E0,FXN,FYN,FZN,CXN,CYN,CZN) WRITE(4,410)N1,FXN,FYN,FZN IF(DABS(FXN).GT.FMAX(1))FMAX(1)=DABS(FXN) IF(DABS(FYN).GT.FMAX(2))FMAX(2)=DABS(FYN) IF(DABS(FZN).GT.FMAX(3))FMAX(3)=DABS(FZN) ! LOS COEFICIENTES (SIN NORMALIZAR) DE LA COORDENADA INTERNA ! SE TOMAN PROPORCIONALES A LA FUERZA F EN CARTESIANAS (en la 1 iteracion)

Page 52: Grado de Licenciado en Ciencias Químicas

51

COEF(N1,1)=FXN COEF(N1,2)=FYN COEF(N1,3)=FZN ! Las fuerzas calculadas se usan para formar una matriz de 3n ! componentes que contiene al gradiente: g = -f FK(3*(N1-1)+1)=-FXN FK(3*(N1-1)+2)=-FYN FK(3*(N1-1)+3)=-FZN ! Se crean tambien matrices de 3n componentes que contienen las ! coordenadas y las restas: y(k)=f(k)-f(k-1), s(k)=c(k)-c(k-1) DO I=1,3 CK(3*(N1-1)+I)=C(N1,I) YK(3*(N1-1)+I)=FK(3*(N1-1)+I)-foldBFGS(3*(N1-1)+I) SK(3*(N1-1)+I)=CK(3*(N1-1)+I)-coldBFGS(3*(N1-1)+I) ENDDO 35 CONTINUE IF(IVTA.GE.2)THEN ! Se calcula la matriz fila yt*B y la matriz columna B*y DO 5 I=1,3*NATOMS YTB(I)=0.D0 BY(I)=0.D0 DO 5 J=1,3*NATOMS YTB(I)=YTB(I)+YK(J)*BOLD(J,I) BY(I)=BY(I)+BOLD(I,J)*YK(J) 5 CONTINUE ! Se calculan las matrices 3n*3n, y*yt*B, y s*st DO 10 I=1,3*NATOMS DO 10 J=1,3*NATOMS YYTB(I,J)=YK(I)*YTB(J) SST(I,J)=SK(I)*SK(J) 10 CONTINUE ! Se calcula la matriz 3n*3n, B*y*yt*B DO 15 I=1,3*NATOMS DO 15 J=1,3*NATOMS BYYTB(I,J)=0.D0 DO 15 K=1,3*NATOMS BYYTB(I,J)=BYYTB(I,J)+BOLD(I,K)*YYTB(K,J) 15 CONTINUE ! Se calculan los denominadores escalares, yt*B*y, y st*y YTBY=0.D0 STY=0.D0 DO I=1,3*NATOMS YTBY=YTBY+YTB(I)*YK(I) STY=STY+SK(I)*YK(I) ENDDO ! Si se elige el metodo de Broyden-Fletcher-Goldfarb-Shanno, hay que calcular las ! matrices u y X: IF(metopt.EQ.'BFGS ')THEN ! s B*y ! Se calcula la matriz columna u = ------ - -------- ! st*y yt*B*y DO I=1,3*NATOMS

Page 53: Grado de Licenciado en Ciencias Químicas

52

UK(I)=SK(I)/STY-BY(I)/YTBY ENDDO ! Se calcula las matrices 3n*3n, u*ut, y X = yt*B*y*u*ut DO 20 I=1,3*NATOMS DO 20 J=1,3*NATOMS UUT(I,J)=UK(I)*UK(J) X(I,J)=YTBY*UUT(I,J) 20 CONTINUE ENDIF ! Si el metodo elegido es el Davidon-Fletcher-Powell, la matriz X es nula: IF(metopt.EQ.'DFP ')THEN DO 22 I=1,3*NATOMS DO 22 J=1,3*NATOMS X(I,J)=0. 22 CONTINUE ENDIF ! Se actualiza la matriz hessiana B, como ! ! B*y*yt*B s*st ! B(k+1) = B - ---------- + ------ + X ! yt*B*y st*y ! ! e inmediatamente se guarda la matriz obtenida para usarla en la ! siguiente iteracion DO 25 I=1,3*NATOMS DO 25 J=1,3*NATOMS BK(I,J)=BOLD(I,J)-BYYTB(I,J)/YTBY+SST(I,J)/STY+X(I,J) BOLD(I,J)=BK(I,J) 25 CONTINUE ! El producto del hessiano obtenido por el gradiente se usa como ! matriz de coeficientes DO 30 N1=1,NATOMS COEF(N1,1)=0.D0 COEF(N1,2)=0.D0 COEF(N1,3)=0.D0 DO 30 I=1,3*NATOMS COEF(N1,1)=COEF(N1,1)-BK(3*(N1-1)+1,I)*FK(I) COEF(N1,2)=COEF(N1,2)-BK(3*(N1-1)+2,I)*FK(I) COEF(N1,3)=COEF(N1,3)-BK(3*(N1-1)+3,I)*FK(I) 30 CONTINUE ENDIF ! Se guardan para la siguiente iteracion el gradiente y las posiciones ! atomicas DO I=1,3*NATOMS foldBFGS(I)=FK(I) ENDDO DO N1=1,NATOMS coldBFGS(3*(N1-1)+1)=C(N1,1) coldBFGS(3*(N1-1)+2)=C(N1,2) coldBFGS(3*(N1-1)+3)=C(N1,3) ENDDO 500 FORMAT(/,5X,' CALCULANDO LA FUERZA SOBRE EL ATOMO NUMERO',I3)

Page 54: Grado de Licenciado en Ciencias Químicas

53

410 FORMAT(14X,I3,4X,3F11.4) RETURN END

3.6 Cálculo del gradiente

Como ya se dijo, el gradiente se calcula numéricamente, mediante la subrutina

FUERZA, situada en el archivo AVEPPAL9.F90. Esta subrutina fue programada en

primer lugar para calcular la fuerza a la que están sometidos los átomos, de manera que

sus resultados son las componentes del gradiente de la hipersuperficie de energía

potencial, con signo cambiado. El método de cálculo es muy simple: para cada átomo y

cada coordenada se efectúa un incremento hacia adelante y otro hacia atrás, con una

longitud de paso muy pequeña (DEL = 10–5 u.a.). La correspondiente fuerza se calcula

entonces como un cociente de incrementos:

DEL

DELDEL

2−+ −

−= xxx

EEf (35)

Como la energía del punto de partida E0 se conoce, se podría haber calculado la fuerza

simplemente usando Ex+DEL o Ex–DEL, lo que nos ahorraría un calculo de la energía.

Hemos preferido no obrar así, pues calcular la fuerza efectuando el incremento en

ambos sentidos conduce normalmente a un resultado mucho más exacto2.

La subrutina FUERZA se encarga de calcular la fuerza sobre cada átomo y

coordenada:

! ---------------------------------------------------------------------- SUBROUTINE FUERZA(N1,ECERO,FUX,FUY,FUZ,DXN,DYN,DZN) ! ---------------------------------------------------------------------- ! CALCULA LA FUERZA SOBRE EL ATOMO CON NUMERO DE ORDEN "N1" ! ---------------------------------------------------------------------- ! EL PROCEDIMIENTO ES DETERMINAR EL GRADIENTE DE ETOT ! AJUSTANDO UNA PARABOLA EN CADA DIRECCION X, Y o Z. ! Atencion: Se parte de la matriz densidad correspondiente ! al punto en que se calculan las fuerzas (ECERO). ! --------------------------------------------------------------------- IMPLICIT DOUBLE PRECISION(A-H,O-Z)

2 Existen otros métodos mucho más precisos para el cálculo numérico de derivadas, como la extrapolaciónn de Richardson, pero requieren muchas más evaluaciones de la energía y no nos ha parecido que compensen el incremento en tiempo de cálculo.

Page 55: Grado de Licenciado en Ciencias Químicas

54

INTEGER OPTION,OPNCLO,HUCKEL,CNDO,INDO,CLOSED CHARACTER*10 PARTIPO CHARACTER*4 ORB,EL INTEGER AN,CHARGE,CZ,U,ULIM,OCCA,OCCB COMMON/INFO/CERO,PI,FDIST,C(20,3),NATOMS,CHARGE,MULTIP,AN(20),N COMMON/IMPRES/NWIB,NSOL,NCOU,NCOR,NFOC,NAUT,NDEN,NDENT,NDENS,NUAT COMMON/OPGEOM/NFOR(20),IOP(3),IOPG ! ---- Se cambian las opciones de calculo que sean ! --- inadecuadas para la derivacion numerica: nit0=NIT if(NIT.lt.999)NIT=999 tolenel0=TOLENEL if(TOLENEL.GT.1.D-12)TOLENEL=1.D-12 NDENT0=NDENT NDENS0=NDENS NDENT=1 NDENS=0 ! ---- incremento en la derivacion numerica: DEL=1.0D-05 IF(IOPG.EQ.2.AND.IOP(1).EQ.0)GOTO 20 CX0=C(N1,1) C(N1,1)=C(N1,1)+DEL CALL PUNTO(EMAS,0) C(N1,1)=C(N1,1)-2.D0*DEL CALL PUNTO(EMENOS,0) FUX=-(EMAS-EMENOS)/(2.D0*DEL) DXN=(EMAS+EMENOS-2.D0*ECERO)/DEL**2 C(N1,1)=CX0 20 IF(IOPG.EQ.2.AND.IOP(2).EQ.0)GOTO 30 CY0=C(N1,2) C(N1,2)=C(N1,2)+DEL CALL PUNTO(EMAS,0) C(N1,2)=C(N1,2)-2.D0*DEL CALL PUNTO(EMENOS,0) FUY=-(EMAS-EMENOS)/(2.D0*DEL) DYN=(EMAS+EMENOS-2.D0*ECERO)/DEL**2 C(N1,2)=CY0 30 IF(IOPG.EQ.2.AND.IOP(3).EQ.0)GOTO 40 CZ0=C(N1,3) C(N1,3)=C(N1,3)+DEL CALL PUNTO(EMAS,0) C(N1,3)=C(N1,3)-2.D0*DEL CALL PUNTO(EMENOS,0) FUZ=-(EMAS-EMENOS)/(2.D0*DEL) DZN=(EMAS+EMENOS-2.D0*ECERO)/DEL**2 C(N1,3)=CZ0 40 CONTINUE ! --- se dejan las opciones como estaban: NDENT=NDENT0 NDENS=NDENS0 TOLENEL=tolenel0

Page 56: Grado de Licenciado en Ciencias Químicas

55

NIT=nit0 RETURN END

El cálculo autoconsistente de las energías moleculares EMAS y EMENOS (Ex+DEL y

Ex–DEL) se realiza usando como matriz densidad de partida la correspondiente al

punto central E0. Al ser el incremento de distancia muy pequeño (10–5 u.a.), el hecho de

partir de una matriz densidad parecida a la que se espera que resulte del cálculo ahorra

iteraciones y disminuye la posibilidad de que el cálculo autoconsistente lleve a estados

electrónicos diferentes para los distintos puntos, en cuyo caso las fuerzas calculadas

carecerían de sentido.

En nuestro programa existen dos variables que controlan la escritura y lectura de

matrices densidad: NDENS y NDENT. Si es NDENS=1, entonces tras ejecutar la

subrutina PUNTO para calcular la función de onda, la matriz densidad resultante

quedará guardada en el archivo PMAT. Por otro lado, si es NDENT=1, entonces el

cálculo de la función de onda comenzará leyendo el archivo PMAT y usará la matriz

densidad que contenga como matriz densidad inicial. Así, para usar la matriz densidad

del punto inicial en el cálculo de las fuerzas, no hay más que hacer NDENT=1 y

NDENS=0 (para que cada vez que se calcule la función de onda no se escriba una nueva

matriz densidad en PMAT) al comienzo de la subrutina. Por supuesto, en la salida, tras

calcular todas las fuerzas, estas variables se dejan con los valores que tenían.

Page 57: Grado de Licenciado en Ciencias Químicas

56

CAPÍTULO 4

4 RESULTADOS Y DISCUSIÓN

Page 58: Grado de Licenciado en Ciencias Químicas

57

Introducción al Capítulo 4

En este capítulo se determinan los valores óptimos de los

parámetros usados por nuestro programa: desplazamiento

máximo inicial, factor de reducción y tolerancia en fuerzas

para dar por finalizada la minimización. Una vez fijados

estos parámetros se comparan todos los métodos de

optimización analizados con el fin de decidir cual es el

más adecuado para optimizar geometrías moleculares.

El método más eficiente de los programados por nosotros

se compara finalmente con el empleado por el programa

Gaussian 94, encontrando idénticas geometrías

moleculares en todas las moléculas de prueba excepto en

la de NO2. La diferencia se debe a un problema del

método CNDO que pasa inadvertido durante la

optimización de esta molécula con Gaussian.

Page 59: Grado de Licenciado en Ciencias Químicas

58

Hemos examinado el funcionamiento de nuestro programa mediante la

optimización de un conjunto de 24 moléculas que contienen carbono, hidrógeno,

oxígeno y nitrógeno en las situaciones de enlace más frecuentes en Química Orgánica.

Sus geometrías iniciales se han establecido a partir de la tabla de distancias y ángulos de

enlace estándar contenida en Ref. 40 (pág. 386). Para las moléculas con posibilidad de

rotación interna se han elegido como conformaciones estándar las que más se acercan a

las de mínima energía experimental:

• C2H6, CH3NH2 y CH3OH: alternada

• N2H4: conformación gauche

• H2O2: ángulo diedro de 120º

Los valores óptimos para los parámetros usados por el programa (longitud de

paso inicial, factor de reducción y tolerancia en fuerzas) se han calculado a partir de los

citados 24 casos. Se usó un ordenador Pentium-133 con sistema operativo Windows 95,

realizándose todos los cálculos en sesión de MS-DOS a pantalla completa.

4.1 Optimización del desplazamiento máximo inicial y del factor de reducción

La buena elección de los valores de estas dos variables resulta crucial para la

eficiencia de las optimizaciones. Como medida de la eficiencia vamos a usar el tiempo

total requerido para optimizar las 24 moléculas de prueba. El desplazamiento máximo

inicial δ (o DELTA que es su nombre de variable en el programa) y el factor de

reducción deben ser optimizados conjuntamente, pues el número de iteraciones

necesario para llevar a cabo la optimización de una molécula depende de ambos a la

vez.

Como único criterio de convergencia (aunque hay otros, ver sección 4.2),

usaremos el gradiente de energía. Hemos establecido una tolerancia en fuerzas de

0.001 u.a. como máximo en cualquier componente del gradiente. Como se verá más

adelante, este valor es razonable para las exigencias habituales en cuanto a precisión de

las geometrías obtenidas. El método de optimización elegido es el DFP. En la Sección

4.3 se verá que este método es el mejor. Para cada pareja de valores de DELTA y FRED

Page 60: Grado de Licenciado en Ciencias Químicas

59

ensayada se ha optimizado la geometría de todas las moléculas, tabulando para cada una

de ellas el tiempo invertido, el número de iteraciones necesario y el de deslizamientos.

Como serían demasiadas tablas, se ha preferido no incluirlas en la exposición impresa

de este trabajo, toda vez que su contenido se puede reproducir fácilmente usando el

propio programa. En su lugar, se incluyen en el fichero TABLAS.DOC del disquete,

dándose aquí sólo las tablas de resultados generales.

Mediante los procedimientos indicados, hemos constatado que tienen lugar los

siguientes hechos:

• En general (Tabla 1), cuanto mayor sea el desplazamiento máximo inicial, más

pequeño debe ser el factor de reducción (FRED) para obtener una buena eficiencia.

Esto ocurre porque aunque al principio un desplazamiento inicial grande lleve a una

buena aproximación al mínimo, pronto resulta ser demasiado grande para afinarlo,

siendo entonces necesaria una disminución del paso tanto más acusada cuanto

mayor haya sido éste.

• El aumento de eficacia obtenido usando un desplazamiento inicial grande

acompañado por un factor de reducción muy pequeño, tiene un límite. A partir de

DELTA=0.03 Å empieza a disminuir la eficiencia, incluso usando un factor de

reducción de 0.1. Afinando con factores de reducción muy pequeños, se acaba

llegando a desplazamientos también muy pequeños, lo que aumenta el número de

deslizamientos necesarios para alcanzar el mínimo. Aunque en principio sea

preferible que aumente el número deslizamientos a costa del de cálculos del

gradiente, se acaba llegando a una situación en la que se efectúan ya tantos

deslizamientos que vuelve a aumentar el tiempo de cálculo (Tabla 2 y Tabla 3).

• Por otro lado, si optamos por valores pequeños de DELTA (entre 0.005 y 0.01 Å), la

eficacia aumenta cuanto mayor sea el factor de reducción, pero dependiendo mucho

menos del valor de éste que en el caso de usar una DELTA grande. La causa de esta

menor dependencia radica en que siendo pequeño el desplazamiento inicial, se hace

menos necesario usar la reducción. Incluso hay moléculas en las que no llega a ser

precisa.

Page 61: Grado de Licenciado en Ciencias Químicas

60

• Cuanto menor es el desplazamiento inicial, menos iteraciones (cálculos del

gradiente) se necesitan para optimizar, pero aumenta el número de deslizamientos

necesarios. Se avanza a pequeños pasitos, lo que aumenta la precisión con que se

localizan los sucesivos mínimos lineales. Así se reducen las desviaciones en el

cálculo de las sucesivas direcciones de desplazamiento, lo que redunda en una

disminución del número de iteraciones.

• Esta forma de obrar es en principio favorable en tiempo, pues un paso de

deslizamiento consume mucho menos esfuerzo que un cálculo del gradiente. Pero si

se disminuye suficientemente el desplazamiento inicial (más o menos alrededor de

0.003 Å) acaba llegándose a una situación en la que el número de deslizamientos se

hace tan elevado que los tiempos de cálculo vuelven a aumentar.

Tabla 1. Optimización de DELTA y FRED. Tiempos totales

Factor de reducción

0.9 0.7 0.5 0.3 0.1

0.003 5 m 21 s. 5 m 21 s. 5 m 21 s. 0.005 5 m 00 s. 5 m 01 s. 5 m 02 s. 0.007 4 m 33 s. 4 m 35 s. 4 m 38 s. 4 m 42 s. 0.009 5 m 13 s. 5 m 09 s. 4 m 52 s. 4 m 56 s. 0.010 5 m 07 s. 5 m 09 s. 5 m 12 s. 0.020 5 m 28 s. 4 m 59 s. 4 m 59 s. 5 m 11 s. 0.030 5 m 26 s. 5 m 25 s. 5 m 11 s. 0.040 5 m 54 s. 5 m 32 s. 5 m 38 s.

DELTA

(Ang

stro

m)

0.050 6 m 24 s. 5 m 54 s. 5 m 32 s.

Page 62: Grado de Licenciado en Ciencias Químicas

61

Tabla 2. Optimización de DELTA y FRED. Número total de cálculos del gradiente

Factor de reducción

0.9 0.7 0.5 0.3 0.1

0.003 100 100 100 0.005 101 101 101 0.007 101 101 102 101 0.009 115 111 109 109 0.010 111 108 108 0.020 142 130 124 124 0.030 136 128 121 0.040 144 132 124

DELTA

(Ang

stro

m)

0.050 149 137 120

Tabla 3. Optimización de DELTA y FRED. Número total de deslizamientos

Factor de reducción

0.9 0.7 0.5 0.3 0.1

0.003 459 460 461 0.005 272 277 277 0.007 198 207 227 265 0.009 155 164 181 194 0.010 141 158 188 0.020 79 96 110 206 0.030 78 131 207 0.040 62 83 201

DELTA

(Ang

stro

m)

0.050 56 103 447

Según lo anterior, estimamos conveniente un valor de DELTA de alrededor de

0.007 Å, con un factor de reducción próximo a la unidad, del orden de 0.9 a 0.5. Con

estos valores se ha obtenido la convergencia más rápida en todas las moléculas de

prueba.

Page 63: Grado de Licenciado en Ciencias Químicas

62

4.2 Optimización de la tolerancia en el gradiente de energía

Se puede emplear diversos criterios para decidir cuándo dar por finalizada una

optimización geométrica. Podemos definir una tolerancia en el gradiente, ya sea

considerando la mayor de sus componentes o la propia norma del vector, una tolerancia

en la diferencia entre energías consecutivas, o en el desplazamiento nuclear máximo.

Naturalmente, también se puede exigir el cumplimiento simultáneo de todos los

criterios. Nos ha parecido suficiente usar únicamente el criterio del gradiente de energía,

considerando que la geometría molecular ha sido optimizada cuando la mayor

componente del gradiente se haga menor que una tolerancia TOLFOR. Se hace necesario

determinar un valor óptimo para esta tolerancia: si la establecemos muy exigente

llevaremos la minimización muy cerca del mínimo exacto, es decir, obtendremos mayor

precisión en la geometría calculada. Pero a cambio aumentará el número de iteraciones

y por tanto el tiempo de cálculo. Incluso se puede llegar, si la tolerancia exigida fuese

demasiado pequeña, a perder el tiempo en la fase final de la minimización realizando

iteraciones totalmente inútiles, debido a que las variaciones sucesivas de geometría

resultan insignificantes.

Para determinar un valor óptimo de TOLFOR hemos empezado por tratar nuestro

conjunto de moléculas (usando el método DFP con DELTA = 0.007 Å y FRED = 0.9,

que son valores óptimos de estos parámetros, según el apartado anterior) permitiendo

sólo una tolerancia pequeñísima (TOLFOR = 10–6 u.a.) lo que aseguraba una gran

precisión en los mínimos encontrados. Las geometrías moleculares así obtenidas se

tomaron como referencia y se repitieron las optimizaciones aumentando

progresivamente la tolerancia, hasta que el error máximo en los parámetros geométricos

obtenidos alcanzase un nivel de exactitud parecido al que suele corresponder a una

buena determinación experimental de estos parámetros: 0.001 Å en las distancias de

enlace y 0.5º en los ángulos. La diferencia entre las energías obtenidas con diferentes

tolerancias y las que corresponden a la tolerancia de referencia no se ha tenido en

cuenta, pues nuestro interés se centra por el momento en la obtención de las geometrías

moleculares únicamente.

Page 64: Grado de Licenciado en Ciencias Químicas

63

En las Tablas 4, 5 y 6 se recogen los parámetros geométricos obtenidos para

algunos valores de TOLFOR. Se encuentra que un valor adecuado de esta tolerancia es

0.001 u.a. Con este valor, el máximo error cometido en las distancias de enlace es de

0.001 Å y en los ángulos, de 0.4º.

Tabla 4. Distancias (en Angstrom) y ángulos de enlace obtenidos con diferentes valores de TOLFOR

TOLFOR: 0.000001 0.0005 0.0010 0.0050

Molécula Distancia o ángulo

Valor de referencia Valor Error Valor Error Valor Error

H2 H–H 0.746 0.746 0.000 0.746 0.000 0.746 0.000

CH C–H 1.109 1.109 0.000 1.109 0.000 1.109 0.000

CH4 C–H 1.114 1.114 0.000 1.114 0.000 1.114 0.000

NH N–H 1.061 1.061 0.000 1.061 0.000 1.061 0.000

N–H 1.067 1.067 0.000 1.067 0.000 1.069 0.002 NH3

HNH 105.1 105.1 0.0 105.1 0.0 105.0 -0.1 OH O–H 1.026 1.026 0.000 1.026 0.000 1.026 0.000

O–H 1.029 1.029 0.000 1.029 0.000 1.029 0.000 H2O

HOH 104.2 104.2 0.0 104.2 0.0 105.3 1.1

C2 C–C 1.146 1.146 0.000 1.146 0.000 1.146 0.000

C–C 1.197 1.197 0.000 1.197 0.000 1.198 0.001 C2H2

C–H 1.093 1.093 0.000 1.093 0.000 1.092 -0.001

C–C 1.310 1.310 0.000 1.311 0.000 1.310 0.000 C–H 1.112 1.112 0.000 1.112 0.000 1.112 0.000 C2H4 HCH 111.7 111.7 0.0 111.8 0.1 111.8 0.1

C–C 1.458 1.458 0.000 1.458 0.000 1.457 -0.001 C–H 1.120 1.120 0.000 1.120 0.000 1.120 0.000 CCH 112.1 112.1 0.0 112.1 0.0 111.6 -0.5

C2H6

HCH 106.7 106.7 0.0 106.7 0.0 107.3 0.6

Page 65: Grado de Licenciado en Ciencias Químicas

64

Tabla 5. Distancias (en Angstrom) y ángulos de enlace obtenidos con diferentes valores de TOLFOR (continuación)

TOLFOR: 0.000001 0.0005 0.0010 0.0050

Molécula Distancia o ángulo

Valor de referencia Valor Error Valor Error Valor Error

CN C–N 1.169 1.169 0.000 1.169 0.000 1.169 0.000 C–N 1.181 1.181 0.000 1.181 0.000 1.181 0.000

HCN H–C 1.092 1.092 0.000 1.092 0.000 1.092 0.000

C–N 1.405 1.405 0.000 1.405 0.000 1.405 0.000

C–H 1.121 1.121 0.000 1.121 0.000 1.124 0.003

N–H 1.072 1.072 0.000 1.072 0.000 1.071 -0.001

HCH 107.2 107.2 0.0 107.2 0.0 107.4 0.2

HNH 104.1 104.2 0.0 104.0 -0.1 104.8 0.7

HNC 107.7 107.7 0.0 107.8 0.1 109.1 1.4

NCH1* 114.0 114.0 0.0 114.2 0.2 113.7 -0.3

CH3NH2

NCH 110.4 110.4 0.0 110.4 0.0 110.4 0.0 CO C–O 1.191 1.191 0.000 1.191 0.000 1.191 0.000

C–O 1.247 1.247 0.000 1.247 0.000 1.247 0.000 C–H 1.114 1.114 0.000 1.114 0.000 1.114 0.000 H2CO HCH 115.8 115.8 0.0 115.8 0.0 115.8 0.0

C–O 1.368 1.368 0.000 1.368 0.000 1.367 -0.001 O–H 1.033 1.033 0.000 1.033 0.000 1.034 0.001 C–H 1.120 1.120 0.000 1.120 0.000 1.120 0.000 COH 105.2 105.2 0.0 105.6 0.4 106.1 0.9 HCH 108.2 108.2 0.0 108.3 0.1 108.1 -0.1 HCO 111.8 111.8 0.0 111.8 0.0 112.3 0.5

CH3OH

H4CO** 108.5 108.5 0.0 108.1 -0.4 107.9 -0.6

* El plano NCH1 es el que pasa entre los dos H del grupo amino. ** El plano H4CO es el que contiene el enlace O-H.

Page 66: Grado de Licenciado en Ciencias Químicas

65

Tabla 6. Distancias (en Angstrom) y ángulos de enlace obtenidos con diferentes valores de TOLFOR (continuación)

TOLFOR: 0.000001 0.0005 0.0010 0.0050

Molécula Distancia o ángulo

Valor de referencia Valor Error Valor Error Valor Error

N2 N–N 1.140 1.140 0.000 1.140 0.000 1.140 0.000 N–N 1.334 1.334 0.000 1.334 0.000 1.334 0.000 N–H 1.074 1.074 0.000 1.074 0.000 1.073 -0.001 HNH 103.2 103.2 0.0 103.4 0.2 102.6 -0.6 HNN 106.9 106.9 0.0 106.8 -0.1 106.9 0.0

N2H4

HNN 110.9 110.9 0.0 110.9 0.0 112.7 1.8

NO N–O 1.152 1.152 0.000 1.152 0.000 1.152 0.000

N–O1 1.193 1.193 0.000 1.194 0.000 1.193 0.000 N–O2 1.230 1.230 0.000 1.231 0.000 1.230 0.000 NO2 ONO 119.9 119.9 0.0 119.7 -0.2 119.7 -0.2

O2 O–O 1.132 1.132 0.000 1.132 0.000 1.132 0.000

O–O 1.167 1.167 0.000 1.167 0.000 1.167 0.000 O3

OOO 119.5 119.5 0.0 119.5 0.0 119.7 0.2

O–O 1.219 1.219 0.000 1.219 0.000 1.220 0.001

O–H 1.039 1.039 0.000 1.039 0.000 1.037 -0.002 H2O2

HOO 108.5 108.5 0.0 108.5 0.0 107.3 -1.2

Error máximo (distancias) Error máximo (ángulos)

0.000

0.0

0.000 0.4

0.003

1.8

Page 67: Grado de Licenciado en Ciencias Químicas

66

Tabla 7. Comparación de los tiempos empleados para cada tolerancia en fuerzas

TOLFOR: 0.0005 0.0010 0.0050 Molécula Tiempo Iterac. Tiempo Iterac. Tiempo Iterac.

H2 0.8 s. 2 0.8 s. 2 0.8 s. 2 CH CH4

1.1 s. 1.9 s.

2 2

1.1 s. 1.9 s.

2 2

1.1 s. 1.9 s.

2 2

NH NH3

1.2 s. 3.4 s.

2 5

1.2 s. 3.4 s.

2 5

1.2 s. 2.9 s.

2 4

OH H2O

1.2 s. 2.5 s.

2 5

1.2 s. 2.0 s.

2 4

1.2 s. 1.3 s.

2 2

C2 C2H2 C2H4 C2H6

1.8 s. 3.4 s.

11.0 s. 18.2 s.

4 4 6 6

1.1 s. 3.4 s. 9.6 s.

18.2 s.

2 4 5 6

1.1 s. 2.8 s. 9.6 s.

10.6 s.

2 3 5 3

CN HCN

CH3NH2

6.3 s. 2.7 s.

25.6 s.

2 3

10

6.3 s. 2.7 s.

21.2 s.

2 3 8

6.3 s. 2.7 s.

11.9 s.

2 3 4

CO H2CO

CH3OH

3.2 s. 6.0 s.

19.7 s.

6 8

10

1.4 s. 5.1 s.

16.1 s.

2 4 8

1.4 s. 5.0 s.

12.6 s.

2 4 6

N2 N2H4

2.4 s. 26.6 s.

7 13

0.8 s. 17.1 s.

2 8

0.8 s. 13.3 s.

2 6

NO NO2

13.6 s. 2 m 37.1 s.

7 7

9.1 s. 2 m 0.0 s.

4 5

6.0 s. 1 m 59.6 s.

2 5

O2 O3

H2O2

3.4 s. 11.3 s. 19.6 s.

8 7

14

1.1 s. 10.0 s. 18.7 s.

2 6

13

1.1 s. 8.7 s. 9.4 s.

2 5 6

Totales 5 m 44 s. 142 4 m 33 s. 103 3 m 53 s. 78

Page 68: Grado de Licenciado en Ciencias Químicas

67

4.3 Comparación de la eficiencia de los métodos ensayados

Los métodos de optimización analizados por nosotros (Máxima Pendiente,

Fletcher-Reeves, Polak-Ribiere, DFP y BFGS) se aplicaron a la obtención de las

geometrías de nuestro conjunto de moléculas de prueba. Los resultados se muestran en

las Tablas 8 a 13. Se han usado los parámetros (desplazamiento inicial, factor de

reducción y tolerancia en fuerzas) determinados como óptimos en las secciones 4.1 y

4.2: DELTA = 0.007 Å, FRED = 0.9 y TOLFOR = 0.001 u.a. Se encuentra que los

métodos más eficientes en optimización de geometrías moleculares son los de métrica

variable, y de ellos el DFP es ligeramente más eficiente que el BFGS. El menos

eficiente es el método de la Máxima Pendiente, por las razones que se argumentaron en

la sección 2.3.

Page 69: Grado de Licenciado en Ciencias Químicas

68

Tabla 8. Resultados obtenidos con el método de Máxima Pendiente

Molécula Tiempo Iteraciones Deslizamientos Energía

H2 0.8 s. 2 0 –1.474609

CH CH4

1.1 s. 1.9 s.

2 2

2 3

–7.156816 –10.115684

NH NH3

1.2 s. 6.0 s.

2 10

4 10

–12.019088 –13.889457

OH H2O

1.2 s. 4.0 s.

2 9

5 6

–18.991107 –19.890873

C2 C2H2 C2H4 C2H6

1.1 s. 10.4 s. 32.2 s. 28.1 s.

2 14 20 10

4 4

16 7

–13.333039 –15.344426 –17.072681 –18.824972

CN HCN

CH3NH2

6.3 s. 8.9 s.

38.4 s.

2 13 16

1 5

11

–18.117250 –19.156701 –22.590578

CO H2CO

CH3OH

1.4 s. 42.2 s. 44.3 s.

2 41 24

2 17 16

–25.061680 –26.838191 –28.575337

N2 N2H4

0.8 s. 1 m 26.7 s.

2 46

3 32

–23.090236 –26.397031

NO NO2

9.0 s. 3 m 13.8 s.

4 9

5 3

–29.893537 –48.433902

O2 O3

H2O2

1.1 s. 39.2 s.

6 m 24.0 s.

2 27

255

6 4

252

–36.804346 –55.308322 –38.464750

Totales 15 m 44 s. 518 418

Page 70: Grado de Licenciado en Ciencias Químicas

69

Tabla 9. Resultados obtenidos con el método Fletcher-Reeves

Molécula Tiempo Iteraciones Deslizamientos Energía

H2 0.8 s. 2 0 –1.474609

CH CH4

1.1 s. 1.9 s.

2 2

2 3

–7.156816 –10.115684

NH NH3

1.2 s. 3.4 s.

2 5

4 9

–12.019088 –13.889459

OH H2O

1.2 s. 2.1 s.

2 4

5 7

–18.991107 –19.890876

C2 C2H2 C2H4 C2H6

1.1 s. 3.5 s.

12.5 s. 18.3 s.

2 4 7 6

4 5

13 8

–13.333039 –15.344426 –17.072707 –18.824998

CN HCN

CH3NH2

6.4 s. 2.7 s.

25.5 s.

2 3

10

1 5

13

–18.117250 –19.156701 –22.590596

CO H2CO

CH3OH

1.4 s. 6.1 s.

22.9 s.

2 5

12

2 8

11

–25.061680 –26.838193 –28.575348

N2 N2H4

0.9 s. 18.8 s.

2 9

3 19

–23.090236 –26.397035

NO NO2

9.1 s. 6 m 41.0 s.

4 20

5 4

–29.893537 –48.433910

O2 O3

H2O2

1.1 s. 10.2 s. 28.1 s.

2 6

22

6 7

58

–36.804346 –55.308325 –38.464881

Totales 9 m 41 s. 137 202

Page 71: Grado de Licenciado en Ciencias Químicas

70

Tabla 10. Resultados obtenidos con el método Polak-Ribière

Molécula Tiempo Iteraciones Deslizamientos Energía

H2 0.8 s. 2 0 –1.474609

CH CH4

1.1 s. 1.9 s.

2 2

2 3

–7.156816 –10.115684

NH NH3

1.2 s. 3.4 s.

2 5

4 9

–12.019088 –13.889460

OH H2O

1.2 s. 2.5 s.

2 5

5 7

–18.991107 –19.890876

C2 C2H2 C2H4 C2H6

1.1 s. 3.5 s.

12.6 s. 18.2 s.

2 4 7 6

4 5

14 8

–13.333039 –15.344426 –17.072706 –18.824998

CN HCN

CH3NH2

6.3 s. 2.7 s.

23.4 s.

2 3 9

1 5

13

–18.117250 –19.156701 –22.590595

CO H2CO

CH3OH

1.4 s. 6.0 s.

22.7 s.

2 5

12

2 8

11

–25.061680 –26.838194 –28.575348

N2 N2H4

0.9 s. 18.8 s.

2 9

3 19

–23.090236 –26.397035

NO NO2

9.1 s. 2 m 57.5 s.

4 8

5 5

–29.893537 –48.433910

O2 O3

H2O2

1.1 s. 8.8 s.

24.0 s.

2 5

18

6 7

57

–36.804346 –55.308325 –38.464842

Totales 5 m 50 s. 120 203

Page 72: Grado de Licenciado en Ciencias Químicas

71

Tabla 11. Resultados obtenidos con el método DFP

Molécula Tiempo Iteraciones Deslizamientos Energía

H2 0.8 s. 2 0 –1.474609

CH CH4

1.1 s. 1.9 s.

2 2

2 3

–7.156816 –10.115684

NH NH3

1.2 s. 3.4 s.

2 5

4 9

–12.019088 –13.889459

OH H2O

1.2 s. 2.0 s.

2 4

5 7

–18.991107 –19.890876

C2 C2H2 C2H4 C2H6

1.1 s. 3.4 s. 9.6 s.

18.2 s.

2 4 5 6

4 5

13 8

–13.333039 –15.344426 –17.072706 –18.824998

CN HCN

CH3NH2

6.3 s. 2.7 s.

21.2 s.

2 3 8

1 5

13

–18.117250 –19.156701 –22.590595

CO H2CO

CH3OH

1.4 s. 5.1 s.

16.1 s.

2 4 8

2 8

12

–25.061680 –26.838193 –28.575337

N2 N2H4

0.8 s. 17.1 s.

2 8

3 19

–23.090236 –26.397037

NO NO2

9.1 s. 2 m 0.0 s.

4 5

5 4

–29.893537 –48.433909

O2 O3

H2O2

1.1 s. 10.0 s. 18.7 s.

2 6

13

6 7

53

–36.804346 –55.308325 –38.464909

Totales 4 m 33 s. 103 198

Page 73: Grado de Licenciado en Ciencias Químicas

72

Tabla 12. Resultados obtenidos con el método BFGS

Molécula Tiempo Iteraciones Deslizamientos Energía

H2 0.7 s. 2 0 –1.474609

CH CH4

1.1 s. 2.0 s.

2 2

2 3

–7.156816 –10.115684

NH NH3

1.2 s. 3.4 s.

2 5

4 9

–12.019088 –13.889459

OH H2O

1.3 s. 2.1 s.

2 4

5 7

–18.991107 –19.890876

C2 C2H2 C2H4 C2H6

1.2 s. 3.5 s. 9.6 s.

18.2 s.

2 4 5 6

4 5

13 8

–13.333039 –15.344426 –17.072706 –18.824998

CN HCN

CH3NH2

6.3 s. 2.7 s.

21.1 s.

2 3 8

1 5

13

–18.117250 –19.156701 –22.590595

CO H2CO

CH3OH

1.4 s. 5.1 s.

16.3 s.

2 4 8

2 8

12

–25.061680 –26.838193 –28.575337

N2 N2H4

0.8 s. 17.2 s.

2 8

3 19

–23.090236 –26.397037

NO NO2

9.1 s. 2 m 37.3 s.

4 7

5 4

–29.893537 –48.433910

O2 O3

H2O2

1.1 s. 8.7 s.

18.7 s.

2 5

13

6 7

53

–36.804346 –55.308325 –38.464909

Totales 5 m 10 s. 104 198

Page 74: Grado de Licenciado en Ciencias Químicas

73

Tabla 13. Comparación de los tiempos empleados por cada método

Molécula Máxima Pendiente

Fletcher Reeves

Polak Ribiere DFP BFGS

H2 0.8 s. 0.8 s. 0.8 s. 0.8 s. 0.7 s.

CH CH4

1.1 s. 1.9 s.

1.1 s. 1.9 s.

1.1 s. 1.9 s.

1.1 s. 1.9 s.

1.1 s. 2.0 s.

NH NH3

1.2 s. 6.0 s.

1.2 s. 3.4 s.

1.2 s. 3.4 s.

1.2 s. 3.4 s.

1.2 s. 3.4 s.

OH H2O

1.2 s. 4.0 s.

1.2 s. 2.1 s.

1.2 s. 2.5 s.

1.2 s. 2.0 s.

1.3 s. 2.1 s.

C2 C2H2 C2H4 C2H6

1.1 s. 10.4 s. 32.2 s. 28.1 s.

1.1 s. 3.5 s.

12.5 s. 18.3 s.

1.1 s. 3.5 s.

12.6 s. 18.2 s.

1.1 s. 3.4 s. 9.6 s.

18.2 s.

1.2 s. 3.5 s. 9.6 s.

18.2 s.

CN HCN

CH3NH2

6.3 s. 8.9 s.

38.4 s.

6.4 s. 2.7 s.

25.5 s.

6.3 s. 2.7 s.

23.4 s.

6.3 s. 2.7 s.

21.2 s.

6.3 s. 2.7 s.

21.1 s.

CO H2CO

CH3OH

1.4 s. 42.2 s. 44.3 s.

1.4 s. 6.1 s.

22.9 s.

1.4 s. 6.0 s.

22.7 s.

1.4 s. 5.1 s.

16.1 s.

1.4 s. 5.1 s.

16.3 s.

N2 N2H4

0.8 s. 1 m 26.7 s.

0.9 s. 18.8 s.

0.9 s. 18.8 s.

0.8 s. 17.1 s.

0.8 s. 17.2 s.

NO NO2

9.0 s. 3 m 13.8 s.

9.1 s. 6 m 41.0 s.

9.1 s. 2 m 57.5 s.

9.1 s. 2 m 0.0 s.

9.1 s. 2 m 37.3 s.

O2 O3

H2O2

1.1 s. 39.2 s.

6 m 24.0 s.

1.1 s. 10.2 s. 28.1 s.

1.1 s. 8.8 s.

24.0 s.

1.1 s. 10.0 s. 18.7 s.

1.1 s. 8.7 s.

18.7 s.

Totales 15 m 44 s. 9 m 41 s. 5 m 50 s. 4 m 33 s. 5 m 10 s.

Page 75: Grado de Licenciado en Ciencias Químicas

74

4.4 Comparación con resultados estándar

Aunque nuestro programa siempre sigue un camino descendente en energía, en

realidad no ha incluido ninguna comprobación para decidir si el punto en que se da por

finalizada la optimización geométrica es realmente un mínimo y no un punto de silla de

la superficie de energía potencial. En principio, acabar en un punto de silla cuando lo

que se está buscando es un mínimo resulta posible, aunque con nuestra forma de operar

sea muy poco probable. Para comprobar que en todos los casos se había llegado a un

verdadero mínimo, se ha repetido las mismas optimizaciones de geometría con el

programa Gaussian 94 [Ref. 42]. Éste efectúa las optimizaciones en coordenadas

internas redundantes [Refs. 9, 12]. Las direcciones de desplazamiento se determinan

según el método de la Función Racional y las minimizaciones lineales siguen el

algoritmo Berny [Ref. 15]. Para garantizar que el punto estacionario encontrado sea

realmente un mínimo, el Gaussian diagonaliza la matriz hessiana, comprobando así que

es definida positiva.

En las Tablas 14 y 15 se comparan las geometrías y energías finales obtenidas

con ambos programas: el Gaussian y el nuestro, en su versión más rápida (método DFP

con DELTA = 0.007 Å y FRED = 0.9). Las energías obtenidas por el Gaussian son en

todos los casos algo menores que las nuestras debido a que aquel programa usa unos

criterios de convergencia algo más exigentes de lo que nosotros hemos considerado

necesario. Para que el Gaussian dé por finalizadas las optimizaciones, se deben cumplir

todas y cada una de las siguientes condiciones:

a) La máxima componente del gradiente (en coordenadas internas) debe ser menor que

0.00045 u.a.

b) La raíz cuadrada de la media de los cuadrados de las fuerzas debe ser menor

que 0.00030 u.a.

c) El máximo desplazamiento nuclear debe ser menor que 0.0018 u.a.

d) La raíz cuadrada de la media de los desplazamientos debe ser menor que 0.0012 u.a.

Page 76: Grado de Licenciado en Ciencias Químicas

75

Las geometrías obtenidas mediante el Gaussian concuerdan exactamente con las

que obtenemos nosotros, excepto para la molécula de NO2 (por razones que estudiamos

más adelante), lo que confirma que en todos los casos hemos alcanzado un mínimo y

que podemos usar nuestro programa con entera confianza.

La Tabla 16 muestra que la convergencia se alcanza más o menos con el mismo

número de pasos en ambos programas. En principio, dado que el Gaussian calcula el

gradiente analíticamente, debería invertir menos tiempo que nuestro programa. La causa

de que no sea así radica en la gran cantidad de tiempo que invierte en determinar una

serie de propiedades moleculares que nosotros no necesitamos, pero que el Gaussian

calcula por defecto. Así ocurre con la simetría de los orbitales moleculares, los

momentos multipolares hasta orden 4, las cargas de Mulliken, etc. También escribe

abundante información acerca del progreso del cálculo SCF en cada iteración, lo que

consume tiempo y alarga el archivo de resultados. En cualquier caso queda claro que

aunque el Gaussian permita llevar a cabo cálculos semiempíricos, resulta poco eficiente

para su realización.

Page 77: Grado de Licenciado en Ciencias Químicas

76

Tabla 14. Comparación entre las geometrías obtenidas con el AVEMO9 y con el Gaussian 94

Molécula Distancia o ángulo

Valor AVEMO9

Valor Gaussian Energía AVEMO9 Energía Gaussian

H2 H–H 0.746 0.746 –1.474609 –1.474667

CH C–H 1.109 1.108 –7.156816 –7.156956

CH4 C–H 1.114 1.114 –10.115684 –10.115989

NH N–H 1.061 1.061 –12.019088 –12.019274

N–H 1.067 1.067 NH3

HNH 105.1 105.1 –13.889459 –13.889752

OH O–H 1.026 1.026 –18.991107 –18.991352

O–H 1.029 1.029 H2O

HOH 104.2 104.2 –19.890876 –19.891175

C2 C–C 1.146 1.146 –13.333039 –13.333339

C–C 1.197 1.197 C2H2

C–H 1.093 1.093 –15.344426 –15.344827

C–C 1.311 1.310 C–H 1.112 1.112 C2H4 HCH 111.8 111.7

–17.072706 –17.073184

C–C 1.458 1.457 C–H 1.120 1.120 CCH 112.1 112.1

C2H6

HCH 106.7 106.7

–18.824998 –18.825554

CN C–N 1.169 1.169 –18.117250 –18.117583

C–N 1.181 1.181 HCN

H–C 1.092 1.092 –19.156701 –19.157091

C–N 1.405 1.405

C–H 1.121 1.121

N–H 1.072 1.071

HCH 107.2 107.2

HNH 104.1 104.1

HNC 107.7 107.7

NCH1 114.0 114.0

CH3NH2

NCH 110.5 110.4

–22.590595 –22.591145

Page 78: Grado de Licenciado en Ciencias Químicas

77

Tabla 15. Comparación entre las geometrías obtenidas con el AVEMO9 y con el Gaussian 94 (continuación)

Molécula Distancia o ángulo

Valor AVEMO9

Valor Gaussian Energía AVEMO9 Energía Gaussian

CO C–O 1.191 1.191 –25.061680 –25.062063

C–O 1.247 1.247 C–H 1.114 1.114 H2CO HCH 115.8 115.8

–26.838193 –26.838664

C–O 1.368 1.368 O–H 1.033 1.033 C–H 1.120 1.120 COH 105.2 105.2 HCH 108.2 108.2 HCO 111.8 111.8

CH3OH

H4CO 108.5 108.5

–28.575337 –28.575898

N2 N–N 1.140 1.140 –23.090236 –23.090621

N–N 1.334 1.334 N–H 1.074 1.074 HNH 103.2 103.2 HNN 106.9 106.9

N2H4

HNN 110.9 110.9

–26.397037 –26.397641

NO N–O 1.152 1.151 –29.893537 –29.893959

N–O1 1.193 1.192 N–O2 1.230 1.192 NO2 ONO 119.9 138.4

–48.433909 –48.428288

O2 O–O 1.132 1.132 –36.804346 –36.804816

O–O 1.167 1.167 O3

OOO 119.5 119.5 –55.308325 –55.309050

O–O 1.219 1.218

O–H 1.039 1.038 H2O2

HOO 108.5 108.5

–38.464909 –38.465458

Page 79: Grado de Licenciado en Ciencias Químicas

78

Tabla 16. Comparación entre los tiempos e iteraciones empleados por el AVEMO9 y por el Gaussian 94

Tiempo (segundos) Iteraciones Molécula

AVEMO9 Gaussian AVEMO9 Gaussian

H2 0.8 24.0 2 3

CH CH4

1.1 1.9

25.0 23.0

2 2

3 3

NH NH3

1.2 3.4

25.0 29.0

2 5

3 4

OH H2O

1.2 2.0

24.0 26.0

2 4

3 4

C2 C2H2 C2H4 C2H6

1.1 3.4 9.6

18.2

24.0 29.0 33.0 35.0

2 4 5 6

3 5 6 6

CN HCN

CH3NH2

6.3 2.7

21.2

22.0 30.0 37.0

2 3 8

3 5 7

CO H2CO

CH3OH

1.4 5.1

16.1

23.0 33.0 37.0

2 4 8

3 6 7

N2 N2H4

0.8 17.1

23.0 38.0

2 8

3 7

NO NO2

9.1 120.0

26.0 58.0

4 5

4 6

O2 O3

H2O2

1.1 10.0 18.7

24.0 30.0 47.0

2 6

13

4 5

10

Totales 4 m 33 s. 12 m 5 s. 103 103

Page 80: Grado de Licenciado en Ciencias Químicas

79

4.5 El caso del NO2

Como se vio en la sección anterior, las geometrías moleculares obtenidas con

nuestro programa y con Gaussian 94 concuerdan perfectamente excepto en la

optimización de la molécula de dióxido de nitrógeno. Para esta molécula, el programa

AVEMO9 obtiene una geometría que no parece razonable, con las dos distancias N-O

diferentes (1.193 y 1.230 Å). Por su parte, si se usa el Gaussian con las opciones que

trae por defecto, la geometría obtenida parece más razonable, con ambas distancias de

enlace iguales a 1.192 Å. Sin embargo, a esta geometría corresponde una energía de

-48.428288 u.a., que es superior a las -48.433909 u.a. que obtenemos usando el

AVEMO9. Esta discrepancia de resultados se debe a dos razones:

• Nuestro programa es más exigente en la convergencia del cálculo SCF. Para dar por

terminado cada cálculo autoconsistente se requiere una diferencia entre energías

electrónicas de 10-12 u.a., frente a las 10-8 u.a. del Gaussian. Las energías

electrónicas calculadas por nosotros son pues más exactas. No obstante, en el

Gaussian se puede controlar la convergencia en el cálculo de la energía electrónica,

simplemente escribiendo en la sección Route Section lo siguiente:

SCF(MaxCycle=300,Conver=12)

Esto hace que el cálculo de la energía electrónica converja sólo cuando la diferencia

entre energías electrónicas consecutivas sea menor que 10-12 u.a., con un máximo

de 300 iteraciones.

• Aunque especifiquemos una tolerancia en energía electrónica pequeña, si partimos

de una geometría inicial de distancias N-O iguales, el Gaussian las mantiene

iguales durante toda la optimización. El hecho de que el método de optimización

usado por el Gaussian mantiene la simetría inicial viene mencionado en la ayuda

del programa [Ref. 42] y hemos comprobado que sigue haciéndolo aunque

desactivemos los cálculos de simetría escribiendo NoSymm en la Route Section. Sin

embargo, si partimos de una geometría inicial con las dos distancias ligeramente

diferentes, aunque sólo difieran en 10-5 Å, el Gaussian converge ya hacia nuestro

mínimo.

Page 81: Grado de Licenciado en Ciencias Químicas

80

Tras estas consideraciones, lo más adecuado es comparar ambos programas en

su camino hacia el mismo mínimo, obteniéndose los resultados de la Tabla 17:

Tabla 17. Comparación de resultados obtenidos por el AVEMO9 y por el Gaussian 94 para el NO2

Distancia o ángulo

Valor AVEMO9

Valor Gaussian Energía AVEMO9 Energía Gaussian

N–O1 1.193 1.193

N–O2 1.230 1.230

ONO 119.9 119.9

–48.433909 –48.434580

Tiempo (segundos) Iteraciones AVEMO9 Gaussian AVEMO9 Gaussian

120.0 59.0 5 7

Estos resultados nos muestran un fallo del modelo CNDO, que erróneamente

predice una estructura asimétrica para la molécula de NO2. Este fallo ha sido puesto de

manifiesto gracias a que nuestro programa efectúa las optimizaciones sin imponer

ninguna restricción de simetría. En este momento no tenemos constancia de ningún

trabajo donde se haya reparado en este hecho: más bien al contrario, en la literatura

habitual [Ref. 41] la estructura prevista por el método CNDO para esta molécula

presenta las dos distancias iguales a 1.192 Å.

Page 82: Grado de Licenciado en Ciencias Químicas

81

RESUMEN Y CONCLUSIONES

Page 83: Grado de Licenciado en Ciencias Químicas

82

El trabajo que se presenta ha consistido fundamentalmente en elaborar un

módulo de programa para optimizar geometrías moleculares en coordenadas cartesianas

e implementarlo en el programa AVEMO de cálculo semiempírico (desarrollado con

anterioridad en la Universidad de Cádiz). Aunque por sencillez hemos realizado todos

los cálculos de prueba usando el método CNDO, nuestro optimizador geométrico puede

ser usado con cualquier otros tipo de método químicocuantico, ya que calcula las

derivadas de la energía numéricamente. Su única limitación puede ser el alto coste en

tiempo de cálculo requerido por los cálculos Ab Initio con bases grandes, pues necesita

evaluar muchas veces la función de onda para calcular el gradiente.

Nuestro programa usa las 3N coordenadas (x, y, z de cada núcleo) sin eliminar

las coordenadas redundantes. Esta forma de operar ocasionaría problemas al intentar

combinarlo con el método de optimización de Newton-Raphson, pues la superficie de

energía potencial resultante se aleja demasiado de una aproximación cuadrática. De

todas formas, hemos preferido mantener las 3N coordenadas no sólo por sencillez de

programación, sino porque nuestro laboratorio está interesado en estudiar el

comportamiento de moléculas en presencia de campos eléctricos externos, en cuyo caso

la energía molecular depende de su posición y orientación respecto al campo (y debe

describirse necesariamente con 3N coordenadas).

Los siguientes métodos han sido programados y ensayados sobre un conjunto de

moléculas de prueba:

• Máxima Pendiente

• Método Fletcher-Reeves

• Método Polak-Ribiere

• Método Davidon-Fletcher-Powell

• Método Broyden-Fletcher-Goldfarb-Shanno

Nuestro trabajo ha permitido comprobar que ninguno de los métodos indicados

se ve entorpecido por el uso de coordenadas cartesianas. También hemos optimizado los

parámetros usados por nuestro optimizador (desplazamiento inicial, factor de reducción

y tolerancia en fuerzas) para obtener su máxima eficiencia, entendida ésta como mínimo

tiempo de cálculo requerido.

Page 84: Grado de Licenciado en Ciencias Químicas

83

El método más eficiente de todos los estudiados resultó ser el

Davidon-Fletcher-Powell y el menos eficiente el de Máxima Pendiente, aunque todos

resultaron ser seguros, convergiendo en todos los casos y en un número aceptable de

pasos. Los valores hallados como óptimos para los parámetros, con el método más

eficiente (BFGS) fueron:

• Desplazamiento inicial: DELTA = 0.007 Å

• Factor de reducción: FRED = 0.9

• Tolerancia en fuerzas: TOLFOR = 0.001 u.a.

Este último parámetro fue elegido de manera que los errores en las geometrías

resultantes sean del orden de los experimentales: 0.001 Å en las distancias de enlace y

0.5º en los ángulos. De todas formas, el programa elaborado permite cambiar fácilmente

el método de optimización y los valores de los parámetros DELTA, FRED y TOLFOR.

La comparación entre nuestro programa y los programas estándar, representados

por el Gaussian 94 mostró una concordancia absoluta entre las geometrías obtenidas

con ambos, lo que ratifica que el nuestro conduce a resultados correctos. Sólo para la

molécula de NO2 hubo alguna discrepancia, pues nuestro programa conducía a

resultados que nos parecieron incialmente incorrectos, ya que resultaban diferentes las

dos distancias de enlace (aunque nuestra estructura tenía menor energía que la obtenida

con el Gaussian). Esta discrepancia fue resuelta cuando repetimos el cálculo Gaussian

aumentando la precisión exigida a la energía electrónica en el cálculo SCF hasta el valor

usado por el AVEMO, 10-12 u.a. En este caso, y partiendo de distancias internucleares

N-O ligeramente diferentes, el programa Gaussian llega a la misma geometría obtenida

por el nuestro. Si se parte de una geometría inicial de distancias de enlace exactamente

iguales, se mantienen iguales durante toda la optimización, pues el algoritmo usado por

el Gaussian mantiene la simetría molecular que se haya supuesto inicialmente. De esta

forma hemos puesto de manifiesto un error del método CNDO y otro del optimizador

geométrico empleado por el Gaussian, que al mantener fija la simetría inicial pasó por

alto el verdadero mínimo de energía.

Page 85: Grado de Licenciado en Ciencias Químicas

84

Para el futuro quedan diversas cuestiones de interés que iremos abordando

sucesivamente. Por ejemplo:

1. Programación de las optimizaciones en coordenadas internas.

2. Programación de derivadas analíticas de la energía.

3. Sustitución del deslizamiento por otro método más eficiente y seguro.

4. Aplicación de nuestro programa de optimización a moléculas en presencia de

campos eléctricos que simulen los provocados por redes cristalinas.

5. Elaboración de un manejador que permita usar el programa AVEMO de forma

más cómoda que el actual.

Page 86: Grado de Licenciado en Ciencias Químicas

85

APÉNDICE: GEOMETRÍAS MOLECULARES INICIALES

Las longitudes de enlace recomendadas para cálculos CNDO, según Ref. 40,

pág. 386, se pueden tomar como primera aproximación para efectuar optimizaciones

geométricas. Para los ángulos, pueden emplearse los valores 109.5º, 120º ó 180º según

sea el número de enlaces formados por el átomo del vértice. El número que acompaña a

cada símbolo es el número de enlaces formados, incluyendo los pares de electrones no

compartidos como si fueran enlaces.

ENLACES SENCILLOS Enlace Longitud (Å) Enlace Longitud (Å)

H–H C4–H C3–H C2–H N3–H N2–H O2–H F1–H

C4–C4 C4–C3 C4–C2 C4–N3 C4–N2 C4–O2 C4–F1 C3–C3 C3–C2 C3–N3

0.74 1.09 1.08 1.06 1.01 0.99 0.96 0.92 1.54 1.52 1.46 1.47 1.47 1.43 1.36 1.46 1.45 1.40

C3–N2 C3–O2 C3–F1 C2–C2 C2–N3 C2–N2 C2–O2 C2–F1 N3–N3 N3–N2 N3–O2 N3–F1 N2–N2 N2–O2 N2–F1 O2–O2 O2–F1 F1–F1

1.40 1.36 1.33 1.38 1.33 1.33 1.36 1.30 1.45 1.45 1.36 1.36 1.45 1.41 1.36 1.48 1.42 1.42

Page 87: Grado de Licenciado en Ciencias Químicas

86

ENLACES DOBLES Enlace Longitud (Å) Enlace Longitud (Å) C3–C3 C3–C2 C3–N2 C3–O1 C2–C2 C2–N2

1.34 1.31 1.32 1.22 1.28 1.32

C2–O1 N3–O1 N2–N2 N2–O1 O1–O1

1.16 1.24 1.25 1.22 1.21

ENLACES TRIPLES Enlace Longitud (Å) C2–C2 C2–N1 N1–N1

1.20 1.16 1.10

ENLACES AROMÁTICOS Enlace Longitud (Å) C3–C3 C2–N2 N2–N2

1.40 1.34 1.35

Page 88: Grado de Licenciado en Ciencias Químicas

87

BIBLIOGRAFÍA

Optimización en general

1. Optimization, ed. R. Fletcher (Academic Press, London, 1969)

2. W.H. Press, B.P. Flannery, S.A. Teukolsky, W.T. Vetterling, Numerical Recipes,

(Cap. 10), Cambridge University Press, Cambridge, 1986

3. H.B. Schlegel, Optimization of Equilibrium Geometries and Transition Structures,

Adv. Chem. Phys., 67, 249 (1987)

4. D.E. Luenberger, Programación Lineal y no Lineal, Addison Wesley

Iberoamericana, 1989

5. J.D. Head, M.C. Zerner, Newton Based Optimization Methods for Obtaining

Molecular Conformation, Adv. Quantum Chem., 20, 239 (1989)

Sistemas de coordenadas

6. P. Pulay, G. Fogarasi, F. Pang, J.E. Boggs, Systematic ab Initio Gradient

Calculation of Molecular Geometries, Force Constants, and Dipole Moment

Derivatives, J. Am. Chem. Soc., 101, 2550 (1979)

7. J. Baker, W.J. Hehre, Geometry Optimization in Cartesian Coordinates: The End of

the Z-Matrix?, J. Comp. Chem., 12, 606 (1991)

8. G. Fogarasi, X. Zhou, P.W. Taylor, P. Pulay, The Calculation of ab Initio Molecular

Geometries: Efficient Optimization by Natural Internal Coordinates and Empirical

Correction by Offset Forces, J. Am. Chem. Soc., 114, 8191 (1992)

9. P. Pulay, G. Fogarasi, Geometry Optimization in Redundant Internal Coordinates, J.

Chem. Phys., 96, 2856 (1992)

10. H.B. Schlegel, A Comparison of Geometry Optimization with Internal, Cartesian

and Mixed Coordinates, Int. J. Quantum Chem., 26, 243 (1992)

11. J. Baker, Techniques for Geometry Optimization: A Comparison of Cartesian and

Natural Internal Coordinates, J. Comp. Chem., 14, 1085 (1993)

12. C. Peng, P.Y. Ayala, H.B. Schlegel, Using Redundant Internal Coordinates to

Optimize Equilibrium Geometries and Transition States, J. Comp. Chem., 17, 49

(1996)

Page 89: Grado de Licenciado en Ciencias Químicas

88

13. J. Baker, A. Kessi, B. Delley, The Generation and Use of Internal Coordinates in

Geometry Optimization, J. Chem. Phys., 105, 192 (1996)

14. J. Baker, Constrained Optimization in Delocalized Internal Coordinates, J. Comp.

Chem., 18, 1079 (1997)

Algoritmo de minimización lineal

15. H.B. Schlegel, Optimization of Equilibrium Geometries and Transition Structures,

J. Comp. Chem., 3, 214 (1982)

Condiciones de Eckart

16. C. Eckart, Some Studies Concerning Rotating Axes and Polyatomic Molecules,

Physical Review, 47, 552 (1935)

17. A. Sayvetz, The Kinetic Energy of Polyatomic Molecules, J. Chem. Phys., 7, 383

(1939)

18. F. Jørgensen, Orientation of the Eckart Frame in a Polyatomic Molecule by

Symmetric Orthonormalization, Int. J. Quantum Chem., 14, 55 (1978)

Estimación empírica del hessiano

19. H.B. Schlegel, Estimating the Hessian for Gradient-Type Geometry Optimizations,

Theoret. Chim. Acta, 66, 333 (1984)

20. R. Lindh, A. Bernhardsson, G. Karlström, P. Malmqvist, On the Use of a Hessian

Model Function in Molecular Geometry Optimizations, Chem. Phys. Letters, 241,

423 (1995)

Cálculo analítico de gradiente y hessiano

21. P. Pulay, Ab Initio Calculation of Force Constants and Equilibrium Geometries in

Polyatomic Molecules. I. Theory, Mol. Phys., 17, 197 (1969)

22. P. Pulay, Ab Initio Calculation of Force Constants and Equilibrium Geometries in

Polyatomic Molecules. II. Force Constants of Water, Mol. Phys., 18, 473 (1970)

23. J.W. McIver, A. Komornicki, Rapid Geometry Optimization for Semi-Empirical

Molecular Orbital Methods, Chem. Phys. Letters, 10, 303 (1971)

24. W.L. Bloemer, B.L. Bruner, Prediction of Vibrational Force Fields Using Extended

Hückel Theory, J. Mol. Spec., 43, 452 (1972)

Page 90: Grado de Licenciado en Ciencias Químicas

89

25. J.A. Pople, R. Krishnan, H.B. Schlegel, J.S. Binkley, Derivative Studies in

Hartree-Fock and Møller-Plesset Theories, Int. J. Quantum Chem., 13, 225 (1979)

26. G. Fogarasi, P. Pulay, Ab Initio Calculation of Force Fields and Vibrational

Spectra, Vibrational Spectra and Structure, 14, 125 (1985)

27. H.F. Schaefer, Y. Yamaguchi, A New Dimension to Quantum Chemistry:

Theoretical Methods for the Analityc Evaluation of First, Second, and Third

Derivatives of the Molecular Electronic Energy with respect to Nuclear

Coordinates, J. Mol. Struct., 135, 369 (1986)

28. P. Pulay, Analytical Derivative Methods in Quantum Chemistry, Adv. Chem. Phys.,

69, 241 (1987)

29. V. Botella, Determinación de Espectros Infrarrojos mediante Cálculos Ab Initio

(Tesis Doctoral), Universidad Complutense de Madrid, 1988

Cálculo numérico del hessiano

30. P. Pulay, W. Meyer, Ab Initio Calculation of the Force Field of Ethylene, J. Mol.

Spec., 40, 59 (1971)

31. W. Meyer, P. Pulay, Hartree-Fock Calculation of the Harmonic Force Constants

and Equilibrium Geometry of Formaldehyde, Theoret. Chim. Acta, 32, 253 (1974)

Método de la Función Racional

32. Banerjee, N. Adams, J. Simons, R. Shepard, Search for Stationary Points on

Surfaces, J. Phys. Chem., 89, 52 (1985)

33. J.D. Head, B. Weiner, M.C. Zerner, A Survey of Optimization Procedures for Stable

Structures and Transition States, Int. J. Quantum Chem., 33, 177 (1988)

34. F. Eckert, P. Pulay, H.J. Werner, Ab Initio Geometry Optimization for Large

Molecules, J. Comp. Chem., 18, 1473 (1997)

Métodos de Métrica Variable

35. W.C. Davidon, Variance Algorithm for Minimization, The Computer J., 10, 406

(1968)

36. B.A. Murtagh, R.W.H. Sargent, Computational Experience with Quadratically

Convergent Minimisation Methods, The Computer J., 13, 185 (1970)

Page 91: Grado de Licenciado en Ciencias Químicas

90

37. R. Fletcher, A New Approach to Variable Metric Algorithms, The Computer J., 13,

317 (1970)

Comparación de algoritmos de minimización

38. J.D. Head, M.C. Zerner, A Broyden-Fletcher-Goldfarb-Shanno Optimization

Procedure for Molecular Geometries, Chem. Phys. Letters, 122, 264 (1985)

39. J. Papadakis, G.S. Fanourgakis, S.C. Farantos, M. Founargiotakis, Comparison of

Line Search Minimization Algorithms for Exploring Topography of

Multidimensional Potential Energy Surfaces: Mg+Arn Case, J. Comp. Chem., 18,

1011 (1997)

Geometrías moleculares iniciales

40. M. Fernández, P. Ríus, Elementos de Mecánica Cuántica Molecular, (Cap. 12),

Universidad de Cádiz, 1998

Geometrías previstas por el método CNDO estándar

41. J.A. Pople, D.I. Beveridge, Approximate Molecular Orbital Theory, McGraw-Hill,

New York, 1970

Programas utilizados

42. Gaussian 94, Revision B.2, M. J. Frisch, G. W. Trucks, H. B. Schlegel, P. M. W.

Gill, B. G. Johnson, M. A. Robb, J. R. Cheeseman, T. Keith, G. A. Petersson, J. A.

Montgomery, K. Raghavachari, M. A. Al-Laham, V. G. Zakrzewski, J. V. Ortiz, J.

B. Foresman, C. Y. Peng, P. Y. Ayala, W. Chen, M. W. Wong, J. L. Andres, E. S.

Replogle, R. Gomperts, R. L. Martin, D. J. Fox, J. S. Binkley, D. J. Defrees, J.

Baker, J. P. Stewart, M. Head-Gordon, C. Gonzalez, and J. A. Pople, Gaussian, Inc.,

Pittsburgh PA, 1995

43. All Valence Electrons Molecular Orbitals, M. Fernández, D. Sánchez, Universidad

de Cádiz, 1998