Eriyikler ve sıvılar doğal sistemlerde kütle taşımacılığının her yerde bulunan vektörleridir. Bu tür sistemlerin ab initio moleküler-dinamik simülasyonlarını analiz etmek için açık kaynaklı bir paket geliştirdik. Yapısal (yapıştırma, kümelenme, kimyasal belirtim), taşıma (difüzyon, viskozite) ve termodinamik özellikleri (titreşim spektrumu) hesaplıyoruz.
Sıvıların ab initio moleküler-dinamik simülasyonlarından kaynaklanan sonuçları analiz etmek için Python tabanlı bir açık kaynak paketi geliştirdik. Paket, silikat ve oksit erimeleri, su bazlı sıvılar ve çeşitli süper kritik sıvılar gibi doğal sistemlerdeki uygulamalar için en uygun olanıdır. Paket, dosya formatlarıyla ve kristalografiyle ilgilenen iki büyük kitaplığı içeren python komut dosyaları topluluğudur. Tüm komut dosyaları komut satırında çalıştırılır. Umd dosyalarına kaydedilen ve Evrensel Moleküler Dinamikler için ayakta duran simülasyonların atomik yörüngelerini ve ilgili termodinamik bilgilerini depolamak için basitleştirilmiş bir format öneriyoruz. UMD paketi, bir dizi yapısal, taşıma ve termodinamik özelliğin hesaplanmasına izin verir. Çift dağılım fonksiyonu ile başlayarak bağ uzunluklarını tanımlar, interatomik bir bağlantı matrisi oluşturur ve sonunda kimyasal belirtimi belirler. Kimyasal türlerin ömrünün belirlenmesi, tam bir istatistiksel analiz çalıştırarak izin verir. Daha sonra özel komut dosyaları atomlar ve kimyasal türler için ortalama kare yer değiştirmelerini hesaplar. Atomik hızların uygulanan kendi kendine korelasyon analizi, difüzyon katsayılarını ve titreşim spektrumunu verir. Gerilimlere uygulanan aynı analiz viskozite verir. Paket, GitHub web sitesi ve ERC IMPACT projesinin kendi özel sayfası üzerinden açık erişim paketi olarak kullanılabilir.
Sıvılar ve erimeler doğal ortamlarda aktif kimyasal ve fiziksel taşıma vektörleridir. Atomik difüzyonun yüksek oranları kimyasal değişimleri ve reaksiyonları, değişen yüzdürme gücü ile birleştiğinde düşük viskozite büyük kütle transferini ve kristal eriyik yoğunluklu ilişkileri gezegensel cisimlerin içinde katmanlaşmayı tercih eder. Periyodik bir kafesin yokluğu, erimiş duruma ulaşmak için gereken tipik yüksek sıcaklıklar ve söndürme zorluğu, yoğunluk, difüzyon ve viskozite gibi bir dizi belirgin özelliğin deneysel olarak belirlenmesini son derece zor hale getirir. Bu zorluklar, alternatif hesaplama yöntemlerini bu malzeme sınıfını araştırmak için güçlü ve kullanışlı araçlar haline getirir.
Bilgi işlem gücünün ortaya çıkması ve süper bilgisayarların kullanılabilirliği ile, şu anda kristal olmayan atomist bir sistemin dinamik durumunu incelemek için iki ana sayısal atomistik simülasyon tekniği unun, Monte Carlo1 ve moleküler dinamiklerin (MD)1,2. Monte Carlo simülasyonlarında yapılandırma alanı rastgele örneklenmiştir; Monte Carlo yöntemleri, tüm örnekleme gözlemleri birbirinden bağımsızsa paralelleştirmede doğrusal ölçekleme gösterir. Sonuçların kalitesi rastgele sayı üretecinin kalitesine ve örneklemenin temsiline bağlıdır. Monte Carlo yöntemleri, örnekleme birbirinden bağımsızsa paralelleştirmede doğrusal ölçeklendirme gösterir. Moleküler dinamiklerde (MD) yapılandırma alanı zamana bağlı atomik yörüngelerle örneklenmiştir. Belirli bir konfigürasyondan başlayarak, atomik yörüngeler Newton hareket denklemleri entegre ederek hesaplanır. Interatomik kuvvetler, model interatomik potansiyelleri (klasik MD’de) veya birinci prensip yöntemleri (ab initio veya ilk prensipler, MD) kullanılarak hesaplanabilir. Sonuçların kalitesi, yörüngenin uzunluğuna ve yerel minimaya ilgi çekmeme yeteneğine bağlıdır.
Moleküler dinamik simülasyonları, hepsi sistemin dinamik davranışıyla ilgili çok sayıda bilgi içerir. İç enerji, sıcaklık ve basınç gibi termodinamik ortalama özellikleri hesaplamak için oldukça standarttır. Simülasyonların çıktı dosyalarından çıkarılabilir ve ortalamalandırılabilirler, oysa atomların hareketi ve karşılıklı ilişkileri ile ilgili miktarların atom konumlarının ve hızlarının çıkarılmasından sonra hesaplanması gerekir.
Sonuç olarak, sonuçları görselleştirmek için çok çaba sarf edildi ve çeşitli paketler bugün farklı platformlarda, açık kaynak kodla veya değil [Ovito3, VMD4, Vesta5, Travis6, vb.] mevcut. Tüm bu görselleştirme araçları, atomlar arası mesafelerle verimli bir şekilde ilgilenir ve bu nedenle çift dağıtım işlevlerinin ve difüzyon katsayılarının verimli bir şekilde hesaplanmasına izin verir. Büyük ölçekli moleküler dinamik simülasyonları gerçekleştiren çeşitli gruplar, simülasyonlardan kaynaklanan diğer çeşitli özellikleri analiz etmek için özel bir yazılıma sahiptir, bazen paylaşım yazılımında veya diğer sınırlı erişim biçimlerinde ve bazen kapsam ve kullanım olarak bazı belirli paketlerle sınırlıdır. Bu paketlerin bazılarında atomlararası yapıştırma, geometrik desenler ve termodinamik hakkında bilgi almak için gelişmiş algoritmalar geliştirilir ve uygulanır3,4,5,6,7, vb.
Burada, moleküler dinamik simülasyonlarının çıktısını analiz etmek için Python’da yazılmış açık kaynaklı bir paket olan UMD paketini öneriyoruz. UMD paketi, çok çeşitli yapısal, dinamik ve termodinamik özelliklerin hesaplanmasına izin verir (Şekil 1). Paket, GitHub web sitesi (https://github.com/rcaracas/UMD_package) ve ERC IMPACT projesinin özel bir sayfası (http://moonimpact.eu/umd-package/) aracılığıyla açık erişim paketi olarak kullanılabilir.
Evrensel ve kullanımı daha kolay hale getirmek için, yaklaşımımız öncelikle termodinamik durum ve atomik yörüngelerle ilgili tüm bilgileri gerçek moleküler dinamiklerin çalışma çıktı dosyasından çıkarmaktır. Bu bilgiler, biçimi simülasyonun çalıştırıldığı özgün MD paketinden bağımsız olan ayrılmış bir dosyada depolanır. Bu dosyalara Evrensel Moleküler Dinamik anlamına gelen “umd” dosyaları adını verdik. Bu şekilde, UMD paketimiz herhangi bir ab initio grubu tarafından herhangi bir yazılımla, hepsi minimum adaptasyon çabasıyla kolayca kullanılabilir. Mevcut paketi kullanmanın tek gereksinimi, henüz mevcut değilse, belirli bir MD yazılımının çıktısından umd dosya biçimine uygun ayrıştırıcıyı yazmaktır. Şimdilik VASP8 ve QBox9 paketleri için bu tür ayrıştırıcılar sağlıyoruz.
Şekil 1: UMD kitaplığının akış çizelgesi.
Fiziksel özellikler mavi, büyük Python komut dosyaları ve seçenekleri kırmızıdır. Bu rakamın daha büyük bir sürümünü görüntülemek için lütfen buraya tıklayın.
UMD dosyaları ASCII dosyalarıdır; tipik uzantı “umd.dat” dir, ancak zorunlu değildir. Tüm analiz bileşenleri, gerçek ad uzantısından bağımsız olarak UMD biçimindeki ASCII dosyalarını okuyabilir. Bununla birlikte, birkaç simülasyon üzerinden hızlı büyük ölçekli istatistikler gerçekleştirmek için tasarlanan bazı otomatik komut dosyaları, özellikle umd.dat uzantılı dosyaları arar. Her fiziksel özellik tek bir satırda ifade edilir. Her satır bir anahtar kelime ile başlar. Bu şekilde biçim son derece uyarlanabilir ve umd dosyasına yeni özelliklerin eklenmesine izin verirken, sürümler boyunca okunabilirliğini korur. Tartışmada aşağıda kullanılan 4.6 GPa ve 3000 K’daki pirolit simülasyonunun umd dosyasının ilk 30 satırı Şekil 2’de gösterilmiştir.
Şekil 2: 4.6 GPa ve 3000 K’da sıvı pirolit simülasyonu açıklayan umd dosyasının başlangıcı.
Üstbilgiyi her anlık görüntünün açıklaması izler. Her özellik, fiziksel özelliğin adını, değerleri ve birimleri içeren, tümü boşluklarla ayrılmış bir satıra yazılır. Bu rakamın daha büyük bir sürümünü görüntülemek için lütfen buraya tıklayın.
Tüm UMD dosyaları simülasyon hücresinin içeriğini açıklayan bir başlık içerir: atomların, elektronların ve atom türlerinin sayısının yanı sıra türü, kimyasal sembolü, değer elektronlarının sayısı ve kütlesi gibi her atom için ayrıntılar. Boş bir satır üstbilginin sonunu işaretler ve umd dosyasının ana bölümünden ayırır.
Daha sonra simülasyonun her adımı ayrıntılı olarak uzadır. İlk olarak, her biri farklı bir çizgide, (i) enerji, gerilmeler, eşdeğer hidrostatik basınç, yoğunluk, hacim, kafes parametreleri vb. Sırada atomları tanımlayan bir tablo geliyor. Başlık satırı, Kartezyen konumları, hızları, ücretleri vb. Sonra her atom bir satırda detaylandırılıyor. Üç x, y, z eksenine karşılık gelen üç gruba göre, girişler şunlardır: azaltılmış konumlar, simülasyon hücresine katlanmış Kartezyen konumları, Kartezyen konumları (atomların bir simülasyon sırasında birkaç birim hücreden geçebildiği gerçeğini düzgün bir şekilde dikkate alan), atomik hızlar ve atom kuvvetleri. Son iki giriş skalerdir: yük ve manyetik moment.
İki büyük kitaplık, tüm paketin düzgün çalışmasını sağlar. umd_process.py kütüphanesi, okuma ve yazdırma gibi umd dosyalarıyla ilgilenir. crystallography.py kütüphanesi gerçek atomik yapı ile ilgili tüm bilgileri ele alamlar. crystallography.py kütüphanesinin altında kalan felsefe, kafese vektörel bir alan olarak davranmaktır. Birim hücre parametreleri, yönelimleriyle birlikte temel vektörleri temsil eder. “Uzay” bir dizi skaler özelliğe (belirli hacim, yoğunluk, sıcaklık ve belirli atom sayısı), termodinamik özelliklere (iç enerji, basınç, ısı kapasitesi vb.) ve bir dizi tensoriyal özelliğe (stres ve esneklik) sahiptir. Atomlar bu alanı doldurur. “Kafes” sınıfı, belirli hacim, yoğunluk, doğrudan kafesten karşılıklı kafes elde etme vb. “Atomlar” sınıfı atomları tanımlar. Bir dizi skaler özellik (ad, sembol, kütle, elektron sayısı vb.) ve bir dizi vektörel özellik (Kafes sınıfında açıklanan vektörel temele göre veya evrensel Kartezyen koordinatlarına, hızlarına, kuvvetlerine vb.) göre karakterize edilirler. Bu iki sınıfın yanı sıra, crystallography.py kitaplığı atomik mesafeler veya hücre çarpım gibi çeşitli testler ve hesaplamalar gerçekleştirmek için bir dizi işlev içerir. Öğelerin periyodik tablosu da sözlük olarak dahil edilir.
Umd paketinin çeşitli bileşenleri birkaç çıktı dosyası yazar. Genel bir kural olarak, hepsi ASCII dosyalarıdır, tüm girişleri sekmelerle ayrılır ve mümkün olduğunca açıklayıcı hale getirilir. Örneğin, her zaman fiziksel özelliği ve birimlerini açıkça gösterirler. UMD.dat dosyaları bu kurala tamamen uyar.
UMD paketi, anlık görüntü sayısının genellikle birim hücre başına birkaç yüz atomla on ila yüz binlerce anlık görüntüyle sınırlı olduğu ab initio simülasyonlarıyla daha iyi çalışacak şekilde tasarlanmıştır. daha büyük simülasyonlar, işlem sonrası çalıştırmaların üzerinde çalıştığı makinenin yeterli aktif bellek kaynağına sahip olması koşuluyla da uygulanabilir. Kod, hesaplayabileceği özelliklerin çeşitliliği ve açık kaynak lisansı ile kendini ayırt eder.
UMD.dat dosyaları, simülasyon boyunca değişmeyen parçacık sayısını koruyan topluluklar için uygundur. UMD paketi, simülasyon kutusunun şeklinin ve hacminin değiştiği hesaplamalardan kaynaklanan dosyaları okuyabilir. Bunlar, parçacık sayısının, N, sıcaklık T, hacim, V ve/veya basınç, P’nin sabit tutulduğu NVT ve NPT gibi en yaygın hesaplamaları kapsar.
Çift dağıtım işlevinin yanı sıra, belirtim komut dosyaları gibi interatomik mesafeleri tahmin etmek için gereken tüm komut dosyaları için, yalnızca eksenler arasındaki açıların 90 ° olduğu kübik, tetragonal ve ortotoromik hücreler anlamına gelen ortogonal birim hücreleri için çalışır.
Sürüm 2.0 için temel geliştirme hatları, mesafeler için ortogonalite kısıtlamasının kaldırılması ve speciation komut dosyaları için daha fazla özellik eklenmesidir: bireysel kimyasal bağları analiz etmek, atomlar arası açıları analiz etmek ve ikinci koordinasyon alanını uygulamak. Harici işbirliğinin yardımıyla, daha büyük sistemlerde daha hızlı analiz için kodu bir GPU’ya taşıma üzerinde çalışıyoruz.
The authors have nothing to disclose.
Bu çalışma, Avrupa Birliği Horizon 2020 araştırma ve inovasyon programı (RC’ye IMPACT 681818 hibe anlaşma numarası) kapsamında Avrupa Araştırma Konseyi (ERC), Derin Karbon Gözlemevi Aşırı Fizik ve Kimya Direktörlüğü ve Norveç Araştırma Konseyi tarafından Mükemmeliyet Merkezleri finansman programı, proje numarası 223272 aracılığıyla desteklendi. GENCI süper bilgisayarlarına stl2816 serisi eDARI bilgi işlem hibeleri aracılığıyla, PRACE RA4947 projesi aracılığıyla Irene AMD süper bilgisayarına ve UNINETT Sigma2 NN9697K aracılığıyla Fram süper bilgisayarına erişimi kabul ediyoruz. FS, Marie Skłodowska-Curie projesi (ABISSE No.750901 hibe anlaşması) tarafından desteklenmiştir.
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 |