Los fundidos y fluidos son vectores ubicuos de transporte de masa en sistemas naturales. Hemos desarrollado un paquete de código abierto para analizar simulaciones de dinámica molecular ab initio de dichos sistemas. Calculamos las propiedades estructurales (unión, clusterización, especiación química), transporte (difusión, viscosidad) y termodinámicas (espectro vibratorio).
Hemos desarrollado un paquete de código abierto basado en Python para analizar los resultados derivados de simulaciones de dinámica molecular ab initio de fluidos. El paquete es el más adecuado para aplicaciones en sistemas naturales, como fundidos de silicato y óxido, fluidos a base de agua y varios fluidos supercríticos. El paquete es una colección de scripts de Python que incluyen dos bibliotecas principales que se ocupan de los formatos de archivo y la cristalografía. Todos los scripts se ejecutan en la línea de comandos. Proponemos un formato simplificado para almacenar las trayectorias atómicas y la información termodinámica relevante de las simulaciones, que se guarda en archivos UMD, que significa Dinámica Molecular Universal. El paquete UMD permite el cálculo de una serie de propiedades estructurales, de transporte y termodinámicas. Comenzando con la función de distribución de pares, define las longitudes de enlace, construye una matriz de conectividad interatómica y, finalmente, determina la especiación química. Determinar la vida útil de las especies químicas permite realizar un análisis estadístico completo. Luego, los scripts dedicados calculan los desplazamientos cuadráticos medios para los átomos, así como para las especies químicas. El análisis de autocorrelación implementado de las velocidades atómicas arroja los coeficientes de difusión y el espectro vibratorio. El mismo análisis aplicado sobre las tensiones produce la viscosidad. El paquete está disponible a través del sitio web de GitHub y a través de su propia página dedicada del proyecto ERC IMPACT como paquete de acceso abierto.
Los fluidos y los fundidos son vectores activos de transporte químico y físico en entornos naturales. Las elevadas tasas de difusión atómica favorecen los intercambios y reacciones químicas, la baja viscosidad junto con la flotabilidad variable favorecen la gran transferencia de masa y las relaciones de densidad de fusión cristalina favorecen la estratificación dentro de los cuerpos planetarios. La ausencia de una red periódica, las altas temperaturas típicas requeridas para alcanzar el estado fundido y la dificultad para el enfriamiento hacen que la determinación experimental de una serie de propiedades obvias, como la densidad, la difusión y la viscosidad, sea extremadamente desafiante. Estas dificultades hacen que los métodos computacionales alternativos sean herramientas fuertes y útiles para investigar esta clase de materiales.
Con el advenimiento de la potencia de cálculo y la disponibilidad de superordenadores, actualmente se emplean dos grandes técnicas de simulación atomística numérica para estudiar el estado dinámico de un sistema atomístico no cristalino, Monte Carlo1 y la dinámica molecular (MD)1,2. En las simulaciones de Monte Carlo, el espacio de configuración se muestrea aleatoriamente; Los métodos de Monte Carlo muestran una escala lineal en paralelización si todas las observaciones de muestreo son independientes entre sí. La calidad de los resultados depende de la calidad del generador de números aleatorios y de la representatividad del muestreo. Los métodos de Monte Carlo muestran escala lineal en paralelización si el muestreo es independiente entre sí. En dinámica molecular (DM) el espacio configuracional es muestreado por trayectorias atómicas dependientes del tiempo. A partir de una configuración dada, las trayectorias atómicas se calculan integrando las ecuaciones newtonianas de movimiento. Las fuerzas interatómicas se pueden calcular utilizando potenciales interatómicos modelo (en la DM clásica) o utilizando métodos de primeros principios (in ab initio, o primeros principios, MD). La calidad de los resultados depende de la longitud de la trayectoria y su capacidad para no sentirse atraído por los mínimos locales.
Las simulaciones de dinámica molecular contienen una gran cantidad de información, toda relacionada con el comportamiento dinámico del sistema. Las propiedades medias termodinámicas, como la energía interna, la temperatura y la presión, son bastante estándar para calcular. Pueden extraerse de los archivos de salida de las simulaciones y promediarse, mientras que las cantidades relacionadas directamente con el movimiento de los átomos, así como con su relación mutua, deben calcularse después de la extracción de las posiciones y velocidades atómicas.
En consecuencia, se ha dedicado mucho esfuerzo a visualizar los resultados, y varios paquetes están disponibles hoy en día, en diferentes plataformas, de código abierto o no [Ovito3, VMD4, Vesta5, Travis6, etc.]. Todas estas herramientas de visualización tratan eficientemente las distancias interatómicas, y como tales, permiten el cálculo eficiente de las funciones de distribución de pares y los coeficientes de difusión. Varios grupos que realizan simulaciones de dinámica molecular a gran escala tienen software patentado para analizar varias otras propiedades resultantes de las simulaciones, a veces en shareware u otras formas de acceso limitado a la comunidad, y a veces limitado en alcance y uso a algunos paquetes específicos. Algoritmos sofisticados para extraer información sobre enlaces interatómicos, patrones geométricos y termodinámica se desarrollan e implementan en algunos de estos paquetes3,4,5,6,7, etc.
Aquí proponemos el paquete UMD, un paquete de código abierto escrito en Python para analizar la salida de simulaciones de dinámica molecular. El paquete UMD permite el cálculo de una amplia gama de propiedades estructurales, dinámicas y termodinámicas (Figura 1). El paquete está disponible a través del sitio web de GitHub (https://github.com/rcaracas/UMD_package) y a través de una página dedicada (http://moonimpact.eu/umd-package/) del proyecto ERC IMPACT como un paquete de acceso abierto.
Para que sea universal y más fácil de manejar, nuestro enfoque es extraer primero toda la información relacionada con el estado termodinámico y las trayectorias atómicas del archivo de salida de la ejecución de dinámica molecular real. Esta información se almacena en un archivo dedicado, cuyo formato es independiente del paquete MD original donde se ejecutó la simulación. Llamamos a estos archivos archivos "umd", que significa Dinámica Molecular Universal. De esta manera, nuestro paquete UMD puede ser utilizado fácilmente por cualquier grupo ab initio con cualquier software, todo con un mínimo esfuerzo de adaptación. El único requisito para utilizar el paquete actual es escribir el analizador apropiado desde la salida del software MD en particular en el formato de archivo umd, si aún no existe. Por el momento, proporcionamos dichos analizadores para los paquetes VASP8 y QBox9 .
Figura 1: Diagrama de flujo de la biblioteca UMD.
Las propiedades físicas están en azul, y los principales scripts de Python y sus opciones están en rojo. Haga clic aquí para ver una versión más grande de esta figura.
Los archivos umd son archivos ASCII; la extensión típica es "umd.dat" pero no obligatoria. Todos los componentes de análisis pueden leer archivos ASCII del formato umd, independientemente de la extensión del nombre real. Sin embargo, algunos de los scripts automáticos diseñados para realizar estadísticas rápidas a gran escala en varias simulaciones buscan específicamente archivos con la extensión umd.dat. Cada propiedad física se expresa en una línea. Cada línea comienza con una palabra clave. De esta manera, el formato es altamente adaptable y permite agregar nuevas propiedades al archivo umd, al tiempo que conserva su legibilidad en todas las versiones. Las primeras 30 líneas del archivo umd de la simulación de pirolita a 4.6 GPa y 3000 K, utilizadas a continuación en la discusión, se muestran en la Figura 2.
Figura 2: El comienzo del archivo umd que describe la simulación de pirolita líquida a 4.6 GPa y 3000 K.
El encabezado va seguido de la descripción de cada instantánea. Cada propiedad se escribe en una línea, que contiene el nombre de la propiedad física, los valores y las unidades, todas separadas por espacios. Haga clic aquí para ver una versión más grande de esta figura.
Todos los archivos umd contienen un encabezado que describe el contenido de la celda de simulación: el número de átomos, electrones y tipos atómicos, así como detalles para cada átomo, como su tipo, símbolo químico, número de electrones de valencia y su masa. Una línea vacía marca el final del encabezado y lo separa de la parte principal del archivo umd.
Luego se detalla cada paso de la simulación. Primero, se dan los parámetros termodinámicos instantáneos, cada uno en una línea diferente, especificando (i) el nombre del parámetro, como energía, tensiones, presión hidrostática equivalente, densidad, volumen, parámetros de red, etc., (ii) su(s) valor(es), y (iii) sus unidades. A continuación se presenta una tabla que describe los átomos. Una línea de cabecera da las diferentes medidas, como posiciones cartesianas, velocidades, cargas, etc., y sus unidades. Luego, cada átomo se detalla en una línea. Por grupos de tres, correspondientes a los tres ejes x, y, z , las entradas son: las posiciones reducidas, las posiciones cartesianas plegadas en la celda de simulación, las posiciones cartesianas (que tienen debidamente en cuenta el hecho de que los átomos pueden atravesar varias celdas unitarias durante una simulación), las velocidades atómicas y las fuerzas atómicas. Las dos últimas entradas son escalares: carga y momento magnético.
Dos bibliotecas principales garantizan el correcto funcionamiento de todo el paquete. La biblioteca umd_process.py se ocupa de los archivos umd, como la lectura y la impresión. La biblioteca crystallography.py se ocupa de toda la información relacionada con la estructura atómica real. La filosofía subyacente de la biblioteca crystallography.py es tratar la red como un espacio vectorial. Los parámetros de la celda unitaria junto con su orientación representan los vectores base. El "Espacio" tiene una serie de atributos escalares (volumen específico, densidad, temperatura y número específico de átomos), propiedades termodinámicas (energía interna, presión, capacidad calorífica, etc.) y una serie de propiedades tensoriales (tensión y elasticidad). Los átomos pueblan este espacio. La clase "Lattice" define este conjunto, junto con varios cálculos cortos, como volumen específico, densidad, obtención de la red recíproca del directo, etc. La clase "Átomos" define los átomos. Se caracterizan por una serie de propiedades escalares (nombre, símbolo, masa, número de electrones, etc.) y una serie de propiedades vectoriales (la posición en el espacio, ya sea relativa a la base vectorial descrita en la clase Lattice, o relativa a coordenadas cartesianas universales, velocidades, fuerzas, etc.). Aparte de estas dos clases, la biblioteca de crystallography.py contiene una serie de funciones para realizar una variedad de pruebas y cálculos, como distancias atómicas o multiplicación de celdas. La tabla periódica de los elementos también se incluye como diccionario.
Los diversos componentes del paquete umd escriben varios archivos de salida. Como regla general, todos son archivos ASCII, todas sus entradas están separadas por pestañas y se hacen lo más autoexplicativas posible. Por ejemplo, siempre indican claramente la propiedad física y sus unidades. Los archivos umd.dat cumplen plenamente con esta regla.
1. Análisis de las corridas de dinámica molecular
NOTA: El paquete está disponible a través del sitio web de GitHub (https://github.com/rcaracas/UMD_package) y a través de una página dedicada (http://moonimpact.eu/umd-package/) del proyecto ERC IMPACT como un paquete de acceso abierto.
Bandera | Significado | Script usándolo | Valor predeterminado |
-h | Ayuda breve | todo | |
-f | Nombre de archivo UMD | todo | |
-i | Pasos de termalización a descartar | todo | 0 |
-i | Archivo de entrada que contiene los enlaces interatómicos | especiación | bonds.input |
-s | Muestreo de la frecuencia | msd, especiación | 1 (se considera cada paso) |
-a | Lista de átomos o aniones | especiación | |
-c | Lista de cationes | especiación | |
-l | Longitud del enlace | especiación | 2 |
-t | Temperatura | vibraciones, reología | |
-v | Discretización de la anchura de la ventana de muestreo de la trayectoria para el análisis de desplazamiento cuadrático medio | Msd | 20 |
-z | Discretización del inicio de la ventana de muestreo de la trayectoria para el análisis de desplazamiento cuadrático medio | Msd | 20 |
Tabla 1: Banderas más comunes utilizadas en el paquete UMD y su significado más común.
2. Realizar el análisis estructural
Figura 3: Determinación de la función de distribución de pares.
a) Para cada átomo de una especie (por ejemplo, rojo), todos los átomos de la especie coordinadora (por ejemplo, gris y/o rojo) se cuentan en función de la distancia. (b) El gráfico de distribución de distancia resultante para cada instantánea, que en esta etapa es solo una colección de funciones delta, se promedia sobre todos los átomos y todas las instantáneas y se pondera mediante la distribución de gas ideal para generar (c) la función de distribución de pares que es continua. El primer mínimo de g(r) es el radio de la primera esfera de coordinación, utilizado posteriormente en el análisis de especiación. Haga clic aquí para ver una versión más grande de esta figura.
3. Realizar el análisis de especiación
Figura 4: Identificación de los cúmulos atómicos.
Los poliedros de coordinación se definen utilizando distancias interatómicas. Todos los átomos a una distancia menor que un radio especificado se consideran enlazados. Aquí el umbral corresponde a la primera esfera de coordinación (los círculos rojos claros), definida en la Figura 1. La polimerización y, por lo tanto, las especies químicas se obtienen de las redes de los átomos unidos. Nótese el cúmulo central Red1Grey2, que está aislado de los otros átomos, que forman un polímero infinito. Haga clic aquí para ver una versión más grande de esta figura.
4. Calcular los coeficientes de difusión
5. Funciones de correlación de tiempo
6. Parámetros termodinámicos derivados de las simulaciones.
La pirolita es un modelo de fusión de silicato multicomponente (0.5Na2O 2CaO 1.5Al2O3 4FeO 30MgO 24SiO2) que mejor se aproxima a la composición del silicato a granel de la Tierra, el promedio geoquímico o de todo nuestro planeta, excepto su núcleo a base de hierro19. La Tierra primitiva estuvo dominada por una serie de eventos de fusión a gran escala20, el último podría haber envuelto a todo el planeta, después de su condensación para el disco protolunar21. La pirolita representa la mejor aproximación a la composición de tales océanos de magma a escala planetaria. En consecuencia, estudiamos ampliamente las propiedades físicas de la fusión de pirolita en el rango de temperatura de 3.000\u20125.000 K y el rango de presión de GPa de 0\u2012150 a partir de simulaciones de dinámica molecular ab initio en la implementación de VASP. Estas condiciones termodinámicas caracterizan completamente las condiciones oceánicas de magma más extremas de la Tierra. Nuestro estudio es un excelente ejemplo de un uso exitoso del paquete UMD para todo el análisis en profundidad de los fundidos22. Calculamos la distribución y las longitudes medias de los enlaces, trazamos los cambios en la coordinación catiónico-oxígeno y comparamos nuestros resultados con estudios experimentales y computacionales previos sobre silicatos amorfos de diversas composiciones. Nuestro análisis en profundidad ayudó a descomponer los números de coordinación estándar en sus constituyentes básicos, describir la presencia de poliedros de coordinación exóticos en la masa fundida y extraer vidas útiles para todos los poliedros de coordinación. También destacó la importancia del muestreo en simulaciones en términos de longitud de la trayectoria y también del número de átomos presentes en el sistema que se modela. En cuanto al post-procesamiento, el análisis UMD es independiente de estos factores, sin embargo, deben tenerse en cuenta al interpretar los resultados proporcionados por el paquete UMD. Aquí, mostramos algunos ejemplos de cómo el paquete UMD se puede utilizar para extraer varios rasgos característicos de las fundiciones, con una aplicación a la pirolita fundida.
La función de distribución de pares Si-O obtenida del script gofrs_umd.py muestra que el radio de la primera esfera de coordinación, que es el primer mínimo de la función g(r), se encuentra alrededor de 2,5 angstroms en T = 3000 K y P = 4,6 GPa. El máximo de g(r) se encuentra en 1.635 Å, esta es la mejor aproximación a la longitud de la curva. La cola larga se debe a la temperatura. Usando este límite como la distancia de enlace si-O, el análisis de especiación muestra que las unidades de SiO4, que pueden durar hasta unos pocos picosegundos, dominan la fusión (Figura 5). Hay una parte importante de la masa fundida que muestra polimerización parcial, como lo refleja la presencia de dímeros como Si2O7 y trímeros como las unidades Si3Ox. Su vida útil correspondiente es del orden del picosegundo. Todos los polímeros de orden superior tienen una vida útil considerablemente más corta.
Figura 5: Vida útil de la especie química Si-O.
La especiación se identifica en una fusión multicomponente a 4,6 GPa y 3000 K. Las etiquetas marcan los monómeros siO3, SiO4 y SiO5 y los diversos polímeros SixOy. Haga clic aquí para ver una versión más grande de esta figura.
Los diferentes valores de los pasos verticales y horizontales, definidos por las banderas –z y –v anteriores, producen varios muestreos del MSD (Figura 6). Incluso grandes valores de z y v son suficientes para definir las pendientes y, por lo tanto, los coeficientes de difusión de los diferentes átomos. La ganancia en el tiempo para el post-procesamiento es notable cuando se va a valores grandes de z y v. El MSD ofrece un criterio de validación muy fuerte para la calidad de las simulaciones. Si la parte de difusión del MSD no es lo suficientemente larga, eso es una señal de que la simulación es demasiado corta y no alcanza el estado fluido en un sentido estadístico. El requisito mínimo para la parte difusiva del MSD depende en gran medida del sistema. Se puede requerir que todos los átomos cambien su sitio al menos una vez en la estructura de la masa fundida para que sea considerada como un fluido10. Un excelente ejemplo con aplicaciones en ciencias planetarias son las complejas fundiciones de silicato a altas presiones cercanas o incluso por debajo de su línea liquidus11. Los átomos de Si, los principales cationes formadores de redes, cambian de sitio después de más de dos docenas de picosegundos. Las simulaciones más cortas que este umbral estarían considerablemente inframuestreando el posible espacio de configuración. Sin embargo, como los aniones coordinadores, es decir, los átomos de O, se mueven más rápido que los átomos centrales de Si, pueden compensar parte de la lenta movilidad del Si. Como tal, todo el sistema podría cubrir un mejor muestreo del espacio de configuración que el asumido solo a partir de los desplazamientos de Si.
Figura 6: Desplazamientos cuadráticos medios (TME).
Los MSD se ilustran para algunos tipos atómicos de una fusión de silicato de múltiples componentes. El muestreo con varios pasos horizontales y verticales, z y v, produce resultados consistentes. Círculos sólidos: -z 50 –v 50. Círculos abiertos: -z 250 –v 500. Haga clic aquí para ver una versión más grande de esta figura.
Finalmente, las funciones de VCA atómica producen el espectro vibratorio de la masa fundida. La Figura 7 muestra el espectro en las mismas condiciones de presión y temperatura que las anteriores. Representamos las contribuciones de los átomos de Mg, Si y O, así como el valor total. A la frecuencia cero hay un valor finito del espectro, que corresponde al carácter de difusión de la masa fundida. La extracción de las propiedades termodinámicas del espectro vibratorio debe eliminar este carácter difusivo similar al gas de cero, pero también tener en cuenta adecuadamente su desintegración a frecuencias más altas.
Figura 7: El espectro vibratorio de la fundición de pirolita.
La parte real de la transformada de Fourier de la función de autocorrelación velocidad-velocidad atómica produce el espectro vibratorio. Aquí el espectro se calcula para una fusión de silicato de múltiples componentes. Los fluidos tienen un carácter difusivo similar al gas distinto de cero a una frecuencia cero. Haga clic aquí para ver una versión más grande de esta figura.
El paquete UMD ha sido diseñado para funcionar mejor con simulaciones ab initio, donde el número de instantáneas generalmente se limita a decenas a cientos de miles de instantáneas, con unos pocos cientos de átomos por unidad de celda. Las simulaciones más grandes también son manejables siempre que la máquina en la que se ejecuta el posprocesamiento tenga suficientes recursos de memoria activos. El código se distingue por la variedad de propiedades que puede calcular y por su licencia de código abierto.
Los archivos umd.dat son apropiados para los conjuntos que conservan el número de partículas sin cambios a lo largo de la simulación. El paquete UMD puede leer archivos derivados de cálculos donde varía la forma y el volumen del cuadro de simulación. Estos cubren los cálculos más comunes, como NVT y NPT, donde el número de partículas, N, temperatura T, volumen, V y / o presión, P, se mantienen constantes.
Para el momento comienzan la función de distribución de pares, así como todas las escrituras que necesitan estimar las distancias interatómicas, como las escrituras de especiación, funcionan solo para células unitarias ortogonales, es decir, para células cúbicas, tetragonales y ortorrómbicas, donde los ángulos entre los ejes son de 90 °.
Las principales líneas de desarrollo para la versión 2.0 son la eliminación de la restricción de ortogonalidad para distancias y la adición de más características para los scripts de especiación: analizar enlaces químicos individuales, analizar los ángulos interatómicos e implementar la segunda esfera de coordinación. Con la ayuda de la colaboración externa, estamos trabajando en la migración del código a una GPU para un análisis más rápido en sistemas más grandes.
Los autores no tienen nada que revelar.
Este trabajo fue apoyado por el Consejo Europeo de Investigación (ERC) en el marco del programa de investigación e innovación Horizonte 2020 de la Unión Europea (acuerdo de subvención número 681818 IMPACT a RC), por la Dirección de Física y Química Extrema del Observatorio de Carbono Profundo, y por el Consejo de Investigación de Noruega a través de su esquema de financiación de Centros de Excelencia, proyecto número 223272. Reconocemos el acceso a los superordenadores GENCI a través de la serie stl2816 de subvenciones informáticas eDARI, al superordenador Irene AMD a través del proyecto PRACE RA4947 y al superordenador Fram a través del UNINETT Sigma2 NN9697K. FS fue apoyado por un proyecto Marie Skłodowska-Curie (acuerdo de subvención ABISSE No.750901).
Name | Company | Catalog Number | Comments |
getopt library | open-source | ||
glob library | open-source | ||
matplotlib library | open-source | ||
numpy library | open-source | ||
os library | open-source | ||
Python software | The Python Software Foundation | Version 2 and 3 | open-source |
random library | open-source | ||
re library | open-source | ||
scipy library | open-source | ||
subprocess library | open-source | ||
sys library | open-source |
Solicitar permiso para reutilizar el texto o las figuras de este JoVE artículos
Solicitar permisoThis article has been published
Video Coming Soon
ACERCA DE JoVE
Copyright © 2025 MyJoVE Corporation. Todos los derechos reservados