Fusioni e fluidi sono vettori onnipresenti del trasporto di massa nei sistemi naturali. Abbiamo sviluppato un pacchetto open source per analizzare le simulazioni di dinamica molecolare ab initio di tali sistemi. Calcoliamo le proprietà strutturali (legame, clusterizzazione, speciazione chimica), trasporto (diffusione, viscosità) e termodinamiche (spettro vibrazionale).
Abbiamo sviluppato un pacchetto open source basato su Python per analizzare i risultati derivanti dalle simulazioni di dinamica molecolare ab initio dei fluidi. Il pacchetto è più adatto per applicazioni su sistemi naturali, come silicati e fusioni di ossido, fluidi a base d'acqua e vari fluidi supercritici. Il pacchetto è una raccolta di script Python che includono due librerie principali che si occupano di formati di file e cristallografia. Tutti gli script vengono eseguiti dalla riga di comando. Proponiamo un formato semplificato per memorizzare le traiettorie atomiche e le informazioni termodinamiche rilevanti delle simulazioni, che vengono salvate in file UMD, che sta per Universal Molecular Dynamics. Il pacchetto UMD consente il calcolo di una serie di proprietà strutturali, di trasporto e termodinamiche. Partendo dalla funzione di distribuzione delle coppie, definisce le lunghezze dei legami, costruisce una matrice di connettività interatomica e infine determina la speciazione chimica. Determinare la durata della specie chimica consente di eseguire un'analisi statistica completa. Quindi gli script dedicati calcolano gli spostamenti quadrati medi per gli atomi e per le specie chimiche. L'analisi di auto-correlazione implementata delle velocità atomiche produce i coefficienti di diffusione e lo spettro vibrazionale. La stessa analisi applicata sulle sollecitazioni produce la viscosità. Il pacchetto è disponibile tramite il sito Web GitHub e tramite la propria pagina dedicata del progetto ERC IMPACT come pacchetto ad accesso aperto.
Fluidi e fusioni sono vettori di trasporto chimico e fisico attivi in ambienti naturali. Gli elevati tassi di diffusione atomica favoriscono gli scambi e le reazioni chimiche, la bassa viscosità unita alla variabile galleggiabilità favoriscono il trasferimento di massa di grandi dimensioni e le relazioni di densità cristallo-fusione favoriscono la stratificazione all'interno dei corpi planetari. L'assenza di un reticolo periodico, le tipiche alte temperature richieste per raggiungere lo stato fuso e la difficoltà di tempra rendono estremamente impegnativa la determinazione sperimentale di una serie di proprietà evidenti, come densità, diffusione e viscosità. Queste difficoltà rendono i metodi computazionali alternativi strumenti forti e utili per studiare questa classe di materiali.
Con l'avvento della potenza di calcolo e la disponibilità di supercomputer, due importanti tecniche di simulazione atomistica numerica sono attualmente impiegate per studiare lo stato dinamico di un sistema atomistico non cristallino, Monte Carlo1 e la dinamica molecolare (MD)1,2. Nelle simulazioni Monte Carlo lo spazio configurazionale viene campionato in modo casuale; I metodi Monte Carlo mostrano il ridimensionamento lineare in parallelizzazione se tutte le osservazioni di campionamento sono indipendenti l'una dall'altra. La qualità dei risultati dipende dalla qualità del generatore di numeri casuali e dalla rappresentatività del campionamento. I metodi Monte Carlo mostrano il ridimensionamento lineare in parallelizzazione se il campionamento è indipendente l'uno dall'altro. In dinamica molecolare (MD) lo spazio configurazionale è campionato da traiettorie atomiche dipendenti dal tempo. Partendo da una data configurazione, le traiettorie atomiche vengono calcolate integrando le equazioni newtoniane del moto. Le forze interatomiche possono essere calcolate usando i potenziali interatomici del modello (nella MD classica) o usando metodi di principi primi (in ab initio, o principi primi, MD). La qualità dei risultati dipende dalla lunghezza della traiettoria e dalla sua capacità di non essere attratta dai minimi locali.
Le simulazioni di dinamica molecolare contengono una pletora di informazioni, tutte relative al comportamento dinamico del sistema. Le proprietà medie termodinamiche, come l'energia interna, la temperatura e la pressione, sono piuttosto standard da calcolare. Possono essere estratti dai file di output delle simulazioni e mediati, mentre le quantità direttamente correlate al movimento degli atomi e alla loro relazione reciproca devono essere calcolate dopo l'estrazione delle posizioni e delle velocità atomiche.
Di conseguenza, un grande sforzo è stato dedicato alla visualizzazione dei risultati, e vari pacchetti sono disponibili oggi, su diverse piattaforme, open source o meno [Ovito3, VMD4, Vesta5, Travis6, ecc.]. Tutti questi strumenti di visualizzazione gestiscono in modo efficiente le distanze interatomiche e, come tali, consentono il calcolo efficiente delle funzioni di distribuzione delle coppie e dei coefficienti di diffusione. Vari gruppi che eseguono simulazioni di dinamica molecolare su larga scala hanno un software proprietario per analizzare varie altre proprietà risultanti dalle simulazioni, a volte in shareware o altre forme di accesso limitato alla comunità, e talvolta limitate nella portata e nell'uso di alcuni pacchetti specifici. Algoritmi sofisticati per estrarre informazioni sul legame interatomico, modelli geometrici e termodinamica sono sviluppati e implementati in alcuni di questi pacchetti3,4,5,6,7, ecc.
Qui proponiamo il pacchetto UMD - un pacchetto open source scritto in Python per analizzare l'output delle simulazioni di dinamica molecolare. Il pacchetto UMD consente il calcolo di un'ampia gamma di proprietà strutturali, dinamiche e termodinamiche (Figura 1). Il pacchetto è disponibile tramite il sito Web GitHub (https://github.com/rcaracas/UMD_package) e tramite una pagina dedicata (http://moonimpact.eu/umd-package/) del progetto ERC IMPACT come pacchetto ad accesso aperto.
Per renderlo universale e più facile da gestire, il nostro approccio è quello di estrarre prima tutte le informazioni relative allo stato termodinamico e alle traiettorie atomiche dal file di output dell'effettiva esecuzione di dinamica molecolare. Queste informazioni sono memorizzate in un file dedicato, il cui formato è indipendente dal pacchetto MD originale in cui è stata eseguita la simulazione. Chiamiamo questi file file "umd", che sta per Universal Molecular Dynamics. In questo modo, il nostro pacchetto UMD può essere facilmente utilizzato da qualsiasi gruppo ab initio con qualsiasi software, il tutto con un minimo sforzo di adattamento. L'unico requisito per utilizzare il pacchetto attuale è quello di scrivere il parser appropriato dall'output del particolare software MD nel formato di file umd, se questo non è ancora esistente. Per il momento, forniamo tali parser per i pacchetti VASP8 e QBox9 .
Figura 1: Diagramma di flusso della libreria UMD.
Le proprietà fisiche sono in blu e i principali script Python e le loro opzioni sono in rosso. Fare clic qui per visualizzare una versione più grande di questa figura.
I file umd sono file ASCII; l'estensione tipica è "umd.dat" ma non obbligatoria. Tutti i componenti di analisi possono leggere i file ASCII del formato umd, indipendentemente dall'estensione effettiva del nome. Tuttavia, alcuni degli script automatici progettati per eseguire statistiche veloci su larga scala su diverse simulazioni cercano specificamente i file con l'estensione umd.dat. Ogni proprietà fisica è espressa su una riga. Ogni riga inizia con una parola chiave. In questo modo il formato è altamente adattabile e consente di aggiungere nuove proprietà al file umd, preservandone la leggibilità in tutte le versioni. Le prime 30 righe del file umd della simulazione della pirolite a 4,6 GPa e 3000 K, utilizzate di seguito nella discussione, sono mostrate nella Figura 2.
Figura 2: L'inizio del file umd che descrive la simulazione della pirolite liquida a 4,6 GPa e 3000 K.
L'intestazione è seguita dalla descrizione di ogni istantanea. Ogni proprietà è scritta su una riga, contenente il nome della proprietà fisica, i valori e le unità, tutte separate da spazi. Fare clic qui per visualizzare una versione più grande di questa figura.
Tutti i file umd contengono un'intestazione che descrive il contenuto della cella di simulazione: il numero di atomi, elettroni e tipi atomici, nonché dettagli per ciascun atomo, come il suo tipo, simbolo chimico, numero di elettroni di valenza e la sua massa. Una riga vuota segna la fine dell'intestazione e la separa dalla parte principale del file umd.
Quindi ogni fase della simulazione è dettagliata. In primo luogo, vengono forniti i parametri termodinamici istantanei, ciascuno su una linea diversa, specificando (i) il nome del parametro, come energia, sollecitazioni, pressione idrostatica equivalente, densità, volume, parametri reticolari, ecc., (ii) i suoi valori e (iii) le sue unità. Viene dopo una tabella che descrive gli atomi. Una riga di intestazione fornisce le diverse misure, come le posizioni cartesiane, le velocità, le cariche, ecc. E le loro unità. Quindi ogni atomo è dettagliato su una riga. Per gruppi di tre, corrispondenti ai tre assi x, y, z , le voci sono: le posizioni ridotte, le posizioni cartesiane ripiegate nella cella di simulazione, le posizioni cartesiane (che tengono correttamente conto del fatto che gli atomi possono attraversare diverse celle unitarie durante una simulazione), le velocità atomiche e le forze atomiche. Le ultime due voci sono scalari: carica e momento magnetico.
Due librerie principali garantiscono il corretto funzionamento dell'intero pacchetto. La libreria umd_process.py si occupa dei file umd, come la lettura e la stampa. La biblioteca crystallography.py si occupa di tutte le informazioni relative all'effettiva struttura atomica. La filosofia alla base della biblioteca crystallography.py è quella di trattare il reticolo come uno spazio vettoriale. I parametri della cella unitaria insieme al loro orientamento rappresentano i vettori di base. Lo "Spazio" ha una serie di attributi scalari (volume specifico, densità, temperatura e numero specifico di atomi), proprietà termodinamiche (energia interna, pressione, capacità termica, ecc.) e una serie di proprietà tensoriali (stress ed elasticità). Gli atomi popolano questo spazio. La classe "Reticolo" definisce questo insieme, insieme a vari calcoli brevi, come volume specifico, densità, ottenendo il reticolo reciproco da quello diretto, ecc. La classe "Atomi" definisce gli atomi. Sono caratterizzati da una serie di proprietà scalari (nome, simbolo, massa, numero di elettroni, ecc.) e da una serie di proprietà vettoriali (la posizione nello spazio, sia relativa alla base vettoriale descritta nella classe Lattice, sia relativa alle coordinate cartesiane universali, velocità, forze, ecc.). Oltre a queste due classi, la libreria crystallography.py contiene una serie di funzioni per eseguire una varietà di test e calcoli, come le distanze atomiche o la moltiplicazione cellulare. La tavola periodica degli elementi è anche inclusa come dizionario.
I vari componenti del pacchetto umd scrivono diversi file di output. Come regola generale, sono tutti file ASCII, tutte le loro voci sono separate da schede e sono rese il più autoesplicative possibile. Ad esempio, indicano sempre chiaramente la proprietà fisica e le sue unità. I file umd.dat rispettano pienamente questa regola.
1. Analisi delle corse di dinamica molecolare
NOTA: Il pacchetto è disponibile tramite il sito Web GitHub (https://github.com/rcaracas/UMD_package) e tramite una pagina dedicata (http://moonimpact.eu/umd-package/) del progetto ERC IMPACT come pacchetto ad accesso aperto.
Bandiera | Significato | Script che lo utilizza | Valore predefinito |
-h | Breve aiuto | tutto | |
-f | Nome file UMD | tutto | |
-i | Fasi di termalizzazione da scartare | tutto | 0 |
-i | File di input contenente i legami interatomici | speciazione | bonds.input |
-s | Campionamento della frequenza | msd, speciazione | 1 (ogni passo è considerato) |
-a | Lista di atomi o anioni | speciazione | |
-c | Elenco dei cationi | speciazione | |
-l | Lunghezza del legame | speciazione | 2 |
-t | Temperatura | vibrazioni, reologia | |
-v | Discretizzazione della larghezza della finestra di campionamento della traiettoria per l'analisi dello spostamento medio-quadrato | Msd | 20 |
-z | Discretizzazione dell'inizio della finestra di campionamento della traiettoria per l'analisi dello spostamento medio-quadrato | Msd | 20 |
Tabella 1: Flag più comuni utilizzati nel pacchetto UMD e loro significato più comune.
2. Eseguire l'analisi strutturale
Figura 3: Determinazione della funzione di distribuzione delle coppie.
a) Per ogni atomo di una specie (ad esempio rosso), tutti gli atomi della specie coordinatrice (ad esempio grigio e/o rosso) sono conteggiati in funzione della distanza. (b) Il grafico di distribuzione della distanza risultante per ogni istantanea, che in questa fase è solo una raccolta di funzioni delta, viene quindi mediato su tutti gli atomi e tutte le istantanee e ponderato dalla distribuzione ideale del gas per generare (c) la funzione di distribuzione della coppia che è continua. Il primo minimo del g(r) è il raggio della prima sfera di coordinazione, utilizzato successivamente nell'analisi di speciazione. Fare clic qui per visualizzare una versione più grande di questa figura.
3. Eseguire l'analisi di speciazione
Figura 4: Identificazione degli ammassi atomici.
I poliedri di coordinazione sono definiti utilizzando distanze interatomiche. Tutti gli atomi a una distanza inferiore a un raggio specificato sono considerati legati. Qui la soglia corrisponde alla prima sfera di coordinazione (i cerchi rossi chiari), definita in Figura 1. La polimerizzazione e quindi le specie chimiche sono ottenute dalle reti degli atomi legati. Si noti il cluster centrale Red1Grey2, che è isolato dagli altri atomi, che formano un polimero infinito. Fare clic qui per visualizzare una versione più grande di questa figura.
4. Calcola i coefficienti di diffusione
5. Funzioni di correlazione temporale
6. Parametri termodinamici derivanti dalle simulazioni.
La pirolite è un modello di silicato fuso multicomponente (0,5Na2O 2CaO 1,5Al2O3 4FeO 30 MgO 24SiO2) che meglio si avvicina alla composizione della Terra di silicato di massa, la media geochimica o l'intero pianeta, ad eccezione del suo nucleo a base di ferro19. La Terra primordiale era dominata da una serie di eventi di fusione su larga scala20, l'ultimo potrebbe aver inghiottito l'intero pianeta, dopo la sua condensazione per il disco protolunare21. La pirolite rappresenta la migliore approssimante alla composizione di tali oceani di magma su scala planetaria. Di conseguenza, abbiamo studiato ampiamente le proprietà fisiche della fusione di pirolite nell'intervallo di temperatura 3.000\u20125.000 K e nell'intervallo di pressione 0\u2012150 GPa dalle simulazioni di dinamica molecolare ab initio nell'implementazione VASP. Queste condizioni termodinamiche caratterizzano interamente le condizioni oceaniche di magma più estreme della Terra. Il nostro studio è un ottimo esempio di un uso riuscito del pacchetto UMD per l'intera analisi approfondita dei fusi22. Abbiamo calcolato la distribuzione e le lunghezze medie dei legami, tracciato i cambiamenti nella coordinazione catione-ossigeno e confrontato i nostri risultati con precedenti studi sperimentali e computazionali su silicati amorfi di varie composizioni. La nostra analisi approfondita ha aiutato a scomporre i numeri di coordinazione standard nei loro costituenti di base, delineare la presenza di poliedri di coordinazione esotici nella fusione ed estrarre la durata di vita per tutti i poliedri di coordinazione. Ha anche sottolineato l'importanza del campionamento nelle simulazioni in termini sia di lunghezza della traiettoria che di numero di atomi presenti nel sistema modellato. Per quanto riguarda la post-elaborazione, l'analisi UMD è indipendente da questi fattori, tuttavia, dovrebbero essere presi in considerazione quando si interpretano i risultati forniti dal pacchetto UMD. Qui, mostriamo alcuni esempi di come il pacchetto UMD può essere utilizzato per estrarre diverse caratteristiche dei fusi, con un'applicazione alla pirolite fusa.
La funzione di distribuzione della coppia Si-O ottenuta dallo script gofrs_umd.py mostra che il raggio della prima sfera di coordinazione, che è il primo minimo della funzione g(r), si trova intorno a 2,5 angstrom a T = 3000 K e P = 4,6 GPa. Il massimo di g(r) si trova a 1,635 Å, la migliore approssimazione alla lunghezza della piegatura. La lunga coda è dovuta alla temperatura. Usando questo limite come distanza di legame Si-O, l'analisi di speciazione mostra che le unità SiO4, che possono durare fino a pochi picosecondi, dominano la fusione (Figura 5). C'è una parte importante del fuso che mostra una polimerizzazione parziale, come riflesso dalla presenza di dimeri come Si2O7 e trimeri come le unità Si3Ox. La loro durata corrispondente è nell'ordine del picosecondo. I polimeri di ordine superiore hanno tutti una durata considerevolmente più breve.
Figura 5: Durata della vita della specie chimica Si-O.
La speciazione è identificata in un fuso multicomponente a 4,6 GPa e 3000 K. Le etichette contrassegnano i monomeri SiO3, SiO4 e SiO5 e i vari polimeri SixOy. Fare clic qui per visualizzare una versione più grande di questa figura.
I diversi valori dei gradini verticali e orizzontali, definiti dai flag –z e –v sopra, producono vari campionamenti del MSD (Figura 6). Anche grandi valori di z e v sono sufficienti per definire le pendenze e quindi i coefficienti di diffusione dei diversi atomi. Il guadagno in tempo per la post-elaborazione è notevole quando si passa a grandi valori di z e v. Il MSD offre un criterio di convalida molto forte per la qualità delle simulazioni. Se la parte di diffusione del MSD non è sufficientemente lunga, ciò è un segno che la simulazione è troppo breve e non riesce a raggiungere lo stato fluido in senso statistico. Il requisito minimo per la parte diffusiva del MSD dipende in larga misura dal sistema. Si può richiedere che tutti gli atomi cambino il loro sito almeno una volta nella struttura del fuso in modo che possa essere considerato come un fluido10. Un eccellente esempio con applicazioni nelle scienze planetarie è la fusione di silicati complessi ad alte pressioni vicino o anche al di sotto della loro linea liquida11. Gli atomi di Si, i principali cationi che formano la rete, cambiano sito dopo più di due dozzine di picosecondi. Le simulazioni più brevi di questa soglia sarebbero considerevolmente sottocampionate del possibile spazio configurazionale. Tuttavia, poiché gli anioni coordinati, vale a dire gli atomi O, si muovono più velocemente degli atomi centrali di Si, possono compensare parte della lenta mobilità di Si. Come tale, l'intero sistema potrebbe effettivamente coprire un campionamento migliore dello spazio configurazionale rispetto a quanto ipotizzato solo dagli spostamenti di Si.
Figura 6: Spostamenti quadrati medi (MSD).
I MSD sono illustrati per alcuni tipi atomici di un silicato multicomponente fuso. Il campionamento con vari passaggi orizzontali e verticali, z e v, produce risultati coerenti. Cerchi solidi: -z 50 –v 50. Cerchi aperti: -z 250 –v 500. Fare clic qui per visualizzare una versione più grande di questa figura.
Infine, le funzioni VAC atomiche producono lo spettro vibrazionale della fusione. La Figura 7 mostra lo spettro alle stesse condizioni di pressione e temperatura di cui sopra. Rappresentiamo i contributi degli atomi Mg, Si e O, nonché il valore totale. A frequenza zero c'è un valore finito dello spettro, che corrisponde al carattere di diffusione del fuso. L'estrazione delle proprietà termodinamiche dallo spettro vibrazionale deve rimuovere questo carattere diffusivo gassoso da zero, ma anche tenere adeguatamente conto del suo decadimento a frequenze più elevate.
Figura 7: Lo spettro vibrazionale della fusione della pirolite.
La parte reale della trasformata di Fourier della funzione di auto-correlazione velocità-velocità atomica produce lo spettro vibrazionale. Qui lo spettro viene calcolato per un silicato multicomponente fuso. I fluidi hanno un carattere diffusivo simile a un gas diverso da zero a frequenza zero. Fare clic qui per visualizzare una versione più grande di questa figura.
Il pacchetto UMD è stato progettato per funzionare meglio con le simulazioni ab initio, in cui il numero di istantanee è in genere limitato a decine o centinaia di migliaia di istantanee, con poche centinaia di atomi per unità di cella. Sono inoltre trattabili simulazioni più grandi a condizione che la macchina su cui viene eseguita la post-elaborazione disponga di risorse di memoria attive sufficienti. Il codice si distingue per la varietà di proprietà che può calcolare e per la sua licenza open source.
I file umd.dat sono appropriati per gli insiemi che mantengono invariato il numero di particelle durante la simulazione. Il pacchetto UMD è in grado di leggere i file derivanti da calcoli in cui la forma e il volume della scatola di simulazione variano. Questi coprono i calcoli più comuni, come NVT e NPT, in cui il numero di particelle, N, temperatura T, volume, V e / o pressione, P, sono mantenuti costanti.
Per il tempo inizia la funzione di distribuzione della coppia così come tutti gli script che devono stimare le distanze interatomiche, come gli script di speciazione, funzionano solo per le celle unitarie ortogonali, cioè per le celle cubiche, tetragonali e ortorombiche, dove gli angoli tra gli assi sono di 90°.
Le principali linee di sviluppo per la versione 2.0 sono la rimozione della restrizione di ortogonalità per le distanze e l'aggiunta di ulteriori funzionalità per gli script di speciazione: per analizzare i singoli legami chimici, per analizzare gli angoli interatomici e per implementare la seconda sfera di coordinazione. Con l'aiuto di una collaborazione esterna, stiamo lavorando al porting del codice su una GPU per un'analisi più rapida in sistemi più grandi.
Gli autori non hanno nulla da rivelare.
Questo lavoro è stato sostenuto dal Consiglio europeo della ricerca (CER) nell'ambito del programma di ricerca e innovazione Horizon 2020 dell'Unione europea (numero di accordo di sovvenzione 681818 IMPACT a RC), dalla direzione estrema di fisica e chimica dell'Osservatorio Deep Carbon e dal Consiglio di ricerca della Norvegia attraverso il suo schema di finanziamento dei Centri di eccellenza, il numero di progetto 223272. Riconosciamo l'accesso ai supercomputer GENCI attraverso la serie stl2816 di sovvenzioni per l'elaborazione eDARI, al supercomputer Irene AMD attraverso il progetto PRACE RA4947 e al supercomputer Fram attraverso UNINETT Sigma2 NN9697K. FS è stato sostenuto da un progetto Marie Skłodowska-Curie (convenzione di sovvenzione 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 |
Richiedi autorizzazione per utilizzare il testo o le figure di questo articolo JoVE
Richiedi AutorizzazioneThis article has been published
Video Coming Soon