Nanojazyk - NanoLanguage
Nanojazyk je skriptování rozhraní postavené na interpretovaný programovací jazyk Krajta, a je primárně určen pro simulaci fyzikálních a chemických vlastností nanoměřítkové systémy.
Úvod
V průběhu let bylo založeno několik kódů elektronické struktury hustota funkční teorie byly vyvinuty různými skupinami akademických vědců; VASP, Abinit, SIESTA, a Gaussian je jen několik příkladů. Vstupem do těchto programů je obvykle jednoduchý textový soubor napsaný ve formátu specifickém pro kód se sadou klíčových slov specifických pro kód.[1][2] [3]
NanoLanguage představil Atomistix A / S jako rozhraní pro Atomistix ToolKit (verze 2.1) s cílem poskytnout flexibilnější vstupní formát. Skript NanoLanguage (nebo vstupní soubor) je jen program v Pythonu a může to být cokoli od několika řádků až po skript provádějící složité numerické simulace, komunikující s jinými skripty a soubory a komunikující s jiným softwarem (např. Vykreslování programů). NanoLanguage není proprietární produkt Atomistix a lze jej použít jako rozhraní k jiným hustota funkční teorie kódy i kódy využívající např. pevně vázaný, k.p nebo kvantově-chemická metody.[4][5]
Funkce
Postaveno nahoře Krajta, NanoLanguage obsahuje stejné funkce jako Python a se stejnou syntaxí. NanoLanguage tedy mimo jiné obsahuje běžné programovací prvky (pro smyčky, pokud prohlášení atd.), matematické funkce a data pole.
Kromě toho řada konceptů a předměty relevantní kvantová chemie a fyzika jsou zabudovány do NanoLanguage, např. A periodická tabulka, jednotkový systém (včetně obou SI jednotky a atomové jednotky jako Ångström ), konstruktéři atomových geometrií a různé funkce pro teorii hustotní funkce a výpočty transportu. [6]
Příklad
Tento skript NanoLanguage používá Kohnova metoda vypočítat celkovou energii molekuly vody jako funkci úhlu ohybu.
# Definujte funkci pro nastavení molekulydef Konfigurace vody(úhel, bondLength): z matematika import hřích, cos theta = úhel.inUnitsOf(radiány) pozic = [ (0.0, 0.0, 0.0) * Angstrom, (1.0, 0.0, 0.0) * bondLength, (cos(theta), hřích(theta), 0.0) * bondLength, ] elementy = [Kyslík] + [Vodík] * 2 vrátit se Konfigurace molekuly(elementy, pozic)# Vyberte metodu DFT s výchozími argumentymetoda = KohnSham Metoda()# Naskenujte různé úhly ohybu a vypočítejte celkovou energiipro i v rozsah(30, 181, 10): theta = i * stupňů h2o = Konfigurace vody(theta, 0.958 * Angstrom) scf = metoda.aplikovat(h2o) tisk "Úhel =", theta, "Celková energie =", vypočítat celkovou energii(scf)
Viz také
Reference
- ^ vasp
- ^ Stránka Abinit FAQ
- ^ „SIESTA (Španělská iniciativa pro elektronické simulace s tisíci atomů)“. Archivovány od originál dne 10.9.2007. Citováno 2007-09-21.
- ^ Atomistix představuje otevřenou softwarovou platformu pro modelování nanotechnologií, SmallTimes, 2006 [1]
- ^ Úvod do jazyka NanoLanguage
- ^ QuantumWise A / S