Ap A p u n t es par p ara a us ar el p r o g r ama VA VA SP Julio, 2007
Secció Secció n 1. Fich Fich eros Secció Secció n 2. Geometría Geometría del si stema (Para (Para con str uir un POSC POSCAR) AR)
Geometría del bulto Geometría de una superficie Secció Secció n 3. Naturaleza Naturaleza del si stema (Para (Para co nstr uir un POTC POTCAR) AR) Secció Secció n 4a. Paráme Parámetro tro del cálcu lo (Para (Para const rui r u n KPOINTS KPOINTS)) Secció Secció n 4b. Parámetro Parámetro del c álculo (Para (Para constr uir un INCAR) INCAR) Secció Secció n 5. Cálcul Cálcul os específicos
Optimización de geometría Cálculo de frecuencias Cálculo de DOS Cálculo de función trabajo Cálculo de core-level shift Cálculo del nivel de Fermi Para Para obtener un estado d e transició n. a) Cálculo NEB
b) Cálculo con dimer method c) Reducción de fuerzas mediante una optimización. Ap énd ic e A. Parámetro A. Parámetro de red calculado de algunos metales. Ap énd ic e B. B . Ejemplos de ficheros POSCAR para metales en bulk
Estructura bcc: Estructura fcc: Estructura hcp: Estructura de diamante: Ap éndic énd ic e C. Ejemplos de ficheros POSCAR para diferentes superficies de una estructura fcc
1
1. Superficie (111) de un metal fcc 2. Superficie (100) de un metal fcc 3. Superficie (110) de un metal fcc Ap éndic énd ic e D. Programas
1. Programa para construir superficies a partir de una celda unitaria 2. Programa para crear imágenes para un cálculo NEB 3. Programa para convertir un fichero CONTCAR a un fichero en formato para visualizar en xcrysden (.xspf) Ap éndic énd ic e E. Parámetros necesarios para construir modelos periódicos. Ap énd ic e F. F. Prueba de convergencia de Energía de corte y espacio vacío Páginas útiles para encontrar información sobre el uso del programa VASP
2
1. Superficie (111) de un metal fcc 2. Superficie (100) de un metal fcc 3. Superficie (110) de un metal fcc Ap éndic énd ic e D. Programas
1. Programa para construir superficies a partir de una celda unitaria 2. Programa para crear imágenes para un cálculo NEB 3. Programa para convertir un fichero CONTCAR a un fichero en formato para visualizar en xcrysden (.xspf) Ap éndic énd ic e E. Parámetros necesarios para construir modelos periódicos. Ap énd ic e F. F. Prueba de convergencia de Energía de corte y espacio vacío Páginas útiles para encontrar información sobre el uso del programa VASP
2
Estos apuntes no sustituyen el manual de VASP ni el tutorial (es indispensable manejar ambos y conocerlos suficientemente para aprovechar la información que ofrecen). Aquí se incluyen únicamente algunos consejos y un esquema para iniciar cualquier trabajo, en forma muy general. Al final hay una sección con páginas web en las que se puede consultar información sobre el uso de este programa.
Secció Secció n 1. Ficheros Ficheros Para cualquier cálculo VASP son necesarios 4 ficheros de entrada: Geometría del sistema
=>
POSCAR
Naturaleza del sistema
=>
POTCAR
Parámetros de cálculo
=>
INCAR
Datos del espacio recíproco
=>
KPOINTS
y número de átomos
Los ficheros de resultados que se escriben por defecto son:
OUTCAR: Es el fichero principal de resultados, en él se escriben los datos más relevantes del cálculo: la geometría de inicio (con una tabla de vecinos más cercanos: buscar “nearest neighbor table”), las coordenadas del sistema en coordenadas cartesianas y directas, los parámetros de entrada del cálculo, la energía en cada paso de una optimización, las frecuencias (si se les ha pedido), etc.
OSZICAR: Resume los datos de la energía en cada iteración. En un cálculo NEB proporciona el valor de energía total de todas las imágenes.
CONTCAR: En este fichero se encuentra la geometría después del cálculo, se actualiza tras cada iteración nuclear.
XDATCAR: Acumula todas las geometrías durante el cálculo. vasprun.xml: Es un fichero en lenguaje máquina, necesario para analizar otros ficheros de salida como el LOCPOT, ELFCAR y DOSCAR. Entre todos los ficheros de resultados opcionales que proporciona el cálculo se encuentran (para que se escriban, es necesario indicarlo en el INCAR, incluyendo la línea que a continuación se da entre paréntesis):
DOSCAR: Contiene la información de la Densidad de Estados total y de cada átomo y sus contribuciones s, p y d (LORBT = 11).
LOCPOT: Información del potencial químico en cada punto del sistema, desde el core de los átomos hasta el vacío (LVTOT = T).
ELFCAR: Distribución de la densidad electrónica (LELF = T). 3
CHGCAR: Cargas electrónicas (el programa
bader_lnx (la página web en la que se puede
adquirir este programa está en la última página de este manual) permite leer este fichero y dar los valores del análisis de Bader y de Voronoi) (LCHARG = T).
WAVECAR: Fichero que contiene información de las funciones de onda del sistema, se escribe al final del cálculo y es útil para reiniciar el cálculo, cuando se han terminado las iteraciones indicadas y aún no ha convergido (LWAVE = T). El WAVECAR de un cálculo anterior no se puede usar si son diferentes el tamaño de la celda y la energía de corte)
Secc Secció ión n 2. Geometr Geometr ía del sist si st ema (Pa (Para ra con st ruir ru ir u n POSCAR) POSCAR) Para inicial cualquier cálculo con VASP, es necesario iniciar ajustando los parámetros a los valores más adecuados, por aquí vamos a empezar:
Geometría del bulto
Para modelar un sólido, por ejemplo una superficie, en el caso de estudiar interacciones con adsorbatos, reacciones en la superficie, etc. el primer paso es determinar el parámetro de la red del sólido ( a). En el caso más simple, el de un metal, es necesario conocer su estructura: fcc, bcc, hcp, etc. y su parámetro de red experimental (www.webelements.com). (www.webelements.com). En el apéndice A se da una lista de los valores de parámetro de red de algunos metales que hemos calculado en el grupo, usando el funcional PW91 y los pseudopotenciales pseudopotenciales PAW correspondientes correspondientes a este funcional. Sabiendo la estructura del sólido, es posible construir la celda primitiva, partiendo de
sus vectores primitivos y su base atómica. En el apéndice B se muestran varios ejemplos de ficheros POSCAR construidos a partir de los vectores y la base atómica de varias estructuras metálicas. Es útil tener un script que permita variar el parámetro de celda, de lo contrario es necesario construir tantos cálculos como puntos para localizar el parámetro de red óptimo al cual la energía es mínima. Para mayor facilidad, es conveniente iniciar la búsqueda alrededor del parámetro experimental.
4
En adelante se presenta una gráfica de la búsqueda del parámetro de red para el Cu (parámetro experimental = 3.61 Å):
Para comprobar si el parámetro de celda es correcto, hay una prueba muy sencilla, que es el cálculo del módulo de bulk ( B), el inverso de la compresibilidad, que puede obtenerse con cualquiera de estas dos ecuaciones: B = −V 0
∂P ∂V V
2 2 ∂ E = −V 0 2
0
∂V
V 0
Donde P es la presión del sistema, V es el volumen de la celda, V o es el volumen de la celda correspondiente al parámetro de la celda optimizado y E es la energía del sistema. Calcular este parámetro a partir de la primera parte de la igualdad es la forma más fácil de obtenerlo, variando la constante de la red ligeramente a valores menores y mayores del valor optimizado y posteriormente calculando la pendiente de la recta formada por una gráfica que represente la variación de la presión con respecto al cambio en el volumen de la celda, como lo indica la siguiente figura.
Los valores de la presión y el volumen del fichero OUTCAR se pueden obtener usando la utilidad grep: 5
> grep pressure OUTCAR > grep volume OUTCAR
La presión está en unidades de kB y el volumen en Å 3, así que el modulo de bulto estará en unidades de kB, que se deberán convertir a GPa para comparar con los valores experimentales (1 GPa = 10 kB), los cuales pueden obtenerse a partir de los valores de las constantes elásticas adiabáticas.
Geometría de una superficie
La construcción del POSCAR depende del plano de corte de la superficie, por ello los vectores unitarios y la base atómica es diferente para cada plano de corte. En el apéndice C se presentan ejemplos de ficheros
POSCAR de varias superficies. Javier
Carrasco creo un programa en perl para construir modelos de superficies a partir de los datos de un fichero POSCAR o CONTCAR de la celda primitiva. En el apéndice D se incluye una copia, para su ejecución en Linux: > perl supercel.pl nombre_del_POSCAR/CONTCAR Y seguir las instrucciones. La información que contiene el fichero POSCAR es la siguiente: La primera línea es un comentario. La segunda es un factor que afecta los vectores de la celda (sólo cuando las posiciones de los átomos están dadas en coordenadas directas) y las coordenadas de los átomos. De la tercera a la quinta son los 3 vectores que forman la cel da. En la sexta línea se indica el número de átomos de cada especie que forman el sistema, por ejemplo, si hay una molécula de CO adsorbida en una celda de Pt con 3 capas (12 átomos metálicos), la sexta línea será (en el mismo orden se dan las coordenadas de los átomos y se construye el POTCAR): 1 1 12 A partir de la séptima línea se indican las coordenadas de cada átomo que forma el sistema.
6
Para determinar el número de capas atómicas en el modelo, hay dos formas de hacerlo: 1) Calcular la energía de adsorción de diferentes modelos variando el número de capas hasta llegar a un número, al cual esta propiedad no cambia. 2) Calcular la energía superficial de una celda (1x1) con diferentes números de capas atómicas. Esup = (Eslab – natomos E bulk ) / 2 Donde Esup es la energía superficial, Eslab es la energía del modelo, natomos es el número de átomos que contiene el slab y E bulk es la energía de un átomo en el bulk.
En el apéndice E hay una serie de tablas con los parámetros que se pueden variar para construir un modelo de superficie. La energía y el tiempo de cálculo son los dos factores más importantes que conviene cuidar para determinar los valores más adecuados y a la vez que no consumen tiempo de cálculo exagerado.
Sección 3. Naturaleza del si stema (Para con struir u n POTCAR) Junto con el programa VASP, se suministran los pseudopotenciales de todos los elementos. Cada uno de los cuales está en un directorio nombrado con su símbolo atómico, dentro está el fichero POTCAR comprimido de ese elemento, (POTCAR.Z). Para algunos elementos hay varios POTCAR, que se han construido con alguna característica especial, por ejemplo, incluyendo orbitales s o p del core en la valencia, por experiencia los que no tienen nada especial dan buenos resultados. Si el sistema solo tiene una especie, basta guardar el fichero POTCAR.Z en el directorio en el que se prepara el cálculo y descomprimirlo (utilizando >gunzip POTCAR.Z). Si por el contrario, el sistema está formado por más especies, habrá que guardar un solo
POTCAR que acumule todos los POTCAR de cada elemento, por ello sugerimos los siguientes pasos: 1) Guardar el POTCAR.Z del primer elemento en el directorio de trabajo. 2) Descomprimirlo ( > gunzip POTCAR.Z). 3) Guardarlo con otro nombre, por ejemplo, o.potcar si el POTCAR es de O.
7
Así si el sistema es como en la sección anterior CO/Pt, se guardarán o.potcar, c.potcar y pt.potcar en un mismo directorio. 4) Unir los diferentes POTCAR en el mismo orden que se ha indicado en el POSCAR ( > cat o.potcar c.potcar pt.potcar >> POTCAR).
Sección 4a. Parámetro del cálculo (Para construir un KPOINTS) La malla de puntos k del espacio recíproco debe ser densa cuando la celda es pequeña y viceversa, por ejemplo, para un solo átomo en bulk, una malla de 11x11x11 es un buen punto de partida, cuando se haya optimizado el parámetro de la celda se puede probar una malla de 13x13x13, y 15x15x15 para ver si cambia el valor de la energía, si es así, se pueden repetir un par de cálculos alrededor del parámetro de red optimizado, para comprobar que el valor calculado es el correcto. Para una superficie, depende del tamaño de la misma, hay una regla empírica que nos ha llegado a través de Núria López: La longitud de la celda en cada eje (en Å) multiplicada por él número de puntos k en esa misma dirección debe ser mayor de 20. Por ejemplo: si la longitud de la celda en el eje x es de 8 Å, en el eje y de 9 Å y en z de 20 Å, la combinación mínima de puntos k será: 3x3x1, aunque se puede mejorar usando 5x5x1, por experiencia, un cálculo que usa un número impar de puntos k consume menos tiempo de cálculo que usando un número par, por ello recomendamos más usar una malla de 5x5x1 que una de 4x4x1.
Secci ón 4b. Parámetro del cálcul o (Para con str uir un INCAR) Las notas del tutorial de la escuela VASP describen muy bien como construir un fichero
INCAR. Como se sabe hay más de 60 parámetros en este fichero, la mayoría de ellos no los cambiamos, si no que mantenemos el valor por defecto. En adelante se describen algunos de los parámetros que a lo largo de algunos años de usar este programa hemos visto que son los que más pueden influir en un cálculo y que deberían de ser los más estudiados en el manual VASP. También damos los valores que hemos ido usando y
8
sugerimos que se prueben en un primer sistema para luego usarlos confiadamente a lo largo del trabajo que se desarrolla. ISTAR : Inicio del cálculo, a partir de cero (0) o reinicio (1), para este caso se debe tener el fichero WAVECAR (verificar que se le ha pedido al cálculo anterior con LWAV = T en el
INCAR) en el directorio donde se ejecuta el cálculo. NWRITE: La cantidad de información, recomendamos 2, si se pide menos no se ve cierta información, por ejemplo, las fuerzas que actúan en cada átomo en cada iteración atómica. NSW: Número de iteraciones atómicas, por defecto es 40, nosotros tradicionalmente hemos usado 71, pero se puede cambiar según convenga, por ejemplo se ve que un cálculo va convergiendo hasta la iteración 40, luego empieza a divergir, se puede enviar un cálculo con 39 iteraciones, guardar el WAVECAR y reiniciar el cálculo NELM: Número de iteraciones del cálculo auto-consistente, o de la optimización electrónica, por defecto es de 60, en un cálculo difícil, en el que vemos que se terminan las 60 iteraciones electrónicas en varias iteraciones atómicas, probablemente puede ayudar a la convergencia aumentar el número de pasos electrónicos. ALGO o IALGO: Es el método de optimización electrónica o del cálculo auto-consistente, los valores que más hemos utilizado: ALGO = V o IALGO = 48, tienen el mismo significado, e indica el método RMM-DIIS, éste es el más usual, pero si se tienen problemas de convergencia, se puede usar: ALFO = F, calcula 1 paso con un método muy robusto de optimización, el método de DAVISON y los siguientes con el RMM-DIIS IALGO = 38, indica usar el método DAVISON, éste es el recomendado para cálculo difíciles. ISMEAR: Es el método de llenado de orbitales, los valores que usamos generalmente son: 2
Para metales, que indica usar el método de Methfessel-Paxton de orden 2.
0
Para óxidos o semiconductores, también para celda muy grandes.
-5
Para cálculos muy precisos, sin optimización de átomos metálicos, por ejemplo, para calcular la DOS.
SIGMA: Es el ancho del llenado de orbitales, 0.2 eV es un buen valor para casi todos los cálculos.
9
ENCUT: Es la límite de energía para considerar las ondas planas para el cálculo, entre más alto sea este valor, más ondas planas se incluyen en el cálculo y más preciso es la energía obtenida. Un valor recomendable para metales es 350, para adsorción de moléculas sencillas que incluyen N, C y O en metales, 415 puede ser un buen valor, para celdas muy grandes y/o moléculas complicadas, más de 20 Å por lado, 515 eV ha resultado ser un valor aceptable. En el apéndice F hay una prueba que hicimos de espacio vacío contra energía de corte, de un sistema
relativamente complicado: la adsorción de una molécula de nitro-benzoestireno en túneles de Au, se calculó la molécula y los túneles por separado, posteriormente la molécula lejos del Au y por último la molécula adsorbida. Se varió el espacio vacío entre 10 y 25 Å y la energía de corte entre 415 y 515 eV. EDIFFG: Límite al que se detiene la optimización, si la diferencia entre dos pasos continuos es más pequeña que este valor. Hay dos criterios que pueden usarse para la optimización: la energía y las fuerzas.
Secci ón 5. Cálculos específic os En esta sección damos algunas recomendaciones para ciertos cálculos con VASP, son los procedimientos que hemos usado en estos años para calcular algunos sistemas.
Optimización de geometría
POSCAR Para relajar parcialmente un sistema, es necesario liberar sólo algunas de las coordenadas de sus átomos, es importante que en la séptima línea esté la leyenda “Selective dynamics”, o bien una “S” y que se indique en el POSCAR las coordenadas x, y, z que se dejan relajar para cada posición atómica con una letra “T”. Si la séptima línea no existe, el programa optimizará todas las coordenadas de los átomos que forman el sistema.
INCAR Los parámetros que es necesario tener en cuenta son: IBRION: Método de optimización atómica (llamada iónica hasta el cansancio en el manual de VASP) -1
Sin optimización, los átomos se fijan en sus posiciones iniciales.
10
1
Método quasi-Newton, RMM-DIIS, es el que se puede usar cuando se está muy cerca
del mínimo, es decir, que el sistema no se debe mover mucho en cada iteración, por ello es el que se usa para refinar la búsqueda de la geometría del estado de transición, a partir de una geometría aproximada, obtenida por ejemplo con el método NEB o el dimer method. 2
Método de gradiente conjugado, es el que se usa generalmente en una optimización de
geometría en que no se sabe si el mínimo está lejos o cerca de la geometría inicial, es robusto y bastante confiable. EDIFFG: Los valores que podemos recomendar para los dos criterios de optimización: a) Energía, en tal caso, sencillamente se le da el valor (0.1 E -03 es un valor suficiente, para cálculos más estrictos, se puede disminuir este valor dos ordenes de magnitud). b) Fuerzas, es necesario anteponer un signo negativo al valor (-0.01 es un valor razonable para todos los cálculos). En el fichero OUTCAR, al final de cada paso de optimización atómica se indica la energía total del sistema y las fuerzas que actúan en cada átomo.
Cálculo de frecuencias
POSCAR Para calcular la frecuencia de vibración de algunos átomos del sistema, se liberan las coordenadas correspondientes, por ejemplo para calcular las frecuencias de vibración de una molécula adsorbida, se liberan las coordenadas de el(los) adsorbato(s) y se mantienen fijas las correspondientes a los átomos del sustrato.
INCAR IBRION = 5
Indica que se hace un cálculo de frecuencias, en este caso, en el POSCAR se
deben indicar las coordenadas de los átomos que vibrarán. NSW ≠ 0, el programa por defecto hace 3*N+1 iteraciones para este cáculo, donde N es el numero de átomos liberados para calcular las frecuencias, si se desea forzar a un numero de iteraciones determinado se debe indicar dar ese valor a NSW y cambiar el valor de IBRION a 5. EDIFFG: Criterios que pueden usarse para calcular las frecuencias: a) Energía, en tal caso, 0.1 E -05 es un valor razonable. b) Fuerzas, -0.01 es un valor razonable. Al final del fichero OUTCAR se indican los valores de las frecuencias de vibración, así como los átomos del sistema que contribuyen en la vibración y el desplazamiento de cada uno, un
11
primer bloque presenta el desplazamiento en Å y otro bloque los desplazamientos ponderados por las masas.
Cálculo de DOS En el fichero de resultados DOSCAR se encuentran los resultados de la densidad de estados (DOS) total del sistema. El fichero DOSCAR se escribe si se ha hecho un cálculo estático. Se deben tomar en cuenta los siguientes parámetros:
POSCAR Para este tipo de cálculo se parte de una geometría ya optimizada del sistema (copiando el
CONTCAR a POSCAR). KPOINTS Para construir el fichero correspondiente, se debe tomar en cuenta que la malla de puntos k debe ser más densa que la de una optimización, puesto que se requiere mayor precisión. El número de puntos k puede ser el doble o más de los usados en una optimización.
INCAR IBRION = -1 NSW
= 0
ISMEAR: El método de llenado de orbitales, se recomiendo usar: 0
El método gaussiano
-5
El método del tetahedro
Si se le indica, desglosa la contribución a la DOS del sistema por átomos y por contribuciones s, p y d: LORBIT = 11 Se debe tomar en cuenta que la suma de las contribuciones s, p y d no es igual a la DOS total, por ello hay que tener cuidado al analizar los resultados. También, como lo menciona el manual de VASP, los resultados prácticamente son para fines comparativos entre dos cálculos hechos con los mismos parámetros. Para analizar las DOS calculadas, se puede usar el programa p4vasp, o bien, el programa creado por Javier Carrasco que se da en la sección de programas (apéndice D).
12
Cálculo d e func ión trabajo Para calcular esta propiedad electrónica de un sistema, es necesario utilizar una geometría optimizada y calcular el potencial local del sistema, el programa lo puede calcular, el fichero de resultados se escribe en el fichero LOCPOT, para que se escriba este fichero, es necesario indicarlo en el INCAR.
INCAR IBRION = -1 NSW
= 0
LVTOT = T
POSCAR Para este tipo de cálculo se parte de una geometría ya optimizada del sistema (copiando el
CONTCAR a POSCAR). Para calcular la función trabajo (Φ): Φ =
Evacio + εFermi
El programa vaspview es muy útil para obtener el potencial local en el vacío.
Cálculo de core-level shif t Para calcular core-level shift es necesario partir de una geometría optimizada, posteriormente calcular el estado inicial del sistema y por último el estado final después de quitar un electrón, para calcular el estado inicial, se debe indicar al INCAR los siguientes parámetros: ICORELEVEL = 1 ISMEAR
= -5
Para el estado final, el INCAR debe contener: ICORELEVEL = 2 CLNT: Orden del átomo al que se va la a quitar un electrón conforme a lo indicado en el POSCAR y POTCAR, se debe tomar en cuenta que si hay más átomos de la misma naturaleza en el sistema, se debe separar del resto en el POTCAR y en el POSCAR, como si fuera un átomo diferente. CLN: Número cuántico principal del electrón que se va a retirar. CLZ = 0.5 (Indica que se retira un electrón)
13
Cálcul o del n ivel de Fermi Para obtener el valor del nivel de fermi (o energía de Fermi) del sistema correcto es necesario corregir al valor obtenido en el fichero DOSCAR y OUTCAR, restando un parámetro: 1) Para átomos o moléculas se debe sumar el valor alpha+beta obtenido en la misma línea del OUTCAR que da el nivel de Fermi. 2) Para el resto de sistemas se debe calcular el potencial en el vacío, en principio debería ser cero, pero como casi siempre no lo es (supongamos que es -4.56 eV), para corregir el nivel de Fermi que da el OUTCAR, se suma el valor calculado para el potencial en el vacío (para que el potencial en el vacío sea cero, se le debe sumar 4.56 eV, por lo tanto, también al nivel de Fermi se le debe sumar el mismo valor de 4.56 eV).
Para obtener un estado d e transició n. a) Cálculo NEB Partiendo de los ficheros POSCAR del estado inicial (por ejemplo, POSCAR.ini) y final (por ejemplo, POSCAR.fin), ambos bien caracterizados como puntos estacionarios, se interpolan las distancias entre ellos para obtener un determinado número de imágenes intermedias (n), a partir de un script llamado interpolPOSCAR creado por Daniel Torres, dentro del cual están las instrucciones para usarlo. Antes de ejecutar este programa, se debe tomar en cuenta que el interpolPOSCAR diferencia entre 0 y 1, lo que para el programa VASP, al tener propiedades
periódicas, es indistinto, por ello, se debe revisar cuidadosamente que ambos ficheros POSCAR coincidan en las coordenadas, para VASP es igual que la coordenada z del átomo 2 sea 1.02 que 0.02, pero no para el interpolPOSCAR, por ello al interpolar esta coordenada, en las diversas imágenes, tomará valores entre 1.02 y 0.02 (0.82, 0.62, 0.42, 062), lo que es incorrecto, por ello se debe revisar que las coordenadas entre ambos POSCAR sean consistentes y modificar uno de los POSCAR si no es así. En adelante se proporciona un breve resumen de cómo crear los ficheros de entrada para un cálculo NEB usando el programa interpolPOSCAR: 1. Crear un fichero concatenado ambas configuraciones, la primera configuración ha de ser la del estado inicial de la NEB: > cat POSCAR.ini
POSCAR.fin >> POSCAR
Este fichero POSCAR debe tener liberadas las coordenadas de los átomos que reaccionan. 2. Crear n+2 directorios vacíos donde se crearan los POSCARs: > mkdir
00
01
02
03
04
14
… 0(n+1)
3. Ejecutar el programa > ./interpolPOSCAR POSCAR
En el directorio 00 estará el POSCAR correspondiente a la configuración inicial y en el 0(n+1) la configuración final, estas dos configuraciones se conservarán fijas durante el cálculo, mientras que las imágenes intermedias son optimizadas. En el directorio del cálculo deben estar los correspondientes ficheros KPOINTS, POTCAR e
INCAR. El POTCAR y el KPOINTS puede ser el usado para optimizar la geometría de los estados inicial y final. En el INCAR, los parámetros a cuidar son: IMAGES: Número de imágenes intermedias entre el estado inicial y final. LCLIMB: Indica si se utiliza la modificación Climbing-image al método NEB (T). El resultado del cálculo NEB se escribe en cada directorio 01, 02, .. 0(n-1) como si fuese una optimización: OUTCAR, CONTCAR, etc. El directorio en el que se encuentra la imagen con la energía mayor es el que podría ser el estado de transición, esta configuración deberá tener fuerzas pequeñas en los átomos que se ha permitido optimizar y se le deben calcular frecuencias de vibración a los átomos que reaccionan (cuyas coordenadas se habían liberado en el fichero POSCAR), si se obtiene una frecuencia imaginaria de alrededor de 400 cm-1, se puede considerar que es la geometría del estado de transición de la reacción y que la dirección correspondiente a esa frecuencia imaginaria es la coordenada de reacción. Si no se cumplen estas dos condiciones (fuerzas pequeñas y una frecuencia imaginaria grande) se debe continuar la búsqueda del estado de transición.
Para continuar la búsqueda hay varias opciones: 1) Si las fuerzas son muy grandes, se puede reenviar el cálculo NEB, utilizando los CONTCAR de cada imagen como POSCAR y disminuyendo el criterio de convergencia de la optimización atómica, por ejemplo dos ordenes de magnitud. 2) Si aunque se reenvie el cálculo NEB, no hay cambios en la energía, o bien, se han calculado las frecuencias de vibración de esta configuración y hay más de una frecuencia imaginaria se puede utilizar el dimer method , o reducir las fuerzas mediante una optimización, ambos procedimientos se describe brevemente a continuación:
15
b) Cálculo con dimer method 1. Crear dos directorios llamados 01 y 02, dentro del directorio de cálculo. 2. Colocar en el directorio 01 un fichero POSCAR con la geometría de la imagen con la energía más alta obtenida en el cálculo NEB. 3. Colocar en el directorio 02 un fichero POSCAR desplazando ligeramente la geometría del directorio 01, si se tiene información de las frecuencias de vibración, los átomos que participan en la segunda frecuencia imaginaria más alta se pueden mover en la dirección de los desplazamientos de estos átomos. En el directorio del cálculo deben estar los ficheros KPOINTS, POTCAR e INCAR . En el INCAR, los parámetros a cuidar son: ICHAIN = 2 IMAGES = 2
c) Reducción de fuerzas mediante una optimización. Si una configuración que pudiera ser un estado de transición, resultado de un cálculo NEB o con dimer method (en ocasiones, en un cálculo con dimer method , la energía ya no cambia pero el
programa se continua ejecutando, la ejecución se puede detener y calcular sus frecuencias de vibración, porque probablemente ya se tiene el estado de transición) aún tiene fuerzas grandes con una sola frecuencia imaginaria, o bien, la segunda frecuencia imaginaria no es muy grande, las fuerzas se pueden disminuir con una optimización con el método quasi-Newton. El procedimiento es el mismo que el seguido para la optimización de geometría, sólo hay que tener
16
Apéndice A. Parámetro de red calculado d e algun os m etales, usando el fu ncion al PW91 y lo s pseudopot enciales PAW correspond ientes a este fun cional. Datos experimentales
Resultados teóricos
Metal
Estructura
Parámetro de red ( a)
Módulo de bulto ( B)
Parámetro de red ( a)
Distancia primeros vecinos
Módulo de bulto ( B)
Cu
fcc
3.61
138
3.634
2.57
137
Ag
fcc
4.158
2.94
Au
fcc
4.078
4.174
2.95
Pd
fcc
3.89
3.957
2.798
Pt
fcc
3.92
276
3.986
2.82
245
Rh
fcc
3.8
276
3.846
2.72
267
Sn
diamante
6.49
58(Td)
6.646
38
Ru
hcp
2.7/4.28
286
2.698/4.406
300
Fe
bcc
2.87
2.827
Co
hcp/fcc
2.51(fcc)
2.485
173.5
166.6
2.448
Los parámetros de red y la distancia a primeros vecinos están en Å y el módulo de bulk en GPa.
17
Apéndice B. Ejemplos de ficheros POSCAR para metales en bulk En adelante se presentan los ficheros POSCAR de las estructuras cristalinas bcc, fcc, hcp, diamante, en primer lugar se indican los vectores primitivos y la base atómica correspondiente.
1. Estructura bcc: Vectores primitivos -0.5
0.5
0.5
-0.5
0.5
0.5
0.5
0.5
-0.5
0.0
0.0
Base atómica 0.0
POSCAR:
Apéndice B. Ejemplos de ficheros POSCAR para metales en bulk En adelante se presentan los ficheros POSCAR de las estructuras cristalinas bcc, fcc, hcp, diamante, en primer lugar se indican los vectores primitivos y la base atómica correspondiente.
1. Estructura bcc: Vectores primitivos -0.5
0.5
0.5
-0.5
0.5
0.5
0.5
0.5
-0.5
0.0
0.0
Base atómica 0.0
POSCAR: Atomo de V en una celda bcc 3.03 -0.5
0.5
0.5
-0.5
0.5
0.5
0.5
0.5
-0.5
1 Cartesianas 0.0 0.0 0.0
2. Estructura fcc: Vectores primitivos 0.0
0.5
0.5
0.5
0.0
0.5
0.5
0.5
0.0
0.0
0.0
Base atómica 0.0
18
POSCAR: Atomo de Rh en una celda fcc 3.846 0.0
0.5
0.5
0.5
0.0
0.5
0.5
0.5
0.0
1 Cartesianas 0.0 0.0 0.0
3. Estructura hcp: Vectores primitivos 1.0
0.0
0.0
0.5
0.86603 0.0
0.0
0.0
1.63299
Base atómica (en coordenadas cartesianas) 0.0
0.0
0.0
0.5
0.2887 0.8165
POSCAR: Atomo de Ru en una celda hcp 2.698 1.0
0.0
0.0
0.5
0.86603 0.0
0.0
0.0
1.63299
2 Cartesianas 0.0
0.0
0.0
0.5
0.2887 0.8165
19
4. Estructura de diamante: Vectores primitivos 0.0
0.5
0.5
0.5
0.0
0.5
0.5
0.5
0.0
Base atómica (en coordenadas cartesianas) 0.0
0.0
0.0
0.25
0.25
0.25
POSCAR: Atomo de Sn en una celda de diamante 6.646 0.0
0.5
0.5
0.5
0.0
0.5
0.5
0.5
0.0
2 Cartesianas 0.0
0.0
0.0
0.25
0.25
0.25
20
Apéndice C. Ejemplos de ficheros POSCAR para diferentes superfic ies de una estru ctur a fcc
1. Superficie (111) de un metal fcc, los vectores unitarios son factores de la distancia a primeros vecinos, que se calcula a partir del parámetro de red (a): a
d =
2
Los vectores primitivos son: d 0.5d 0
0 3 d 2 0
0 0 z
la z se calcula multiplicando el número de capas atómicas (nc) y de vacío (nv) que se incluyen en el modelo por la separación entre las capas (r), que para un superficie (111) de la estructura fcc es: b =
2 a 3
por tanto, z se calcula mediante la siguiente fórmula: z = (nc + nv) b o bien, multiplicando el número de capas atómicas por la separación entre capas y sumando la longitud del vacío (v) que se desea incluir. z = (nc)b + v Los vectores unitarios están dados en función del tamaño de la celda del modelo, que por lo general se elige pensando en la estructura que forma el adsorbato en la superficie o en el cantidad de sitios necesarios. Los vectores unitarios son: xd
0.5 yd 0
0 3 yd 2 0
0 0 z
21
donde x e y son los números de celdas primitivas en el eje x e y, respectivamente, que incluye la celda unitaria. Base atómica (en coordenadas cartesianas) para una celda (2x2): Primera capa 0.0
0.0
0.0
d
0.0
0.0
0.5d
3 d 2
0.0
1.5d
3 d 2
0.0
Segunda capa 0.5d 1.5d 1d 2d
1
d 2 3 1 d 2 3 2 d 3 2 d 3
-b -b -b -b
Tercera capa 1d 2d 1.5d 2.5d
1 d 3 1 d 3 2 d 3 2 d 3
-2b -2b -2b -2b
22
Ejemplo de POSCAR para una celda 4x4 del Cu con 3 capas (con dos relajadas): Superficie de Cu con 4 capas 2.57 4.0000000000000000 .0000000000000000 .00000000000 2.0000000000000000 3.4641016151400001 .00000000000 .0000000000000000 .0000000000000000 6.34054026948 48 Selective dynamics Cartesianas 0.0000000000 0.000000000000 0.000000000 T T T 1.0000000000 0.000000000000 0.000000000 T T T 2.0000000000 0.000000000000 0.000000000 T T T 3.0000000000 0.000000000000 0.000000000 T T T 0.5000000000 0.866025403784 0.000000000 T T T 1.5000000000 0.866025403784 0.000000000 T T T 2.5000000000 0.866025403784 0.000000000 T T T 3.5000000000 0.866025403784 0.000000000 T T T 1.0000000000 1.732050807570 0.000000000 T T T 2.0000000000 1.732050807570 0.000000000 T T T 3.0000000000 1.732050807570 0.000000000 T T T 4.0000000000 1.732050807570 0.000000000 T T T 1.5000000000 2.598076211350 0.000000000 T T T 2.5000000000 2.598076211350 0.000000000 T T T 3.5000000000 2.598076211350 0.000000000 T T T 4.5000000000 2.598076211350 0.000000000 T T T 0.5000000000 0.288675134595 -0.81649656194 T T T 1.5000000000 0.288675134595 -0.81649656194 T T T 2.5000000000 0.288675134595 -0.81649656194 T T T 3.5000000000 0.288675134595 -0.81649656194 T T T 1.0000000000 1.154700538380 -0.81649656194 T T T 2.0000000000 1.154700538380 -0.81649656194 T T T 3.0000000000 1.154700538380 -0.81649656194 T T T 4.0000000000 1.154700538380 -0.81649656194 T T T 1.5000000000 2.020725942170 -0.81649656194 T T T 2.5000000000 2.020725942170 -0.81649656194 T T T 3.5000000000 2.020725942170 -0.81649656194 T T T 4.5000000000 2.020725942170 -0.81649656194 T T T 2.0000000000 2.886751345950 -0.81649656194 T T T 3.0000000000 2.886751345950 -0.81649656194 T T T 4.0000000000 2.886751345950 -0.81649656194 T T T 5.0000000000 2.886751345950 -0.81649656194 T T T 1.0000000000 0.577350269190 -1.63299312388 F F F 2.0000000000 0.577350269190 -1.63299312388 F F F 3.0000000000 0.577350269190 -1.63299312388 F F F 4.0000000000 0.577350269190 -1.63299312388 F F F 1.5000000000 1.443375672970 -1.63299312388 F F F 2.5000000000 1.443375672970 -1.63299312388 F F F 3.5000000000 1.443375672970 -1.63299312388 F F F 4.5000000000 1.443375672970 -1.63299312388 F F F 23
2.0000000000 3.0000000000 4.0000000000 5.0000000000 2.5000000000 3.5000000000 4.5000000000 5.5000000000
2.309401076760 2.309401076760 2.309401076760 2.309401076760 3.175426480540 3.175426480540 3.175426480540 3.175426480540
-1.63299312388 F -1.63299312388 F -1.63299312388 F -1.63299312388 F -1.63299312388 F -1.63299312388 F -1.63299312388 F -1.63299312388 F
F F F F F F F F
F F F F F F F F
2. Superficie (100) de un metal fcc Un ejemplo de POSCAR para una celda 2x2 del Co (con dos capas relajadas) Superficie de Co con 4 capas 3.520 2.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.5000000000000000 24 Selective dynamics cartesian 0.0000000000000000 0.0000000000000000 0.0000000000 T T T 1.0000000000000000 0.0000000000000000 0.0000000000 T T T 0.5000000000000000 0.5000000000000000 0.0000000000 T T T 1.5000000000000000 0.5000000000000000 0.0000000000 T T T 0.0000000000000000 1.0000000000000000 0.0000000000 T T T 1.0000000000000000 1.0000000000000000 0.0000000000 T T T 0.5000000000000000 1.5000000000000000 0.0000000000 T T T 1.5000000000000000 1.5000000000000000 0.0000000000 T T T 0.5000000000000000 0.0000000000000000 -0.5000000000 T T T 1.5000000000000000 0.0000000000000000 -0.5000000000 T T T 0.0000000000000000 0.5000000000000000 -0.50000000000 T T T 1.0000000000000000 0.5000000000000000 -0.50000000000 T T T 0.5000000000000000 1.0000000000000000 -0.50000000000 T T T 1.5000000000000000 1.0000000000000000 -0.50000000000 T T T 0.0000000000000000 1.5000000000000000 -0.50000000000 T T T 1.0000000000000000 1.5000000000000000 -0.50000000000 T T T 0.0000000000000000 0.0000000000000000 -1.00000000000 F F F 1.0000000000000000 0.0000000000000000 -1.00000000000 F F F 0.5000000000000000 0.5000000000000000 -1.00000000000 F F F 1.5000000000000000 0.5000000000000000 -1.00000000000 F F F 0.0000000000000000 1.0000000000000000 -1.00000000000 F F F 1.0000000000000000 1.0000000000000000 -1.00000000000 F F F 0.5000000000000000 1.5000000000000000 -1.00000000000 F F F 1.5000000000000000 1.5000000000000000 -1.00000000000 F F F
24
3. Superficie (110) de un metal fcc Un ejemplo de POSCAR para una celda 3x3 del Co (con dos capas relajadas) Superficie de Co con 4 capas 3.520000000000000000 2.1213200000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.9497474700000000 36 Selective dynamics cartesian 0.0000000000000000 0.0000000000000000 0.0000000000 T T T 0.7071067810000000 0.0000000000000000 0.0000000000 T T T 1.4142135620000000 0.0000000000000000 0.0000000000 T T T 0.0000000000000000 1.0000000000000000 0.0000000000 T T T 0.7071067810000000 1.0000000000000000 0.0000000000 T T T 1.4142135620000000 1.0000000000000000 0.0000000000 T T T 0.0000000000000000 2.0000000000000000 0.0000000000 T T T 0.7071067810000000 2.0000000000000000 0.0000000000 T T T 1.4142135620000000 2.0000000000000000 0.0000000000 T T T 0.3535533905000000 0.5000000000000000 -0.3535533905 T T T 1.0606601715000000 0.5000000000000000 -0.3535533905 T T T 1.7677669525000000 0.5000000000000000 -0.3535533905 T T T 0.3535533905000000 1.5000000000000000 -0.3535533905 T T T 1.0606601715000000 1.5000000000000000 -0.3535533905 T T T 1.7677669525000000 1.5000000000000000 -0.3535533905 T T T 0.3535533905000000 2.5000000000000000 -0.3535533905 T T T 1.0606601715000000 2.5000000000000000 -0.3535533905 T T T 1.7677669525000000 2.5000000000000000 -0.3535533905 T T T 0.0000000000000000 0.0000000000000000 -0.7071067810 F F F 0.7071067810000000 0.0000000000000000 -0.7071067810 F F F 1.4142135620000000 0.0000000000000000 -0.7071067810 F F F 0.0000000000000000 1.0000000000000000 -0.7071067810 F F F 0.7071067810000000 1.0000000000000000 -0.7071067810 F F F 1.4142135620000000 1.0000000000000000 -0.7071067810 F F F 0.0000000000000000 2.0000000000000000 -0.7071067810 F F F 0.7071067810000000 2.0000000000000000 -0.7071067810 F F F 1.4142135620000000 2.0000000000000000 -0.7071067810 F F F 0.3535533905000000 0.5000000000000000 -1.0606601715 F F F 1.0606601715000000 0.5000000000000000 -1.0606601715 F F F 1.7677669525000000 0.5000000000000000 -1.0606601715 F F F 0.3535533905000000 1.5000000000000000 -1.0606601715 F F F 1.0606601715000000 1.5000000000000000 -1.0606601715 F F F 1.7677669525000000 1.5000000000000000 -1.0606601715 F F F 0.3535533905000000 2.5000000000000000 -1.0606601715 F F F 1.0606601715000000 2.5000000000000000 -1.0606601715 F F F 1.7677669525000000 2.5000000000000000 -1.0606601715 F F F
25
Apéndice D. Programas
1. Programa para construir su perficies a parti r de una celda unitaria –PERL #! / us r / bi n/ per l #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # PROGRAM Super cel TO GENERATE SUPERCELLS USI NG UNI T CELLS I N # poscar / cont car VASP FORMAT # # UTI LI TY: # a. Cr eat e super cel l s expandi ng al ong x, y or / and z di r ect i ons # b. Cr eat e sur f aces wi t h a cer t ai n vacuum ( r est r i ct i on: onl y # surf aces per pendi cul ar t o di r ect or vect or s a, b & c can be # made # # UTI LI ZATI ON: # per l super cel . pl f i cer o_poscar / cont car # # By J avi er Car r asco ( car r asco@qf . ub. es) #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # READI NG POSCAR/ CONTCAR FI LE open ( I N, $ARGV[ 0] ) ; $i =0; whi l e ( ) { i f ( $. ==1) { $name=$_; chomp( $name) ; }; i f ( $. ==2) { $escal a=$_; chomp( $escal a) ; }; i f ( $. ==3) { @f i el ds =s pl i t ( ' ' ) ; $ax=$f i el ds[ 0] ; $ay=$f i el ds[ 1] ; $az=$f i el ds[ 2] ; }; i f ( $. ==4) { @f i el ds =s pl i t ( ' ' ) ; $bx=$f i el ds[ 0] ; $by=$f i el ds[ 1] ; $bz=$f i el ds[ 2] ; }; i f ( $. ==5) { @f i el ds =s pl i t ( ' ' ) ; $cx=$f i el ds[ 0] ; $cy=$f i el ds[ 1] ; $cz=$f i el ds[ 2] ; }; i f ( $. ==6) { @at =s pl i t ( ' ' ) ;
26
$suma=0; $sum=0; f or ( $j =0; $j <@at ; $j ++) { $at [ $j ] =$at [ $j ] ; $s um=$s um+1; $NAT=$NAT+$at [ $j ] ; }; }; i f ( ( $. >8) &&( $. <$NAT+9) ) { @f i el ds =s pl i t ( ' ' ) ; $x[ $i ] =$f i el ds [ 0] ; $y[ $i ] =$f i el ds [ 1] ; $z [ $i ] =$f i el ds [ 2] ; $opt x[ $i ] =$f i el ds[ 3] ; $opt y[ $i ] =$f i el ds[ 4] ; $opt z[ $i ] =$f i el ds[ 5] ; $i ++; }; }; cl os e ( I N) ; #READI NG PARAMETERS TO CONSTRUCT THE DESI RED OUTPUT pr i nt " \ n" ; pr i nt " Super c el l s i z e: \ n" ; pr i nt " - - - - - - - - - - - - - - - \ n" ; pr i nt "r epeat ed uni t s al ong x: "; $nx=; chomp( $nx) ; pr i nt "r epeat ed uni t s al ong y: "; $ny=; chomp( $ny) ; pr i nt "r epeat ed uni t s al ong z: "; $nz=; chomp( $nz) ; pr i nt " \ n" ; pr i nt "Sur f ace i nf or mat i on: \ n"; pr i nt "- - - - - - - - - - - - - - - - - - - - \ n" ; whi l e ( 1) { pr i nt "Gener at e sur f ace ( y/ n) ? > "; $r esp1=; chomp( $r esp1) ; i f ( ( $r esp1 ne "y") &&( $r esp1 ne " n") ) { pr i nt "Wr i t e yes ( y) or no ( n) ! \ n"; pr i nt " Tr y agai n. . . \ n" ; pr i nt " \ n" ; }; i f ( ( $r esp1 eq "y") | | ( $r esp1 eq "n") ) { l ast ; }; }; i f ( $r esp1 eq "y") { whi l e ( 1) { pr i nt "Speci f y di r ect i on f or vacuum, DI RECT: ( a, b o c) > "; $r esp2=; chomp( $r esp2) ; i f ( ( $r esp2 ne "a") &&( $r esp2 ne " b" ) &&( $r esp2 ne " c" ) ) { pr i nt " Pl eas e, wr i t e \ " a\ " \ " b\ " o \ " c\ " \ n" ; pr i nt " Tr y agai n. . . \ n" ; pr i nt " \ n" ; }; i f ( ( $r esp2 ne "a") | | ( $r esp2 ne "b") | | ( $r esp2 ne "c") ) { pr i nt " Speci f y desi r ed vacuum, i n Ansgt r om > " ; $vaci o=; chomp( $vaci o) ; l ast ;
27
}; }; }; # Hast a aqui t enemos t odos l os dat os de ent r ada de dat os #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # PROCESSI NG DATA # 0. New di r ect or vect or s cal cul at i on $sescal a=1. 0; $sax=$escal a*$ax*$nx; $say=$escal a*$ay*$ny; $saz=$escal a*$az* $nz; $sbx=$escal a*$bx*$nx; $sby=$escal a*$by*$ny; $sbz=$escal a*$bz* $nz; $scx=$escal a*$cx*$nx; $scy=$escal a*$cy*$ny; $scz =$escal a*$cz* $nz; $msa=sqr t ( $sax** 2+$say** 2+$saz* *2) ; $msb=sqr t ( $sbx** 2+$sby** 2+$sbz**2) ; $msc=sqr t ( $scx** 2+$scy** 2+$scz* *2) ; i f ( ( $r esp1 eq "y" ) &&( $r esp2 eq " a") ) { $f ac=( $vaci o+$msa) / $msa; $sax=$f ac*$sax; $say=$f ac*$say; $saz=$f ac*$saz; }; i f ( ( $r esp1 eq "y" ) &&( $r esp2 eq " b") ) { $f ac=( $vaci o+$msb) / $msb; $sbx=$f ac*$sbx; $sby=$f ac*$sby; $sbz=$f ac*$sbz; }; i f ( ( $r esp1 eq "y" ) &&( $r esp2 eq " c") ) { $f ac=( $vaci o+$msc) / $msc ; $scx=$f ac*$scx; $scy=$f ac*$scy; $scz =$f ac*$scz; }; # 1. Reposi ci onado de t odas l as coor denadas f r acci onar i as a # val or es posi t i vos ( par a evi t ar posi bl es conf l i ct os) f or ( $p=0; $p<$NAT; $p++) { i f ( $x[ $p] <0. 0) { $x[ $p] =$x[ $p] +1; }; i f ( $y[ $p] <0. 0) { $y[ $p] =$y[ $p] +1; }; i f ( $z[ $p] <0. 0) { $z[ $p] =$z[ $p] +1; }; }; # 2. Cr eat i ng desi r ed syst em: $di m=$nx*$ny*$nz; $SNAT=$di m*$NAT; f or ( $r =0; $r <@at ; $r ++) { $sat [ $r ] =$at [ $r ] *$di m; };
28
pr i nt " \ n" ; pr i nt " Wr i t e a name f or out put POSCAR f i l e > " ; $out put =; chomp( $out put ) ; open ( OUT1, " >$out put " ) ; open ( OUT2, " >$out put . out " ) ; pr i nt OUT1 " $name\ n"; pr i nt OUT2 " $name\ n"; pr i nt f OUT1 " %2. 11f \ n" , $sescal a; pr i nt f OUT2 " %2. 11f \ n" , $sescal a; pr i nt f OUT1 " %2. 11f %2. 11f %2. 11f \ n" , $sax, $say, $saz; pr i nt f OUT2 " %2. 11f %2. 11f %2. 11f \ n" , $sax, $say, $saz; pr i nt f OUT1 " %2. 11f %2. 11f %2. 11f \ n" , $sbx, $sby, $sbz; pr i nt f OUT2 " %2. 11f %2. 11f %2. 11f \ n" , $sbx, $sby, $sbz; pr i nt f OUT1 " %2. 11f %2. 11f %2. 11f \ n" , $scx, $scy, $scz; pr i nt f OUT2 " %2. 11f %2. 11f %2. 11f \ n" , $scx, $scy, $scz; f or ( $k=0; $k<@at ; $k++) { pr i nt OUT1 " $sat [ $k] "; pr i nt OUT2 " $sat [ $k] "; }; pr i nt OUT1 "\ n"; pr i nt OUT2 "\ n"; pr i nt OUT1 "Sel ect i ve dynami cs\ n" ; pr i nt OUT1 "Di r ect \ n"; pr i nt OUT2 "Di r ect \ n"; pr i nt OUT2 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n" ; pr i nt OUT2 "uni t cel l ( 1 x 1 x 1) : $NAT at s. - - > super cel l ( $nx x $ny x $nz) : $SNAT at s. \ n" ; pr i nt OUT2 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n" ; f or ( $q=0; $q<$NAT; $q++) { $sum2=0. 0; f or ( $i =0; $i <$nx; $i ++) { f or ( $j =0; $j <$ny; $j ++) { f or ( $k=0; $k<$nz; $k++) { $sx[ $q] [ $sum2] =$x[ $q] / $nx+$i / $nx; i f ( ( $r esp1 eq "y" ) &&( $r esp2 eq " a") ) { $sx[ $q] [ $sum2] =$sx[ $q] [ $sum2] *$msa/ ( $msa+$vaci o) ; }; $sy[ $q] [ $sum2] =$y[ $q] / $ny+$j / $ny; i f ( ( $r esp1 eq "y" ) &&( $r esp2 eq " b") ) { $sy[ $q] [ $sum2] =$sy[ $q] [ $sum2] *$msb/ ( $msb+$vaci o) ; }; $sz [ $q] [ $sum2] =$z[ $q] / $nz+$k/ $nz; i f ( ( $r esp1 eq "y" ) &&( $r esp2 eq " c") ) { $sz [ $q] [ $sum2] =$sz [ $q] [ $sum2] *$msc/ ( $msc+$vaci o) ; }; pr i nt f OUT1 " %2. 11f %2. 11f %2. 11f $opt x[ $q] $opt y[ $q] $opt z[ $q] \ n" , $sx[ $q] [ $sum2] , $sy[ $q] [ $sum2] , $sz[ $q] [ $sum2] ; pr i nt f OUT2 " x( $q- $sum2) , x/ $nx+$i / $nx: %2. 5f y( $q$sum2) , y/ $ny+$j / $ny: %2. 5f z( $q- $sum2) , z/ $nz+$k/ $nz: %2. 5f ( $opt x[ $q] $opt y[ $q] $opt z[ $q] ) \ n" , $sx[ $q] [ $sum2] , $sy[ $q] [ $sum2] , $sz[ $q] [ $sum2] ; $s um2++;
29
}; }; }; }; pr i nt " \ n" ; pr i nt " Tot al at oms i n t he $nx x $ny x $nz supercel l : $SNAT\ n" ; i f ( $r esp1 eq "y") { pr i nt " Vacuum: $vaci o AA f or $r esp2 axi s\ n" ; }; pr i nt " \ n" ; pr i nt " Resul t s i n ( POSCAR f or mat ) : $out put \ n" ; pr i nt "For mor e det ai l s about super cel l gener at i on see al so: $out put . out \ n"; pr i nt " \ n" ; pr i nt " J . C. R\ n" ; ############# ############# #### #### ############# ############# #### #### ############# #############
##### #### ###### #### ####### #### ######## #### #### #### #### #### #### #### #### ######## #### ####### #### ###### #### #####
###### ########## #### #### #### #### #### #### #### #### #### #### #### #### ########## #######
30
2. Progr ama para crear imágenes para un cálculo NEB –SCRIPT######################&MAKE BY DANI &############################### # # I nt r ucci ones de uso # # 0. Est e scr i pt si r ve par a cr ear l as i magenes par a l a NEB # 1. Est e ar chi vo ha de t ener per mi sos de ej ecuci on # 2. " r ep" es el numer o de i magenes, cont ando l a cer o ( 00, 01, 02, . . . ) # 3. Cr ear un POSCAR concat enado donde l a pr i mer a conf i gur aci on ha de ser #l a del est ado i ni ci al d l a NEB # 4. Cr ear una ser i e de di r ect or i os vaci os donde se cr ear an l os POSCARs # 5. Escr i bi r el l a l i nea de comandos . / i nt er pol POSCAR POSCAR # 6. Si el POSCAR cont i ene mas de 4 t i pos de at omos di f er ent es se han de #edi t ar # l as si gui ent es l i neas # l i nes = $1 + $2 + $3 + $4 +8 # at oms= $1 + $2 + $3 + $ # Por ej empl o si di sponemos de 6 t i pos de at omos se deber i a poner : # l i nes = $1 + $2 + $3 + $4 + $5 + $6 +8 #
at oms= $1 + $2 + $3 + $4 + $% + $6
# ! ! ! LOS POSCARS A CONCATENAR HAN DE ESTAR LI BRES DE LI NEAS EN BLANCO ! ################################################################### f i l e=$1 r ep=$2 pr i nt $2 awk <$f i l e ' BEGI N { r ep=6; cent er =0 } / cent er / { cent er =1} / r ep/ { r ep=$2 } { l i ne=l i ne+1 i f ( second ! = 1 ) { i f ( l i ne == 6 ) { l i nes = $1 + $2 + $3 + $4 +$5 + $6 + 8 at oms= $1 + $2 + $3 + $4 + $5 + $6 pr i nt " number of i mages =" , r ep pr i nt "f ound ", at oms, " i ons" head[ l i ne] = $0 } el s e i f ( l i ne < 9 ) head[ l i ne] = $0 el se { x[ l i ne- 8] = $1 ; y[ l i ne- 8] = $2 ; z[ l i ne- 8] = $3 ; t [ l i ne- 8] = $4 ; t 2[ l i ne- 8] = $5 ; t 3[ l i ne- 8] = $6 i f ( l i ne==l i nes ) { second=1; pr i nt " f i r s t s et r ead" }
31
} } el se { l i nes2 = l i nes + 8 i f ( l i ne > l i nes 2 ) { x2[ l i ne] = $1; y2[ l i ne] = $2 ; z2[ l i ne] = $3 } } } END { l i nes4=l i nes2 l i nes=l i nes- 8 f or ( l i ne=1; l i ne<=l i nes ; l i ne ++ ) { l i ne3 = l i ne + l i nes4 cx1=cx1+ x[ l i ne] ; cy1=cy1+ y[ l i ne] ; cz1=cz1+ z[ l i ne] cx2=cx2+ x2[ l i ne3] ; cy2=cy2+ y2[ l i ne3] ; cz2=cz2+ z 2[ l i ne3] } i f ( cent er ) { cx=( cx2- cx1) / l i nes cy=( cy2- cy1) / l i nes cz=( cz2- cz1) / l i nes pr i nt "cent er of mass f or second cel l wi l l be shi f t ed by", cx, cy, cz } f or ( i =0; i f i l e f or ( l i ne=1; l i nef i l e } } }'
32
3. Programa para convertir u n fichero CONTCAR a un fichero en formato para visualizar en xcrysden (.xspf) –FORTRAN 77PROGRAM CARTES Est e pr ogr ama l ee un ar chi vo de coor denadas y gener a uno
C par a C
xcr ysden I MPLI CI T REAL*8( A- H, O- Z) PARAMETER ( N=200) DI MENSI ON A( 3, 3) , B( N, 3) , C( N, 3) , I at m( 20) , Nat m( 20) CHARACTER*40 Ti t ul o, Cal cul o, Coor denadas Pi de el numer o de at omos WRI TE( 6, *) " Di me el numer o de at omos del si st ema" READ ( 5, *) m
C
C
Pi de el númer o de t i pos de at omos WRI TE( 6, *) " Cuant os t i pos de at omos hay en el si st ema" READ ( 5, *) nt Do i =1, nt Wr i t e( 6, *) " Di me el numer o at omi co del at omo" , i , " y su
cant i d bad" r ead ( 5, *) I at m( i ) , Enddo
Nat m( i )
OPEN( 2, FI LE=" CONTCAR" ) OPEN( 3, FI LE=" cr y") C C C
C C C C C C C
Lee el t i t ul o READ( 2, 150) Ti t ul o Lee l a const ant e de r ed Read( 2, 100) r Lee l os vect or es de l a r ed Do i =1, 3 Read( 2, * ) ( A( i , j ) , j =1, 3) Enddo Lee el numer o de at omos Read( 2, *) l Lee el t i po de cal cul o READ( 2, 150) Cal cul o Lee el t i po de coor denadas READ( 2, 150) Coor denadas Lee l as coor denadas di r ect as Do i =1, m Read( 2, * ) ( B( i , j ) , j =1, 3) Enddo ***** Es cr i be el t i t ul o WRI TE( 3, *) " SLAB" Escr i be " PRI MVEC"
33
C C C C C C
WRI TE( 3, *) " PRI MVEC" Escr i be l os vect or es de l a r ed Do i =1, 3 Wr i t e( 3, 300) ( A( i , j ) , j =1, 3) Enddo ****** Mul t i pl i ca l os vect or es por l a cont ant e de r ed Do i =1, 3 Do j =1, 3 A( i , j ) =r *A( i , j ) Enddo Enddo Escr i be l os vect or es modi f i cados Do i =1, 3 Wr i t e( 3, 300) ( A( i , j ) , j =1, 3) Enddo Escr i be " PRI MCOORD" WRI TE( 3, *) " PRI MCOORD" Escr i be el numer o de at omos Wr i t e( 3, *) m, " 2" ****** ********** Cal cul a l as coor denas car t esi anas Do i =1, m Do j =1, 3 C( i , j ) =0. Do k=1, 3 C( i , j ) =C( i , j ) +B( i , k) * A( k , j ) Enddo Enddo Enddo ****** Do i =1, m I f ( ( C( i , 3) ) . l t . ( 13. 0) ) t hen C( i , 3) =C( i , 3) +A( 3, 3) endi f Enddo
C
***************
C C C C
I ndi ca el numer o at omi co I ndi ca que son coor denadas car t esi anas WRI TE( 3, 150) " Coor denadas Car t esi anas" Escr i be l as coor denadas car t esi anas
C C C C C C
C
C C C C C
Do k=1, nt Do i =1, Nat m( k) WRI TE( 3, 700) I at m( k) , ( C( i , j ) , j =1, 3) EndDo Enddo C 150 100 200
********* For mat ( A40) For mat ( F15. 8) For mat ( F10. 2)
34
300 400 500 600 700
For mat For mat For mat For mat For mat END
( 3F14. 10) ( 3F16. 8) ( I 3, 14( I 3, F6. 2) ) ( 3x, 14( I 3, F6. 2) , / ) ( I 4, ( 3F16. 10) )
35
Apéndice E. Parámetros modelos periódicos.
necesarios
para
construir
En adelante se presenta una serie de tablas, que pueden ayudar a construir un modelo, encontrando la geometría y los parámetros de cálculos adecuados para un determinado cálculo. Entre paréntesis se indica el fichero de datos que hay que modificar. Al ser la energía uno de los resultados más sensibles, es la que se propone utilizar para ir determinado los parámetros, también el tiempo de cálculo es un factor a tener en cuenta para tener un equilibrio entre precisión y recursos computacionales, en el
OUTCAR el tiempo se lee en “Elapsed CPU time”. La idea es en cada paso obtener el parámetro más adecuado y usarlo para el punto siguiente.
1. Número de capas. (POSCAR sin relajar) Para ello es útil calcular la energía superficial. (funcional PW91, celda (1x1), red 7x7x1 k, Ecutoff = 300) No. capas
Energía superficial (eV/Å)
Tiempo (seg)
3 4 5 6
2. Número de puntos k . (KPOINTS) Con modelos de diferentes tamaños (si no se tiene una estructura ya determinada) se prueba la densidad de la malla de puntos
k necesaria para representar el sistema. (funcional PW91, 3 capas, E cutoff = 300) Puntos k
Celda (2x2) Energía (eV)
Tiempo (seg)
Celda (3x3) Energía (eV)
Tiempo (seg)
3x3x1 4x4x1 5x5x1 6x6x1 7x7x1 Nota: Por lo general, usar números pares de puntos k es más costoso computacionalmente. 36
3. Espacio vacío. (POSCAR ) Variar el espacio vacío incluido en la supercelda (funcional PW91, 3 capas, E cutoff = 300, celda (2x2) ó (3x3) con la malla de puntos k obtenida en el paso anterior) Espacio vacío (Å)
Energía (eV)
Tiempo (seg)
8 10 12 14
4. Energía de corte. (ENCUT en INCAR) Determinar la energía de las ondas planas necesarias para el cálculo, para un espacio vacío grande y moléculas muy complicadas, es mejor emplear valores grandes de E cutoff (funcional PW91 y los parámetros obtenidos en todos los pasos anteriores). Energía de corte (Å)
Energía (eV)
Tiempo (seg)
300 350 400 450 500
5. Efecto de la polarización de spin. (ISPIN en INCAR) (funcional PW91 y los parámetros obtenidos en todos los pasos anteriores).
ISPIN
Energía (eV)
1 2
37
Tiempo (seg)
6. Funcional. (GGA en INCAR) (usar los parámetros obtenidos en los pasos anteriores).
GGA
Energía (eV)
Tiempo (seg)
91 PB RP Nota: Si se considera necesario también se puede probar la aproximación local de la DFT, para ello se debe usar el pseudopotencial correspondiente (POTCAR ) y omitir la línea GGA del (INCAR) también es conveniente usar la línea VOLSKOWN = 1 en el INCAR.
7. Efecto de la optimización de la geometría. (POSCAR) Todos los cálculos anteriores se realizaron sin optimizar la geometría, para este punto se puede tomar el modelo con los mejores parámetros obtenidos e ir relajando los átomos y observar los cambios en la energía y la geometría. (IBRION = 2) Relajar …
Energía (eV)
Distancia (Å)
La primera capa. La primera capa y la coordenada z de la segunda capa. Las dos primeras capas. Las 3 primeras capas.
8. Método de optimización atómica. (INCAR) IBRION
Energía (eV)
Tiempo (seg)
1 2 3
9. Método de optimización electrónica (INCAR) ALGO
Energía (eV)
ALGO = 38 IALGO = V IALGO = F
38
Tiempo (seg)
Apéndice F.
Prueba de conv ergencia de Energía de cor te y
espacio vacío
1. Cálculo de la energía de la molécula con celdas de diferentes tamaños de celda y varios valores de energía de corte (E cutoff ) (1 punto k, método RMM-DIIS)
415 eV 465 eV 515 eV
15 x 15 x 15 Å
20 x 20 x 20 Å
celda del túnel = 10 Å
-116.6235 -116.5873 -116.5866
-116.6187 -116.585 -116.5802
-116.6171 -116.5825 -116.5825
2. Cálculo de la energía de los túneles de Au usando diferentes tamaños de espacio vacío (3x3x1 puntos k, método RMM-DIIS)
415 eV 465 eV 515 eV
15 Å
20 Å
25 Å
celda del túnel = 10 Å
-267.7248 -267.818* -268.1583*
-267.7286 -267.8115 -268.1594*
-267.721 -267.8007 -268.1583
-267.1848 -268.1583
3. Suma de fragmentos
415 eV 465 eV 515 eV
15 Å
20 Å
Celda del túnel = 10 Å
-384.3483 -384.4053 -384.7449
-384.3473 -384.3965 -384.7396
-383.8019 -384.7408
4. Energía de la molécula muy lejos de los túneles de Au (3x3x1 puntos k, método RMM-DIIS)
415 eV 465 eV 515 eV
15 Å
20 Å
25 Å
-384.3502 -384.4114 -384.7492
celda del túnel = 10 Å -384.4133 -384.797
* Convergidos con el método de optimización de Davison (IALGO = 38) Notas: 1. El método de Davison se usó en los casos en los que el cálculo con RMM-DIIS no convergió, debido a que el método Davison es más robusto que aquel. 2. Si se están usando los parámetros más adecuados, la suma de fragmentos y la energía muy separados (más de 6 Å) debe ser igual, en este caso el modelo con 10 Å de espacio vacío no es suficiente, es necesario usar más de 15 Å o una energía de corte a partir de los 515 eV. 39