NanoLanguage - NanoLanguage

NanoLanguage bir komut dosyası oluşturma üzerine inşa edilmiş arayüz yorumlanmış programlama dili Python ve birincil olarak fiziksel ve kimyasal özelliklerinin simülasyonu için tasarlanmıştır. nano ölçekli sistemler.

Giriş

Yıllar boyunca, çeşitli elektronik yapı kodları Yoğunluk fonksiyonel teorisi farklı akademik araştırmacı grupları tarafından geliştirilmiştir; VASP, Abinit, SİESTA, ve Gauss sadece birkaç örnektir. Bu programların girdisi, genellikle koda özgü anahtar sözcüklerle koda özgü biçimde yazılmış basit bir metin dosyasıdır.[1][2] [3]

NanoLanguage, Atomistix Bir arayüz olarak A / S Atomistix ToolKit (sürüm 2.1) daha esnek bir girdi biçimi sağlamak için. Bir NanoLanguage betiği (veya girdi dosyası) sadece bir Python programıdır ve birkaç satırdan karmaşık sayısal simülasyonlar gerçekleştiren, diğer komut dosyaları ve dosyalarla iletişim kuran ve diğer yazılımlarla iletişim kuran (ör. Programlar çizme) bir komut dosyasına kadar her şey olabilir. NanoLanguage bir tescilli Atomistix ürünüdür ve diğerlerine arayüz olarak kullanılabilir Yoğunluk fonksiyonel teorisi kodların yanı sıra, ör. sıkı bağlama, k.p veya kuantum kimyasal yöntemler.[4][5]

Özellikleri

Üzerine inşa edilmiştir Python NanoLanguage, Python ile aynı işlevselliği ve aynı sözdizimini içerir. Bu nedenle, NanoLanguage diğer özelliklerin yanı sıra ortak programlama öğelerini içerir (döngüler için, if ifadeleri vb.), matematiksel işlevler ve veriler diziler.

Ek olarak, bir dizi kavram ve nesneler bağlantılı kuantum kimyası ve fizik NanoLanguage'da yerleşiktir, ör. a periyodik tablo, bir birim sistemi (her ikisi de dahil) SI birimleri ve atomik birimler gibi Ångström ), inşaatçılar atom geometrileri ve yoğunluk-fonksiyonel teori ve taşıma hesaplamaları için farklı fonksiyonlar. [6]

Misal

Bu NanoLanguage komut dosyası, Kohn-Sham yöntemi Eğilme açısının bir fonksiyonu olarak bir su molekülünün toplam enerjisini hesaplamak için.

# Molekül kurulumu için işlevi tanımlayındef waterConfiguration(açı, bağ uzunluğu):    itibaren matematik ithalat günah, çünkü    teta = açı.inUnitsOf(radyan)    pozisyonlar = [        (0.0, 0.0, 0.0) * Angstrom,        (1.0, 0.0, 0.0) * bağ uzunluğu,        (çünkü(teta), günah(teta), 0.0) * bağ uzunluğu,    ]    elementler = [Oksijen] + [Hidrojen] * 2    dönüş Molekül Yapılandırması(elementler, pozisyonlar)# Varsayılan bağımsız değişkenlerle DFT yöntemini seçinyöntem = KohnShamMethod()# Farklı bükülme açılarını tarayın ve toplam enerjiyi hesaplayıniçin ben içinde Aralık(30, 181, 10):    teta = ben * derece    h2o = waterConfiguration(teta, 0.958 * Angstrom)    scf = yöntem.uygulamak(h2o)    Yazdır "Açı =", teta, "Toplam Enerji =", hesaplamakTotalEnergy(scf)

Ayrıca bakınız

Referanslar

  1. ^ vasp
  2. ^ Abinit SSS Sayfası
  3. ^ "SIESTA (İspanyol Binlerce Atomlu Elektronik Simülasyonlar Girişimi)". Arşivlenen orijinal 2007-09-10 tarihinde. Alındı 2007-09-21.
  4. ^ Atomistix, nanoteknoloji modellemesi için açık yazılım platformunu tanıttı, SmallTimes, 2006 [1]
  5. ^ NanoLanguage'a Giriş
  6. ^ QuantumWise A / S