NanoLanguage - NanoLanguage

NanoLanguage это сценарии интерфейс построен поверх интерпретируемый язык программирования Python, и предназначен в первую очередь для моделирования физических и химических свойств наноразмерные системы.

Вступление

За прошедшие годы несколько кодов электронной структуры, основанных на теория функционала плотности были разработаны различными группами академических исследователей; ВАСП, Abinit, SIESTA, и Гауссовский это всего лишь несколько примеров. Входными данными для этих программ обычно является простой текстовый файл, написанный в специфическом для кода формате с набором специфичных для кода ключевых слов.[1][2] [3]

NanoLanguage был представлен Атомистикс A / S как интерфейс для Набор инструментов Atomistix (версия 2.1), чтобы обеспечить более гибкий формат ввода. Сценарий NanoLanguage (или входной файл) - это просто программа Python и может представлять собой что угодно, от нескольких строк до сценария, выполняющего сложное численное моделирование, обмена данными с другими сценариями и файлами и взаимодействия с другим программным обеспечением (например, программами построения графиков). NanoLanguage - это не проприетарный продукт Atomistix и может использоваться как интерфейс для других теория функционала плотности коды, а также коды, использующие, например, тесный переплет, к.п., или квантово-химический методы.[4][5]

Функции

Построен на вершине Python, NanoLanguage включает те же функции, что и Python, и с тем же синтаксисом. Следовательно, NanoLanguage содержит, среди прочего, общие элементы программирования (для петель, если заявления и т. д.), математические функции и данные массивы.

Кроме того, ряд концепций и объекты относится к квантовая химия и физика встроена в NanoLanguage, например а периодическая таблица, система единиц (включая обе Единицы СИ и атомные единицы, такие как Ангстрем ), конструкторы геометрии атомов и различные функции для теории функционала плотности и расчетов переноса. [6]

Пример

Этот сценарий NanoLanguage использует Метод Кона – Шама для расчета полной энергии молекулы воды как функции угла изгиба.

# Определить функцию для настройки молекулыdef вода(угол, bondLength):    из математика импорт грех, потому что    тета = угол.inUnitsOf(радианы)    позиции = [        (0.0, 0.0, 0.0) * Ангстрем,        (1.0, 0.0, 0.0) * bondLength,        (потому что(тета), грех(тета), 0.0) * bondLength,    ]    элементы = [Кислород] + [Водород] * 2    возвращаться МолекулаКонфигурация(элементы, позиции)# Выберите метод DFT с аргументами по умолчаниюметод = KohnShamMethod()# Сканируйте различные углы изгиба и рассчитайте общую энергиюза я в классифицировать(30, 181, 10):    тета = я * градусы    H2O = вода(тета, 0.958 * Ангстрем)    scf = метод.подать заявление(H2O)    Распечатать "Угол =", тета, «Общая энергия =», CalculTotalEnergy(scf)

Смотрите также

Рекомендации

  1. ^ васпа
  2. ^ Страница часто задаваемых вопросов Abinit
  3. ^ "SIESTA (Испанская инициатива по электронному моделированию с тысячами атомов)". Архивировано из оригинал на 2007-09-10. Получено 2007-09-21.
  4. ^ Atomistix представляет открытую программную платформу для нанотехнологического моделирования SmallTimes, 2006 г. [1]
  5. ^ Введение в NanoLanguage
  6. ^ QuantumWise A / S