PDF file - Quantum Chemistry Group

Anuncio
Universidad de Oviedo
Departamento de Quı́mica Fı́sica y Analı́tica
Área de Quı́mica Fı́sica
Seminario de Investigación
Sumas electrostáticas en sistemas
bidimensionales: Fundamentos, algoritmos y
aplicaciones
José Manuel Menéndez Montes
Junio 2002
D. Paulino Tuñón Blanco, Catedrático de Universidad de Quı́mica
Analı́tica, Director del Departamento de Quı́mica Fı́sica y Analı́tica de la
Universidad de Oviedo,
AUTORIZA:
La presentación del seminario de investigación de D. José Manuel Menéndez
Montes, titulado: Sumas electrostáticas en sistemas bidimensionales:
Fundamentos, algoritmos y aplicaciones, que ha sido realizado en el
Departamento de Quı́mica Fı́sica y Analı́tica bajo la dirección de los Doctores
D. Ángel Martı́n Pendás, D. Miguel Álvarez Blanco y Dña. Aura Costales
Castro.
Oviedo, 23 de julio de 2002.
El Director del Departamento.
Fdo.: Paulino Tuñón Blanco.
D. Ángel Martı́n Pendás, Profesor Titular de Quı́mica Fı́sica del
Departamento de Quı́mica Fı́sica y Analı́tica de la Universidad de Oviedo,
CERTIFICA:
Que el trabajo titulado Sumas electrostáticas en sistemas bidimensionales: Fundamentos, algoritmos y aplicaciones, ha sido realizado bajo
su dirección por D. José Manuel Menéndez Montes, constituyendo el Trabajo
de Investigación del Tercer Ciclo de Doctorado, cuya presentación autorizo.
Oviedo, 23 de julio de 2002.
Fdo.: Ángel Martı́n Pendás.
Dña. Aurora Costales Castro, Doctora en Quı́mica Fı́sica por la
Universidad de Oviedo,
CERTIFICA:
Que el trabajo titulado Sumas electrostáticas en sistemas bidimensionales: Fundamentos, algoritmos y aplicaciones, ha sido realizado bajo
su dirección por D. José Manuel Menéndez Montes, constituyendo el Trabajo
de Investigación del Tercer Ciclo de Doctorado, cuya presentación autorizo.
Oviedo, 23 de julio de 2002.
Fdo.: Aurora Costales Castro.
D. Miguel Álvarez Blanco, Profesor Titular de Quı́mica Fı́sica del
Departamento de Quı́mica Fı́sica y Analı́tica de la Universidad de Oviedo,
CERTIFICA:
Que el trabajo titulado Sumas electrostáticas en sistemas bidimensionales: Fundamentos, algoritmos y aplicaciones, ha sido realizado bajo
su dirección por D. José Manuel Menéndez Montes, constituyendo el Trabajo
de Investigación del Tercer Ciclo de Doctorado, cuya presentación autorizo.
Oviedo, 23 de julio de 2002.
Fdo.: Miguel Álvarez Blanco.
Agradecimientos
Quiero agradecer a mis compañeros del grupo de Quı́mica Cuántica de la Materia Condensada, Lorenzo Pueyo, Margarita Bermejo, Vı́ctor Luaña, Evelio
Francisco, Manuel Flórez, José Manuel Recio, Ángel Martı́n Pendás, Miguel
Álvarez, Aurora Costales, Vı́ctor Garcı́a, Ruth Franco y en especial a Miriam Marqués, Paula Mori y Pablo Palacios su ayuda y apoyo incondicional.
Gracias a ellos, la elaboración de este trabajo ha sido un auténtico placer.
Quiero agradecer también, a mi familia el apoyo que me han brindado
durante todo este tiempo. Sin ellos no estarı́a donde estoy.
Una mención especial se la debo a mis directores: Ángel Martı́n Pendás,
Miguel Álvarez Blanco y Aurora Costales Castro por sus constantes muestras
de confianza, por sus ánimos y enseñanzas, pero en especial, por su amistad.
Sin duda, mi agradecimiento más sincero se lo debo a Susana. Ella ha
sido la que ha soportado los peores momentos durante mi trabajo y la que
más me ha apoyado y alentado a continuarlo. A ella, sin duda, le debo gran
parte de este trabajo.
Vaya para todos ellos mi más sincero agradecimiento.
A mis abuelos.
Índice General
1 Introducción
9
2 Sumas electrostáticas en tres dimensiones
2.1 La Energı́a Electrostática . . . . . . . . . . . . . . . . . . . . .
2.2 El Método de Ewald . . . . . . . . . . . . . . . . . . . . . . .
2.3 El Potencial Electrostático. Justificación del método de Ewald
12
13
15
18
3 Sumas electrostáticas en sistemas bidimensionales
3.1 Método de Hautman y Klein (HK) . . . . . . . . .
3.2 Método de Nijboer y de Wette (NdW) . . . . . . .
3.3 Método de Heyes, Barber y Clarke (HBC) . . . . .
3.4 Método Ewald 3D corregido (E3DC) . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
25
29
29
32
4 Convergencia del método
4.1 Elección de parámetros óptimos . . . . . . . . . . .
4.2 Precisión del Método . . . . . . . . . . . . . . . . .
4.3 Homogeneidad de los potenciales coulombianos . . .
4.4 Periodicidad en el potencial de Ewald bidimensional
4.5 Lı́mites asintóticos del algoritmo con el parámetro η
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
37
41
45
47
49
5 Implementación computacional
53
5.1 Implementación del algoritmo HBC . . . . . . . . . . . . . . . 53
5.2 Implementación del algoritmo de Ewald corregido . . . . . . . 57
5.3 Método de Sumas directas o Fuerza bruta . . . . . . . . . . . 59
6 Comparación con otros algoritmos
61
6.1 Justificación del método HBC frente a las sumas directas . . . 61
6.2 Cómputo de la energı́a electrostática . . . . . . . . . . . . . . 63
7 Aplicaciones: estudio del potencial electrostático en láminas
de perovskita
68
7.1 Superficie (0,0,1) (slab1) . . . . . . . . . . . . . . . . . . . . . 71
1
Índices
2
7.2 Superficie (1,1,0) (slab2) . . . . . . . . . . . . . . . . . . . . . 79
7.3 Superficie (1,1,1) (slab3) . . . . . . . . . . . . . . . . . . . . . 85
8 Conclusiones
90
Bibliografı́a
92
A Códigos para la obtención de la Energı́a Electrostática
A.1 Programa mad2D . . . . . . . . . . . . . . . . . . . . . .
A.1.1 Subroutina preew2D () . . . . . . . . . . . . . . .
A.1.2 Función few2D (x,y,z,k) . . . . . . . . . . . . . . .
A.1.3 Función error complementaria . . . . . . . . . . .
A.2 Programa brutetot . . . . . . . . . . . . . . . . . . . . . .
A.2.1 Función brute (x,y,z) . . . . . . . . . . . . . . . .
A.3 Programa mad3DC . . . . . . . . . . . . . . . . . . . . .
A.3.1 Subroutina preew3DC () . . . . . . . . . . . . . .
A.3.2 Function few3DC (x,y,z,k) . . . . . . . . . . . . .
A.4 Ficheros include . . . . . . . . . . . . . . . . . . . . . . .
A.4.1 celatm.inc . . . . . . . . . . . . . . . . . . . . . .
A.4.2 consts.inc . . . . . . . . . . . . . . . . . . . . . .
A.4.3 error.inc . . . . . . . . . . . . . . . . . . . . . . .
A.4.4 ewald.inc . . . . . . . . . . . . . . . . . . . . . . .
A.4.5 global.inc . . . . . . . . . . . . . . . . . . . . . .
A.4.6 implicit.inc . . . . . . . . . . . . . . . . . . . . .
A.4.7 neqatm.inc . . . . . . . . . . . . . . . . . . . . . .
A.4.8 red.inc . . . . . . . . . . . . . . . . . . . . . . . .
A.4.9 stdio.inc . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
96
96
97
100
105
108
110
114
116
118
123
123
124
125
125
125
126
126
126
127
Índice de Tablas
3.1 Convergencia de la suma directa y el algoritmo HBC en el
cálculo del potencial electrostático sobre uno de los cationes
de un slab construido por intersección de los planos (0,0,1) con
z = 0 y z = 1/2 y la celda unidad del NaCl. . . . . . . . . .
3.2 Convergencia de las sumas directas y el algoritmo HBC en el
cálculo del potencial electrostático sobre una de las posiciones
aniónicas en un slab hexagonal cuya celda central posee dos
iones de igual carga y signo contrario y parámetros de red: a =
b y γ = 120◦ con una extensión en la dirección perpendicular
c = a/2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Variación del potencial y del número de capas sumadas en el
espacio real, nshrea, y recı́proco, nshrec, con la longitud del
espacio vacı́o creado en la dirección z para uno de los aniones
del slab generado a partir de la celda unidad del NaCl. . . .
3.4 Variación del potencial y del número de capas sumadas en el
espacio real, nshrea, y recı́proco, nshrec, con la longitud del
espacio vacı́o creado en la dirección z para uno de los aniones
del slab creado a partir de la celd aunidad del CsCl. . . . . .
. 22
. 24
. 33
. 33
4.1 Errores por truncamiento en el potencial creado sobre el anión
de los slabs de CsCl y hexagonal presentados en el capı́tulo
anterior en función del número de capas sumadas. . . . . . . . 38
4.2 Variación de las contribuciones real, Vrea , y recı́proca, Vrec ,
ası́ como del número de capas de imágenes sumadas en cada
una de las contribuciones, nshrec y nshrea, con el parámetro
escalar η en el cálculo del potencial electrostático sobre una
de las posiciones aniónicas del slab de NaCl. . . . . . . . . . . 40
4.3 Potencial electrostático sobre las posiciones catiónicas en los
slabs a (a = 1 Å y γ = 90◦ ), b (a = 4.11 Å y γ = 90◦ ) y c
(a = 10.5 Å y γ = 90◦ ). La extensión del slab en la dirección
perpendicular al plano es c = a/2 para los slabs a y b y c = 43 a
para el slab c. . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3
Índices
4
4.4 Descomposición de las distintas contribuciones al potencial en
el formalismo HBC sobre uno de los cationes del slab comprendido entre los planos (0,0,1) con z = 0 y z = 3/4 en la
estructura del CaF2 , variando en cada caso, el parámetro de
red a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.5 Relación existente entre las distintas contribuciones al potencial de cada uno de los slabs con respecto al slab con a = 1
Å. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.1 Tiempo empleado en el cálculo del potencial electrostático sobre el catión de los distintos slabs para los métodos HBC y
sumas directas. . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Energı́a electrostática (hartree) de red total del slab de NaCl
empleando distintos tamaños para el espaciado entre slabs de
los modelos tridimensionales y dos geometrı́as de suma. La
primera de ellas plana (plane) y la segunda, esférica (spheric).
6.3 Energı́a electrostática (hartree) de red total del slab de CsCl
empleando distintos tamaños para el espaciado entre slabs de
los modelos tridimensionales y dos geometrı́as de suma. La
primera de ellas plana (plane) y la segunda, esférica (spheric).
6.4 Energı́a electrostática (hartree) de red total del slab hexagonal
(Figura 3.2) empleando distintos tamaños para el espaciado
entre slabs de los modelos tridimensionales y dos geometrı́as
de suma. La primera de ellas plana (plane) y la segunda,
esférica (spheric). . . . . . . . . . . . . . . . . . . . . . . . . .
6.5 Tiempo empleado en el cálculo de la energı́a electrostática
de red total para el slab hexagonal (Figura 3.2) empleando
distintos métodos y tamaños para el espaciado entre slabs. . .
62
64
64
65
66
7.1 Saltos de potencial (hartree) obtenidos en la dirección perpendicular al slab2 (a = 3.256, b = 2.302 Å), junto con el valor
teórico esperado, D/0 . . . . . . . . . . . . . . . . . . . . . . . 84
7.2 Saltos de potencial (hartree) obtenidos en la dirección perpendicular al slab3 (a = b = 3.256 Å), junto con el valor teórico
esperado, D/0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Índice de Figuras
2.1 Valores de la suma de Coulomb, medidos en (hartree×bohr2 ),
obtenidos para un cristal de NaCl en función de la distancia a
la que se lleva la misma. Las oscilaciones se hacen tanto más
pronunciadas cuanto mayor es la extensión de la suma. . . . . 14
2.2 Sinopsis bidimensional del método de construcción de la esfera de simulación por acumulación de celdas en función de su
proximidad a la celda central. . . . . . . . . . . . . . . . . . . 15
2.3 Distribuciones de carga en las sumas de Ewald: (a) de las
cargas puntuales y el fondo compensante; (b) de la carga cancelante; (c) distribución de cargas resultante de la suma de
Ewald. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1 Variación de la suma de Coulomb para el potencial electrostático sobre la posición catiónica en un slab monoclı́nico en función de la distancia. . . . . . . . . . . . . . . . . . . . . . . .
3.2 Celda central de un slab hexagonal: γ = 120◦ con a = b y
una extensión en la dirección perpendicular al plano definido
por los ejes a y b de c = a/2. Las bolas negras y blancas
representan a los cationes y aniones respectivamente. . . . .
3.3 Magnitudes utilizadas en el álgebra de los sistemas con periodicidad en dos dimensiones y carácter finito en la tercera. . .
3.4 Dependencia de las funciones error y error complementaria con
el valor de su argumento. . . . . . . . . . . . . . . . . . . . .
3.5 Celda unidad del slab comprendido entre los planos (0,0,1) con
z = 0 y z = 1/2 en la estructura del NaCl. . . . . . . . . . .
3.6 Construcción de la celda unidad para el slab comprendido entre los planos (0,0,1) con z = 0 y z = 0.5 en la estructura del
CsCl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7 Geometrı́a de la suma en su versión rectangular. . . . . . . .
5
. 23
. 23
. 25
. 27
. 34
. 34
. 36
Índices
4.1 Slab de CaF2 comprendido entre los planos (0,0,1) con z = 0 y
z = 3/4. Las bolas blancas representan a los cationes mientras
que las negras hacen lo propio con los aniones. . . . . . . . .
4.2 Variación de la diferencia entre los potenciales verdadero y
calculado frente al incremento del parámetro de red en el slab
b. El parámetro de red toma valores a = 1, 2 y 4.11 Å que se
corresponden con las figuras, a, b y c respectivamente. . . .
4.3 Variación de la diferencia entre los potenciales verdadero y
calculado frente al incremento del parámetro de red en el slab
a. El parámetro de red toma valores a = 1, 5 y 10.5 Å que se
corresponden con las figuras, a, b y c respectivamente. . . .
4.4 Geometrı́a del sistema empleado para el estudio de la dependencia del potencial con la distancia. . . . . . . . . . . . . .
4.5 Potencial a lo largo de la dirección [0.5, y, 0.5] para el slab de la
Figura 4.4 en el que el parámetro de red toma el valor: a = b =
3.5 Å y su extensión a lo largo de la dirección perpendicular
al plano del slab es c = 2.0 Å. . . . . . . . . . . . . . . . . .
4.6 Isosuperficie de V=0 para el slab estudiado en la Figura 4.4
con a = b = 3.5 Å y c = 2.0 Å. . . . . . . . . . . . . . . . . .
6
. 41
. 43
. 44
. 47
. 48
. 49
5.1 Diagrama de flujo del código mad2D. . . . . . . . . . . . . . . 57
5.2 Diagrama de flujo del código mad3DC. . . . . . . . . . . . . . 59
6.1 Número de capas necesarias para alcanzar la convergencia en
la energı́a electrostática total del slab hexagonal. . . . . . . . . 67
7.1 Celdilla unidad de la perovskita ideal. . . . . . . . . . . . . .
7.2 Celda central del slab1, construida por intersección de los planos (0,0,1) con z = 0 y z = 1/2 con la celda unidad del cristal
de la perovskita ideal. . . . . . . . . . . . . . . . . . . . . .
7.3 Celda central del slab2, que contiene todos los iones comprendidos entre los planos (1,1,0) que pasan por los puntos {0, 0, 0}
y {0, 1/2, 0} en el cristal de la perovskita ideal. Las direcciones
1, 2 y 3 indican desplazamientos en la dirección perpendicular
al plano del slab y que pasan por los iones Ti+4 , Ca+2 y O−2
respectivamente. . . . . . . . . . . . . . . . . . . . . . . . .
7.4 Celda central del slab3. Contiene todos los iones comprendidos
entre los planos (1,1,1) que pasan por los puntos {0, 0, 0} y
{0, 0, 1/2} en el cristal de la perovskita cúbica. Las direcciones
1, 2 y 3 indican desplazamientos en la dirección perpendicular
al plano del slab. . . . . . . . . . . . . . . . . . . . . . . . .
. 68
. 70
. 70
. 71
Índices
7.5 Potencial del slab1 a lo largo de lineas paralelas a la dirección
perpendicular al plano del slab y que intersectan al mismo en
un conjunto amplio de puntos. . . . . . . . . . . . . . . . . .
7.6 Isosuperficies de potencial nulo en el slab de NaCl. Las esferas
verdes representan a los aniones y las magenta hacen lo propio
con los cationes. A la izquierda se representan las isosuperficies
de potencial cero a lo largo de la dirección perpendicular al
plano del slab. En la derecha, se ilustra la proyección de estas
isosuperficies sobre el plano del slab. . . . . . . . . . . . . .
7.7 Potencial electrostático creado por el slab de NaCl con a =
b = 10.5 Å a lo largo de la dirección [0,0,z]. Tanto el anión
como el catión están sometidos a potenciales idénticos pero de
signos contrarios. . . . . . . . . . . . . . . . . . . . . . . . .
7.8 Isosuperficies de potencial V = 0.5 hartree para el slab de
NaCl con a = b = 10.5 Å (izquierda) y el slab1 con a = b =
2.302 Å (derecha). . . . . . . . . . . . . . . . . . . . . . . .
7.9 Potencial creado por el slab1 con a = b = 2.302 Å a lo largo de
la dirección [0,0,z]. El potencial electrostático fuera del slab
se extingue exponencialmente. . . . . . . . . . . . . . . . . .
7.10 Variación de potencial en la vertical de las posiciones del oxı́geno [1/2,0,z] (a) y calcio [1/2,1/2,z] (b) en el slab1 (a = b =
2.302 Å). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.11 Isosuperficie V = 0 hartree para el slab1 (a = b = 2.302 Å).
Las esferas magenta representan los cationes Ti+4 y las rojas
los aniones O−2 . . . . . . . . . . . . . . . . . . . . . . . . . .
7.12 Variación del potencial a lo largo de la dirección [0.2,0.2,z] en
el slab1 (a = b = 2.302 Å). A diferencia de lo que ocurrı́a en
el slab de NaCl, el potencial no se anula en el punto medio del
slab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.13 Esquematización de la formación de una capa dipolar. . . . .
7.14 Geometrı́a de la capa dipolar. . . . . . . . . . . . . . . . . .
7.15 Elemento de ángulo sólido, dΩ, con el que se observa el elemento de área, da0 , desde el punto P en el que se evalúa el
potencial. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.16 Variación del potencial creado por el slab2 con a = 3.256 y
b = 2.302 Å a lo largo de la dirección perpendicular al plano
sobre el ion Ti+4 (dir1 en la Figura 7.3). . . . . . . . . . . .
7.17 Variación del potencial a lo largo de la dirección perpendicular
al slab2 (a = 3.256, b = 2.302 Å) en las direcciones dir2 (linea
discontinua y cuadros) y dir3 (linea gruesa y puntos). . . . .
7
. 72
. 73
. 74
. 74
. 75
. 76
. 77
. 78
. 79
. 80
. 81
. 82
. 83
Índices
7.18 Superficie de potencial cero en el slab2 (a = 3.256, b = 2.302
Å). Los iones Ti+4 , Ca+2 y O−2 se identifican con las esferas
de color magenta, rojo y verde, respectivamente. . . . . . . .
7.19 Variación del potencial con la distancia perpendicular al plano
de periodicidad del slab3 (a = b = 3.256 Å) a lo largo de las
direcciones 1 (linea gruesa y cuadrados), 2 (linea discontinua y
cı́rculos) y 3 (linea discontinua y triángulos) representadas en
la Figura 7.4. Las direcciones 2 y 3 no atraviesan la posición
de ningún ion. . . . . . . . . . . . . . . . . . . . . . . . . . .
7.20 Proyección de la dirección 3 sobre el plano formado por los
ejes cristalográficos b y c del cristal tridimensional original. .
7.21 Superficie de potencial cero para el slab3 (a = b = 3.256 Å).
Los iones Ti+4 , Ca+2 y O−2 se identifican con las esferas de
color magenta, rojo y verde, respectivamente. . . . . . . . .
7.22 Proyección de las isolineas de potencial en el plano del slab.
8
. 84
. 86
. 87
. 88
. 88
Capı́tulo 1
Introducción
Este trabajo se encuentra enmarcado dentro de la linea de investigación del
Grupo de Quı́mica Cuántica de la Universidad de Oviedo en la simulación
computacional de materiales iónicos. Este tipo de materiales ha sido extensamente estudiado en nuestro laboratorio debido a sus importantes aplicaciones
tecnológicas. Los conceptos básicos de la teorı́a de los cristales iónicos [1] consideran que están formados por la combinación de iones metálicos cargados
positivamente y aniones de los átomos más electronegativos de tal forma que
se mantenga la electroneutralidad del cristal.
En los últimos años se han llevado a cabo una gran cantidad de estudios
tanto teóricos como experimentales relacionados con este tipo de materiales,
sobre todo en el campo del estado sólido y más concretamente sobre aquellas propiedades de los sólidos iónicos en las que se encuentra involucrada la
energı́a de red. El término energı́a de red se refiere a la suma de una serie
infinita de contribuciones energéticas que se identifican con puntos de una
red de N-dimensiones. Cualquier método para llevar a cabo estas sumas,
implica la acumulación de las contribuciones de todos estos elementos de forma secuencial. Desafortunadamente, los elementos de estas series no son, en
general, absolutamente sumables ası́ que la forma en la que se lleve a cabo
la suma puede afectar al resultado [2]. La energı́a de red de un sólido iónico
está formada por varias contribuciones, de las cuales la de mayor magnitud y,
por extensión, la más importante es la debida a las interacciones electrostáticas o de Coulomb, cuyo tratamiento supone el principal objetivo de este
trabajo. Este tipo de interacciones coulombianas decrecen lentamente con la
distancia, alcanzando valores apreciables incluso en posiciones muy alejadas
a los iones. Es este carácter de largo rango y la naturaleza condicionalmente
convergente de sus sumas los que hacen interesante su estudio y por ello han
centrado la atención de una gran cantidad de investigadores a lo largo de la
historia.
9
1. Introducción
10
Fue Madelung en 1918 [3] el pionero en abordar el problema de las interacciones de largo rango en cristales iónicos tridimensionales. El método
desarrollado por Madelung [3,4] transforma el potencial electrostático de una
red de Bravais de cargas puntuales en un punto exterior de la misma, en un
conjunto de series rápidamente convergentes en el espacio recı́proco. Sin
embargo este método sólo es válido para redes de tipo NaCl.
Unos años más tarde, en 1921, P. P. Ewald desarrolló un nuevo formalismo
aplicable a todo tipo de redes de cargas puntuales eléctricamente neutras en
el que el potencial electrostático debido a las interacciones coulombianas se
divide en dos series rápidamente convergentes. Otros métodos basados en
reordenamiento de términos de la suma directa fueron desarrollados en años
posteriores [5] con fines muy especı́ficos, siendo, sin embargo, el formalismo
de Ewald el más importante y estudiado hasta la fecha, dando lugar a una
gran cantidad de métodos derivados del mismo [6].
En los últimos años el estudio de estas interacciones de largo rango se ha
extendido a sistemas iónicos bidimensionales debido a sus importantes propiedades tecnológicas. Desde procesos como la catálisis heterogénea hasta la
superconductividad de los sólidos a altas temperaturas implican a las propiedades de superficie de los mismos. Desafortunadamente, para el estudio
de estos procesos no son aplicables los formalismos tridimensionales puros, lo
que ha reabierto de nuevo el problema de la evaluación de las sumas condicionalmente convergentes a las que dan lugar este tipo de interacciones. En este
sentido se han desarrollado una gran cantidad de algoritmos, muchos de los
cuales siguen un desarrollo análogo al formalismo tridimensional de Ewald
[7–14]. Otros en cambio, siguen desarrollos completamente diferentes [15,16]
aunque con resultados igualmente equivalentes. Dentro de estos algoritmos
bidimensionales distinguimos, además, un tercer grupo que encuadrarı́a a
los algoritmos que podrı́amos denominar como hı́bridos, en tanto en cuanto son adaptaciones del método de Ewald tradicional al cálculo de sistemas
bidimensionales [17].
Actualmente, los estudios de estas interacciones electrostáticas se han extendido a sistemas cuya periodicidad se manifiesta a lo largo de una sola
dirección [18,19] lo que permite llevar a cabo estudios exhaustivos de estas
interacciones en todo tipo de sistemas periódicos. El objetivo de este trabajo
es, el estudio de algunos de los algoritmos bidimensionales citados con el fin
de diseñar un código FORTRAN que nos permita tratar las interacciones coulombianas de largo rango y con ello, calcular tanto potenciales como energı́as
electrostáticas en sistemas periódicos en dos dimensiones y finitos en la tercera. Este tipo de sistemas recibe el nombre de slabs (láminas). Paralelo al
desarrollo de este código, un segundo objetivo es el de la incorporación del
mismo al programa pi7 [20], desarrollado en nuestro laboratorio, que calcula
1. Introducción
11
la estructura electrónica de materiales iónicos mediante el método ab initio
del Ion Perturbado (aiPI) [21,22]. Este método ha demostrado ampliamente
su capacidad para predecir cualitativa y cuantitativamente el comportamiento de una amplia gama de este tipo de materiales, desde los tradicionalmente
considerados iónicos, como los haluros alcalinos [23,24], hasta materiales ordinariamente descritos como covalentes en diverso grado, tales como óxidos
[25,26], sulfuros [27] y nitruros [28].
El trabajo comienza con un capı́tulo dedicado al planteamiento del problema clásico de las sumas electrostáticas en sistemas tridimensionales y su
solución más ampliamente extendida: el Método de Ewald.
Los dos siguientes capı́tulos se centran en la extrapolación del problema
tridimensional a sistemas que son periódicos en dos de las tres dimensiones
del espacio y con una extensión finita, y pequeña, en la tercera (slabs). En
el primero de éstos se presentan los principales algoritmos desarrollados para
este tipo de sistemas. En el segundo, en cambio, se desarrolla un estudio detallado de los distintos parámetros que afectan a la velocidad de convergencia
de nuestro algoritmo de trabajo.
El capı́tulo 5 describe brevemente la estructura de los distintos códigos
FORTRAN diseñados para la implementación computacional de algunos de los
algoritmos presentados en el capı́tulo anterior.
La justificación del uso de un algoritmo determinado y no de otros, se da
en el capı́tulo 6.
En el capı́tulo 7 concluye la discusión de nuestro código con la presentación de alguna de las aplicaciones de nuestro código al estudio de un sistema
iónico complejo como es la perovskita.
El trabajo finaliza con un capı́tulo dedicado a remarcar los aspectos más
relevantes presentados a lo largo del mismo y un último apartado en el que
se muestran, a modo de apéndice, los códigos fuente de todos los programas
diseñados en el desarrollo del mismo.
Capı́tulo 2
Sumas electrostáticas en tres
dimensiones
Un problema clásico en el estudio de cristales iónicos es el del cálculo de
la energı́a electrostática de una red de cargas puntuales. El cálculo de esta
energı́a electrostática dista de ser sencillo desde el punto de vista computacional, debido principalmente al carácter infinito de las interacciones coulombianas y al tamaño finito de los cristales estudiados. Para evitar los efectos
derivados del tamaño del cristal en el estudio de sólidos cristalinos, han sido
extensamente utilizadas las condiciones de contorno periódicas, PBC, Periodic Boundary Conditions [29]. La introducción de PBC equivale a considerar
una red infinita. La forma de la celda a la que se aplican estas condiciones
de contorno determina el tipo de red, mientras que el contenido de esa celda
define la celdilla unidad de la red. La descripción de la energı́a electrostática
en este espacio periódico se lleva a cabo mediante la suma sobre celdas de
simulación replicadas periódicamente.
La suma de las infinitas interacciones electrostáticas se puede realizar empleando el método de Ewald [30] para la energı́a de Coulomb de una red de
cargas puntuales. Las sumas de Ewald en cristales tridimensionales (E3D)
han sido ampliamente estudiadas y utilizadas [3,9,30–32] en las simulaciones
computacionales de sistemas iónicos debido a su rápida convergencia. También se ha desarrollado una gran colección de esquemas de cálculo basados
en el método de Ewald. Estos nuevos algoritmos tienen por objeto reducir la
complejidad computacional de E3D, que es del orden O(N 2 ), donde N es el
número de iones presentes en la celdilla unidad, y ası́ facilitar su aplicación
a sistemas macromoleculares donde las interacciones electrostáticas juegan
un papel fundamental. Este es el caso, por ejemplo, de biopolı́meros como el
ADN [33]. Dentro de estos nuevos algoritmos podemos encontrar dos grandes
grupos: los métodos que utilizan la Transformada Rápida de Fourier (FFT,
12
2.1. La Energı́a Electrostática
13
Fast Fourier Transform), [34–37] y los que utilizan la expansión multipolar
desarrollada por Greengard y Rokhlin [38,39].
En este capı́tulo nos centraremos en presentar el problema clásico de las
sumas de red y su solución más extendida, E3D. Un repaso general de los
métodos derivados de E3D más importantes, entre los que se encuentran los
citados anteriormente, se puede encontrar en el trabajo desarrollado por A.
Y. Toukmaji y colaboradores [6].
2.1
La Energı́a Electrostática
La energı́a total electrostática, o de Coulomb, para un sistema periódico con
N partı́culas situadas en una celda genérica definida por los vectores básicos
a, b y c y sus infinitas imágenes viene dada por:
E=
N X
N
1 X0 X
qi qj
.
2 v i=1 j=1 |rij + v|
(2.1)
En esta expresión, qi y qj son las cargas de las partı́culas i y j respectivamente.
El vector de red v tiene la forma:
v = v1 a + v2 b + v3 c,
(2.2)
donde v1 , v2 y v3 son números enteros que generan el ı́ndice de la celda.
La celda origen se encuentra en v = (0, 0, 0), mientras que sus imágenes se
localizan a intervalos periódicos en las tres dimensiones y a lo largo de todo
el espacio. La prima del primer sumatorio indica que los términos i = j son
omitidos cuando v= 0. El vector rij = ri − rj es la posición relativa de los
átomos i, j en la celda origen, por lo que |rij + v| es la distancia entre el
átomo j de la celda origen y el átomo i de la celda con origen en v.
Es conocido que esta serie no es propiamente convergente. Si se suman los
términos por el método intuitivo de coger capas sucesivas de iones situados
a igual distancia del punto donde se evalúa el potencial de forma que los
términos estén ordenados por valores crecientes de r, la contribución de cada
uno aumenta linealmente con la distancia, ya que el número de iones a una
distancia dada crece como r 2 , mientras que el potencial sólo decrece como
1/r. Como en un cristal iónico las capas de iones alternan el signo de su
carga, ya que el cristal es eléctricamente neutro, el valor del potencial sufre
fuertes oscilaciones tanto más pronunciadas cuanto mayor es la distancia a la
que se lleva la suma. Un ejemplo gráfico de este comportamiento se ilustra
en la Figura 2.1, en la que se muestra cómo varı́a la suma de Coulomb en
un cristal de NaCl, en función del número de capas de iones sumadas, o lo
2.1. La Energı́a Electrostática
14
20
Suma de Coulomb
15
10
5
0
-5
-10
-15
-20
0
2
4
6
8
10
Distancia (unidades cristalograficas)
Figura 2.1: Valores de la suma de Coulomb, medidos en (hartree×bohr 2 ), obtenidos para un cristal de NaCl en función de la distancia a la que se lleva la misma.
Las oscilaciones se hacen tanto más pronunciadas cuanto mayor es la extensión de
la suma.
que es lo mismo, de la distancia a la que se lleva la suma. Por todo esto la
suma no converge en absoluto, aunque tampoco diverge. Aun ası́, el valor
lı́mite que se obtiene para la ecuación anterior no es único, sino que depende
de la forma en la que se lleve a cabo la suma. Se dice por ello que la serie es
condicionalmente convergente.
Existen varias técnicas para evaluar las sumas, cada una de las cuales,
da, en principio, resultados diferentes. Una posibilidad es sumar celdas de
acuerdo a su proximidad a la celda central. Las celdas se van sumando en
secuencias: en primer lugar aquellas en las que |v| = 0, es decir, v = (0, 0, 0);
la segunda capa incluirá todas las celdas que se encuentren a una distancia L,
es decir, aquellas con vectores de celda: v = (±a, 0, 0); (0, ±b, 0); (0, 0, ±c) y
ası́ sucesivamente. De esta forma construimos nuestro sistema periódico. En
el caso de que la celda de simulación sea cúbica este método genera un sistema
periódico formado por capas cuasi-esféricas tal y como se muestra en la Figura
2.2. Además, como las celdas de los cristales iónicos son eléctricamente
neutras, evitamos las fuertes oscilaciones que surgen como consecuencia de
sumar capas de iones de distinto signo y con ello, que la suma converja.
No obstante, la velocidad de convergencia es muy lenta y el resultado final
sigue sin ser único. Ası́ por ejemplo, en la estructura del cloruro de cesio se
2.2. El Método de Ewald
15
Figura 2.2: Sinopsis bidimensional del método de construcción de la esfera de
simulación por acumulación de celdas en función de su proximidad a la celda
central.
obtienen dos valores distintos según el potencial se calcule sobre las posiciones
catiónicas o aniónicas siendo su valor real la media de ambos [40].
2.2
El Método de Ewald
El método de Ewald fue desarrollado originalmente para el estudio de cristales iónicos en 1921 [30]. Es una eficiente técnica que acelera de forma
considerable la convergencia de la suma de las interacciones de Coulomb y
además produce resultados periódicos para el potencial, con lo que desaparece la arbitrariedad resultante de una u otra elección en la forma de sumar
la serie. Su principal caracterı́stica es la de transformar una serie lenta y
condicionalmente convergente como la de la ecuación (2.1), en la suma de
dos series rápidamente convergentes y un término constante:
EEwald = E r + E m + E 0 .
(2.3)
2.2. El Método de Ewald
16
Aunque se puede formular el método de Ewald haciendo uso de la transformada de Fourier de la función r −1 , aquı́ seguiremos una presentación más
sencilla debida a Harrison [41]. En ella se utiliza una transformación integral
de 1/r:
Z ∞
1
2
2 2
=√
e−r t dt.
(2.4)
r
π 0
Después, el intervalo de integración anterior se divide en dos subintervalos
[0, α] y (α, ∞) donde α es un parámetro arbitrario. A continuación, para el
primero de los intervalos, se usa una identidad debida a Born (conocida como
transformación Θ) que permite intercambiar sumas en el espacio directo por
otras en el espacio recı́proco [4]:
X
v
2 2
exp − (r + v) t
k2
π 3/2 X −3
t exp − 2 + ik · r ,
=
∆ k
4t
!
(2.5)
donde ∆ es el volumen de la celda de simulación (a · (b × c)), k un vector del
espacio recı́proco definido por: k = 2π(kx /Lx , ky /Ly , kz /Lz ) siendo kx , ky
y kz una terna de números enteros y v un vector de celda en el espacio
real análogo al definido en la ecuación (2.2). Las integrales resultantes de
esta sustitución se evalúan de forma analı́tica, obteniéndose ası́ una serie
rápidamente convergente que se calcula ı́ntegramente en el espacio recı́proco
o de Fourier:
N X
N
1 XX
E =
qi qj
2π∆ k6=0 i=1 j=1
m
4π 2
k2
exp
−
cos (k · rij ) .
k2
4α2
!
!
(2.6)
La integración en el segundo de los intervalos da lugar a integrales del
tipo de la función error complementaria,
2
erfc(γ) = √
π
Z
∞
γ
2
e−t dt.
(2.7)
Estas contribuciones se evalúan en el espacio real, donde son rápidamente
convergentes gracias al corto rango de la función error:
Er =
N X
N
1 X0 X
erfc(α|rij + v|)
qi qj
,
2 v i=1 j=1
|rij + v|
(2.8)
En la transformación de la serie lenta y condicionalmente convergente
de la ecuación (2.1) a las dos series rápidamente convergentes descritas anteriormente, el método de Ewald también da lugar a una tercera contribución constante. Este término tiene un origen corrector, cuya justificación se
2.2. El Método de Ewald
17
dará posteriormente, y suele denominarse término de autopotencial;
N
α X
E = −√
qi2 .
π i=1
0
(2.9)
Nótese que la partición arbitraria de la recta real positiva en dos intervalos introduce una dependencia del punto de corte α en todos los términos
examinados. Esta arbitrariedad se aprovecha para maximizar el rendimiento
computacional de la técnica.
La separación realizada en la ecuación (2.3) es válida cuando el sistema
de cargas está rodeado por un medio cuya constante dieléctrica, s , es infinita
(como puede ser el caso de un metal) y contiene la parte puramente periódica
de la energı́a. En cristales finitos, es necesario incluir un término que tenga
en cuenta el momento dipolar que se genera en la superficie de la celda de
simulación, que, multitud de análisis han demostrado, es el responsable de la
arbitrariedad antes mencionada. Ese término depende tanto de la constante
dieléctrica del medio exterior, como del momento dipolar total de la celda
periódica considerada:
Ec =
X
2π
|qi ri |2 .
(2s + 1)∆ i
(2.10)
Si, como es nuestro caso, únicamente estamos interesados en simular cristales
infinitos, estos efectos de superficie pueden ignorarse.
De acuerdo con todo lo comentado, el resultado final de la suma para un
sistema cualquiera incluyendo el término de superficie, es:
N X
N X
erfc(α|rij + v|)
1X
0
qi qj
E =
2 i=1 j=1 v=0
|rij + v|
N X
N X
1 X
4π 2
k2
+
qi qj 2 exp − 2 cos(k · rij )
2π∆ i=1 j=1 k6=0
k
4α
!
N
N
X
2π
α X
2
−√
qi +
|qi ri |2 .
π i=1
(2s + 1)∆ i=1
(2.11)
Podemos utilizar una notación algo más explı́cita sustituyendo el vector k
por = 2πm, de acuerdo con la definición dada anteriormente. Esto introduce
un factor 2π adicional en las expresiones pero tiene la ventaja de hacer de
m un vector expresable en términos de componentes enteras. Además, por
convenio, usaremos en lugar del parámetro α su inverso, η = 1/α que posee
unidades de distancia. Con todo esto, la expresión anterior se transforma en:
N X
N X
1X
erfc(|rij + v|/η)
0
E =
qi qj
2 i=1 j=1 v=0
|rij + v|
2.3. El Potencial Electrostático. Justificación del método de Ewald
+
18
N X
N X
1 X
1
qi qj 2 exp −π 2 m2 η 2 cos(2πm · rij )
2π∆ i=1 j=1 m6=0
m
N
N
X
2π
1 X
2
√
qi +
|qi ri |2 .
−
η π i=1
(2s + 1)∆ i=1
(2.12)
Esta es la expresión final que emplearemos como definición de la energı́a
electrostática de un cristal según el método E3D.
2.3
El Potencial Electrostático. Justificación
del método de Ewald
La formulación matemática que permite obtener las expresiones del método
de Ewald se puede encontrar en [42]. Para el objetivo de este trabajo, es más
importante presentar las ideas fı́sicas que introduce el método, con el fin de
entender mejor su posterior modificación para el tratamiento de superficies.
La imagen fı́sica que soporta la estructura del método de Ewald se adquiere acudiendo al potencial electrostático de la red de cargas puntuales, y
no estudiando la energı́a total. Este potencial es una función escalar definida
en el espacio R3 , cuyo valor coincide con la energı́a electrostática que adquirirı́a una carga puntual si se lleva desde el infinito hasta la posición r, esto
es:
N
X0 X
qi
V (r) =
.
(2.13)
v i=1 |r − ri + v|
La prima en el primer sumatorio evita el término de autointeracción v = 0
cuando r = ri , ya que estarı́amos evaluando el potencial sobre el ion i. Es
interesante comprobar que, en términos del potencial electrostático en un
punto, V(r), la energı́a electrostática se recupera como:
E=
1X
qi V (ri ).
2 i
(2.14)
La suma de red correspondiente al potencial es también condicionalmente convergente. Fı́sicamente, el método de Ewald consiste en envolver cada
carga puntual de la red, con una distribución extensa de carga de igual magnitud pero de signo contrario, que se extiende radialmente desde ella. De
entre las posibles distribuciones se escoge la gaussiana debido a sus excelentes propiedades algebraicas:
ρi (r) = qi α3
exp(−α2 r 2 )
,
π 3/2
(2.15)
2.3. El Potencial Electrostático. Justificación del método de Ewald
19
donde el parámetro arbitrario α determina la anchura de la distribución y r
indica la posición relativa al centro de la misma. Esta distribución adicional
actúa como una nube iónica que rodea a la carga puntual y que apantalla la
interacción entre cargas vecinas (Figura 2.3a). Matemáticamente, esta distribución gaussiana equivale al empleo de una función de convergencia, ya que,
debido a su naturaleza exponencial, esta función es rápidamente decreciente,
lo que hace aumentar la velocidad con la que se alcanza la convergencia de
la suma. El empleo de estas funciones de convergencia es una de las etapas
caracterı́sticas del desarrollo matemático de E3D. Las interacciones apantalladas resultantes de la utilización de esta distribución compensante son de
corto rango, y el valor total de las mismas se obtiene sumando sobre todos
los iones incluidos en la celda central y sus respectivas imágenes en el espacio
real.
Obviamente, nuestro sistema ampliado requiere una nueva distribución
de carga con la misma forma que la anterior pero de signo contrario (Figura
2.3b), de tal forma que ambas distribuciones cancelen entre sı́ y recuperemos
el potencial debido a la distribución de cargas puntuales original (Figura
2.3c). El potencial de esta distribución restauradora se calcula en el espacio
recı́proco o de Fourier, en el que es también una función rápidamente convergente. Podemos entender ası́ lo hecho hasta el momento. La dificultad de
convergencia del sistema de cargas puntuales se debe al largo alcance de la
interacción coulombiana. Sumando y restando una contribución apantallante
conseguimos dos términos, el primero de los cuales converge rápidamente en
el espacio real y el segundo en el espacio recı́proco. Modificando la anchura de
la contribución apantallante podemos modular la velocidad de convergencia.
Es necesario, también, tener en cuenta que al introducir la distribución
gaussiana hemos introducido, sin desearlo, términos de auto-interacción, es
decir, las interacciones de la distribución ρ consigo misma y sus consiguientes
imágenes. Estas contribuciones adicionales se deben sustraer del potencial
total. Es este hecho el responsable del término de autopotencial mencionado
anteriormente, E 0 .
Una imagen pictórica del procedimiento se encuentra en la Figura 2.3.
Una selección adecuada del parámetro, η, que determina la anchura de cada
pico gaussiano, permite conseguir una convergencia muy buena de ambas
sumas al mismo tiempo. Las distribuciones gaussianas se anulan completamente al considerar la suma de las distribuciones separadas de carga que dan
origen a las situaciones a y b de la Figura 2.3, de forma que el valor total
del potencial es independiente del parámetro que da la mencionada anchura,
pero no ası́ la rapidez de la convergencia de cada una de las dos series (real
y recı́proca).
2.3. El Potencial Electrostático. Justificación del método de Ewald
ρ( r )
(a)
20
cargas puntuales de red
A
r
distribución compensante
ρ( r )
B
distribución cancelante
(b)
η
r
ρ( r )= ρ( r ) + ρ( r )
A
B
(c)
r
Figura 2.3: Distribuciones de carga en las sumas de Ewald: (a) de las cargas
puntuales y el fondo compensante; (b) de la carga cancelante; (c) distribución de
cargas resultante de la suma de Ewald.
Capı́tulo 3
Sumas electrostáticas en
sistemas bidimensionales
Como hemos visto, el Método de Ewald está siendo ampliamente utilizado
en sistemas cuya periodicidad se extiende en las tres dimensiones del espacio.
Muchas disciplinas de interés como son el estudio de superficies sólidas o de
membranas o procesos como los de adsorción, involucra sistemas de periodicidad bidimensional. El objeto de este trabajo es el estudio de sistemas con
periodicidad infinita en dos dimensiones y aperiódicos en la tercera dimensión. En especial, aquellos cuya extensión en la tercera dimensión es finita
y pequeña, y que son conocidos como slabs (láminas). Desafortunadamente,
las ecuaciones E3D del capı́tulo anterior no son utilizables de una forma inmediata. En el presente capı́tulo discutimos algunas de las estrategias más
utilizadas para resolver este problema.
El potencial electrostático en dos dimensiones toma una expresión análoga
a la ecuación (2.1),
N X
N X
qi qj
1X
0
E=
,
(3.1)
2 i j v=0 |rij + v|
donde el vector de red v es ahora bidimensional, de la forma v = v1 a+v2 b,
siendo a y b dos vectores no necesariamente ortogonales de una red periódica
en dos dimensiones. La suma directa, en este caso, tiene un número de
términos que crece linealmente con la distancia respecto a uno dado, mientras
que cada término decrece como 1/r. Como, además, los iones tienen signos
alternos, la suma es convergente, (y no condicionalmente convergente como
en E3D) aunque lo hace de forma muy lenta.
La Figura 3.1 muestra los resultados obtenidos mediante el método de
sumas directas en el cálculo del potencial de Coulomb sobre uno de los cationes de un slab monoclı́nico (a = 1 Å, b = 4 Å, γ = 90◦ y extensión en
21
3. Sumas electrostáticas en sistemas bidimensionales
22
Tabla 3.1: Convergencia de la suma directa y el algoritmo HBC en el cálculo
del potencial electrostático sobre uno de los cationes de un slab construido por
intersección de los planos (0,0,1) con z = 0 y z = 1/2 y la celda unidad del NaCl.
Método
Suma directa
HBC
capas
sumadas
0
1
2
3
4
5
10
20
81
100
500
4
vectores
sumados
0
4
12
24
40
60
220
1300
5100
20200
501000
40
V
(hartree)
-0.277339033
-0.320315765
-0.320433810
-0.320441447
-0.320442737
-0.320443067
-0.320443253
-0.320443260
-0.320443261
-0.320443261
-0.320443261
-0.320443261
la dirección perpendicular al plano del slab c = 2 Å) situado en la posición
(1,0,0) y cuya carga se equilibra con la presencia de un anión de igual carga en
la posición (0.5,0.5,0.5). Se puede apreciar claramente el contraste existente
entre el comportamiento E3D y su análogo bidimensional. Si bien E3D presenta claras oscilaciones en la suma (Figura 2.1), el algoritmo bidimensional
converge. Sin embargo, esta convergencia es, en general, muy lenta. Ası́, por
ejemplo, en el cálculo del potencial electrostático de uno de los cationes de
un slab comprendido entre los planos (0,0,1) con z = 0 y 1/2 de la estructura
del cloruro de sodio, Tabla 3.1, el número total de imágenes necesarias para
alcanzar la convergencia es relativamente grande.
La difı́cil convergencia de las sumas directas queda patente al estudiar
sistemas con menor simetrı́a. En la Tabla 3.2 se presentan los resultados
obtenidos en el cálculo del potencial sobre uno de los aniones de un slab hexagonal cuya celdilla unidad se representa en la Figura 3.2. En este sistema,
la convergencia se alcanza de forma mucho más lenta, necesitando sumar un
número prohibitivo de imágenes para alcanzar el resultado buscado.
Tanto en el slab cúbico anterior, Tabla 3.1, como en el slab hexagonal,
Tabla 3.2, el número de imágenes sumado se reduce notablemente al utilizar
uno de los algoritmos propuestos para mejorar la convergencia de las sumas
3. Sumas electrostáticas en sistemas bidimensionales
23
1.5
Suma (hartree)
1.0
0.5
0.0
-0.5
-1.0
-1.5
-2.0
-2.5
0
20
40
60
Distancia (bohr)
80
100
Figura 3.1: Variación de la suma de Coulomb para el potencial electrostático
sobre la posición catiónica en un slab monoclı́nico en función de la distancia.
c
γ
b
a
Figura 3.2: Celda central de un slab hexagonal: γ = 120 ◦ con a = b y una extensión en la dirección perpendicular al plano definido por los ejes a y b de c = a/2.
Las bolas negras y blancas representan a los cationes y aniones respectivamente.
3. Sumas electrostáticas en sistemas bidimensionales
24
Tabla 3.2: Convergencia de las sumas directas y el algoritmo HBC en el cálculo del
potencial electrostático sobre una de las posiciones aniónicas en un slab hexagonal
cuya celda central posee dos iones de igual carga y signo contrario y parámetros
de red: a = b y γ = 120◦ con una extensión en la dirección perpendicular c = a/2.
Método
Suma Directa
HBC
capas
sumadas
0
1
5
10
25
50
100
500
1000
1500
5
vectores
sumados
0
4
60
220
1300
5100
20200
501000
2002000
4503000
50
V
(hartree)
0.362281847
0.436654865
0.497226301
0.509226139
0.517060847
0.519782166
0.521163692
0.522278976
0.522419016
0.522465728
0.522559197
directas y que se trata en la sección siguiente: el formalismo desarrollado por
Heyes, Barber y Clarke (HBC).
Esta es la razón por la que en el estudio de sistemas bidimensionales
se requiere una adaptación del Método de Ewald. Por su enorme sencillez,
la suma directa aún puede emplearse para la comprobación de resultados,
aunque requiere un esfuerzo computacional excesivo.
Existe en la literatura una amplia colección de métodos desarrollados
para llevar a cabo las sumas de Ewald tanto en tres [6] como en dos dimensiones [43,44], lo cual es indicativo de la importancia del problema y de la
necesidad de encontrar eficientes algoritmos para calcularlas. Más allá de
estos métodos, recientemente, se han desarrollado nuevas técincas para el
el tratamiento de las sumas de Ewald en distribuciones de carga periódicas
en una sola dimensión (E1D) [18,19] cuya implementación computacional es
uno de los futuros objetivos de este trabajo, lo que nos permitirı́a estudiar
en profundidad la morfologı́a de los cristales a traves del análisis de sus caras
(superficies) y aristas.
Dedicamos este capı́tulo a presentar una breve exposición de las caracterı́sticas básicas de una pequeña colección de los algoritmos diseñados para
el tratamiento de sistemas bidimensionales como son los desarrollados por
3.1. Método de Hautman y Klein (HK)
25
z
Sij
Zi
Zj
y
y
x
x
Figura 3.3: Magnitudes utilizadas en el álgebra de los sistemas con periodicidad
en dos dimensiones y carácter finito en la tercera.
Hautman y Klein [11] (HK), Nijboer y de Wette [12] (NdW), Heyes, Barber
y Clarke [7] (HBC) y la adaptación del método de E3D tradicional desarrollada por I. Yeh y M. L. Berkowitz [17].
3.1
Método de Hautman y Klein (HK)
En la aproximación desarrollada por Hautman y Klein se distingue entre
las componentes del vector de posición proyectadas sobre el plano en el que
el sistema es periódico (contribuciones “in-plane”) de la que es ortogonal a
dicho plano. Si llamamos sij a la distancia entre los iones i y j proyectada
sobre el plano periódico y zij a la diferencia de coordenadas ortogonales para
los mismos, tal y como se muestra en la Figura 3.3, podemos reescribir 1/rij
como:
"
# " p
2p #
p
X
X an zij
an zij2p
1
1
=
−
+
(3.2)
2n+1 ,
rij
rij n=0 s2n+1
ij
n=0 sij
donde las sumas son expansiones
binomiales de 1/rij en potencias de zij /sij
k
2
2k
con ak = (−1) (2k)!/ 2 (k!) . La rapidez con la que converge esta expansión aumenta cuando la relación zij /sij → 0.
Como en el método de Ewald tradicional, se utiliza un conjunto de funciones de convergencia para reescribir los términos que dependen de las distancias sij :
1
1 − hn (sij , α) hn (sij , α)
+
.
(3.3)
2n+1 =
sij
s2n+1
s2n+1
ij
ij
La función de convergencia, hn (sij , α), depende de un factor de convergencia
escalar, α, que es diferente para cada uno de los p términos del sumatorio.
3.1. Método de Hautman y Klein (HK)
26
Sustituyendo las ecuaciones (3.2) y (3.3) en (3.1), obtenemos, después de
una serie de sencillas manipulaciones:
p
N
X
X0
ak zij2k hk (sij,v , α)
1 X
1
Ec =
−
qi qj
,
2 i,j=1
s2k+1
ij,v
v=0 |rij + v|
k=0
(3.4)
p
N
X0 X
ak zij2k hk (sij,v , α)
1 X
,
qi qj
El =
2 i,j=1
s2k+1
ij,v
v=0 k=0
(3.5)
!
donde la prima en los sumatorios indica que el término i = j se excluye
cuando v toma el valor 0.
El orden de la expansión, p, se elige lo suficientemente grande para que
la suma real, Ec , la más costosa en el formalismo HK, converja rápidamente.
Normalmente, se recomienda que la expansión sea de orden 2 o superior. No
obstante, aún siendo importante la elección de este parámetro, no es del todo
determinante en la calidad de los resultados. Se ha comprobado [43] que la
calidad de los mismos es mucho más sensible al número de vectores sumados
en el espacio real que al orden de la expansión. Ası́, es más aconsejable usar
un mayor número de vectores que aumentar el orden de la expansión.
De este modo se obtiene una conveniente división de la energı́a en dos
componentes; una de corto rango, Ec , que es evaluada en el espacio real, y
otra de largo rango, El , que, debido a la naturaleza periódica del sistema,
se puede evaluar en el espacio recı́proco. Sin embargo, para realizar esta
transformación, hay que incluir en el sumatorio el término i = j con m=0
y después restarlo del resultado final. Como consecuencia, aparece una nueva contribución a la energı́a que se conoce, nuevamente, con el nombre de
autopotencial y que nosotros representamos como Eself . Los vectores 2D de
la red recı́proca son análogos a los del espacio real, v, salvo un factor 2π que
aparece debido a la transformación de Fourier. Ası́, el término de largo rango
se transforma en:
p
N
∞
X
X
π X
2k
El =
qi qj
ak zij
gk (m, α)m2k−1 exp(−im · sij ) + Eself ,
A i,j=1
m=1
k=0
Eself =
p
N
X
1X
hk (t, α)
qi2
ak zii2k lim 2k+1 ,
t→0 t
2 i=1 k=0
(3.6)
(3.7)
siendo gk la transformada de Fourier de las funciones de convergencia. Estas
funciones gk son las complementarias en el espacio recı́proco a las hk del
espacio real.
27
1.0
2.0
0.5
1.5
erfc(x)
erf(x)
3.1. Método de Hautman y Klein (HK)
0.0
-0.5
0.5
-1.0
-10
1.0
0.0
-5
0
5
10
-10
-5
x
0
5
10
x
Figura 3.4: Dependencia de las funciones error y error complementaria con el
valor de su argumento.
La elección de las funciones de convergencia en las ecuaciones (3.4) y (3.5)
es un paso clave en la eficacia del método. Se han estudiado un gran número
de funciones de este tipo, siendo la función error y sus derivadas las más
ampliamente utilizadas debido a sus interesantes propiedades algebraicas.
Ası́, supondremos que
sij /2α
sij
h0 (sij , α) = erf
= 2π −1/2
exp(−x2 )dx.
(3.8)
2α
0
La función error está acotada en el intervalo [-1,1]. Debido a la naturaleza
exponencial del integrando, estos lı́mites, se alcanzan con extrema facilidad,
tal y como muestra la primera de las gráficas de la Figura 3.4. Esta propiedad
es la que hace ventajoso el empleo de este tipo de funciones para acelerar la
convergencia de las sumas.
De forma general, las funciones de convergencia de orden superior cumplen la ley de recurrencia:
Z
2k+1
(−1)k sij
h0 (sij , α)
hk (sij , α) =
,
∇2k
ak (2k)!
sij
(3.9)
siendo ak los mismos coeficientes binomiales de la ecuación (3.2). El conjunto de funciones de convergencia complementarias utilizadas en el espacio
recı́proco comienza con g0 (m, k) = 1 − erf(α|m|)= erfc(α|m|), que es la
transformada de Fourier de h0 , siendo todas las funciones de orden superior
proporcionales a ella:
g0 (m, α)
.
(3.10)
gk (m, α) =
ak (2k)!
3.1. Método de Hautman y Klein (HK)
28
Y dada la relación existente entre las funciones error y error complementaria,
es lógico pensar que la segunda conserve las mismas propiedades algebraicas
que hacı́an que la función error acelerara la velocidad de convergencia de las
sumas. Es decir, está acotada tanto superior como inferiormente (Figura 3.4)
y, además, alcanza los valores lı́mite rápidamente.
El término de corto rango, ecuación (3.4), presenta problemas de divergencia cuando la relación entre las dos contribuciones (fuera y dentro del
plano) toma valores muy altos. Esto es algo relativamente frecuente en cristales iónicos, ya que dos iones pueden tener distinta componente z pero igual
proyección en el plano. En estos casos, la distancia en el plano, sij , es cero
y, con ello, el término de corto rango tiende a infinito. Aún no tomando sij
el valor 0, el término de corto rango requiere, para su implementación computacional, un tratamiento especial debido al error que se comente al dividir
por denominadores muy pequeños y que es consecuencia de la limitada precisión del álgebra computacional. En estos casos el término de corto rango
se formula en términos de un desarrollo en serie de Taylor [43].
Si analizamos la complejidad del algoritmo podemos hacer una estimación
del tiempo de cálculo para la contribución de corto rango del orden O (|R|N 2
(tfunc + p· tmul )/2) donde N es el número de términos en cada sumatorio, R
el número de vectores sumados en el espacio real, tfunc es el tiempo empleado
en evaluar las funciones que son independientes del orden de la expansión
p, entre las que se encuentra, por ejemplo, la función error, y tmul es el
tiempo utilizado en las funciones que sı́ dependen de p. Un incremento
de p no supone un aumento considerable del tiempo de cálculo, ya que los
términos dependientes del orden de la expansión, p, no implican la evaluación
de funciones costosas desde el punto de vista computacional.
Una de las ventajas de este método desde el punto de vista computacional
es que el término de largo rango permite descomponer la exponencial:
exp(−im · sij ) = exp(−im · si ) exp(im · sj ),
(3.11)
lo que se aprovecha para que el número de veces que se evalúa la exponencial
pase de (N 2 /2) a 2N . En conjunto, el término de largo rango requiere un
tiempo de cálculo que es del orden O(|H |N ) con H el número total de vectores sumados en el espacio recı́proco. El término de autopotencial consume
un tiempo de cálculo que es proporcional al número de átomos de la celda
unidad. Sin embargo, su evaluación no requiere un esfuerzo computacional
excesivo al no requerir la evaluación de funciones complejas.
3.2. Método de Nijboer y de Wette (NdW)
3.2
29
Método de Nijboer y de Wette (NdW)
El método NdW [12] fue desarrolado inicialmente para su uso en sistemas
bidimensionales periódicos y posteriormente aplicado a redes iónicas en forma
de láminas, slabs. Esta aproximación, como ocurrı́a con HK, conduce a una
separación de contribuciones dentro y fuera del plano análoga a la anterior,
pero siguiendo un camino ligeramente diferente. En primer lugar, utiliza una
−1
nueva transformada integral para rij
,
1
= π −1/2
rij
Z
∞
0
2
t−1/2 exp −trij
dt.
(3.12)
Esta integral se transforma en suma de integrales a las que se aplica, como
un todo, la transformación de Fourier para dar (en sistemas neutros):
N
1 X
qi qj
E=
2A i,j=1
∞
X
!
1 (2πim·sij ) (−2π|m||zij |)
e
e
− 2πzij + Eself .
m=1 |m|
(3.13)
El potencial NdW, sin tener en cuenta el término de autopotencial ni
la contribución perpendicular (que sólo depende de la distancia en la coordenada z), se calcula completamente en el espacio recı́proco, y no depende
de ningún parámetro escalar α. Este último aparece solo en el término de
autopotencial:
N
X

∞
X
erfc
|v|
α

∞
1 X
erfc (πα|m|)
2
2π 1/2 α 
+
− 1/2 −
.
Eself
|v|
A |m|=1
|m|
π α
A
(3.14)
2
El algoritmo posee un bajo coste computacional O(N |H | + N (|R| + |H |)).
Sin embargo, la convergencia de la suma depende de zij , siendo más lenta a
medida que la componente fuera del plano se va haciendo más pequeña. Por
todo esto, el método NdW no es apropiado para sistemas donde las partı́culas cargadas están confinadas en un plano. A pesar de sus inconvenientes,
se sigue utilizando en combinación con el método desarrollado por Heyes,
Barber y Clarke [10], al que dedicamos la siguiente sección.
1
=
qj2 
2 j=1
v=1
3.3
Método de Heyes, Barber y Clarke (HBC)
Esta aproximación fue desarrollada inicialmente por Bertaut [45] y adaptada por Parry [8] para sistemas periódicos bidimensionales con el objeto de
3.3. Método de Heyes, Barber y Clarke (HBC)
30
calcular desviaciones del potencial en las proximidades de las superficies de
cristales iónicos. D. M. Heyes, M. Barber y J. H. R. Clarke generalizaron
método de Parry y lo aplicaron por primera vez en simulaciones de Dinámica
Molecular.
Como en los casos anteriores, podemos considerar el vector de posición
como suma de dos contribuciones, una dentro del plano donde el sistema es
periódico y otra en la dirección perpendicular. Ası́, el vector rij se puede
escribir como: rij =(sij , zij ). Si definimos la función Φ(r) y el factor Φ0 como:
P
P
1
Φ(r) = v |r+v|
para r6= 0 y Φ0 = v6=0 v1 , la energı́a total de acuerdo con
la ecuación (3.1), se puede expresar como:
E=
N X
N
N
1X
1X
q 2 Φ0 ,
qi qj Φ(rij ) +
2 i=1 j>i
2 i=1 i
(3.15)
donde el primer término representa la interacción de una carga con todas
las demás, mientras que el segundo describe la interacción de la carga con
sus imágenes. Si tenemos en cuenta la representación integral de la función
Gamma, Γ(s):
1
1 Z ∞ s−1 −x2 t
=
t e
dt,
(3.16)
x2s
Γ(s) 0
podemos escoger s = 1/2 y expresar la función Φ(r) como:
1
Φ(r) = √
π
Z
∞
0
2
t−1/2 e−|rij +v| t dt.
(3.17)
A continuación la integral se parte en los intervalos [0,α 2 ] y [α2 , ∞], siendo
α un valor arbitrario:
Φ(r) =
X
v
π −1/2
Z
∞
α2
2
t−1/2 e−|r+v| t dt +
X
vs
π −1/2
Z
α2
0
t−1/2 e−|s+vs |
2 t−z2 t
dt.
(3.18)
Esta partición nos permite eliminar la singularidad esperada en Φ(r) cuando
r → 0. El parámetro α se elige bajo criterios de eficacia computacional. En
la expresión anterior, vs representa un vector bidimensional en el espacio real
de la forma: vs = vx a + vy b con vx y vy enteros.
A continuación emplearemos la suma de Poisson bidimensional:
X
vs
e
−|s+ns |2 t
π X ik·s
k2
=
e exp −
,
At k
4t
!
(3.19)
donde A representa el área de la celda y viene dada por A = |a × b|, vs es el
vector real definido anteriormente y k es un vector bidimensional del espacio
3.3. Método de Heyes, Barber y Clarke (HBC)
31
recı́proco; k = mx a∗ + my b∗ con mx y my enteros y donde a∗ y b∗ son los
vectores de la base recı́porca bidimensional. Podemos sustituirla ahora en
el segundo término de la ecuación (3.18) e integrar directamente el primero
para obtener:
X
Φ(r) =
v
erfc(α|r + v|)
|r + v|
+2π
1/2
X
e
ik·sij
k6=0
+
π 1/2
A
Z
α2
0
Z
k 2 u2 z 2
− 2 du
exp −
4
u
1/α
!
∞
t−1/2 e−|sij +vs |
2 t−z2 t
dt,
(3.20)
donde el término para k = 0 en la suma se evalúa por separado, y el segundo término se obtiene mediante el cambio de variable u2 = 1/t. Las dos
integrales que aparecen en la ecuación anterior son analı́ticas, por lo que:
Φ(r) =
erfc(α|r + v|)
|r + v|
v
!
!#
"
π X eik·s kz
k
k
−kz
+ αz + e erfc
− αz
+
e erfc
A k6=0 G
2α
2α
X
2
2π 1/2
e−z t
2π 1/2 1 −α2 z 2
e
+ zπ 1/2 erf(αz) +
lim 1/2 .
−
A
α
A t→0 t
(3.21)
Aplicando las mismas ideas al factor Φ0 , encontramos:
Φ0 =
X
v6=0
1
π 1/2
1
Z
Z
∞
α2
2
t−1/2 e−|v| t dt +
α2
X
vs
1
π 1/2
Z
α2
0
2
t−1/2 e−|vs | t dt
t−1/2 dt
π 1/2 0
!
Z
X erfc(α|v|)
π 1/2 X α2 −3/2
k2
=
+
t
exp −
dt
|v|
A k6=0 0
4t
v6=0
−
π 1/2 α2 −3/2
2α
t
dt − 1/2
A 0
π
!
X
X erfc(α|v|)
π
1
k
2π 1/2
+
erfc
−
=
|v|
A k6=0 k
2α
αA
v6=0
+
+
Z
1
2π 1/2
2α
lim 1/2 − 1/2 .
A t→0 t
π
(3.22)
Para aplicar la fórmula de Poisson en la primera de las ecuaciones anteriores,
se suma y se resta el término vs = 0.
3.4. Método Ewald 3D corregido (E3DC)
32
Si ahora sustituimos las expresiones de Φ(r) y Φ0 en la ecuación (3.15)
obtenemos, después de una serie de sencillas manipulaciones:
E=
N
X 0 erfc [α|sij + vs , zij |]
1 X
qi qj
2 i,j=1
|sij + ns , zij |
vs
N
X eik·sij
π X
k
k
+
qi qj
ekzij erfc
+ αzij + e−kzij erfc
− αzij
2A i,j=1
k
2α
2α
k6=0
√ N
π X
1 −α2 zij2
α X 2
e
+ zij π 1/2 erf(αzij ) − 1/2
q .
(3.23)
qi qj
−
A i,j=1
α
π i=1 i
"
!
!#
Hasta este momento se ha supuesto que el sistema es neutro, lo que ha permitido eliminar las singularidades aparecidas en las ecuaciones (3.21) y (3.22).
Un análisis más detallado de estas singularidades para sistemas neutros se
puede encontrar en el trabajo de A. Grzybowski y colaboradores [46]. La
aproximación HBC posee una expresión para el espacio recı́proco complicada y difı́cil de simplificar de forma general, lo que hace que el tiempo de
cálculo de este formalismo sea del orden O(N 2 (|R| + |H|)). Sin embargo, no
presenta problemas numéricos para partı́culas proximas al origen de coordenadas porque, a diferencia de la formulación HK, sólo las distancias rij , que
son siempre distintas de cero, aparecen en los cocientes. Esto, unido a que su
implementación computacional es relativamente sencilla, ha provocado que
nuestro trabajo se centre en el estudio de este algoritmo.
En las Tablas 3.1 y 3.2 presentadas en la sección anterior, se pone de
manifiesto la bondad de la utilización del agoritmo HBC en la reducción
sustancial del número de vectores necesarios para alcanzar la convergencia y
con ello, el tiempo de cálculo.
3.4
Método Ewald 3D corregido (E3DC)
Otra posible aproximación para obtener la energı́a electrostática de un slab es
la utilización del método E3D tradicional, elongando la celda de simulación
en la dirección z de tal forma que se cree un espacio vacı́o considerable
entre la celda y sus imágenes. La inclusión de estos espacios vacı́os tiene
por objeto evitar las contribuciones artificiales producto de la interacción de
dichas imágenes con la celda de simulación.
En estudios recientes, E. Spohr [47] ha comparado los resultados obtenidos en simulaciones E3D y E2D, llegando a la conclusión de que el método
E3D conduce a buenos resultados, es decir, converge razonablemente bien a
los valores E2D, siempre que la longitud de la celda de simulación en la dirección z sea grande, o lo que es lo mismo, cuando los espacios creados entre
3.4. Método Ewald 3D corregido (E3DC)
33
Tabla 3.3: Variación del potencial y del número de capas sumadas en el espacio
real, nshrea, y recı́proco, nshrec, con la longitud del espacio vacı́o creado en la
dirección z para uno de los aniones del slab generado a partir de la celda unidad
del NaCl.
Método
E3D
HBC
Suma directa
c/a
1
1.5
2.0
3.0
5.0
10.0
50.0
1/2
1/2
nshrec
3
3
4
4
4
5
9
4
nshrea
3
3
4
4
4
5
9
4
500.000
potencial
0.332869453
0.320594462
0.320449670
0.320431910
0.320443261
0.320443261
0.320443261
0.320443261
0.320443261
Tabla 3.4: Variación del potencial y del número de capas sumadas en el espacio
real, nshrea, y recı́proco, nshrec, con la longitud del espacio vacı́o creado en la
dirección z para uno de los aniones del slab creado a partir de la celd aunidad del
CsCl.
Método
E3D
HBC
Suma directa
c/a
1
10
100
500
1000
5000
1/2
1/2
nshrec
4
9
24
48
64
128
4
nshrea
4
9
24
49
66
132
4
500.000
potencial
0.49522178
0.18904990
0.15463030
0.15157276
0.15119057
0.15088482
0.15080838
0.15080838
3.4. Método Ewald 3D corregido (E3DC)
34
Figura 3.5: Celda unidad del slab comprendido entre los planos (0,0,1) con z = 0
y z = 1/2 en la estructura del NaCl.
Plano de corte
Figura 3.6: Construcción de la celda unidad para el slab comprendido entre los
planos (0,0,1) con z = 0 y z = 0.5 en la estructura del CsCl.
la celda de simulación y sus imágenes aseguren que las interacciones entre
ellas sean despreciables. En las Tablas 3.3 y 3.4 se muestran los resultados
obtenidos al calcular el potencial al que está sometido un anión por el resto
de iones de la red mediante el método Ewald tradicional, y cómo varı́a al
aumentar la longitud de la celda en la dirección del eje z, c, para los sistemas
presentados en las Figuras 3.5 y 3.6. Asimismo, muestran el número de capas sumadas tanto en el espacio real, nshrea, como en el recı́proco, nshrec,
y los resultados obtenidos por dos métodos bidimensionales puros, HBC y
suma directa, para los mismos sistemas. La primera de las tablas muestra
los resultados correspondientes a un slab construido a partir de la estructura
del NaCl y comprendido entre los planos (0,0,1) con z = 0 y z = 1/2, Figura 3.5, mientras que la segunda muestra los resultados derivados del cálculo
en un slab de la estructura del CsCl entre los planos (0, 0, 1) con z = 0 y
z = 1/2, Figura 3.6. De la Tabla 3.3 se puede concluir que la estrategia de
crear espacios vacı́os en la dirección perpendicular al plano es limitada. En
el caso de sistemas con alta simetrı́a, como el NaCl, los resultados obtenidos
por el método tradicional convergen a los obtenidos por los métodos bidi-
3.4. Método Ewald 3D corregido (E3DC)
35
mensionales puros rápidamente y sin aumentar de forma excesiva el número
de capas necesario para alcanzar dicha convergencia. En cambio, si los sistemas poseen menor simetrı́a, como es el caso del slab creado a partir del
CsCl (Tabla 3.4), la convergencia se alcanza de forma mucho más lenta siendo necesario sumar un mayor número de capas. Esto provoca que el método
requiera de un mayor tiempo de cálculo y coste computacional. Como ha
quedado patente, este método es sencillo pero carece de gran utilidad debido a sus limitaciones. Sin embargo, se ha desarrollado una adaptación de
este método que mejora su comportamiento frente a sistemas bidimensionales [17]. Esta adaptación que nosotros hemos denominado método de Ewald
Corregido (E3DC), tan solo difiere del método tradicional en un término que
desarrollamos a continuación.
La energı́a electrostática de los cristales iónicos consta de dos partes. Una
primera parte es independiente de la forma del cristal, pero depende de su
estructura y de la distribución de los átomos dentro de la celdilla unidad. La
segunda es función de la forma del cristal y depende del momento dipolar
dentro de la celda:
E =
N X
1 X
erfc (α|rij + v|)
0
qi qj
2 i,j=1 v=0
|rij + v|
N X
1 X
+
qi qj
2πV i,j=1 k6=0
4π 2
k2
exp − 2 cos(k · rij )
k2
4α
!
N
α X
q 2 + J(M, P ).
−√
π i=1 i
!
(3.24)
El término J(M, P ) depende de la forma del cristal, del momento dipolar y
de la geometrı́a de la suma. Cuando se utiliza una geometrı́a esférica (P = S)
similar a la definida en el capı́tulo anterior (véase Figura 2.2), este término
viene dado por la expresión:
J(M, S) =
2π
|M |2 ,
(2s + 1)V
(3.25)
donde M es el momento dipolar total de la celda. Si el sistema de cargas
está rodeado por un medio cuya constante dieléctrica es infinita (s = ∞,
como ocurre con los metales), entonces J(M, S) = 0. Esta condición lı́mite
es conocida como la aproximación “tinfoil”. Si s tiene un valor significativo,
este factor no puede ser ignorado. En particular, en el vacı́o s = 1, y, por
tanto:
2π
J(M, S) =
|M |2 .
(3.26)
3V
3.4. Método Ewald 3D corregido (E3DC)
36
Figura 3.7: Geometrı́a de la suma en su versión rectangular.
Este término también es despreciable en sistemas con alta simetrı́a en los
que el momento dipolar es nulo, lo que equivale a adoptar la aproximación
“tinfoil”. Recientemente E. R. Smith [10] ha demostrado que si la geometrı́a
usada para realizar la suma de Ewald adquiere forma de plato rectangular
tal y como se indica en la Figura 3.7 (P=R) o de disco infinitamente pequeño
en la dirección z, el término J(M, R) tiene la forma:
J(M, R) =
2π
Mz ,
V
(3.27)
siendo Mz la componente z del momento dipolar. Esto equivale a realizar la
suma por peldaños, es decir, sumar primero en el plano y después progresar
en la dirección z.
Esta última suma combinada, con espacios vacı́os en la dirección z suficientemente grandes, conduce a resultados satisfactorios equiparables a E2D.
Esto nos permite utilizar E3DC en sistemas con periodicidad en dos direcciones y que son finitos en la tercera. Sin embargo, el empleo de espacios vacı́os
conlleva un aumento en el tiempo de cálculo que hace que su uso sea menos
recomendable frente al método bidimensional de Heyes, Barber y Clarke, tal
y como se podrá comprobar en el capı́tulo 6.
Capı́tulo 4
Convergencia del método
En el capı́tulo anterior hemos presentado los distintos algoritmos utilizados
para el cálculo de energı́as electrostáticas en sistemas periódicos en dos dimensiones y finitos en la tercera, ası́ como las distintas estrategias seguidas
en su implementación computacional con el fin de reducir el tiempo de cálculo. Además de utilizando estas estrategias computacionales, la velocidad del
método se puede mejorar a través del estudio de distintas propiedades del algoritmo. El presente capı́tulo tiene como objeto analizar el comportamiento
del método en base al estudio de los distintos parámetros que afectan a su
convergencia, especialmente el parámetro escalar η, ası́ como el de una mejor
comprensión del algoritmo a través del estudio de diferentes propiedades del
mismo.
4.1
Elección de parámetros óptimos
Tres son los parámetros que controlan la convergencia y la precisión de las
sumas de Ewald. En primer lugar está el lı́mite superior del vector v en la
contribución que se suma en el espacio real. Por definición, esta suma deberı́a
extenderse a todas las imágenes de la celda, lo que resulta imposible dada
la naturaleza infinita del sistema. Este lı́mite superior, que denotaremos como vmax , controla, en cierta medida, la eficiencia del método al determinar
el número de vectores reales, o lo que es lo mismo, de imágenes de la celda
central que se suman. Un caso similar ocurre con el segundo de los parámetros, hmax , que controla el número de vectores recı́procos que se utilizan en la
suma.
El formalismo HBC acelera de forma notable la convergencia de la ecuación de Coulomb para el cálculo de la energı́a electrostática de red. Esto hace
que la elección de los parámetros vmax y hmax no sea el factor limitante en la
37
4.1. Elección de parámetros óptimos
38
Tabla 4.1: Errores por truncamiento en el potencial creado sobre el anión de
los slabs de CsCl y hexagonal presentados en el capı́tulo anterior en función del
número de capas sumadas.
capas
0
1
2
3
Hexagonal
V (hartree) % error
-0.60700050 16.16
-0.52353329
0.19
-0.52255955
0.06
-0.52255917
—
Cúbico
V (hartree)
% error
-0.15599301
3.45
-0.15078984
0.01
-0.15080836 1.33 ×10−3
-0.15080838
—
calidad de los resultados. Esto contrasta con la gran sensibilidad que, a estos
parámetros, presentaban los métodos de sumas directas o fuerza bruta (BF).
Aún ası́, esta elección, debe ser rigurosa, de tal forma que el valor de los citados parámetros asegure la total convergencia del método. De lo contrario, se
producirı́an errores por truncamiento tal como se puede apreciar en la Tabla
4.1. En cualquier caso, estos errores son mucho menos importantes que los
producidos por el truncamiento de la ecuación (3.1), como puede deducirse
de los datos presentados en las Tablas 3.1 y 3.2.
El tercero de los parámetros a considerar en la convergencia de la suma es
η. De acuerdo con lo expuesto en secciones anteriores (véase capı́tulo 2), este
parámetro controla la anchura de las distribuciones gaussianas compensante
y cancelante en el desarrollo del método de Ewald. La energı́a electrostática
es independiente de la elección de dicho parámetro, por construcción, pero
no ası́ la velocidad de convergencia. Es decir, al variar el valor de η lo
que se consigue es modular la velocidad de convergencia de cada una de las
dos series. Desde otro punto de vista, η es un factor que otorga distinto
peso especı́fico a cada una de las componentes del potencial dependiendo
de su valor. Por ejemplo, de acuerdo con la ecuación HBC anteriormente
presentada y que reproducimos aquı́ para facilitar el seguimiento del texto:
E=
N X
N X
N X
N X
1 X
cos(2πh · rij )
1X
erfc (|rij + v|/η)
0
+
qi qj
qi qj
2 i j v=0
|rij + v|
4A i j h6=0
h
× [exp(2πhzij )erfc (zij /η + πhη) + exp(−2πhzij )erfc (−zij /η + πhη)]
"
!#
N X
N
zij2
πX
η
−
qi qj zij erf (zij /η) + √ exp − 2
A i j
π
η
N
1 X
− √
q2,
η π i i
(4.1)
4.1. Elección de parámetros óptimos
39
cuando los valores de η son pequeños, la componente real converge rápidamente, pues la función error complementaria tiende rápidamente a cero
cuando su argumento toma valores grandes y positivos. En cambio, si el
valor de η es grande, el término que mas rápidamente converge es el recı́proco, haciendo que sea necesario utilizar un menor número de vectores h. Un
análisis más detallado del comportamiento lı́mite de la ecuación anterior es
el objeto de la sección final del presente capı́tulo. Esta propiedad es la que
permite escoger un valor de η que optimice la velocidad de convergencia. De
acuerdo con esto, parece lógico pensar que el valor óptimo de η será aquel que
haga que todos los términos de la energı́a (4.1) converjan lo más rápidamente
posible.
Si examinamos pormenorizadamente la ecuación (4.1) podemos deducir
que, aunque todos los términos dependen del parámetro η, sólo son dos los
que hay que tener en cuenta a la hora de estudiar su velocidad de convergencia, ya que el resto de contribuciones son sumas finitas. El primero de ellos,
o término recı́proco, contiene la función error complementaria centrada en
(πηh ± zij /η), que se anula rápidamente cuando el valor del argumento es
grande y positivo (Figura 3.4), es decir, cuando η toma valores grandes. El
caso más desfavorable se produce cuando se manejan celdas que dan lugar a
vectores recı́procos de módulo pequeño. Si llamamos a∗min al menor de los ejes
recı́procos, la condición de convergencia puede escribirse como: p = πηh > 1,
o bien, η = πap∗ , donde p será el valor de este argumento más pequeño que
min
queramos considerar.
Para analizar la convergencia del término correspondiente al espacio real,
se sigue un razonamiento análogo al anterior. Vuelve a aparecer la función
error complementaria, pero, en esta ocasión su argumento es inversamente
proporcional a η. Por lo tanto, se alcanza una buena convergencia cuando
los valores del parámetro de Ewald son pequeños. El caso más desfavorable
se produce cuando se calculan las interacciones de la capa de celdas imagen
más próximas a la central. Se puede demostrar que el valor más apropiado
en esta situación es el que viene dado por la menor de las componentes del
vector distancia del ion a la celda unidad. Esta distancia perpendicular entre
∆
∆
dos planos finitos en la celda unidad viene dada por: da = |b×c|
, db = |c×a|
,
∆
dc = |a×b| donde da , db , y dc simbolizan las distancias perpendiculares en
las direcciones de los ejes a, b, y c respectivamente y ∆ es el volumen de la
celda unidad. Si denominamos amin a la menor de las distancias citadas, la
a
|r +v|
,
condición de convergencia se escribe como sigue: ijη > 1, ó, η = pmin
q
∗
siendo q > 1. Si además tenemos en cuenta que para una red cúbica: a = 1/a
, fácilmente se puede concluir que: amin = (amax )−1 .
y que a∗ = |b×c|
∆
Si damos igual importancia a la convergencia de cada una de las dos
4.1. Elección de parámetros óptimos
40
Tabla 4.2: Variación de las contribuciones real, V rea , y recı́proca, Vrec , ası́ como del número de capas de imágenes sumadas en cada una de las contribuciones,
nshrec y nshrea, con el parámetro escalar η en el cálculo del potencial electrostático sobre una de las posiciones aniónicas del slab de NaCl.
η (Å)
0.05
ηopt (0.56)
1.00
10.00
100.00
Vrec (hartree)
19.203
3.2×10−3
7.9×10−8
0.00000
0.00000
Vrea (hartree)
0.000000
-1.3162439
-2.2362756
-3.2518119
-3.3533661
nshrec
29
3
1
1
1
nshrea
1
4
5
17
17
V (hartree)
3.364654235
3.364654235
3.364654235
3.364654235
3.364654235
series por separado, es decir, hacemos que p = q y sustituimos apmin por
a∗max , encontramos que el valor óptimo para el parámetro η viene dado por:
ηopt = √
1
πa∗min a∗max
,
(4.2)
objeto que tiene dimensiones de longitud.
En la Tabla 4.2 se recogen los resultados obtenidos para las contribuciones
real, V rea , y recı́proca, V rec , ası́ como el número de capas sumadas, nshrea y
nshrec, hasta alcanzar la convergencia (10−9 ) de las citadas contribuciones
en función del parámetro η para uno de los aniones del slab creado a partir
de la celdilla unidad del NaCl con a = b = 1 Å y el plano de corte con
ı́ndices de Miller (0,0,2). El intervalo de variación del parámetro de Ewald
no se elige arbitrariamente. Deben evitarse los valores extremos (η ≈ 0,
η 100) ya que, de lo contrario, se producirı́an errores numéricos derivados
de la limitada precisión de los cálculos computacionales que conducirı́an a
valores de potencial diferentes.
A modo de resumen podemos señalar que:
• El potencial es independiente del valor de η.
• Para el valor de ηopt se llega a un compromiso en la minimización del
número de capas sumadas tanto en el espacio real como en el recı́proco.
• A valores pequeños de η, el término real converge muy rápidamente
(sólo se suma una capa, nshrea = 1).
• Cuando los valores de η son grandes, el término que más rápidamente
converge es el recı́proco.
4.2. Precisión del Método
41
c
b
a
Figura 4.1: Slab de CaF2 comprendido entre los planos (0,0,1) con z = 0 y
z = 3/4. Las bolas blancas representan a los cationes mientras que las negras
hacen lo propio con los aniones.
4.2
Precisión del Método
En la implementación computacional, hemos dotado de flexibilidad al algoritmo sustituyendo los lı́mites superiores de los sumatorios, vmax y hmax , por
un nuevo parámetro de convergencia que controla las sumas real y recı́proca.
Esto nos permite minimizar el error por truncamiento inherente a la técnica.
Este parámetro computacional que hemos llamado conv controla cuándo la
diferencia entre el potencial acumulado para cada capa y el de la anterior
alcanza un valor prefijado con anterioridad, a partir del cual se desprecian
las sucesivas contribuciones. Esto nos permite acotar, en cierta medida, la
precisión de nuestros resultados. Nunca se podrá alcanzar mayor precisión
que la exigida en el cálculo de cada una de las series. Los cálculos llevados a cabo con distintos valores del parámetro de control conv en distintos
sistemas nos han proporcionado una estimación cuantitativa de la precisión
del método, situándose ésta en 10−11 hartree, pudiendo ser mayor en algunos
sistemas.
Para realizar esta afirmación, nos hemos basado en los cálculos de potencial realizados sobre tres slabs de diferentes sistemas entre los que se
encuentran, además de los dos presentados en el capı́tulo anterior, el CsCl
con a = b = 4.11 Å (slab a) y NaCl con a = b = 1 Å (slab b), un tercer slab c
comprendido entre los planos (0,0,1) con z = 0 y z = 3/4 de la estructura de
CaF2 tal y como se muestra en la Figura 4.1. En la Tabla 4.3 se muestran los
valores del potencial electrostático calculados sobre las posiciones catiónicas
4.2. Precisión del Método
η (Å)
0.05
2.00
5.00
10.00
15.00
30.00
50.00
75.00
100.00
115.00
Vslab a (hartree)
-3.3646542352529312
-3.3646542352529303
-3.3646542352529365
-3.3646542352529876
-3.3646542352530271
-3.3646542352527913
-3.3646542352530187
-3.3646542352524906
-3.3646542352530155
-3.3646542352521558
42
Vslab b (hartree)
-0.1508083838526342
-0.1508083838526267
-0.1508083838526267
-0.1508083838526269
-0.1508083838526265
-0.1508083838526268
-0.1508083838526260
-0.1508083838526247
-0.1508083838526230
-0.1508083838526214
Vslab c (hartree)
———–
-1.0089564771515744
-1.0089564771515755
-1.0089564771515753
-1.0089564771515751
-1.0089564771515749
-1.0089564771515767
-1.0089564771515700
-1.0089564771515740
-1.0089564771515704
Tabla 4.3: Potencial electrostático sobre las posiciones catiónicas en los slabs a
(a = 1 Å y γ = 90◦ ), b (a = 4.11 Å y γ = 90◦ ) y c (a = 10.5 Å y γ = 90◦ ). La
extensión del slab en la dirección perpendicular al plano es c = a/2 para los slabs
a y b y c = 43 a para el slab c.
de los citados slabs y para los que se exige una convergencia de 10−15 (hartree). En ella podemos comprobar como el número de cifras significativas
alcanzado para los distintos sistemas oscila entre las 12 del slab a y las 14
del slab b. Estudios posteriores realizados bajo criterios de convergencia más
estrictos (10−20 ) y con variables de cuádruple precisión, no han revelado una
precisión mayor por lo que hemos optado por no incluirlos en el presente
trabajo con el fin de no hacer demasiado tediosa su lectura.
La inconsistencia del método por encima de la precisión máxima se muestra en las Figuras 4.2 y 4.3. En ellas se representa la diferencia entre el
potencial verdadero, entendiendo por tal, el valor del potencial con el mayor
número de cifras significativas que permanece constante en todo el intervalo
de variación de η, y el potencial calculado, siendo éste, el valor del potencial que incluye el número total de cifras significativas convergidas, frente al
parámetro η para los slabs a y b con distintos valores del parámetro de red.
Claramente se pueden apreciar las acusadas oscilaciones que hacen que el
método no sea fiable por encima de los niveles de precisión máximos considerados.
Si ahora observamos el comportamiento de estas oscilaciones al variar el
parámetro de red a en el slab b (Figura 4.2), se ve como, cuando éste aumenta,
las oscilaciones pasan de ser negativas a valores pequeños de η y positivas a
valores mayores, como ocurre cuando a = 1 Å, a ser todas negativas como
ocurre con a = 2 Å y a = 4.11 Å. Esto se debe a otra de las propiedades del
4.2. Precisión del Método
43
0.4
a
(Vverd − Vcal)x1013
0.2
0.0
−0.2
−0.4
−0.6
−0.8
−1.0
0
5
10
15
20
25
η (Å)
0.0
(Vverd − Vcal)x1013
b
−0.2
−0.4
−0.6
−0.8
−1.0
−1.2
0
10
20
30
40
50
η (Å)
0.0
c
(Vverd − Vcal)x1013
−0.2
−0.4
−0.6
−0.8
−1.0
−1.2
−1.4
−1.6
0
20
40
60
80
100
η (Å)
Figura 4.2: Variación de la diferencia entre los potenciales verdadero y calculado
frente al incremento del parámetro de red en el slab b. El parámetro de red
toma valores a = 1, 2 y 4.11 Å que se corresponden con las figuras, a, b y c
respectivamente.
4.2. Precisión del Método
44
80
a
(Vverd − Vcal)x1013
60
40
20
0
−20
−40
−60
−80
−100
−120
0
20
40
60
80
100
120
80
100
120
80
100
120
η (Å)
4
b
(Vverd − Vcal)x1013
3
2
1
0
−1
−2
−3
0
20
40
60
η (Å)
1.6
(Vverd − Vcal)x1013
1.4
c
1.2
1.0
0.8
0.6
0.4
0.2
0.0
−0.2
0
20
40
60
η (Å)
Figura 4.3: Variación de la diferencia entre los potenciales verdadero y calculado
frente al incremento del parámetro de red en el slab a. El parámetro de red
toma valores a = 1, 5 y 10.5 Å que se corresponden con las figuras, a, b y c
respectivamente.
4.3. Homogeneidad de los potenciales coulombianos
45
algoritmo de Ewald bidimensional, su escalabilidad. Una situación análoga
se presenta en el caso del slab a (Figura 4.3), en el que las oscilaciones pasan
de ser tanto positivas como negativas cuando a = 1 Å y a = 5 Å a sólo
positivas cuando a = 10.5 Å. Esta última propiedad es el objeto de estudio
de la siguiente sección.
4.3
Homogeneidad de los potenciales coulombianos. Aplicabilidad a E2D
La energı́a de Coulomb es una función homogénea de grado -1 en las coordenadas iónicas. Por lo tanto, los resultados E2D deben cumplir la relación:
1
E(r),
(4.3)
λ
donde λ es un número real y r representa todas las magnitudes con unidades
de longitud.
Una caracterı́stica importante del algoritmo E2D que venimos presentando es que no sólo la suma final es una función homogénea, si no que cada uno
de los términos de los que se compone, también lo es. Esta afirmación no
es general, ya que un escalado de distancias r, implica un cambio de red y,
con ello, un cambio proporcional en los parámetros de red y en el área de la
celda. Sin embargo este cambio en las distancias no implica necesariamente
un cambio proporcional en el valor del parámetro η. Éste sólo se produce
cuando, como es nuestro caso, definimos el valor del parámetro óptimo de η
en función de los parámetros de red, (ecuación 4.2) y, además, consideramos
ese valor óptimo como el único de los posibles valores de η. Como podemos
comprobar a continuación, cuando esta condición se cumple, cada uno de los
términos que constituyen la energı́a electrostática es homogéneo:
E(λr) =
E rea (λr) =
E rec (λr) =
N X
N X
erfc (|λrij + λv|/(ηλ))
1
1X
0
qi qj
= E rea (r).
2 i j v=0
|λrij + λv|
λ
(4.4)
N X
N X
1 X
cos(2π(h/λ) · λrij )
0
qi qj
2
4Aλ i j h6=0
(h/λ)
× [exp(2π(h/λ)λzij )erfc (λzij /(ηλ) + π(h/λ)ηλ)]
+
N X
N X
1 X
cos(2π(h/λ) · λrij )
0
q
q
i
j
4Aλ2 i j h6=0
(h/λ)
× [exp(−2π(h/λ)zij λ)erfc (−λzij /(ηλ) + π(h/λ)ηλ)]
1 rec
E (r).
=
λ
(4.5)
4.3. Homogeneidad de los potenciales coulombianos
a=η
(Å)
1.0
2.0
3.0
5.0
8.0
10.5
nshrec
Vrec
(hartree)
-0.79673E-09
-0.39837E-09
-0.26558E-09
-0.15935E-09
-0.99591E-10
-0.75879E-10
1
Vrea
(hartree)
6.6872370
3.3436135
2.2290823
1.3374454
0.8359039
0.6368796
Vself
(hartree)
-2.25683
-1.12841
-0.75225
-0.45135
-0.28209
-0.21493
nshrea
Vult
(hartree)
-1.6501
-0.82503
-0.55002
-0.33001
-0.20626
-0.15715
46
V
(hartree)
-10.594043010
-5.297021505
-3.531347670
-2.118808602
-1.324255376
-1.008956477
6
Tabla 4.4: Descomposición de las distintas contribuciones al potencial en el formalismo HBC sobre uno de los cationes del slab comprendido entre los planos
(0,0,1) con z = 0 y z = 3/4 en la estructura del CaF 2 , variando en cada caso, el
parámetro de red a.
N X
N
λzij2
ηλ
π X
qi qj λzij erf (λzij /(ηλ)) + √ exp − 2 2
E ult (λr) = − 2
Aλ i j
π
η λ
"
1 ult
E (r).
λ
N
1
1 X
qi2 = E self (r).
E self (λr) = − √
ηλ π i
λ
=
!#
(4.6)
(4.7)
Esta caracterı́stica es la que nos permite explicar el elongamiento del
rango de mayor precisión observado en las Figuras 4.2 y 4.3, ya que cada
término del sistema (a, η) tiene su equivalente en el sistema (λa, λη).
Además, esta propiedad tiene una gran utilidad desde el punto de vista
computacional, ya que nos proporciona una forma de comprobar el comportamiento de cada uno de los términos que intervienen en el cálculo del
potencial.
En la Tabla 4.4 se muestran las magnitudes de cada una de las distintas
contribuciones resultantes del cálculo de potencial sobre el catión situado en
la posición (1,0,0) del slab de CaF2 definido anteriormente (Figura 4.1) para
distintos parámetros de red. En ella se puede observar cómo, a pesar de que
el tamaño de la celda y el parámetro escalar cambian, el número de capas
sumadas en el espacio real y recı́proco permanecen constantes, y cómo, en
efecto, se cumple la ecuación (4.3) al cambiar todas las distancias de forma
proporcional, es decir, al escalar la red. El cumplimiento de esta relación se
aprecia claramente en la Tabla 4.5, donde se escala cada una de las distintas
contribuciones con respecto al slab con a = 1 Å.
4.4. Periodicidad en el potencial de Ewald bidimensional
a
(Å)
2.0
3.0
5.0
8.0
10.5
47
Vrec (1)
Vrec (a)
Vrea (1)
Vrea (a)
Vself (1)
Vself (a)
Vult (1)
Vult (a)
V0 (1)
V0 (a)
V(1)
V(a)
(hartree)
1.9999749
2.9999623
4.9998745
8.0000201
10.500007
(hartree)
1.9999668
3.0000498
4.9999170
7.9999203
10.499991
(hartree)
2.0000000
3.0000665
5.0001108
8.0002836
10.500163
(hartree)
2.0000485
3.0000727
5.0001515
8.0000970
10.500159
(hartree)
2.0000000
3.0000000
5.0000000
8.0000001
10.500000
(hartree)
2.0000000
3.0000000
5.0000000
8.0000000
10.500000
Tabla 4.5: Relación existente entre las distintas contribuciones al potencial de
cada uno de los slabs con respecto al slab con a = 1 Å.
z
y
x
Figura 4.4: Geometrı́a del sistema empleado para el estudio de la dependencia
del potencial con la distancia.
4.4
Periodicidad en el potencial de Ewald bidimensional
Al igual que ocurre con el potencial de Coulomb tradicional, el potencial de
Ewald bidimensional debe ser periódico en el plano. Para ilustrar este hecho
hemos realizado cálculos sobre distintos puntos a lo largo de una de las direcciones (y) del plano periódico. El sistema utilizado para ello es una celda
cúbica que consta de dos iones de igual carga pero signos opuestos en las posiciones (0, 0, 0), el catión, y (0.5, 0.5, 0.5), el anión, tal y como se indica en la
Figura 4.4. Para estudiar la influencia de la periodicidad en el plano se han
llevado a cabo cálculos de potencial sobre un punto situado en la posición
[0.5, y, 0.5] variando y en el rango [−1, 2] en unidades cristalográficas. Los
resultados obtenidos se ilustran en la Figura 4.5, en la que se puede comprobar lo que afirmamos al iniciar este apartado, y es que el potencial E2D es
4.4. Periodicidad en el potencial de Ewald bidimensional
2
48
Celda central
anion
anion
anion
V (hartree)
0
-2
-4
-6
-8
-10
-1.0
-0.5
0.0
0.5
1.0
X / Y (unid. crist.)
1.5
2.0
Figura 4.5: Potencial a lo largo de la dirección [0.5, y, 0.5] para el slab de la Figura
4.4 en el que el parámetro de red toma el valor: a = b = 3.5 Å y su extensión a lo
largo de la dirección perpendicular al plano del slab es c = 2.0 Å.
periódico. El potencial es positivo, debido a la carga positiva del resto del
slab, en la posición aniónica, pues se ha eliminado la autointeracción para
evitar la singularidad, pero discontinuo: en posiciones próximas al anión el
potencial es grande y negativo, dominado fundamentalmente por la contribución de ese anión. A medida que nos alejamos de las posiciones ocupadas por
los aniones, el potencial crece rápidamente debido a la mayor contribución de
la subrred catiónica. Este aumento de los valores del potencial se prolonga
hasta un punto que podrı́amos denominar de equilibrio en el sentido de que
se encuentra en el punto medio entre dos aniones consecutivos y, además, su
distancia con respecto a la red de cationes es mı́nima (siempre teniendo en
cuenta el desplazamiento a lo largo del eje y). Este punto de equilibrio se
encuentra en una de las caras de la celda. A partir de este punto, la contribución del anión de la celda vecina se va haciendo cada vez mayor y con ella,
el potencial cada vez más negativo hasta alcanzar la posición nominal de este
segundo anión, en el que el potencial vuelve a ser positivo. Esta periodicidad
se extiende a lo largo de todo el eje y tal y como se aprecia en la Figura 4.5
Debido a la naturaleza simétrica de este slab, el comportamiento del
4.5. Lı́mites asintóticos del algoritmo con el parámetro η
49
Figura 4.6: Isosuperficie de V=0 para el slab estudiado en la Figura 4.4 con
a = b = 3.5 Å y c = 2.0 Å.
potencial a lo largo de el eje x es completamente análogo al observado a
lo largo del eje y. Un ejemplo ilustrativo de esta periodicidad se aprecia
claramente en la Figura 4.6 en la que se muestra la superficie de potencial
nulo, V = 0 hartree, para el slab estudiado. Nótese como ésta superficie
se repite tanto dentro como fuera de la celda estudiada a lo largo de las
direcciones x e y, pero no ası́ en la dirección perpendicular a éstas, lo cual
es lógico pues no existen iones en esa dirección. El comportamiento del
potencial a lo largo de esta dirección es objeto de estudio en el capı́tulo 7.
4.5
Lı́mites asintóticos del algoritmo con el
parámetro η
Estudiemos ahora el comportamiento de la energı́a electrostática E2D para
valores extremos de η. Para mayor comodidad, reescribimos la ecuación (4.1)
como:
E = E rea (r) + E rec (r) + E ult (r) + E self (r),
(4.8)
4.5. Lı́mites asintóticos del algoritmo con el parámetro η
50
donde E rea y E rec representan las series que se evalúan ı́ntegramente en el espacio real y recı́proco respectivamente, E self , es el término de autointeracción
y E ult , incluye las contribuciones energéticas en la dirección perpendicular al
plano del slab resultantes de separar la posición de los iones en coordenadas
dentro y fuera del plano tanto en el espacio real como en el recı́proco (véase
sección 3.3).
Si η toma valores grandes, el argumento de la función error complementaria, erfc, en el término E rea (r) tiende a anularse y, con ello, la citada función
tiende al valor 1. En estas condiciones tenemos que:
E
rea
N X
N X
1X
qi qj
0
.
(r) =
2 i j v=0 |rij + v|
(4.9)
En el segundo de los términos, E rec (r), los argumentos de las funciones error
complementarias son muy grandes y positivos, haciendo que dichas funciones
tiendan a 0 y con ello, que la contribución de este término a la energı́a total
también sea nula:
E rec (r) → 0.
(4.10)
El tercer término de la ecuación (4.8), E ult , se puede dividir a su vez en dos,
uno que es proporcional al parámetro η y que, por lo tanto, en este caso
es distinto de cero, y otro cuya dependencia con η esta determinada por el
argumento de la función error. Cuando los valores de η son grandes, dicho
argumento es pequeño y con ello el valor de la función error. Con todo esto,
se observa que:
√
N X
N
z2
πη X
qi qj exp − ij2
E (r) → −
A i j
η
ult
!
.
(4.11)
El último de los términos depende de η como 1/η, por lo que también es
despreciable cuando el valor de η es grande:
E self (r) → 0.
(4.12)
Reagrupando las nuevas expresiones para cada una de las contribuciones,
resulta que la energı́a electrostática de red total toma la forma:
!
√
N X
N X
N X
N
zij2
1X
πη X
qi qj
0
−
qi qj exp − 2 ,
E=
2 i j v=0 |rij + v|
A i j
η
(4.13)
con lo que se comprueba que, para valores grandes del parámetro computacional η, la parte recı́proca converge rápidamente, y es la parte real la que
4.5. Lı́mites asintóticos del algoritmo con el parámetro η
51
mayor peso posee en la suma tal y como se avanzó en la sección inicial del
presente capı́tulo.
Si ahora analizamos el caso particular en el que E ult = 0 (como por
ejemplo en la superficie (1,0,0) de las celdas tipo NaCl), nos encontramos
con que el algoritmo E2D se reduce al método de sumas directas para el
cálculo del potencial coulombiano en un sistema bidimensional:
E η0 =
N X
N X
1X
qi qj
0
.
2 i j v=0 |rij + v|
(4.14)
En el caso de que η tome valores pequeños ocurre todo lo contrario.
Ası́ por ejemplo, el argumento de la función error complementaria en E rea (r)
se hace muy grande y la función en sı́ muy pequeña,
E rea (r) → 0.
(4.15)
Sin embargo, el segundo término de la ecuación (4.8) no se anula. El primero
de los argumentos de las funciones error complementarias toma valores positivos muy grandes, por lo que la función tiende a 0. En cambio, el segundo de
los argumentos toma valores grandes pero negativos, lo que hace que el valor
de la función error complementaria tienda a 2. Por lo tanto, este término
queda reducido a:
E
rec
N X
N X
1 X
cos(2πh · rij )
(r) →
qi qj
exp(−2πhzij ).
2A i j h6=0
h
(4.16)
El tercer término de la ecuación (4.8) tampoco se anula en este caso pero, a
diferencia de lo que ocurrı́a anteriormente, este hecho no se debe a la parte
proporcional a η (que es cero) sino al argumento de la función error que, es
grande y positivo, de tal forma que E ult queda reducido a:
N
πX
qi qj zij .
A i
(4.17)
N
2 X
E self (r) = − √
q2.
η π i i
(4.18)
E ult (r) = −
El término de autopotencial adquiere una importancia relevante en estas
situaciones debido a su dependencia como 1/η con η,
Reagrupando cada una de las contribuciones llegamos a:
E η1 =
N X
N X
1 X
cos(2πh · rij )
qi qj
exp(−2πhzij )
2A i j h6=0
h
−
N
N
πX
2 X
qi qj zij − √
q2.
A i
η π i i
(4.19)
4.5. Lı́mites asintóticos del algoritmo con el parámetro η
52
De los tres términos anteriores, el primero viene del término recı́proco puro,
E rec . El segundo, representa la contribución energética en la dirección perpendicular al plano producto de la descomposición de las coordenadas iónicas
en el espacio recı́proco. Y el tercero, es el término de autopotencial que corrige las interacciones de los iones con sus imágenes introducidas de forma
artificial en el espacio recı́proco (sección 3.3). Esto explica razonablemente
el hecho de que a valores pequeños de η la parte real converja rápidamente
y sea la parte recı́proca la que mayor peso tenga en el resultado final.
Si, como antes, analizamos el caso particular en que E ult (r) = 0, la ecuación (4.19) queda reducida a:
E
η1
N X
N X
N
2 X
1 X
cos(2πh · rij )
√
qi2 . (4.20)
exp(−2πhzij ) −
=
qi qj
2A i j h6=0
h
η π i
Se puede demostrar que ésta expresión no es más que la suma de Coulomb
realizada en espacio recı́proco. Esto nos llevarı́a, no obstante, fuera de los
objetivos de este trabajo.
Capı́tulo 5
Implementación computacional
En este capı́tulo presentamos el principal objetivo de este trabajo: la implementación computacional del algoritmo bidimensional para el cálculo de
energı́as electrostáticas en cristales iónicos desarrollado por Heyes, Barber
y Clarke, discutido en la sección 3.3. También se presentan los métodos de
Ewald tridimensional corregido y el de sumas directas, pudiéndose ası́ hacer
un estudio comparativo de los métodos a través de los resultados obtenidos
para distintos sistemas. Los códigos implantados con este fin han sido escritos en el lenguaje de programación FORTRAN77. Todas las variables utilizadas
son de doble precisión, lo que nos permite trabajar con 15-16 cifras significativas. También se ha utilizado una rutina para el cálculo de la función
error complementaria basada en una aproximación racional a dicha función
por polinomios de Chebyshev [48]. Esta aproximación posee una precisión
relativa mejor que 10−15 . La función error se calcula en todo momento de
acuerdo con la relación: erf(x) = 1 − erfc(x). Para el resto de funciones
matemáticas se han utilizado las rutinas intrı́nsecas de la máquina. En esta
sección se describe el fundamento de los distintos códigos de forma sencilla
mediante pseudo-código. Una presentación más detallada de estos códigos se
encuentra en el apéndice A.
5.1
Implementación del algoritmo HBC
Con el objeto de optimizar el tiempo de cálculo, se ha dividido el programa
en tres bloques claramente diferenciados. En el primero de ellos se calculan
una colección importante de variables que son comunes a todos los iones de
la red. Entre esta colección de variables se encuentran los parámetros de la
red recı́proca (a∗ , b∗ , c∗ , α∗ , β ∗ , γ ∗ ), el volumen de la celda y el valor de ηopt
elegido de tal forma que la convergencia de las sumas sea óptima tal y como
53
5.1. Implementación del algoritmo HBC
54
se discutió en la sección 4.1,
η=√
1
πa∗min a∗max
.
(5.1)
También es de gran utilidad para reducir el coste computacional llevar a cabo
las sumas real y recı́proca simultáneamente. Esto se consigue describiendo los
vectores de la red real y la recı́proca mediante un único conjunto de ı́ndices
(n1 , n2 ). De acuerdo con esto, v = n1 a+n2 b y h = n1 a∗ +n2 b∗ . Es en
este primer bloque en el que se construye ese vector único y donde, además,
se agrupa la suma en capas de tal forma que la suma cumpla la geometrı́a
descrita por la Figura 3.7. Este bloque tiene estructura de subrutina de
inicialización y se denomina preew2D.
El segundo de los bloques es el más extenso. Calcula potenciales electrostáticos sobre puntos de la red. Obteniendo potenciales y no energı́as electrostáticas directamente se ahorran gran número de operaciones. La energı́a
electrostática de red puede escribirse de forma reducida como:
E=
N X
N
N
1X
1X
qi qj fij +
qi2 gi ,
2 i j
2 i
(5.2)
donde fij y gi son funciones que dependen del par de iones i, j y del ion i,
respectivamente. De acuerdo con esto, es fácil definir el potencial sobre un
punto dado debido a una distribución de cargas puntuales como:
Vi =
N
X
qj fij + qi gi ,
(5.3)
j
de tal forma que se cumple que:
E=
N
1X
q i Vi .
2 i
(5.4)
De esta forma, calculando en primer lugar potenciales sobre cada ion y posteriormente la energı́a de red total, reducimos los triples y dobles sumatorios
de la formulación HBC original a sumatorios dobles y simples más fácilmente
manipulables y rápidos.
Dentro de este segundo bloque, encontramos, a su vez, dos partes claramente diferenciadas. En la primera de ellas se llevan a cabo manipulaciones
preparativas sobre el sistema de estudio. En primer lugar, se fija el centro de la celda unidad en el punto sobre el que se calcula el potencial y,
posteriormente se construye la celda unidad y se asignan las cargas de sus
5.1. Implementación del algoritmo HBC
55
iones mediante el método de Evjen [5]. Este método es otra de las técnicas
más utilizadas para mejorar la convergencia de las sumas coulombianas. Su
principio fundamental es el de sumar capas de celdas unidad eléctricamente
neutras, eliminando ası́ las fuertes oscilaciones que sufre el potencial cuando
se suman capas de celdas de signos opuestos. Para conseguir la electroneutralidad de las capas de celdas unidad, se asigna a cada ion de la capa que
se va a sumar, una carga que será función de su posición. A los iones que se
encuentren situados en el interior de la celda, se les asigna su carga nominal.
En cambio, a aquellos iones que se encuentren en la frontera entre varias celdas se les asigna una carga igual a su carga nominal dividida por el número
de celdas que comparte. Al aplicar el método de Evjen y considerar como
centro de la celda el punto donde se calcula el potencial, logramos construir
subsistemas neutros para todas las contribuciones de la suma. La sección del
código correspondiente a estas transformaciones tiene la forma:
para 1 (las coordenadas dentro del plano)
para (todos los iones de la celda unidad)
si (están en la frontera de la celda)
entonces qi = (1/ni ) qi
para 2 (todas las coordenadas de los átomos)
si 1 = 2
entonces (construye imagen reflejada del ion)
fin − para
fin − si
fin − para
fin − para
A continuación se computa cada uno de los términos que integran la
formulación HBC. Las contribuciones real y recı́proca se llevan a cabo de
forma simultánea. Sin embargo, hay que tener en cuenta que la serie recı́proca
está definida para todos los vectores tales que h 6= 0 mientras que la serie
real incluye el valor v = 0 (salvo en el término i = j ). Esta es la razón por
la que en nuestro código se calcula de manera independiente la contribución
de los iones dentro de la celda de simulación, que llamaremos contribución
de capa cero, del resto de las capas. El pseudo-código correspondiente tiene
la forma:
para(todos los iones en la celda central)
si(la distancia es mayor que cero)
calcular V0rea
V0 ← V0 + V rea
fin − si
fin − para
V ← V0
5.1. Implementación del algoritmo HBC
56
El resto de las capas de la red real se computan conjuntamente con las de
la serie recı́proca. Estas sumas prosiguen hasta convergencia o, en su defecto,
hasta un cierto valor lı́mite, mlayer, que, en caso de ser alcanzado, fuerza
la emisión de un mensaje de alerta indicando la imposibilidad de alcanzar la
convergencia exigida. El pseudo-código que describe este proceso es:
mientras(capas sumadas sea menor que mlayer y V 0 no converja)
para(todos los vectores de cada capa)
para(todos los iones de la celda)
calcular V rec , V rea
V1rec ← V1rec + V rec
V1rea ← V1rea + V rea
fin − para
acumular V1rec , V1rea
V 0 ← V 0 + V1rea + V1rec + V1rec
fin − para
fin − mientras
V ←V +V0
Ninguna de las restantes contribuciones introduce problemas computacionales, por lo que se calculan de forma directa. Este conjunto de manipulaciones
y cálculos forman el núcleo de la subrutina denominada few2D.
El último de los bloques calcula la energı́a electrostática total de la red.
De acuerdo con las ecuaciones (5.3) y (5.4) se construye el pseudo-código:
para(todos los iones de la celda unidad)
calcular Vi
E ← E + 21 qi Vi
fin − para
Este último bloque es el que constituye el programa raı́z y recibe el nombre
de mad2D. En la Figura 5.1 se muestra esquemáticamente el funcionamiento
del código descrito en esta sección. En ella se aprecia claramente como es el
bloque mad2D el que recibe los datos del problema, el que transfiere el control
a las distintas subrutinas en cada caso, y el que nos devuelve el resultado final.
En la Figura 5.1 tambien se pone de manifiesto una clara diferencia entre las
dos subrutinas descritas, y es que mientras que a la subrutina preew2D se le
transfiere el control una única vez, a la segunda, mad2D, se le transfiere el
control tantas veces como iones posea la celda unidad. La explicación radica
en la función de cada una. La primera tiene la misión de calcular variables
que son comunes a todos los iones de la celda y que, por tanto, basta con
calcular una sola vez. En cambio, la segunda calcula el valor del potencial
de Coulomb sobre un punto y, de acuerdo con la ecuación (5.4), deberá ser
calculado tantas veces como iones posea la celda unidad.
5.2. Implementación del algoritmo de Ewald corregido
mad2D
preew2D
57
INPUT
Cálculo de
variables comunes
i=1
mad2D
i = ncel?
sí
OUTPUT
i=i+1
no
few2D
Cálculo de Potenciales
Figura 5.1: Diagrama de flujo del código mad2D.
5.2
Implementación del algoritmo de Ewald
corregido
El código de Ewald 3D corregido (E3DC) se ha construido manteniendo la estructura del código bidimensional. En el primer módulo se siguen calculando
las variables comunes y de inicialización. La diferencia con el código bidimensional aparece en la construcción del vector único que guı́a a las sumas real
y recı́proca, ya que en este caso debe ser periódico en las tres dimensiones.
Es decir, debe estar compuesto por una terna de ı́ndices, (n1 , n2 , n3 ), de tal
forma que los vectores en el espacio real y recı́proco sean: v= n1 a +n2 b+n3 c
y h= n1 a∗ +n2 b∗ +n3 c∗ respectivamente. Al igual que ocurre con el código
bidimensional, este vector único, ası́ como un gran número de variables que
son comunes a todos los iones de la red, se calculan en una subrutina de
inicialización que recibe el nombre de preew3DC.
La naturaleza tridimensional del problema también se propaga al segundo
5.2. Implementación del algoritmo de Ewald corregido
58
de los bloques. En la construcción del cristal debemos replicar los iones en
las tres direcciones del espacio y no sólo en el plano. El resto del bloque es
completamente análogo al bidimensional descrito en la sección anterior:
para 1 (todas las coordenadas de cada ión)
para (todos los iones de la celda unidad)
si (están en la frontera de la celda)
entonces qi = (1/ni ) qi
para 2 (todas las coordenadas de los átomos)
si 1 = 2
entonces(construye imagen reflejada del ion)
fin − para
fin − si
fin − para
fin − para
La subrutina donde se llevan a cabo toda esta serie de manipulaciones y los
correspondientes cálculos de potenciales, recibe el nombre de few3DC.
El tercer bloque, mad3DC, sigue teniendo las mismas funciones de transferencia de control, de lectura de los datos del cristal y es el que devuelve el
valor de la energı́a electrostática de red total. Pero, en esta ocasión, también tiene la misión de calcular dos tipos diferentes de suma; la de geometrı́a
esférica en el vacı́o (s = 1) y la de geometrı́a plana. El término dependiente
de la forma del cristal para la suma esférica tiene la forma:
para (todos los iones en la celda unidad)
calcular ri , qi
ews ← ews + qi ri
fin − para
2
spher ← 2π ews
3∆
En cambio, la suma plana tiene la forma:
para (todos los iones de la celda unidad)
calcular zi , qi
ews ← ews + qi zi
fin − para
2
plane ← 2π ews
∆
Y ası́, la energı́a de Coulomb total para cada uno de los tipos de suma se
obtiene:
para (todos los iones en la celda unidad)
acumular Vi
E ← E + 12 qi Vi
fin − para
Eplane ← plane + Etot
Espher ← spher + Etot
5.3. Método de Sumas directas o Fuerza bruta
mad3DC
preew3DC
59
INPUT
Cálculo de
variables comunes
i=1
mad3DC
i = ncel?
sí
OUTPUT
i=i+1
no
few3DC
Cálculo de Potenciales
Figura 5.2: Diagrama de flujo del código mad3DC.
En la Figura 5.2 se muestra esquemáticamente el flujo de órdenes de
este código. En ella se puede apreciar como el código mad3DC mantiene
una estructura en bloques completamente análoga al descrito en la sección
anterior.
5.3
Método de Sumas directas o Fuerza bruta
El método de Fuerza bruta (BF) es el más sencillo de implementar, pero,
también el que mayor tiempo de cálculo requiere. No obstante, es su sencillez lo que hace interesante su implementación computacional con el fin de
tener un patrón bajo el cual poder estudiar la calidad de los diferentes códigos bidimensionales descritos anteriorente. Este método no aplica ninguna
técnica de aceleración de convergencia a la energı́a electrostática tradicional,
5.3. Método de Sumas directas o Fuerza bruta
60
sino que la calcula mediante la suma sucesiva de celdas imagen. Esta suma
se hace por capas, en virtud de su distancia con respecto a la celda central.
El código diseñado con este fin, mantiene una estructura similar a la de
los anteriores. Consta de dos bloques. El primero de ellos, brute, lleva a
cabo una serie de manipulaciones completamente análogas a las descrita en
el algoritmo bidimensional. También conserva del algoritmo bidimensional
la contribución de capa cero y la forma en la que se construye el vector de
imágenes de la red real. La diferencia radica principalmente en la forma de
llevar a cabo la suma, ya que no se calcula hasta convergencia (ya hemos
comentado la extrema lentitud con la que esta se alcanza) sino que se realiza
hasta un número determinado de capas. Además, esta suma se realiza de
forma simultánea a la construcción del vector real de las imágenes de la
celda:
para (valores enteros positivos en el plano xy)
construir (el vector real de imágenes)
para (todos los iones de la celda unidad)
acumular ewrea1, ewrea2
i
ewrea1 ← ewrea1 + |riq+v|
qi
ewrea2 ← ewrea2 + |ri −v|
fin − para
ewsh ← ewsh + ewrea1 + ewrea2
finconstruir
fin − para
En el segundo de los bloques, brutetot, se calcula la energı́a electrostática
de acuerdo a las ecuaciones (5.3) y (5.4). En él, también se calcula una
pequeña colección de parámetros necesarios para la subrutina brute.
para (todos los iones en la celda unidad)
calcular Vi
E ← E + 12 qi Vi
fin − para
Capı́tulo 6
Comparación con otros
algoritmos
A lo largo de todo el trabajo, hemos presentado y estudiado cualitativamente distintos algoritmos aplicables al estudio de la energı́a electrostática en
sistemas bidimensionales. En este capı́tulo se realiza un estudio cuantitativo
de alguno de estos algoritmos. En primer lugar se demuestra la conveniencia
de la utilización del formalismo HBC frente al de fuerza bruta en base a dos
criterios fundamentales como son: la calidad de los resultados y el tiempo de
cálculo. El capı́tulo concluye con la a sección 6.2 en la que se trata de comparar los códigos mad3DC y mad2D para el cálculo de energı́as electrostáticas
de red en distintos sistemas.
Todos los cálculos incluidos en esta sección han sido realizados en un
ordenador personal con procesador PentiumII a 300 MHz que trabaja bajo
el sistema operativo Linux 2.2.
6.1
Justificación del método HBC frente a las
sumas directas
A lo largo de todo el trabajo hemos indicado en repetidas ocasiones la extrema lentitud de los métodos de fuerza bruta y la necesidad de desarrollar
distintos algoritmos para tratar este problema. Sin embargo, aún no se ha
estudiado este apartado en profundidad. La presente sección trata de justificar la utilización del algoritmo HBC frente al método de fuerza bruta en
base a dos criterios fundamentales en las simulaciones computacionales como
son: el tiempo de cálculo y la calidad de los resultados obtenidos.
Con este fin, hemos realizados cálculos del potencial electrostático sobre
los cationes de los slabs ya presentados en los capı́tulos precedentes:los de las
61
6.1. Justificación del método HBC frente a las sumas directas
slab
NaCl
CaF2
CsCl
Hex.
Mon.
Tric.
Método de Sumas
vec. sum t. cálculo
501000
53”
501000
52”
501000
42”
4503000
17’ 31”
4503000
17’ 33”
4503000
18’ 13”
Directas
potencial
-0.320443261
-1.008956480
-0.150808384
-0.522465728
-0.682076193
-0.751808121
62
Método HBC
t. cálculo
potencial
< 1”
-0.320443261
< 1”
-1.008956480
< 1”
-0.150808384
1”
-0.522559197
3”
-0.682091347
3”
-0.751934332
Tabla 6.1: Tiempo empleado en el cálculo del potencial electrostático sobre el
catión de los distintos slabs para los métodos HBC y sumas directas.
estructuras de NaCl (Figura 3.5), CaF2 (Figura 4.1), CsCl (Figura 3.6) y el
slab hexagonal presentado en la Figura 3.2. Además de éstos, se tratan dos
nuevos slabs pertenecientes a los sistemas monoclı́nico (a = 1, b = 4, c = 2
Å y α = 90, β = 120, γ = 90) y triclı́nico (a = 1, b = 4, c = 2 Å y α =
100, β = 75, γ = 90), respectivamente, que constan de dos iones iguales de
cargas opuestas en las posiciones (1,0,0), el anión, y (0.5,0.5,0.5) el catión.
Estos dos nuevos sistemas se construyen por intersección entre los planos de
la familia (0,0,1) con z = 0 y z = 1/2 y la celda unidad de los sistemas
monoclı́nico y triclı́nico descritas anteriormente.
En la Tabla 6.1 se muestran los resultados derivados de los cálculos del
potencial electrostático sobre los cationes de los distintos sistemas mediante
los dos métodos objeto de estudio, ası́ como el tiempo empleado para ello. En
ella se puede apreciar que, para sistemas cúbicos, los resultados producidos
empleando las sumas directas convergen al mismo valor que los resultados
HBC. Sin embargo, el tiempo empleado para ello es mucho mayor que el
utilizado por HBC. Mientras los primeros están cerca del minuto, los últimos
son inferiores al segundo.
El contraste se hace mucho mayor en los slabs de los sistemas hexagonal,
monoclı́nico y triclı́nico. Los resultados de fuerza bruta para estos sistemas
revelan resultados no convergidos aún cuando el número de imágenes sumado
es del orden de 9 veces superior a los empleados para los sistemas cúbicos.
Además, el tiempo empleado para la suma en estos sistemas es también muy
elevado. Mientras que los cálculos HBC requieren un tiempo de cálculo del
orden de 1 a 3 segundos, el tiempo requerido para los primeros oscila entre
17 y 18 minutos.
Además, debemos tener en cuenta que los datos presentados en la Tabla 6.1 son resultado del cálculo del potencial sobre uno de los iones de la
6.2. Cómputo de la energı́a electrostática
63
celda unidad y que, para calcular la energı́a electrostática de red total necesitarı́amos realizar esta misma operación tantas veces como iones posea la
celda (ecuación 5.4). Esto hace que el tiempo de cálculo aumente de manera
muy notable haciendo prohibitivo el uso del método de sumas directas.
Por lo tanto, se pone claramente de manifiesto la vital importancia de
la utilización de algoritmos especiales, en concreto el HBC, en la simulación
computacional de los potenciales electrostáticos ante la imposibilidad de la
aplicación directa de la ecuación (3.1).
Otro hecho a destacar, a tenor de los datos de la Tabla 6.1, es la difı́cil
convergencia de la ecuación (3.1) cuando los sistemas se alejan de la simetrı́a
cúbica, lo que no hace sino confirmar lo que ya se avanzó de forma somera
en el capı́tulo 3 (véase Tabla 3.2).
6.2
Cómputo de la energı́a electrostática: comportamiento mad2D frente mad3DC
A pesar de que a lo largo de casi todo el trabajo hemos estado manejando, por comodidad y rapidez, potenciales electrostáticos, el objetivo final de
los códigos implementados computacionalmente y descritos en el capı́tulo 5
(mad2D, mad3DC y brutetot), es el cálculo de energı́as electrostáticas de red
en sistemas bidimensionales. En la presente sección se recoge un estudio comparativo de las energı́as obtenidas mediante la aplicación de los tres códigos
descritos en el capı́tulo 4 a los distintos sistemas ya estudiados.
En la Tabla 6.2 se muestran las energı́as obtenidas para el slab de NaCl
presentado en la Figura 3.5. En ella se puede apreciar cómo a medida que
aumenta el parámetro de red c, es decir, la distancia entre dos slabs sucesivos,
los valores obtenidos mediante el método E3DC utilizando una geometrı́a
de suma plana (mad3DC plane) convergen rápidamente (para c = 5a) a
los valores obtenidos en los códigos bidimensionales puros. Además, esta
convergencia se mantiene para todos los valores de c mayores al indicado.
Esto se debe al carácter simétrico de la celda de NaCl cuyo momento dipolar
en la dirección del eje z es nulo, y con ello también el término dependiente
de la forma en la geometrı́a plana del método E3DC (sección 3.4). Ésto,
unido a que el potencial tridimensional tambien convergı́a al potencial HBC
cuando c = 5a (Tabla 3.3) hace que el valor de la energı́a coincida con el
bidimensional puro cuando c ≥ 5a. En cambio, el módulo de E3DC cuya
geometrı́a de suma de imágenes es esférica (mad3DC spheric) tiende al valor
correcto pero de forma mucho más lenta.
Si analizamos ahora el slab de CsCl, encontramos un comportamiento
6.2. Cómputo de la energı́a electrostática
c/a
1
2
5
10
20
50
100
200
500
1000
mad2D
brutetot
64
mad3DC
mad3DC
plane
spheric
1.33147779 1.14644717
1.28177989 1.18926458
1.28177304 1.24476692
1.28177304 1.26326998
1.28177304 1.27252151
1.28177304 1.27807243
1.28177304 1.27992274
1.28177304 1.28084789
1.28177304 1.28140297
1.28177304 1.28158800
1.28177304
1.28177304
Tabla 6.2: Energı́a electrostática (hartree) de red total del slab de NaCl empleando
distintos tamaños para el espaciado entre slabs de los modelos tridimensionales y
dos geometrı́as de suma. La primera de ellas plana (plane) y la segunda, esférica
(spheric).
c/a
1
2
5
10
20
50
100
200
500
1000
mad2D
brutetot
mad3DC
mad3DC
plane
spheric
0.464565183 1.997768810
0.619475662 1.386077480
0.619822458 0.926463183
0.619822458 0.773142820
0.619822456 0.696482637
0.619822449 0.650486521
0.619822295 0.635154331
0.619822162 0.627488180
0.619820610 0.622887017
0.619816452 0.621349656
0.619822458
0.619822458
Tabla 6.3: Energı́a electrostática (hartree) de red total del slab de CsCl empleando
distintos tamaños para el espaciado entre slabs de los modelos tridimensionales y
dos geometrı́as de suma. La primera de ellas plana (plane) y la segunda, esférica
(spheric).
6.2. Cómputo de la energı́a electrostática
c/a
0.5
1
2
5
10
20
50
100
200
500
1000
mad2D
brutetot
65
mad3DC
mad3DC
plane
spheric
-0.354343806 -0.345920508
-0.518196078 -0.513984429
-0.522556128 -0.520450304
-0.522559197 -0.521716867
-0.522559197 -0.522138032
-0.522559197 -0.522348615
-0.522559171 -0.522474938
-0.522559091 -0.522516974
-0.522558651 -0.522537593
-0.522555230 -0.522546807
-0.522549977 -0.522545765
-0.522559197
-0.522465728
Tabla 6.4: Energı́a electrostática (hartree) de red total del slab hexagonal (Figura
3.2) empleando distintos tamaños para el espaciado entre slabs de los modelos
tridimensionales y dos geometrı́as de suma. La primera de ellas plana (plane) y la
segunda, esférica (spheric).
parecido al anterior. A medida que aumenta el valor del espacio creado entre capas de iones, las energı́as obtenidas en E3DC con geometrı́a esférica
parece que convergen, aunque de forma muy lenta, a los valores devueltos
por los códigos bidimensionales puros. Por el contrario, la suma plana correspondiente a E3DC converge al valor correcto rápidamente al aumentar
c (c = 5a). Sin embargo, a diferencia de lo que ocurrı́a en el caso anterior,
la convergencia se mantiene únicamente en un intervalo de valores de c. Si
volvemos a la Tabla 6.3 podemos ver que los valores del potencial calculados
mediante el método de Ewald tradicional creando espacios vacı́os, no llegan
a converger a los bidimensionales aún cuando éstos eran muy grandes. De
aquı́ se extrae la importancia de la inclusión del término dependiente de la
forma en el modelo E3DC (ecuación (3.24)), ya que, de lo contrario, no se
podrı́a aplicar el método de Ewald tradicional sin emplear grandes distancias en la dirección perpendicular al plano del slab, lo cual encarece el cálculo
tal y como se desprende de los resultados obtenidos para el slab hexagonal
(Tabla 6.1).
El caso del slab hexagonal (Tabla 6.4) presentado en la Figura 3.2 es
completamente análogo al anterior. Los resultados E3DC con geometrı́a
6.2. Cómputo de la energı́a electrostática
c/a
0.5
1
2
5
10
20
50
100
200
500
1000
mad2D
66
mad3DC brutetot
13”
25’47”
12”
26’02”
12”
25’18”
12”
25’44”
12”
26’19”
12”
26’10”
13”
26’12”
12”
25’16”
14”
26’03”
16”
25’49”
22”
26’52”
2”
Tabla 6.5: Tiempo empleado en el cálculo de la energı́a electrostática de red total
para el slab hexagonal (Figura 3.2) empleando distintos métodos y tamaños para
el espaciado entre slabs.
plana convergen a los bidimensionales puros, pero sólo en un intervalo de
valores de c determinado. En cambio, los E3DC esférico tienden lentamente
a los E2D. También se pone de manifiesto en el cálculo de la energı́a la difı́cil
convergencia de los sistemas no cúbicos, ya que, a diferencia de lo que ocurrı́a
en los casos anteriores, aquı́ los resultados de fuerza bruta no coinciden en
todas sus cifras significativas con los de E2D.
Un hecho a destacar y que es común a los tres sistemas es la enorme
magnitud del error que se cometerı́a si no se introdujeran espacios vacı́os
que minimicen las interacciones entre capas de iones. De esta forma queda
demostrada empı́ricamente la necesidad de crear estos espacios junto con la
de la utilización del término dependiente de la forma desarrollado por E. R.
Smith [17].
A pesar de que, como ha quedado demostrado, el método E3DC con
geometrı́a plana es, en muchos casos, equivalente a E2D, su utilización no es
ventajosa frente a E2D ya que requiere un mayor tiempo de computación. En
la Tabla 6.5 se muestran los tiempos requeridos para alcanzar la convergencia
(10−9 ) de los tres códigos implementados en el estudio del slab hexagonal.
También se puede apreciar cómo, a medida que aumenta el valor del
parámetro de red c, el número de capas sumadas en E3DC aumenta de forma
lineal en escala logarı́tmica (Figura 6.1). Es decir, cumple la relación:
log(capas) = z log(c/a) + k.
(6.1)
6.2. Cómputo de la energı́a electrostática
67
1.8
1.6
log(capas)
1.4
1.2
1.0
0.8
0.6
0.4
0.0
0.5
1.0
1.5
2.0
log(c/a)
2.5
3.0
Figura 6.1: Número de capas necesarias para alcanzar la convergencia en la energı́a
electrostática total del slab hexagonal.
Un ajuste lineal a esta relación revela la siguiente dependencia:
capas = 3.7670 · (c/a)0.3647
(6.2)
Este incremento en el número de capas provoca, a su vez, un aumento en el
tiempo de cálculo, siendo éste de 12 segundos en el rango de valores c ≤ 100a,
frente a los 2 segundos empleados por el código mad2D.
De acuerdo con esto, queda claro que, tanto en la calidad de los resultados,
como en el tiempo requerido, el modelo mad2D supera al resto. No obstante,
el modelo mad3DC es aplicable siempre que el espacio creado en la dirección
z esté en el intervalo 5a ≤ c ≤ 20a.
Capı́tulo 7
Aplicaciones: estudio del
potencial electrostático en
láminas de perovskita
En este capı́tulo vamos a aplicar nuestro código al estudio de slabs de un óxido ternario como es la perovskita. La celda unidad de este mineral, CaTiO3 ,
tiene una estructura cristalográfica en la cual los aniones de óxido y el catión voluminoso, (Ca+2 ), forman un ordenamiento cúbico compacto, y los
iones Ti+4 ocupan el interior de octaedros formados únicamente por aniones.
Esta estructura, Figura 7.1, es adoptada por un gran número de óxidos del
tipo ABO3 , en los cuales uno de los cationes posee un tamaño comparable
al del oxı́geno, mientras que el otro es mucho más pequeño que este anión.
La carga de los cationes puede ser variable, pero la suma total de las cargas
debe permanecer invariable y, en general, igual a +6. En esta estructura cris-
O (-2)
Ca (+2)
Ti (+4)
Figura 7.1: Celdilla unidad de la perovskita ideal.
68
7. Aplicaciones: estudio del potencial electrostático en láminas de perovskita 69
talizan compuestos como SrII TiIV O3 , BaII TiIV O3 , LaIII GaIII O3 , NaI NbV O3 ,
KI NbV O3 , ası́ como también, una gran cantidad de sulfuros mixtos: KZnS3
y KNiS3 . Estructuras análogas en las que los aniones son haluros, especialmente el F− , también existen con cationes de los grupos I-II: LiBaF3 , KNiF3 .
Aunque la estructura de la perovskita ideal es cúbica, en muchas ocasiones presenta una forma algo distorsionada. Este es el caso del óxido mixto
de titanio y bario. En él, el gran tamaño del catión Ba+2 hace que la celda
se alargue. Este elongamiento de la celda produce que los iones Ti+4 sean
demasiado pequeños para rellenar por completo los intersticios octaédricos.
Como consecuencia de esta distorsión, estos tipos de perovskitas presentan
comportamientos tanto ferroeléctrico como piezoeléctrico. Un cristal ferroeléctrico es aquel que posee un momento dipolar eléctrico permanente, aún
en ausencia de un campo externo que lo produzca. Este momento dipolar
permanente surge como consecuencia de un desplazamiento relativo de los
centros de cargas positivas y negativas. Estos materiales poseen una gran
variedad de aplicaciones, entre las que podemos destacar su uso como condensadores cerámicos de pequeño tamaño, o moduladores de haces de rayos
láser.
Muchas de estas aplicaciones dependen también de la naturaleza piezoeléctrica de este tipo de materiales. La piezoelectricidad es la propiedad de
adquirir (o alterar) una determinada polarización eléctrica bajo la acción de
una fuerza externa o, recı́procamente, la propiedad de modificar su forma
(o tamaño) por la acción de un campo externo. Esta propiedad, ha permitido utilizar los materiales ferroeléctricos como transductores para convertir
pulsos mecánicos en eléctricos y viceversa, y encontrar un extenso campo de
aplicación en generadores ultrasónicos y micrófonos.
Una descripción mas detallada de la naturaleza de los materiales ferroeléctricos y sus aplicaciones, puede encontrarse en [49] y [50].
Los slabs que se estudian en esta sección pretenden ser representativos
de las principales familias de planos cristalográficos. Con este fin hemos
construido tres tipos de slabs de perovskita. El primero de ellos, que denotaremos como slab1, contiene todos los iones comprendidos entre los planos
(0,0,1) con z = 0 y z = 1/2 (Figura 7.2) de tal forma que el slab resultante
es completamente ortogonal y posee unos parámetros de red a0 = a, b0 = a y
γ = 90◦ donde a es el parámetro de red de la celda original, y una extensión
a/2 en la dirección perpendicular, que denotaremos por conveniencia como
c.
El segundo slab, slab2, se construye entre dos planos de la familia (110)
que pasan por los puntos {0, 0, 0} y {0, 1/2, 0}, de tal forma que el √slab
resultante tiene unos nuevos ejes cristalográficos que cumplen que, a0 = 2a,
b0 = a y γ = 90◦ y una extensión en la dirección perpendicular al plano,
7. Aplicaciones: estudio del potencial electrostático en láminas de perovskita 70
c
b
a
Figura 7.2: Celda central del slab1, construida por intersección de los planos
(0,0,1) con z = 0 y z = 1/2 con la celda unidad del cristal de la perovskita ideal.
dir1
1
2
dir3
dir2
c
a
b
Figura 7.3: Celda central del slab2, que contiene todos los iones comprendidos
entre los planos (1,1,0) que pasan por los puntos {0, 0, 0} y {0, 1/2, 0} en el cristal
de la perovskita ideal. Las direcciones 1, 2 y 3 indican desplazamientos en la
dirección perpendicular al plano del slab y que pasan por los iones Ti +4 , Ca+2 y
O−2 respectivamente.
7.1. Superficie (0,0,1) (slab1)
71
c
a
1
b
3
dir1
2
dir3
dir2
Figura 7.4: Celda central del slab3. Contiene todos los iones comprendidos entre
los planos (1,1,1) que pasan por los puntos {0, 0, 0} y {0, 0, 1/2} en el cristal de la
perovskita cúbica. Las direcciones 1, 2 y 3 indican desplazamientos en la dirección
perpendicular al plano del slab.
c = a/2sen(α) tal y como indica la Figura 7.3, donde a y α son dos de los
parámetros de red del cristal de perovskita cúbico.
El último slab estudiado, slab3, se ilustra en la Figura 7.4. Como se puede
apreciar, se construye por intersección de los planos (111) que pasan por los
puntos {0, 0, 0} y {0, 0, 1/2} con el cristal de la perovskita.
Se
√ consigue ası́,◦
√
0
0
un slab con unos parámetros de red iguales a: a = 2a, b = 2a, y γ = 90
donde a vuelve a ser el parámetro de red del cristal de perovskita cúbico.
La extensión del slab en la dirección perpendicular al plano del slab tiene un
valor idéntico al del slab anterior.
7.1
Superficie (0,0,1) (slab1)
Como hemos venido señalando a lo largo de todo el trabajo, los slabs sólo
poseen periodicidad en dos de las tres dimensiones del espacio. De acuerdo
con esta propiedad, es de esperar que su potencial sea periódico en las direcciones en las que el cristal lo es, pero que decrezca al alejarse del slab en la
dirección en la que no existe esta periodicidad. En la Figura 7.5 se muestra
el potencial obtenido a lo largo de la dirección perpendicular al plano del
slab1 para una rejilla que recorre todos los puntos dentro y fuera de la celda
V (hartree)
7.1. Superficie (0,0,1) (slab1)
14
12
10
8
6
4
2
0
-2
-4
-6
-8
-1.0
72
Fuera del slab
-0.5
Slab
0.0
Fuera del slab
0.5
1.0
1.5
z/a
Figura 7.5: Potencial del slab1 a lo largo de lineas paralelas a la dirección perpendicular al plano del slab y que intersectan al mismo en un conjunto amplio de
puntos.
central del slab en intervalos de 0.1 unidades cristalográficas 1 . Como se
puede apreciar, en todos los casos el potencial electrostático decrece hasta
extinguirse, a medida que nos alejamos del slab por cualquiera de sus dos
superficies.
En el interior del slab, el potencial también puede llegar a anularse. Esta
situación se produce en puntos en los que los efectos de las cargas negativas y positivas cancelan. Un ejemplo claro se aprecia en sistemas de alta
simetrı́a como es el slab de NaCl presentado en las secciones anteriores (Figura 3.5). En este sistema las subredes catiónicas y aniónicas son totalmente
equivalentes, de forma que a cada posición aniónica de la superficie inferior
del slab le corresponde un catión de igual carga en la superficie superior, y,
de forma totalmente análoga, a cada catión le corresponde un anión. Esto
hace que las dos superficies sean equivalentes y que el potencial creado por
ambas superficies se anule en el punto medio de separación entre ambas. En
1
Aunque, al no haber periodicidad más que en dos dimensiones, no existe una coordenada cristalográfica en la dirección perpendicular al plano del slab, por comodidad, vamos
a referirnos a ella como si de verdad existiera
7.1. Superficie (0,0,1) (slab1)
73
Figura 7.6: Isosuperficies de potencial nulo en el slab de NaCl. Las esferas verdes
representan a los aniones y las magenta hacen lo propio con los cationes. A la
izquierda se representan las isosuperficies de potencial cero a lo largo de la dirección
perpendicular al plano del slab. En la derecha, se ilustra la proyección de estas
isosuperficies sobre el plano del slab.
la Figura 7.6 se representa la isosuperficie de potencial V = 0 (a la izquierda) y su proyección sobre el plano del slab (a la derecha). Se puede apreciar
claramente cómo el potencial presenta valores nulos en todos los planos que
bisectan la distancia entre dos iones consecutivos, debido a la alta simetrı́a.
Una muestra más de la simetrı́a del NaCl se ilustra en la Figura 7.7,
en la que se representa el potencial en los puntos [0,0,z] variando z desde
−1.5a hasta 2a (bohr). Nótese cómo los potenciales catiónicos y aniónicos
son iguales pero cambiados de signo y, cómo a medida que nos alejamos del
slab, el potencial se aproxima a cero como una función que decrece muy
rápido con la distancia.
En el slab1, sin embargo, los centros aniónicos y catiónicos no son equivalentes. En la Figura 7.8 se comparan las superficies de potencial V = 0.5
hartree para el slab de NaCl (a la izquierda) y el slab1 (a la derecha). En
el primero, las superficies de potencial creadas por los aniones (esferas verdes) y que se representan en color blanco para valores de z positivos y en
dorado para valores negativos, son iguales a las creadas por los cationes (esferas magenta) y que se representan en dos tonos diferentes de azul. El más
oscuro se destina a los potenciales obtenidos por debajo de la superficie del
slab y el más claro, para los obtenidos a valores de z positivos. Las mismas
7.1. Superficie (0,0,1) (slab1)
74
2.0
1.5
V (hartree)
1.0
Cl(+)
0.5
0.0
-0.5
Na(+)
-1.0
-1.5
Fuera del slab
-2.0
-1.5
-1.0
-0.5
Slab
0.0
Fuera del slab
0.5
1.0
1.5
2.0
z/a
Figura 7.7: Potencial electrostático creado por el slab de NaCl con a = b = 10.5
Å a lo largo de la dirección [0,0,z]. Tanto el anión como el catión están sometidos
a potenciales idénticos pero de signos contrarios.
Figura 7.8: Isosuperficies de potencial V = 0.5 hartree para el slab de NaCl con
a = b = 10.5 Å (izquierda) y el slab1 con a = b = 2.302 Å (derecha).
7.1. Superficie (0,0,1) (slab1)
75
V (hartree)
10
5
O(-2)
0
-5
Ti(+4)
Fuera del slab
-1.5
-1.0
-0.5
Slab
0.0
Fuera del slab
0.5
1.0
1.5
2.0
z/a
Figura 7.9: Potencial creado por el slab1 con a = b = 2.302 Å a lo largo de la
dirección [0,0,z]. El potencial electrostático fuera del slab se extingue exponencialmente.
isosuperficies para el slab1, en cambio, presentan un panorama totalmente
distinto tal y como se observa en la figura. La diferencia más notable la
encontramos en la proximidad de las superficies de potencial a las posiciones
de los iones. Mientras que en el slab de NaCl estas superficies envuelven a
los iones a distancias relativamente próximas, en nuestro ejemplo, en cambio,
estas superficies se hallan más alejadas de los iones (tanto más cuanto mayor
sea la carga de los mismos) de tal forma que, a diferencia de lo que pasa con
el NaCl, llegan a perder su aspecto esférica por efecto de los iones vecinos.
De acuerdo con esto, el comportamiento del potencial a lo largo del eje z
perpendicular al plano periódico del slab debe de ser diferente, si bien debe
mantener unas pautas de comportamiento similares a las del slab de NaCl.
Ası́, por ejemplo, en el estudio de la vertical [0,0,z] (Figura 7.9), con z comprendido entre -1.5a y 2a, se puede observar como el Ti+4 y el O−2 producen
potenciales de signos opuestos, y cómo, al alejarnos de las superficies del
slab, estos potenciales decrecen desde un máximo situado en las posiciones
adyacentes al ion hasta cero como una exponencial decreciente, concordando
perfectamente con lo establecido en el trabajo de Frank E. Harris [51].
7.1. Superficie (0,0,1) (slab1)
6
76
Fuera del slab
Slab
Fuera del slab
V (hartree)
4
(a)
O(-2)
2
0
-2
-4
-6
-1.5
-1.0
-0.5
0.0
0.5
1.0
1.5
2.0
z/a
6
V (hartree)
4
(b)
2
0
-2
Ca(+2)
-4
-6
-1.5
Fuera del slab
-1.0
-0.5
Slab
0.0
Fuera del slab
0.5
1.0
1.5
2.0
z/a
Figura 7.10: Variación de potencial en la vertical de las posiciones del oxı́geno
[1/2,0,z] (a) y calcio [1/2,1/2,z] (b) en el slab1 (a = b = 2.302 Å).
7.1. Superficie (0,0,1) (slab1)
77
Figura 7.11: Isosuperficie V = 0 hartree para el slab1 (a = b = 2.302 Å). Las
esferas magenta representan los cationes Ti +4 y las rojas los aniones O−2 .
Si comparamos ahora la vertical de las posiciones aniónica del O−2 [1/2,0,z]
(Figura 7.10 a) y catiónica del Ca+2 [1/2,1/2,z] (Figura 7.10 b), encontramos
una ligera diferencia. Por un lado, el potencial del oxı́geno es muy simétrico,
presentando un comportamiento idéntico tanto en posiciones exteriores como interiores del slab. Esto indica que el potencial en esa dirección es muy
poco sensible al resto de iones del slab. En cambio, el potencial encontrado
en la vertical del catión divalente es menos simétrico. Si nos movemos en
la dirección de fuga del slab, el potencial decrece tal y como lo hacı́an los
casos anteriores. Sin embargo si nos desplazamos hacia valores negativos de
la coordenada z aparece un hombro de potencial en las posiciones próximas
a la superficie del slab, debido a la acción de los oxı́genos situados en el plano
z = 0.
7.1. Superficie (0,0,1) (slab1)
78
0.8
0.6
0.4
V (hartree)
0.2
0.0
-0.2
-0.4
-0.6
-0.8
-1.0
-1.2
-1.5
Fuera del slab
-1.0
-0.5
Slab
0.0
Fuera del slab
0.5
1.0
1.5
2.0
z/a
Figura 7.12: Variación del potencial a lo largo de la dirección [0.2,0.2,z] en el
slab1 (a = b = 2.302 Å). A diferencia de lo que ocurrı́a en el slab de NaCl, el
potencial no se anula en el punto medio del slab.
Otro aspecto interesante en este slab es la isosuperficie de potencial nulo,
V = 0 hartree, que se representa en la Figura 7.11. La superficie inferior del
slab1 guarda, salvo por el catión central, la misma estructura del NaCl en
cuanto a la disposición de aniones y cationes. Es de esperar, entonces, en el
plano z = 0 y en posiciones cercanas a ésta en las que la capa superior de
iones no tiene contribuciones apreciables, un comportamiento parecido, con
la salvedad de que el punto en el que se anula el potencial estará desplazado
levemente hacia el oxı́geno (esferas rojas), ya que el titanio (esferas magenta)
posee el doble de carga que el oxı́geno. Ası́ se aprecia en la Figura 7.11 y más
claramente en la Figura 7.12 donde se representa la variación de potencial en
puntos [0.2,0.2,z]. A medida que nos separamos de esas posiciones, la contribución de la capa superior se va haciendo notar, adquiriendo la superficie una
forma cóncava que envuelve al catión Ca+2 y que se extiende hasta z → ∞.
El mismo tipo de cuenca pero más achatado en su vértice por la acción de
los oxı́genos situados en la superficie superior, la presentan los iones Ti+4 a
medida que nos desplazamos a valores negativos y grandes de z.
7.2. Superficie (1,1,0) (slab2)
79
+σ( x )
S
d(x)
−σ( x )
S’
Figura 7.13: Esquematización de la formación de una capa dipolar.
7.2
Superficie (1,1,0) (slab2)
Cabe destacar que, a diferencia de lo que ocurrı́a en el slab1, los planos
que determinan los lı́mites superior e inferior de esta lámina poseen una determinada carga superficial σ, existiendo entre ambos un momento dipolar
permanente. Estas cargas superficiales son iguales pero de signos contrarios,
manteniendo ası́ la electroneutralidad del slab. El cálculo del potencial creado por este tipo de distribuciones dipolares es un problema habitual en la
electrostática [52] cuya solución expondremos a continuación.
Consideremos, una doble capa formada por una distribución superficial
de carga σ(x) en la superficie S, y muy cerca de ella una segunda superficie, S0 , provista de la misma densidad de carga pero con signo contrario en
puntos inmediatamente vecinos, como indica la Figura 7.13. La distribución
superficial de dipolos, D(x), se obtiene haciendo que las superficies S y S0 se
acerquen infinitesimalmente mientras la densidad de carga superficial, σ(x),
se hace infinita, de tal forma que el producto de σ(x) por la separación local
d(x) entre S y S0 tienda al lı́mite D(x):
lim σ(x)d(x) = D(x).
d(x)→0
(7.1)
El momento dipolar de la capa está dirigido según la normal a la superficie
S y su sentido es el que va desde las cargas negativas a las positivas.
Para hallar el potencial creado por esta doble capa vamos a analizar
matemáticamente el proceso de paso al lı́mite descrito de forma somera en
la definición de la distribución superficial de dipolos, D(x).
El potencial generado por una distribución superficial de carga en cualquier punto viene dado por [52]:
1
Φ(x) =
4π0
Z
s
σ(x0 )
da0 ,
0
|x − x |
(7.2)
donde a0 es el área de la superficie S, σ es la densidad de carga superficial
(C/m2 ) y |x − x0 | representa la distancia.
7.2. Superficie (1,1,0) (slab2)
80
n
da’
S
d(x’)
S’
x’
da’’
x’ - nd(x’)
O
Figura 7.14: Geometrı́a de la capa dipolar.
Abordemos ahora el paso lı́mite que se ilustra en la Figura 7.14. De acuerdo con la ecuación (7.2) y siendo n el vector unitario normal a la superficie
S, con sentido desde S0 hasta S, el potencial debido a las dos superficies es:
1
Φ(x) =
4π0
"Z
s
σ(x0 )
da0 −
|x − x0 |
Z
s0
σ(x0 )
da00 .
|x − x0 + nd|
#
(7.3)
Ya que estamos tratando el lı́mite de distancias pequeñas, podemos hacer
un desarrollo en serie de Taylor del denominador de la segunda integral de
la ecuación anterior. Teniendo en cuenta el desarrollo de |x + a|−1 para
|a| |x|:
1
1
1
+ · · ·,
(7.4)
= +a·5
|x + a|
x
x
si identificamos la x de la ecuación anterior como x → x − x0 y a → nd,
tenemos que:
!
1
1
1
=
+ nd · 5
+ · · ·.
0
0
|x − x + nd|
|x − x |
|x − x0 |
(7.5)
Sustituyendo la expresión anterior en la ecuación (7.3) y tendiendo en cuenta
la definición de D(x) (ecuación (7.1)), llegamos a:
1
Φ(x) =
4π0
"Z
σ(x0 )
da0 −
|x − x0 |
σ(x0 )
da00 +
|x − x0 |
!
#
1
da00 .
D(x )n · 5
0|
0
0
|x
−
x
s
s
s
(7.6)
En nuestro caso, las dos superficies estudiadas son idénticas, lo que reduce
la ecuación anterior de forma significativa:
Z
Z
0
!
1 Z
1
0
0
Φ(x) =
D(x )n · 5
da0 .
4π0 s
|x − x0 |
0
(7.7)
7.2. Superficie (1,1,0) (slab2)
81
n
θ
θ’
da’
S
|x-x’|
dΩ
P
Figura 7.15: Elemento de ángulo sólido, dΩ, con el que se observa el elemento de
área, da0 , desde el punto P en el que se evalúa el potencial.
Esta ecuación se puede interpretar de forma geométrica teniendo en cuenta
que:
!
cos(θ)da0
1
0
= −dΩ,
(7.8)
da
=
−
n · 50
|x − x0 |
|x − x0 |2
donde dΩ es el elemento de ángulo sólido con que se ve el elemento de área
desde el punto P en el que se evalúa el potencial, tal como indica la Figura
7.15. Si desde el punto de observación se ve la cara interna de la capa dipolar,
esto es, si el ángulo θ es agudo, entonces dΩ tiene signo positivo y la ecuación
7.8 se transforma en:
Φ(x) = −
1
4π0
Z
s
D(x0 )dΩ.
(7.9)
Si la densidad de momento dipolar, D, es constante, el potencial que crea la
capa es proporcional al producto del momento por el ángulo sólido con que
se ve la superficie desde el punto de observación, independientemente de su
forma.
2π
D
=− .
(7.10)
Φ(x) = −D
4π0
20
Al atravesar la doble capa, existe un salto en el potencial. Esto puede
verse haciendo que el punto de observación se acerque indefinidamente a la
capa doble. Entonces, se imagina la doble capa dividida en dos partes, una
de la cuales es un pequeño disco situado directamente sobre el punto de observación. El disco es lo bastante pequeño como para que sea sensiblemente
plano y con una densidad superficial de momento dipolar D constante. Es
evidente que se puede obtener el potencial por superposición lineal del potencial debido al disco y el potencial debido al resto. Se deduce claramente
7.2. Superficie (1,1,0) (slab2)
82
8
Slab
6
V (hartree)
4
2
0
Salto de potencial
-2
-4
Ti(+4)
-6
-2.0
-1.0
0.0
1.0
2.0
3.0
z/a
Figura 7.16: Variación del potencial creado por el slab2 con a = 3.256 y b = 2.302
Å a lo largo de la dirección perpendicular al plano sobre el ion Ti +4 (dir1 en la
Figura 7.3).
de la ecuación (7.9) que sólo el potencial debido al disco presenta una discontinuidad, de valor D/0 , al atravesar desde la cara interna a la externa.
El potencial vale -D/20 en el interior, mientras que en el exterior toma el
valor +D/20 . El potencial debido al resto de la capa, con el agujero que ha
dejado el disco, es continuo al atravesar el plano del agujero. Por lo tanto,
el salto total al atravesar la superficie es:
Φ2 − Φ1 = D/0 .
(7.11)
Un resultado análogo se obtiene al estudiar el campo eléctrico, E, al atravesar
una densidad superficial de carga [52].
Este salto de potencial se aprecia claramente en las Figuras 7.16 y 7.17,
donde se representa la variación del potencial a lo largo de la dirección z
perpendicular al plano de periodicidad en diferentes puntos del slab. Estas
figuras difieren notablemente de las mostradas en el slab1 debido a que, a
diferencia del caso anterior, el slab no es ortogonal y por lo tanto, la dirección
z perpendicular al plano del slab no coincide con ninguno de los ejes cristalográficos. Es decir, las direcciones 1, 2 y 3 esquematizadas en la Figura 7.4,
7.2. Superficie (1,1,0) (slab2)
83
6
O(-2)
4
V (hartree)
2
0
Salto de potencial
-2
Ca(+2)
-4
-6
-8
-10
Slab
-12
-2.0
-1.0
0.0
1.0
2.0
3.0
z/a
Figura 7.17: Variación del potencial a lo largo de la dirección perpendicular al
slab2 (a = 3.256, b = 2.302 Å) en las direcciones dir2 (linea discontinua y cuadros)
y dir3 (linea gruesa y puntos).
no recorren distancias entre átomos si no que las cruzan. De esta forma, los
potenciales obtenidos en esas direcciones varı́an bruscamente en función de
la proximidad a la que se encuentren los átomos (si recordamos, el potencial
es inversamente proporcional a la distancia, ecuación (2.1)). En este sentido
hay que destacar los dos picos pronunciados obtenidos en las direcciones 2
y 3 y que se ilustran en la Figura 7.17. Estos dos picos se deben a la gran
proximidad existente entre el punto donde se calcula el potencial en ese momento y los oxı́genos 1 y 2 de la Figura 7.3, respectivamente. Cabe destacar,
además, que este salto de potencial es simétrico con respecto al cero debido
a la naturaleza simétrica del algoritmo de Ewald bidimensional.
Los saltos de potencial obtenidos para este slab, concuerdan bastante
bien con los resultados teóricos calculados a partir de las ecuaciones (7.13)
y (7.11). En la Tabla 7.1 se comparan estos resultados obtenidos con el
teórico. Nótese que su discrepancia es relativamente pequeña, si bien ésta
es esperable debido a que estamos analizando un caso lı́mite como es el
acercamiento infinitesimal de las superficies S y S0 . Este lı́mite implica una
convergencia total de los valores del potencial con la distancia, la cual puede
7.2. Superficie (1,1,0) (slab2)
Dirección
x = 0, y = 0, z
x = 0, y = 1/2, z
x = 1/2, y = 1/2, z
valor medio
D/0
84
salto de potencial
5.4596714
5.4597131
5.4597131
5.4596993
5.4595000
Tabla 7.1: Saltos de potencial (hartree) obtenidos en la dirección perpendicular
al slab2 (a = 3.256, b = 2.302 Å), junto con el valor teórico esperado, D/ 0 .
Figura 7.18: Superficie de potencial cero en el slab2 (a = 3.256, b = 2.302 Å).
Los iones Ti+4 , Ca+2 y O−2 se identifican con las esferas de color magenta, rojo y
verde, respectivamente.
no haberse logrado por completo en el rango de valores estudiado en nuestro
sistema. De acuerdo con esto, podemos plantear una ecuación más explicita
para el valor del salto de potencial [53]:
4πD/As = φ|z=−∞ − φ|z=∞ ,
(7.12)
donde As representa el área del slab y surge como consecuencia de que en el
desarrollo se han utilizado cargas superficiales y no densidades, y el factor
4π es el valor de la permitividad en el vacı́o, 0 , en unidades atómicas.
Si ahora estudiamos la superficie de potencial nulo (Figura 7.18), podemos
comprobar cómo el potencial sólo se anula en posiciones interiores del slab y
por compensación entre las contribuciones catiónicas y aniónicas, pero nunca
al alejarnos de las superficies del slab, lo que viene a confirmar la existencia de
7.3. Superficie (1,1,1) (slab3)
Dirección
x = 0, y = 0, z
x = 0, y = 1/2, z
x = 1/2, y = 1/2, z
valor medio
D/0
85
salto de potencial
3.8599556
3.8599584
3.8599538
3.8599560
3.8599519
Tabla 7.2: Saltos de potencial (hartree) obtenidos en la dirección perpendicular
al slab3 (a = b = 3.256 Å), junto con el valor teórico esperado, D/ 0 .
un salto de potencial entre las dos superficies a lo largo de toda la extensión
del slab.
Otro aspecto interesante que se pone de manifiesto al comparar las Figuras 7.16 y 7.17, es el comportamiento totalmente antisimétrico del potencial
que experimentan los cationes y los aniones dentro del slab. En concreto,
vamos a centrarnos en el estudio de los iones divalentes Ca+2 y O−2 situados
en el plano z = 0. Mientras que en la posición nominal ocupada por el catión
existe un potencial positivo, éste produce un potencial negativo en las posiciones adyacentes. El anión, sin embargo, sufre un potencial negativo y es el
responsable de los altos potenciales positivos encontrados en las posiciones
más próximas a él. Si comparamos ahora, el potencial creado por los distintos
iones en las posiciones adyacentes fuera del slab con sus equivalentes dentro
del mismo, encontramos un comportamiento ligeramente asimétrico debido
al diferente entorno de dichos puntos. El potencial creado por estos iones en
posiciones exteriores al slab no experimenta más influencia que los iones de
la capa z = 0. En posiciones interiores del slab, en cambio, el potencial se
ve influenciado, además, por los iones situados en la superficie superior del
mismo.
7.3
Superficie (1,1,1) (slab3)
Análogamente a lo que ocurrı́a en el caso anterior, los planos cristalográficos
que determinan los lı́mites superior e inferior del slab no son eléctricamente
neutros, poseen una determinada densidad de carga superficial.
Esta diferencia de carga superficial provoca un momento dipolar permanente que, como quedó demostrado en el caso anterior, es la causa del salto
de potencial que se observa en este tipo de sistemas. La Tabla 7.2 muestra
el potencial esperado o de Maxwell y el obtenido o experimental medido en
hartree para distintos puntos del slab. Como ocurrı́a en el ejemplo anterior,
V (hartree)
7.3. Superficie (1,1,1) (slab3)
10
8
6
4
2
0
-2
-4
-6
-8
-10
-12
86
Salto de potencial
Ti(+4)
Slab
-2.0
-1.0
0.0
1.0
2.0
3.0
z/a
Figura 7.19: Variación del potencial con la distancia perpendicular al plano de
periodicidad del slab3 (a = b = 3.256 Å) a lo largo de las direcciones 1 (linea gruesa
y cuadrados), 2 (linea discontinua y cı́rculos) y 3 (linea discontinua y triángulos)
representadas en la Figura 7.4. Las direcciones 2 y 3 no atraviesan la posición de
ningún ion.
la concordancia entre los valores experimental y teórico es relativamente buena (del orden de 10−5 ) si bien hay que recordar el carácter de proceso lı́mite
en la definición de la densidad del momento dipolar de la superficie, D(x).
Este lı́mite se puede apreciar al estudiar el comportamiento del potencial
(Figura 7.19) a lo largo de las direcciones 1 (linea gruesa y cuadrados), 2
(linea discontinua y cı́rculos) y 3 (linea discontinua y triángulos) mostradas
en la Figura 7.4. En este último slab, las curvas se separan bastante de las
mostradas en los slabs anteriores debido principalmente a la no ortogonalidad
del mismo.
A medida que nos alejamos de la superficie superior del slab, las curvas
son mejor comportadas en el sentido del slab1 ya que, aunque las direcciones
1, 2 y 3 no contienen a ninguno de los iones del slab, sı́ pasan relativamente
cerca de alguno de ellos. Ası́, por ejemplo, las direcciones 2 y 3 pasan por
puntos próximos a los oxı́genos 2 y 3 respectivamente, de ahı́ que presenten
un máximo en las cercanı́as de la superficie superior. El mı́nimo observado en
7.3. Superficie (1,1,1) (slab3)
c
87
90 0
b
Figura 7.20: Proyección de la dirección 3 sobre el plano formado por los ejes
cristalográficos b y c del cristal tridimensional original.
la dirección 1, se debe al catión etiquetado como 1 en la Figura 7.4. Hay que
destacar, como vuelve a quedar de manifiesto, el opuesto comportamiento de
cationes y aniones con respecto al potencial.
Si por contra, nos alejamos ahora del slab por su superficie inferior, podemos comprobar cómo, a excepción del potencial a lo largo de la dirección
1 que mantiene su forma habitual, las curvas son totalmente diferentes a las
recogidas en el slab1. El potencial a lo largo de la dirección 3, por ejemplo, decrece monotonamente desde la superficie inferior hasta alcanzar su
valor lı́mite, debido a que los iones Ti+4 situados en la superficie inferior se
encuentran demasiado alejados de los puntos que componen la dirección 3
como para contribuir de forma apreciable al potencial sufrido por los mismos.
El potencial en la dirección 2, en cambio, decrece lentamente hasta alcanzar
un mı́nimo para después aumentar paulatinamente hasta alcanzar su valor
lı́mite. Este mı́nimo aparecido en el potencial 2, es producido por los iones
Ti+4 ya que, a medida que nos alejamos del slab a lo largo de la dirección
2, la distancia con respecto a estos cationes tetravalentes disminuye hasta
llegar un punto a partir del cual, ésta comienza a aumentar (Figura 7.20).
El potencial dentro del slab presenta comportamientos dispares en las
tres direcciones estudiadas en función de su entorno y la proximidad de las
capas de átomos correspondientes. Al igual que ocurre en el slab2 y tal como
cabrı́a esperar, el potencial se anula sólo en el interior del slab y en posiciones
próximas a los iones Ca+2 debido al efecto del oxı́geno, pero nunca por efecto
de la distancia como en el caso del slab1. Ası́ por ejemplo, al alejarnos de
la superficie inferior del slab, en la que solo encontramos cationes Ti+4 , el
potencial nunca llega a anularse.
Otra similitud que surge al comparar las Figuras 7.18 y 7.21 es que la
7.3. Superficie (1,1,1) (slab3)
88
Figura 7.21: Superficie de potencial cero para el slab3 (a = b = 3.256 Å). Los
iones Ti+4 , Ca+2 y O−2 se identifican con las esferas de color magenta, rojo y
verde, respectivamente.
Figura 7.22: Proyección de las isolineas de potencial en el plano del slab.
periodicidad del potencial se ve influenciada por la disposición espacial de
los ejes cristalográficos. Nótese como el potencial fluctúa casi como una
función sinusoidal en las caras del slab que son ortonormales, mientras que
en las que no lo son, esta variación quasi-sinusoidal se elonga en la dirección
de los ejes.
Una diferencia notable entre los slabs 2 y 3 la encontramos al comparar
la proyección del mapa de isolineas de potencial sobre el plano del slab (Figura 7.22). El slab2 (Figura 7.22 izquierda) presenta un mapa en el que las
isolineas están poco distorsionadas. Ası́, por ejemplo, las isolı́neas creadas
por el catión Ca+2 (color verde) sólo pierden su forma circular a distancias
7.3. Superficie (1,1,1) (slab3)
89
lejanas de su posición nominal y por la acción de los oxı́genos (esferas de
color rojo) situados en la superficie superior del slab. Algo parecido le ocurre
a los oxı́genos, pero no ası́ a los cationes Ti+4 (esferas de color magenta) que
se ven muy influenciados por los aniones y pierden su forma circular cerca
del núcleo.
El mapa de potencial del slab3 (Figura 7.22 derecha), en cambio, es mucho
más complejo. Los iones en la superficie superior se encuentran a distancias
más cortas que en el slab2, lo que provoca que las interacciones sean mayores, y con ello, que las regiones dominadas por los potenciales catiónicos,
representadas en tonos marrones, y las correspondientes a los aniones, que
se representan en tonos azules, no mantengan su forma circular y estén más
difuminadas. En este sentido se puede destacar la existencia de dos regiones
más o menos bien determinadas. Una debida a los potenciales catiónicos de
los iones Ti+4 situados en los vértices de la superficie inferior y el ion Ca+2
de la superficie superior, y una segunda región aniónica debida a la contribución de los oxı́genos de los vértices de la superficie superior y sus inmediatos
vecinos situados en el centro de la superficie y en la mitad de las aristas.
Capı́tulo 8
Conclusiones
El estudio de potenciales y energı́as electrostáticas en sistemas iónicos bidimensionales es ya un problema clásico en la Fı́sica del Estado Sólido. No
obstante, sigue en completa vigencia en la actualidad ya que, lejos de ser
trivial, su solución requiere de complejos algoritmos cuya implementación
computacional es relativamente costosa. Es en este sentido en el que se han
desarrollado una gran cantidad de metodologı́as con el fin de reducir el tiempo de cálculo.
El empleo del formalismo de Ewald tradicional, E3D, al estudio de sistemas bidimensionales conduce a resultados erróneos salvo que se introduzcan
artificialmente grandes espacios vacı́os entre dos slabs consecutivos. Este espacio creado tiene como objeto minimizar las interacciones artificiales producidas como consecuencia de considerar una periodicidad adicional que nuestro
sistema no posee. Pese a todo, los resultados obtenidos hacen prever separaciones muy grandes para que los resultados E3D puedan ser comparables a los
obtenidos mediante nuestro código bidimensional. No obstante, la magnitud
de estas separaciones disminuye notablemente al utilizar el método E3DC en
el que se incorpora un nuevo término a E3D que hace que la geometrı́a de
la suma reproduzca con mayor fidelidad el carácter bidimensional de nuestro
sistema. La incorporación de este nuevo término unido al empleo de espacios vacı́os, nos permiten reproducir los resultados E2D en un determinado
intervalo de valores de separación que depende de la simetrı́a del sistema y
del momento dipolar del slab en la dirección perpendicular al plano en el que
éste es periódico. Ası́, por ejemplo, para los sistemas que no poseen momento
dipolar, el intervalo en el que los valores E3DC coinciden con E2D es mucho
mayor que en los sistemas cuyo momento dipolar es distinto de cero.
La inclusión de estos espacios vacı́os, no obstante, conlleva un aumento
en el número de capas necesario para alcanzar la convergencia, y con ello,
un incremento del tiempo da cálculo. Este aumento en el tiempo de cálculo
90
8. Conclusiones
91
unido a la dependencia de la convergencia con la magnitud de la separación y la simetrı́a del sistema, hace recomendable la utilización del código
bidimensional puro, HBC, frente a E3DC.
El estudio del algoritmo de fuerza bruta ha demostrado que la convergencia se alcanza muy lentamente requiriendo un esfuerzo computacional
excesivo, si bien, por su enorme sencillez es una herramienta muy útil para
verificar la bondad de los distintos métodos.
En la naturaleza existen una gran cantidad de procesos que involucran
fenómenos de superficie. En muchos de ellos, tales como la adsorción o la
catálisis heterogénea, las interacciones electrostáticas juegan un papel fundamental. La demostrada precisión y fiabilidad del algoritmo elegido invita, en
un futuro, al estudio de este tipo de procesos de gran interés tanto desde un
punto de vista quı́mico-fı́sico como tecnológico. Tambien se podrı́a aplicar al
estudio a sistemas de interés biológico como son las membranas, pero sobre
todo, su aplicación fundamental será el estudio de superficies sólidas.
Este es el primer paso necesario para extender el modelo ab initio del Ion
Perturbado (aiPI) [21,22] a sistemas bidimensionales y para, posteriormente,
abordar el estudio de las sumas de Ewald en distribuciones puntuales de
carga periódicas en una sola dirección.
Bibliografı́a
[1] F. Seitz. “The Modern Theory of Solids.” McGraw-Hill, 1940.
[2] D. Borwen y J. Borwen. “Convergence of lattice sums and Madelung’s
constant.” J. Math. Phys., 26:2999, 1985.
[3] E. Madelung. Phys. Z., 19:524, 1918.
[4] M. P. Tosi. “Cohesion of ionic solids in the Born model.” Solid State
Physics, 16:1–120, 1964.
[5] H. Evjen. Phys. Rev., 39:675, 1932.
[6] A. Y. Toukmaji y J. A. Board. “Ewald summation techniques in perspective: a survey.” Comput. Phys. Commun., 95:73, 1996.
[7] D. M. Heyes, M. Barber, y J. H. R. Clarke. “Molecular dynamics computer simulations of surface properties of crystalline potassium chloride.”
J. Chem. Soc. Faraday Trans. II, 73:1485, 1977.
[8] D. E. Parry. Surf. Sci., 49:433, 1975.
[9] W. de Leeuw, J. W. Perram, y E. R. Smith. “Simulation of electrostatic
systems in periodic boundary conditions.I. Lattice sums and dielectric
constants.” Proc. R. Soc. London, Ser. A, 373:27, 1980.
[10] E. R. Smith. Mol. Phys., 65:1089, 1988.
[11] J. Hautman y M. L. Klein. Mol. Phys., 75:379, 1992.
[12] B. R. A. Nijboer. Physica A, 125:253, 1984.
[13] M. Kawata y M. Mikami. “Rapid calculations of two-dimensional Ewald
summation.” Chem. Phys. Lett., 340:157, 2001.
92
Bibliografı́a
93
[14] M. Kawata y U. Nagashima. “Particle mesh Ewald method for threedimensional systems with two-dimensional periodicity.” Chem. Phys.
Lett., 340:165, 2001.
[15] R. Sperb. Mol. Sim., 13:189, 1994.
[16] J. Leckner. Physica A, 157:826, 1989.
[17] I. Yeh y M. L. Berkowitz. “Ewald summation for systems with slab
geometry.” J. Chem. Phys., 111:3155, 1999.
[18] D. J. Langridge, J. F. Hart, y S. Crampin. “Ewald summation technique for one-Dimensional charge-Distributions.” Comp. Phys. Comun.,
134:78, 2001.
[19] M. Porto. “Ewald summation of electrostatics interactions of Systems
with finite extent in 2 of 3 Dimensions.” J. Phys. A: Math. Gen.,
33:6211, 2000.
[20] M. A. Blanco, A. Martı́n Pendás, y V. Luaña. “Quantum mechanical cluster calculations of ionic materials: revision 10 of the ab initio
Pertuberd Ion program.” Comp. Phys. Com., 103:287, 1997.
[21] V. Luaña y L. Pueyo. “Simulation of ionic crystals: the ab initio
Perturbed-Ion method and application to alkali hydrides and halides.”
Phys. Rev. B, 41:3800–3814, 1990.
[22] V. Luaña y M. Flórez. “Ab initio calculation of the local geometry of
Cu+ :NaF and Cu+ :NaCl.” J. Chem. Phys., 97:6544–6548, 1992.
[23] J. M. Recio, A. Martı́n Pendás, E. Francisco, M. Flórez, y V. Luaña.
“Low and high-pressure ab initio equations of state for the alkali chlorides.” Phys. Rev. B, 48:5891, 1993.
[24] A. Martı́n Pendás, V. Luaña, J. M. Recio, M. Flórez, E. Francisco, M. A.
Blanco, y L. Kantorovich. “Pressure-induced B1-B2 phase transition in
alkali halides: General aspects from first-principles calculations.” Phys.
Rev. B, 49:3066, 1994.
[25] V. Luaña, J. M. Recio, y L. Pueyo. “Quantum mechanical description of
ions in crystals: Electronic structure of magnesium oxide.” Phys. Rev.
B, 42:1791, 1990.
Bibliografı́a
94
[26] J. M. Recio, R. Pandey, y V. Luaña. “Quantum-mechanical modelling
of the high pressure state equations of ZnO and ZnS.” Phys. Rev. B,
47:3401, 1993.
[27] L. Pueyo, V. Luaña, M. Flórez, y E. Francisco. “Quantum mechanical description of ionic solids.” En S. Fraga, editor, Structure, Interactions and Reactivity, tomo B, págs. 504–526. Elsevier, Amsterdam,
1992. ISBN 0–444–88512–9.
[28] M. A. Blanco. “Métodos locales para la simulació de cristales iónicos.
Fundamentos, algoritmos y aplicaciones.” Tesis Doctoral, 1997.
[29] G. Makov y M. C. Payne. “Periodic boundary conditions in ab initio
calculations.” Phys. Rev. B, 51:4014, 1995.
[30] P. Ewald. Ann. Phys., 64:253, 1921.
[31] D. J. Adams y I. R. McDonald. Mol. Phys., 32:931, 1976.
[32] M. P. Allen y D. J. Tildesley. “Computer Simulations of Liquids.” Clarendon, Oxford, cap. 5, 1989.
[33] T. E. Chetham, J. L. Miller, T. Fox, y T. A. Dardon. “Molecular dynamics simulations on solvated biomolecular systems. The Particle Mesh
Ewald Method leads to stable trajectories of DNA, RNA and proteins.”
J. Am. Chem. Soc., 117:4193, 1995.
[34] R. Faraouki y S. Hamaguchi. “Spline Approximation of ”Effective” Potentials under Periodic Boundary Conditions.” J. Comp. Phys., 115:276,
1994.
[35] T. Darden, D. York, y L. Pedersen. “Particle mesh Ewald: an N log(N )
method for Ewald sums in large systems.” J. Chem. Phys., 98:10089,
1993.
[36] T. Darden, U. Essmann, H. Lee, L. Perera, M. Berkowitz, y L. G. Pedersen. “A smooth particle mesh Ewald method.” J. Chem. Phys.,
103:8577, 1995.
[37] D. York y W. Yangee. “The fast Fourier Poisson method for calculating
Ewald sums.” J. Chem. Phys., 101:3298, 1994.
[38] L. Greengard. “The Rapid Evaluation of Potential Fields in Particle
Systems.” MIT Press, Cambridge, MA, 1988.
Bibliografı́a
95
[39] H. Ding, N. Karasawa, y W. A. Goddard III. “Atomic level simulations on a million particles: The cell multipole method for Coulomb and
London nonbond interactions.” J. Chem. Phys., 97:4309, 1992.
[40] F. E. Harris. “Hartree-Fock studies of electronic structures of crystalline
Solids.” págs. 147–218.
[41] M. A. Blanco. “Métodos locales para el estudio de imporezas en cristales
iónicos.” Seminario de investigación, 1994.
[42] C. Kittel. “Introducción a la Fı́sica del Estado Sólido.” Editorial Reverté, S.A., Apéndice B, 1995.
[43] A. H. Widmann y D. B. Adolf. “A comparasion of Ewald summation
techniques for planar surfaces.” Comput. Phys. Commun., 107:167,
1997.
[44] L. Greengard y V. Rokhlin. Comput. Phys. Commun., 73:325, 1987.
[45] F. Bertaut. J. Phys. Radium, 13:499, 1952.
[46] A. Grzybowski, E. Gwozdz, y A. Brodka. “Ewald summation of electrostatic interactions in molecular dynamics of a three-dimensional system
with periodicity in two directions.” Phys. Rev. B, 61:6706, 2000.
[47] E. Spohr. “Effect of electrostatic boundary conditions and system size
on the interfacial properties of water and aqueous solutions.” J. Chem.
Phys., 107:6342, 1997.
[48] W. J. Cody. “Rational Chebyshev approximations for the error function.” Math.Comp., págs. 631–8, 1969.
[49] P. A. Tippler. “Fı́sica para la Ciencia y la Tecnologı́a. Vol II.” Editorial
Reverté, 1999.
[50] N. N. Greenwood y A. Earnshow. “Chemistry of the elements.” Pergamon Press, 1984.
[51] F. E. Harris. “Ewald summation in systems with two-dimensional periodicity.” Int. J. Quant. Chem., 68:385, 1998.
[52] J. D. Jackson. “Electrodinámica Clásica.” Editorial Alhambra, 1990.
[53] E. V. Stefanovich y A. L. Shluger. “(100) GaP surface charges, potentials, and stoichiometry; a quantum-chemical study.” J. Phys.: Condens. Matter, 6:4255–68, 1994.
Apéndice A
Códigos para la obtención de la
Energı́a Electrostática
A continuación se presentan los códigos fuente completos y comentados de
todos los programas diseñados para la realización de este trabajo y cuyos
pseudocódigos se introdujeron en el capı́tulo 5.
A.1
Programa mad2D
El programa mad2D calcula la energı́a electrostática de una red de cargas
puntuales cuya periodicidad se extiende en dos de las tres direcciones del
espacio y además es finita en la tercera.
mad2D se basa en el algotitmo HBC [7] presentado en la sección 3.3. Para
la implementación de dicho algoritmo se ha diseñado un código que utiliza
tres rutinas diferentes. La primera de ellas tiene estructura de subrutina de
inicialización y en ella se calculan una gran colección de variables necesarias
para el desarrollo del cálculo. Las otras dos, en cambio, tienen estructura
de función externa y son las encargadas de evaluar tanto la función error
complementaria como el potencial electrostático en un punto de la red de
cargas puntuales.
Program mad2D
include
include
include
include
’implicit.inc’
’global.inc’
’celatm.inc’
’consts.inc’
96
A.1. Programa mad2D
97
include ’ewald2d.inc’
include ’neqatm.inc’
include ’red.inc’
real∗8 energ, few
Reading input file
open (3, file=’slab.out’ , status=’unknown’)
call dater (-1,3)
open (15, file = ’slab.inp’, status = ’unknown’, form=’formatted’)
read (15,∗), ncel
do i = 1, ncel
read (15,∗) xxcel(i,1), xxcel(i,2), xxcel(i,3), qcel(i),
xocup(typcel(i))
enddo
read (15,∗), ared, bred, cred, bb(1), bb(2), bb(3)
close (15)
Computing some needed variables
call preew2D ()
Total electrostatic energy
energ = zero
do i = 1, ncel
few = fewald2d (xxcel(i,1), xxcel(i,2), xxcel(i,3), qcel(i))
energ = energ + half ∗ few
enddo
call dater (1,3)
close (3)
stop
end
A.1.1
Subroutina preew2D ()
La subrutina preew2D calcula una colección de variables que son comunes
para todos los iones de la red y constantes a lo largo de todo el cálculo.
Entre estas variables se encuentra el volumen de la red directa, los tensores
métricos de las redes directa e inversa, el parámetro η, o el vector de imágenes
de la celda central.
A.1. Programa mad2D
98
Subroutine preew2D
include
include
include
include
’implicit.inc’
’red.inc’
’ewald2d.inc’
’consts.inc’
Computing the cell volume and eta
real∗8 alfa, beta, gamma
sc = half ∗ (bb(1) + bb(2) + bb(3)) ∗ rad
omega = sin(sc) ∗ sin(sc-bb(1)∗rad) ∗ sin(sc-bb(2)∗rad) ∗
sin(sc-bb(3)∗rad)
omega = sqrt(omega) ∗ two ∗ aa(1) ∗ aa(2) ∗ aa(3)
arec = bred ∗ cred ∗ sin (bb(1)∗rad) / omega
brec = cred ∗ ared ∗ sin (bb(2)∗rad) / omega
crec = ared ∗ bred ∗ sin (bb(3)∗rad) / omega
calfr = (cos(bb(2)∗rad)∗cos(bb(3)∗rad)-cos(bb(1)∗rad))/
(sin(bb(2)∗rad) ∗ sin(bb(3)∗rad))
cbetr = (cos(bb(3)∗rad)∗cos(bb(1)∗rad)-cos(bb(2)∗rad))/
(sin(bb(3)∗rad) ∗ sin(bb(1)∗rad))
cgamr = (cos(bb(1)∗rad)∗cos(bb(2)∗rad)-cos(bb(3)∗rad))/
(sin(bb(1)∗rad) ∗ sin(bb(2)∗rad))
armax = max (arec, brec, crec)
armin = min (arec, brec, crec)
eta = one / sqrt (armax∗armin∗pi)
etasqrpi = eta / sqrpi
pieta = pi ∗ eta
eta2 = eta ∗ eta
piomega = pi ∗ omega
sup = ared ∗ bred ∗ sin (bb(3)∗rad)
sup = abs (sup)
twosup = 2 ∗ sup
z distance.
dum = (cred ∗ cred) / (sin (bb(3)∗rad)∗sin (bb(3)∗rad))
root = one - cos (bb(1)∗rad) ∗ cos (bb(1)∗rad) cos (bb(2)∗rad) ∗ cos (bb(2)∗rad) cos (bb(3)∗rad) ∗ cos (bb(3)∗rad) +
two∗cos (bb(1)∗rad)∗cos (bb(2)∗rad)∗cos (bb(3)∗rad)
A.1. Programa mad2D
Computing the metric tensor of the reciprocal lattice.
gr(1)
gr(2)
gr(3)
gr(4)
gr(5)
gr(6)
gr(7)
=
=
=
=
=
=
=
arec ∗ arec
arec ∗ brec ∗ cgamr
brec ∗ brec
arec ∗ crec ∗ cbetr
brec ∗ crec ∗ calfr
crec ∗ crec
crec ∗ crec ∗ sin (beta∗rad) ∗ sin (beta∗rad)
Computing the metric tensor of de direct lattice.
g(1)
g(2)
g(3)
g(4)
g(5)
g(6)
g(7)
=
=
=
=
=
=
=
ared ∗ ared
ared ∗ bred ∗ cos (bb(3)∗rad)
bred ∗ bred
ared ∗ cred ∗ cos (bb(2)∗rad)
bred ∗ cred ∗ cos (bb(1)∗rad)
cred ∗ cred
cred ∗ cred ∗ root ∗ root
Initialization of lattice vectors up to mlayer shells of cells
do i = 1, 3
hvec(i,0) = 0
enddo
iavec(0) = 0
ivec = 0
do ish = 1, mlayer
do ixx = 0, ish
iabsix = abs(ixx)
do iyy = -ish, ish
if (abs(iyy).eq.ish .or. iabsix.eq.ish) then
istep = 1
else
istep = ish + ish
endif
do izz = -ish, ish, istep
if((ixx.ne.0 .or. iyy.gt.0).and.(izz.eq.0)) then
ivec = ivec + 1
hvec(1,ivec) = ixx
hvec(2,ivec) = iyy
99
A.1. Programa mad2D
100
hvec(3,ivec) = izz
endif
enddo
enddo
enddo
enddo
iavec(ish) = ivec
enddo
return
end
A.1.2
Función few2D (x,y,z,k)
La subrutina few2D calcula el potencial electrostático en cualquier punto de
la red de cargas puntuales.
Function few2D
include ’implicit.inc’
include ’global.inc’
include ’celatm.inc’
include ’neqatm.inc’
include ’ewald2d.inc’
include ’red.inc’
include ’consts.inc’
include ’error.inc’
real∗8 wwax, wway, wwaz, cont, h, ult, vpur, k, s
integer nsh
real∗8 wa(3), ewsh, rec, conv2, qq
real∗8 rfive, pfive
dimension rvec(3,mcel), qshift(mcel), zdis(mcel)
Online functions: square modulus of a vector (this way is faster)
dis2(xi,yi,zi) = xi ∗ ( xi∗g(1) + two∗yi∗g(2) + two∗zi∗g(4) ) +
yi ∗ (yi∗g(3) + two∗zi∗g(5) ) + zi∗zi∗g(6)
dis2r(xi,yi) = xi ∗ ( xi∗gr(1) + two∗yiastgr(2)) + yi ∗ (yi∗gr(3) )
dis2z (zi) = zi ∗ zi ∗ dum ∗ root
Input/output
A.1. Programa mad2D
wwax = x
wway = y
wwaz = z
qq = k
open (15, file=”inp.in”, status=old”, form=”formatted”)
read (15,∗) ncel
do i = 1, ncel
read (15,∗) xxcel(i,1), xxcel(i,2), xxcel(i,3), qcel(i),
xocup(typcel(i))
enddo
close (15)
Tolerance on positions
rfive = half - epsfrac
pfive = half + epsfrac
Shift the test point to the first cell.
if (abs(wwax - nint(wwax)) .le. epsfrac) then
wa(1) = 0d0
else if (wwax.ge.zero) then
wa(1) = wwax - int(wwax)
else
wa(1) = wwax - int(wwax) + 1d0
endif
if (abs(wway - nint(wway)) .le. epsfrac) then
wa(2) = 0d0
else if (wway.ge.zero) then
wa(2) = wway - int(wway)
else
wa(2) = wway - int(wway) + 1d0
endif
if (abs(wwaz - nint(wwaz)) .le. epsfrac) then
wa(3) = 0d0
else if (wwaz.ge.zero) then
wa(3) = wwaz - int(wwaz)
else
wa(3) = wwaz - int(wwaz) + 1d0
endif
101
A.1. Programa mad2D
102
Shift cell origin to test point; new cell will be [-1/2,1/2]
ictr = 0
do i = 1, ncel
ictr = ictr + 1
ictr0 = ictr
qshift(ictr) = qcel(i) ∗ xocup(typcel(i))
do j = 1, 3
rvec(j,ictr0) = xxcel (i,j) - wa(j)
if (rvec(j,ictr0).gt.pfive .and. j.ne.three) then
rvec(j,ictr0) = rvec(j,ictr0) - one
else if (rvec(j,ictr0).lt.-pfive .and. j.ne.three) then
rvec(j,ictr0) = rvec(j,ictr0) + one
endif
enddo
Evjen’s fractional charge counting; this leads to a replication of charges
at cell edges
inum = 1
do j = 1, 2
if (abs(rvec(j,ictr0)).ge.rfive) then
qshift(ictr0) = qshift(ictr0) ∗ half
do k = ictr0, ictr0+inum-1
ictr = ictr + 1
do l = 1, 3
if (l.eq.j) then
rvec(j,ictr) = -rvec(j,k)
else
rvec(l,ictr) = rvec(l,k)
endif
enddo
enddo
inum = inum ∗ 2
endif
enddo
do k = ictr0+1, ictr
qshift(k) = qshift(ictr0)
enddo
enddo
do i = 1, ictr
A.1. Programa mad2D
zdis(i) = rvec(3,1) - rvec(3,i)
enddo
Shell number zero.
ewsh = zero
do i = 1, ictr
vr = dis2(rvec(1,i),rvec(2,i),zdis(i))
r = sqrt(vr)
if (r.gt.epsdis) then
t = r / eta
ewsh = ewsh + qshift(i)∗erfcc(t)/r
endif
enddo
ew = ewsh
ew1 = ew
Shell summation; nsh is the ordinal number of the current shell.
ewrec = zero
ewrea = zero
ewsh0 = zero
nsh = zero
do while (nsh.lt.mlayer .and. abs(conv2).gt.conv .or. nsh.eq.zero)
nsh = nsh + 1
ewsh = zero
Summing all vectors in a shell.
do ivec = iavec(nsh-1)+1, iavec(nsh)
vk = dis2r(dble(hvec(1,ivec)),dble(hvec(2,ivec)))
h = sqrt (vk)
rec = zero
rea = zero
Travel all charges in the unit cell.
do i = 1, ictr
p = dis2z (zdis(i))
k = pieta∗h + sqrt(p) /eta
s = pieta∗h - sqrt(p)/eta
103
A.1. Programa mad2D
104
rec1 = qshift(i) ∗ cos(twopi∗
(rvec(1,i)∗hvec(1,ivec)+
rvec(2,i)∗hvec(2,ivec)))
rec1 = rec1 ∗ (exp (twopi∗h∗sqrt(p)) ∗ erfcc (k)
+exp (-twopi∗h∗sqrt(p)) ∗ erfcc (s))
rec = rec + rec1
Real part must be computed twice, once for each K and -K.
vr = dis2(rvec(1,i)+hvec(1,ivec),rvec(2,i)+hvec(2,ivec),
zdis(i))
r = sqrt(vr)
t = r / eta
rea = rea + qshift(i) ∗ erfcc(t) / r
vr = dis2(rvec(1,i)-hvec(1,ivec),rvec(2,i)-hvec(2,ivec),
zdis(i))
r = sqrt(vr)
t = r / eta
rea = rea + qshift(i) ∗ erfcc(t) / r
enddo
Accumulate real and reciprocal space parts in this shell.
rec = rec / (2∗sup∗h)
ewrec = ewrec + rec + rec
ewrea = ewrea + rea
ewsh = ewsh + rec + rec + rea
enddo
Adding the shell contribution to the total potential.
conv2 = ewsh0 - ewsh
ew = ew + ewsh
ewsh0 = ewsh
enddo
ew2= ew
Last term.
ult = zero
do i = 1, ictr
A.1. Programa mad2D
105
p = dis2z (zdis(i))
v = sqrt(p)/eta
s = qshift(i) ∗ (sqrt (p) ∗ erf(v) + etasqrpi∗exp(-v∗v))
ult=ult+s
enddo
cont = twopi/sup
ult = ult ∗ twopi/sup
ew = ew - ult
Convergence control.
if (nsh.eq.mlayer .and. abs(ewsh).gt.conv) then
call error (’fewald2d’,
’convergence not reached with mlayer shells’,
faterr)
endif
Include self-potential correction and exit.
ew = ew - tosqrpi ∗ qq / eta
vpur = ew ∗ qq
fewald2d = vpur
return
end
A.1.3
Función error complementaria
La función error complementaria se calcula mediante la subrutina erfcc basada en una aproximación racional a dicha función por polinomios de Chebyshev [48]. Esta subrutina es utilizada por todos los códigos descritos en esta
sección por lo que se omitirá en la presentación del resto de los códigos.
Function erfcc
include ’implicit.inc’
include ’consts.inc’
parameter (sqrpim1=0.56418958354775628695d0)
parameter (thresh=0.46875d0)
parameter (sixteen=16d0)
A.1. Programa mad2D
106
Machine dependent constants: xsmall should be the first real number
which added to 1.0 produces 1.0; xbig should be taken as the lesser number
for which exp(-xs∗x)/(x∗sqrt(pi))∗(1-1/(2∗x∗x)) underflows
parameter (xsmall=1.110224d-16)
parameter (xbig=26.543d0)
Coefficients for the three intervals; a and b approximate erf in the first
interval, c and d approximate erfc in the second one, and p and q approximate
erfc in the third.
real∗8 a(0:4),b(0:3),c(0:8),d(0:7),p(0:5),q(0:4)
data a/3.20937758913846947d03,3.77485237685302021d02,
1.13864154151050156d02,3.16112374387056560d00,
1.85777706184603153d-1/
data b/2.84423683343917062d03,1.28261652607737228d03,
2.44024637934444173d02,2.36012909523441209d01/
data c/1.23033935479799725d03,2.05107837782607147d03,
1.71204761263407058d03,8.81952221241769090d02,
2.98635138197400131d02,6.61191906371416295d01,
8.88314979438837594d00,5.64188496988670089d-1,
2.15311535474403846d-8/
data d/1.23033935480374942d03,3.43936767414372164d03,
4.36261909014324716d03,3.29079923573345963d03,
1.62138957456669019d03,5.37181101862009858d02,
1.17693950891312499d02,1.57449261107098347d01/
data p/6.58749161529837803d-4,1.60837851487422766d-2,
1.25781726111229246d-1,3.60344899949804439d-1,
3.05326634961232344d-1,1.63153871373020978d-2/
data q/2.33520497626869185d-3,6.05183413124413191d-2,
5.27905102951428412d-1,1.87295284992346047d00,
2.56852019228982242d00/
If x is smaller than xsmall, return 1-2∗x/sqrt(pi)
y = abs(x)
if (y.le.xsmall) then
result = one - tosqrpi∗x
The first interval
A.1. Programa mad2D
else if (y.le.thresh) then
ysq = y ∗ y
xnum = a(4) ∗ ysq
xden = ysq
do i = 3, 1, -1
xnum = (xnum+a(i)) ∗ ysq
xden = (xden+b(i)) ∗ ysq
enddo
result = one - y ∗ (xnum+a(0)) / (xden+b(0))
Here is the second interval
∗
∗
∗
∗
∗
∗
∗
else if (y.le.four) then
xnum = c(8) ∗ y
xden = y
do i = 7, 1, -1
xnum = (xnum+c(i)) ∗ y
xden = (xden+d(i)) ∗ y
enddo
result = (xnum+c(0)) / (xden+d(0))
result = exp(-(y∗y)) ∗ result
for a relative precision gain, substitute last line with this
three; absolute precission is always greater than xsmall, but
when the function takes too small values, relative errors can
be as great as 1d-14
ysq = int(y∗sixteen) / sixteen
del = (y-ysq) ∗ (y+ysq)
result = exp(-ysq∗ysq) ∗ exp(-del) ∗ result
And here is the third interval
else if (y.lt.xbig) then
ysq = one / (y∗y)
xnum = p(5) ∗ ysq
xden = ysq
do i = 4, 1, -1
xnum = (xnum+p(i)) ∗ ysq
xden = (xden+q(i)) ∗ ysq
enddo
result = ysq ∗ (xnum+p(0)) / (xden+q(0))
result = (sqrpim1-result) / y
107
A.2. Programa brutetot
∗
∗
∗
∗
∗
∗
∗
108
result = exp(-(y∗y)) ∗ result
for a relative precision gain, substitute last line with this
three; absolute precission is always greater than xsmall, but
when the function takes too small values, relative errors can
be as great as 1d-14
ysq = int(y∗sixteen) / sixteen
del = (y-ysq) ∗ (y+ysq)
result = exp(-ysq∗ysq) ∗ exp(-del) ∗ result
If x is bigger than xbig, return zero
else
result = zero
endif
If the argument is negative, correct it
if (x.lt.zero) result = two - result
Return function value and exit
erfcc = result
return
end
A.2
Programa brutetot
El programa brutetot tiene, como el anterior, la finalidad de calcular la energı́a
electrostática de un sistema de cargas puntuales con periodicidad en dos
dimensiones. Este código, no obstante, no utiliza ningún algoritmo complejo,
si no que evalúa la energı́a por aplicación directa de la ecuación de Coulomb.
El programa brutetot es el más sencillo. Consta de una función externa
que calcula el potencial electrostático en las posiciones ocupadas por los iones
en la red y un bloque principal que utiliza dichos potenciales para calcular
la energı́a electrostática total. También utiliza la rutina de evaluación de la
función error complementaria presentada en la sección anterior.
Program brutetot
include ’implicit.inc’
A.2. Programa brutetot
include ’global.inc’
include ’celatm.inc’
include ’consts.inc’
include ’ewald2d.inc’
include ’neqatm.inc’
include ’red.inc’
real∗8 energ, few
Reading input file
open (3, file=’slabbt.out’, status=únknown’)
call dater (-1,3)
open (15, file = ’slab.inp’, status = únknown’, form=’formatted’)
read (15, ∗), ncel, nmax
do i = 1, ncel
read (15,∗) xxcel(i,1), xxcel(i,2), xxcel(i,3),qcel(i),
xocup(typcel(i))
enddo
read (15, ∗), ared, bred, cred, bb(1), bb(2), bb(3)
close (15)
Computing the metric tensor of the direct lattice.
g(1)
g(2)
g(3)
g(4)
g(5)
g(6)
=
=
=
=
=
=
ared ∗ ared
ared ∗ bred ∗ cos (bb(3)∗rad)
bred ∗ bred
ared ∗ cred ∗ cos (bb(2)∗rad)
bred ∗ cred ∗ cos (bb(1)∗rad)
cred ∗ cred
Computing the total electrostatic energy.
energ = zero
do i = 1, ncel
few = brute (xxcel(i,1), xxcel(i,2), xxcel(i,3))
energ = energ + half∗qcel(i) ∗ few
enddo
call dater (1,3)
close (3)
stop
end
109
A.2. Programa brutetot
A.2.1
110
Función brute (x,y,z)
brute calcula el potencial electrostático en cualquier punto de la red de cargas
puntuales siguiendo la formulación clásica de Coulomb.
Function Brute
include ’implicit.inc’
include ’global.inc’
include ’celatm.inc’
include ’neqatm.inc’
include ’ewald2d.inc’
include ’red.inc’
include ’consts.inc’
include ’error.inc’
real∗8 wwax, wway, wwaz, vpur
integer nsh, l, nmax
real∗8 wa(3), ewsh, ewsh0, ewrea, conv2
real∗8 rfive, pfive, r
dimension rvec(3,mcel), qshift(mcel)
Online functions: square modulus of a vector (this way is faster).
dis2(xi,yi,zi) = xi ∗ ( xi∗g(1) + two∗yi∗g(2) + two∗zi∗g(4) ) +
yi ∗ (yi∗g(3) + two∗zi∗g(5) ) + zi∗zi∗g(6)
Reading input file.
open (15, file=’slab.inp’, status=únknown’, form=’formatted’)
read (15,∗) ncel, nmax
do i = 1, ncel
read (15,∗) xxcel(i,1), xxcel(i,2), xxcel(i,3), qcel(i),
xocup(typcel(i))
enddo
close (15)
wwax = x
wway = y
wwaz = z
Tolerance on positions
A.2. Programa brutetot
rfive = half - epsfrac
pfive = half + epsfrac
Shift the test point to the first cell.
if (abs(wwax - nint(wwax)) .le. epsfrac) then
wa(1) = 0d0
else if (wwax.ge.zero) then
wa(1) = wwax - int(wwax)
else
wa(1) = wwax - int(wwax) + 1d0
endif
if (abs(wway - nint(wway)) .le. epsfrac) then
wa(2) = 0d0
else if (wway.ge.zero) then
wa(2) = wway - int(wway)
else
wa(2) = wway - int(wway) + 1d0
endif
if (abs(wwaz - nint(wwaz)) .le. epsfrac) then
wa(3) = 0d0
else if (wwaz.ge.zero) then
wa(3) = wwaz - int(wwaz)
else
wa(3) = wwaz - int(wwaz) + 1d0
endif
Shift cell origin to test point; new cell will be [-1/2,1/2].
ictr = 0
do i = 1, ncel
ictr = ictr + 1
ictr0 = ictr
qshift(ictr) = qcel(i) ∗ xocup(typcel(i))
do j = 1, 3
rvec(j,ictr0) = xxcel (i,j) - wa(j)
if (rvec(j,ictr0).gt.pfive ) then
rvec(j,ictr0) = rvec(j,ictr0) - one
else if (rvec(j,ictr0).lt.-pfive ) then
rvec(j,ictr0) = rvec(j,ictr0) + one
endif
111
A.2. Programa brutetot
112
enddo
Evjen’s fractional charge counting; this leads to a replication of charges
at cell edges.
inum = 1
do j = 1, 2
if (abs(rvec(j,ictr0)).ge.rfive) then
qshift(ictr0) = qshift(ictr0) ∗ half
do k = ictr0, ictr0+inum-1
ictr = ictr + 1
do l = 1, 3
if (l.eq.j) then
rvec(j,ictr) = -rvec(j,k)
else
rvec(l,ictr) = rvec(l,k)
endif
enddo
enddo
inum = inum ∗ 2
endif
enddo
do k = ictr0+1, ictr
qshift(k) = qshift(ictr0)
enddo
enddo
Shell number zero.
ewsh = zero
do i = 1, ictr
vr = dis2(rvec(1,i),rvec(2,i),rvec(3,i))
r = sqrt(vr)
if (r.gt.epsdis) then
t = r / eta
ewsh = ewsh + qshift(i)∗erfcc(t)/r
endif
enddo
ew = ewsh
ew1 = ew
A.2. Programa brutetot
113
Initialization of lattice vectors up to mlayer shells of cells.
do i = 1, 3
hvec(i,0) = 0
enddo
ivec = zero
ewsh0 = zero
ewsh = ew
do ish = 1, nmax
do ixx = 0, ish
iabsix = abs(ixx)
do iyy = -ish, ish
We include only those z’s that make up the shell.
if (abs(iyy).eq.ish .or. iabsix.eq.ish) then
istep = 1
else
istep = ish + ish
endif
do izz = -ish, ish, istep
And among them, only half, since there’s always a symmetrical lattice
vector -K
if((ixx.ne.0 .or. iyy.gt.0).and.(izz.eq.0)) then
ivec = ivec + 1
hvec(1,ivec) = ixx
hvec(2,ivec) = iyy
hvec(3,ivec) = izz
ewrea = zero
do i = 1, ictr
vr = dis2(rvec(1,i)+hvec(1,ivec),
rvec(2,i)+hvec(2,ivec),rvec(3,i))
r = sqrt (vr)
ewrea = ewrea + qshift(i) / r
vr = dis2(rvec(1,i)-hvec(1,ivec),
rvec(2,i)-hvec(2,ivec),rvec(3,i))
r = sqrt (vr)
ewrea = ewrea + qshift(i) / r
enddo
A.3. Programa mad3DC
114
ewsh = ewsh + ewrea
endif
enddo
enddo
enddo
enddo
vpur = ewsh
brute = vpur
return
end
A.3
Programa mad3DC
El objetivo de mad3DC es idéntico al de los códigos anteriores, sin embargo, a diferencia del resto, que eran puramente bidimensionales, éste es una
adaptación del modelo clásico tridimensional para su aplicación en slabs.
Análogamente a mad2D, mad3DC consta de un programa principal en
el que se calcula la energı́a electrostática del sistema y tres subrutinas más
que tienen la función de calcular una serie de variables necesarias para el
cálculo, la primera de ellas, y de evaluar la función error complementaria y el
potencial electrostático de un punto de la red de cargas puntuales, las otras
dos respectivamente.
Program mad3DC
include ’implicit.inc’
include ’global.inc’
include ’celatm.inc’
include ’consts.inc’
include ’ewald2d.inc’
include ’neqatm.inc’
include ’red.inc’
real∗8 energ, few, ews, plane, spher
Online functions
dis2(xi,yi,zi) = xi ∗ ( xi∗g(1) + two∗yi∗g(2) + two∗zi∗g(4) ) +
yi ∗ (yi∗g(3) + two∗zi∗g(5) ) + zi∗zi∗g(6)
A.3. Programa mad3DC
115
Reading input file
open (3,file=’slab3d.out’,status=únknown’)
call dater (-1,3)
open (15, file = ’slab.inp’, status = únknown’, form=’formatted’)
read (15, ∗), ncel
do i = 1, ncel
read (15,∗) xxcel(i,1), xxcel(i,2), xxcel(i,3), qatm(i),
xocup(typcel(i))
enddo
read (15, ∗), ared, bred, cred, bb(1), bb(2), bb(3)
close (15)
Computing some needed variables
call preew3DC ()
Shape-dependent term (plane-wise sum method)
ews = zero
do i = 1, ncel
v = dis2 (zero, zero, xxcel(i,3))
ews = ews + (qatm(i) ∗ sqrt(v))
enddo
plane = 2∗pi∗((ews)2 )/omega
plane1 = plane
Shape-dependent term (spherical geometry and vacuum approximation)
ews = zero
do i = 1, ncel
v = dis2 (xxcel(i,1), xxcel(i,2), xxcel(i,3))
ews = ews + qatm(i) ∗ sqrt(v)
enddo
spher = twopi ∗ (ews∗ews) / (three∗omega)
spher1 = spher
Total electrostatic energy
energ = zero
do i = 1, ncel
A.3. Programa mad3DC
116
few = fewald (xxcel(i,1), xxcel(i,2), xxcel(i,3), qatm(i))
energ = energ + half ∗ few
enddo
Adding the shape-dependent terms to the total energy
plane = plane + energ
spher = spher + energ
call dater (1,3)
close (3)
stop
end
A.3.1
Subroutina preew3DC ()
En la subrutina preew3DC se evalúan una gran cantidad de variables que
son necesarias para el desarrollo del cálculo y cuyo valor no varı́a durante el
mismo.
Subroutine preew3DC
include
include
include
include
’implicit.inc’
’red.inc’
’ewald2d.inc’
’consts.inc’
Computing the cell volume and eta
real∗8 alfa, beta, gamma
sc = half ∗ (bb(1) + bb(2) + bb(3)) ∗ rad
omega = sin(sc) ∗ sin(sc-bb(1)∗rad) ∗ sin(sc-bb(2)∗rad) ∗
sin(sc-bb(3)∗rad)
omega = sqrt(omega) ∗ two ∗ aa(1) ∗ aa(2) ∗ aa(3)
arec = bred ∗ cred ∗ sin (bb(1)∗rad) / omega
brec = cred ∗ ared ∗ sin (bb(2)∗rad) / omega
crec = ared ∗ bred ∗ sin (bb(3)∗rad) / omega
calfr = (cos(bb(2)∗rad)∗cos(bb(3)∗rad)-cos(bb(1)∗rad))/
(sin(bb(2)∗rad) ∗ sin(bb(3)∗rad))
cbetr = (cos(bb(3)∗rad)∗cos(bb(1)∗rad)-cos(bb(2)∗rad))/
(sin(bb(3)∗rad) ∗ sin(bb(1)∗rad))
A.3. Programa mad3DC
cgamr = (cos(bb(1)∗rad)∗cos(bb(2)∗rad)-cos(bb(3)∗rad))/
(sin(bb(1)∗rad) ∗ sin(bb(2)∗rad))
alfa = acos (calfr) ∗ 180/pi
beta = acos (cbetr) ∗ 180/pi
gamma = acos (cgamr) ∗ 180/pi
armax = max (arec, brec, crec)
armin = min (arec, brec, crec)
eta = one / sqrt (armax ∗ armin ∗ pi)
eta2 = eta ∗ eta
pieta2 = eta2 ∗ (pi∗pi)
etahalf = eta / two
piomega = pi ∗ omega
Computing the metric tensor of the reciprocal lattice.
gr(1)
gr(2)
gr(3)
gr(4)
gr(5)
gr(6)
=
=
=
=
=
=
arec ∗ arec
arec ∗ brec ∗ cgamr
brec ∗ brec
arec ∗ crec ∗ cbetr
brec ∗ crec ∗ calfr
crec ∗ crec
Computing the metric tensor of the direct lattice.
g(1)
g(2)
g(3)
g(4)
g(5)
g(6)
=
=
=
=
=
=
ared ∗ ared
ared ∗ bred ∗ cos (bb(3)∗rad)
bred ∗ bred
ared ∗ cred ∗ cos (bb(2)∗rad)
bred ∗ cred ∗ cos (bb(1)∗rad)
cred ∗ cred
Initialization of lattice vectors up to mlayer shells of cells.
do i = 1, 3
kvec(i,0) = 0
enddo
iavec(0) = 0
ivec = 0
do ish = 1, mlayer
do ixx = 0, ish
iabsix = abs(ixx)
117
A.3. Programa mad3DC
118
do iyy = -ish, ish
We include only those z’s that make up the shell.
if (abs(iyy).eq.ish .or. iabsix.eq.ish) then
istep = 1
else
istep = ish + ish
endif
do izz = -ish, ish, istep
And among them, only half, since there’s always a symmetrical lattice
vector -K
if((ixx.ne.0 .or. iyy.ge.0).and.
(ixx.ne.0 .or. iyy.ne.0 .or. izz.gt.0)) then
ivec = ivec + 1
kvec(1,ivec) = ixx
kvec(2,ivec) = iyy
kvec(3,ivec) = izz
endif
enddo
enddo
enddo
iavec(ish) = ivec
enddo
close (2)
return
end
A.3.2
Function few3DC (x,y,z,k)
La subrutina few3DC calcula el potencial electrostático en puntos de una red
tridimensional de cargas puntuales.
Function few3DC (x,y,z,k)
include ’implicit.inc’
include ’global.inc’
include ’celatm.inc’
A.3. Programa mad3DC
include ’consts.inc’
include ’ewald2d.inc’
include ’neqatm.inc’
include ’red.inc’
include ’error.inc’
real∗8 wwax, wway, wwaz, vpur, self, shpdep, k
integer nsh, ictr, ictr0
real∗8 wa(3), ewsh, ewsh0, conv2, qq
real∗8 rfive, pfive
dimension rvec(3,mcel), qshift(mcel)
Online functions: square modulus of a vector (this way is faster)
dis2(xi,yi,zi) = xi ∗ ( xi∗g(1) + two∗yi∗g(2) + two∗zi∗g(4) ) +
yi ∗ ( yi∗g(3) + two∗zi∗g(5) ) + zi∗zi∗g(6)
dis2r(xi,yi,zi) = xi ∗ ( xi∗gr(1) + two∗yi∗gr(2) + two∗zi∗gr(4) )
+ yi ∗ ( yi∗gr(3) + two∗zi∗gr(5) ) + zi∗zi∗gr(6)
Reading input file
wwax = x
wway = y
wwaz = z
qq = k
open (15,file=’slab.inp’,status=óld’,form=’formatted’)
read (15,∗) ncel
do i = 1, ncel
read (15,∗) xxcel(i,1), xxcel(i,2), xxcel(i,3), qcel(i),
xocup(typcel(i))
enddo
close(15)
Tolerance on positions
rfive = half - epsfrac
pfive = half + epsfrac
Shift the test point to the first cell.
if (abs(wwax - nint(wwax)) .le. epsfrac) then
wa(1) = 0d0
119
A.3. Programa mad3DC
120
else if (wwax.ge.zero) then
wa(1) = wwax - int(wwax)
else
wa(1) = wwax - int(wwax) + 1d0
endif
if (abs(wway - nint(wway)) .le. epsfrac) then
wa(2) = 0d0
else if (wway.ge.zero) then
wa(2) = wway - int(wway)
else
wa(2) = wway - int(wway) + 1d0
endif
if (abs(wwaz - nint(wwaz)) .le. epsfrac) then
wa(3) = 0d0
else if (wwaz.ge.zero) then
wa(3) = wwaz - int(wwaz)
else
wa(3) = wwaz - int(wwaz) + 1d0
endif
Shift cell origin to test point; new cell will be [-1/2,1/2].
ictr = 0
do i = 1, ncel
ictr = ictr + 1
ictr0 = ictr
qshift(ictr) = qcel(i) ∗ xocup(typcel(i))
do j = 1, 3
rvec(j,ictr0) = xxcel (i,j) - wa(j)
if (rvec(j,ictr0).gt.pfive ) then
rvec(j,ictr0) = rvec(j,ictr0) - one
else if (rvec(j,ictr0).lt.-pfive ) then
rvec(j,ictr0) = rvec(j,ictr0) + one
endif
enddo
Evjen’s fractional charge counting; this leads to a replication of charges
at cell edges.
inum = 1
do j = 1, 3
A.3. Programa mad3DC
if (abs(rvec(j,ictr0)).ge.rfive) then
qshift(ictr0) = qshift(ictr0) ∗ half
do k = ictr0, ictr0+inum-1
ictr = ictr + 1
do l = 1, 3
if (l.eq.j) then
rvec(j,ictr) = -rvec(j,k)
else
rvec(l,ictr) = rvec(l,k)
endif
enddo
enddo
inum = inum ∗ 2
endif
enddo
do k = ictr0+1, ictr
qshift(k) = qshift(ictr0)
enddo
enddo
Shell number zero.
ewsh = zero
do i = 1, ictr
vr = dis2(rvec(1,i),rvec(2,i),rvec(3,i))
r = sqrt(vr)
if (r.gt.epsdis) then
t = r / eta
ewsh = ewsh + qshift(i)∗erfcc(t)/r
endif
enddo
ew = ewsh
ew1 = ew
Shell summation; nsh is the ordinal number of the current shell.
nsh = zero
ewsh0 = zero
do while (nsh.lt.mlayer .and. abs(conv2).gt.conv .or. nsh.eq.zero)
nsh = nsh + 1
ewsh = zero
121
A.3. Programa mad3DC
122
Summing all vectors in a shell
do ivec = iavec(nsh-1)+1, iavec(nsh)
vk = dis2r(dble(kvec(1,ivec)),dble(kvec(2,ivec)),
dble(kvec(3,ivec)))
h = sqrt (vk)
rec = zero
rea = zero
Travel all charges in the unit cell
do i = 1, ictr
rec = rec + qshift(i) ∗ cos(twopi∗
(rvec(1,i)∗kvec(1,ivec)+
rvec(2,i)∗kvec(2,ivec)+
rvec(3,i)∗kvec(3,ivec)))
Real part must be computed twice, once for each K and -K.
vr = dis2(rvec(1,i)+kvec(1,ivec),rvec(2,i)+kvec(2,ivec),
rvec(3,i)+kvec(3,ivec))
r = sqrt(vr)
t = r / eta
rea = rea + qshift(i) ∗ erfcc(t) / r
vr = dis2(rvec(1,i)-kvec(1,ivec),rvec(2,i)-kvec(2,ivec),
rvec(3,i)-kvec(3,ivec))
r = sqrt(vr)
t = r / eta
rea = rea + qshift(i) ∗ erfcc(t) / r
enddo
Accumulate real and reciprocal space parts in this shell.
rec = rec ∗ exp(-(pieta2∗vk)) / (piomega ∗ vk)
ewsh = ewsh + rec + rec + rea
enddo
Adding the shell contribution to the total potential.
conv2 = ewsh0 - ewsh
ew = ew + ewsh
A.4. Ficheros include
123
ewsh0 = ewsh
enddo
ew2 = ew
Convergence control.
if (nsh.eq.mlayer .and. abs(ewsh).gt.conv) then
call error (’fewald’,
’convergence not reached with mlayer shells’,
faterr)
endif
Include self-potential correction, and exit.
ew = ew - tosqrpi ∗ qq / eta
self = tosqrpi ∗ qq / eta
vpur = qq ∗ ew
fewald = vpur
return
end
A.4
Ficheros include
Los distintos códigos presentados en las secciones anteriores utilizan estructuras de datos especı́ficas que se declaran por comodidad en ficheros separados.
Estos ficheros se especifican en las primeras lineas de cada código a través
de la sentencia include y el nombre correspondiente. En esta sección se
presentan y describen brevemente estos ficheros.
A.4.1
celatm.inc
celatm.inc - common containing information about the complete set of ions
in the primitive cell.
ncel ....... number of atoms in the crystallographic cell.
typcel ..... type of atom (refers to the non-equivalent atom from
which it comes).
x,y,zcel . cell coordinates of the atoms.
xxcel(,) ... two-index matrix that is equivalenced to the single-index
vectors xcel()..zcel().
A.4. Ficheros include
124
qcel ....... charge of the atom.
epsfrac .... max error allowed in the cell coordinates for several routines.
epsdis ..... max error allowed in the distances for several routines.
integer ncel, typcel
common /celatm1/ typcel(mcel), ncel
real∗8 xcel, ycel, zcel, xxcel, qcel
common /celatm2/ xcel(mcel), ycel(mcel), zcel(mcel), qcel(mcel)
dimension xxcel(mcel,3)
equivalence (xxcel(1,1), xcel(1))
equivalence (xxcel(1,2), ycel(1))
equivalence (xxcel(1,3), zcel(1))
real∗8 epsfrac, epsdis, conv
parameter (epsfrac = 1d-7)
parameter (epsdis = 1d-6)
parameter (conv = 1d-15)
A.4.2
consts.inc
consts.inc - mathematical constants.
real∗8 pi, cte, ctsq2, ctsq3, cteuler, ctgold
real∗8 sqrpi, rad, twopi, halfpi, tosqrpi, pisquare
parameter (pi = 3.14159 26535 89793 23846 d0)
parameter (cte = 2.71828 18284 59045 23536 d0)
parameter (ctsq2 = 1.41421 35623 73095 04880 d0)
parameter (ctsq3 = 1.73205 08075 68877 29352 d0)
parameter (cteuler = 0.57721 56649 01532 86061 d0)
parameter (ctgold = 1.61803 39887 49894 84820 d0)
parameter (sqrpi = 1.77245 38509 05515 99275 d0)
parameter (rad = pi / 180d0 )
parameter (twopi = 2d0 ∗ pi )
parameter (halfpi = pi / 2d0 )
parameter (tosqrpi = 2d0 / sqrpi )
parameter (pisquare = pi ∗ pi )
real∗8 zero, one, two, three, four
real∗8 half, third, fourth
parameter (zero = 0d0)
parameter (one = 1d0)
parameter (two = 2d0)
parameter (three = 3d0)
A.4. Ficheros include
125
parameter (four = 4d0)
parameter (half = 0.5d0)
parameter (third = one/three)
parameter (fourth = 0.25d0)
real∗8 undef
parameter (undef = 9.72d21)
A.4.3
error.inc
error.inc - error codes.
integer faterr,warning,noerr
parameter (faterr=-1,warning=1,noerr=0)
integer luwrite
common /errluw/ luwrite
A.4.4
ewald.inc
ewald.inc - reciprocal cell data.
real∗8 omega, eta, eta2, piomega, gr, sup,
twosup, pieta, etasqrpi, dum, root
common /ewald1/ omega, eta, piomega, gr(7), sup,
eta2, twosup, pieta, etasqrpi, dum, root
integer mlayer, mcells
parameter (mlayer = 15)
parameter (mcells = ((2∗mlayer+1)∗(2∗mlayer+1)∗(2∗mlayer+1)-1)/2)
∗mdc∗if gnu
integer hvec(3,0:mcells)
∗mdc∗else
∗ integer∗2 hvec(3,0:mcells)
∗mdc∗endif
integer iavec(0:mlayer)
common /ewald2/ iavec, hvec
A.4.5
global.inc
global.inc - program parameters:
MCEL ...... max number of atoms in the primitive cell.
A.4. Ficheros include
126
integer mcel
parameter (mcel = 730 )
A.4.6
implicit.inc
implicit.inc - implicit real variables size.
implicit real∗8 (a-h, o-z)
A.4.7
neqatm.inc
neqatm.inc - common containing information about non-equivalent
ions in the primitive cell.
xocup ...... fractional occupancy of the nominal positions (most
real∗8 xocup(mnt)
common /neqatm/ xocup
A.4.8
red.inc
red.inc - lattice description.
ared..cred . lattice parameters (in bohr).
alf..gam ... lattice angles (in degrees).
aa() ....... cell parameters (equivalenced to ared..cred)
bb() ....... cell angles (equivalenced to alf, bet, gam)
cosdir() ... cos(bb()) (equivalenced to calf..cgam)
sindir() ... sin(bb()) (equivalenced to salf..sgam)
g() ........ metric tensor in supervector form
real∗8 ared, bred, cred, alf, bet, gam, calf, cbet, cgam, salf, sbet, sgam,
aa, bb, cosdir, sindir, g
common /red0/ aa(3), bb(3), cosdir(3), sindir(3), g(7)
equivalence (aa(1), ared), (aa(2), bred), (aa(3), cred)
equivalence (bb(1), alf), (bb(2), bet), (bb(3), gam)
equivalence (cosdir(1), calf), (cosdir(2), cbet), (cosdir(3), cgam)
equivalence (sindir(1), salf), (sindir(2), sbet), (sindir(3), sgam)
A.4. Ficheros include
A.4.9
stdio.inc
stdio.inc - standard input, output, and error units.
integer stdin, stdout, stderr
parameter (stdin=5, stdout=6, stderr=0)
127
Descargar