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