- PVSM.RU - https://www.pvsm.ru -

Отображение молекулярных орбиталей с помощью языка Wolfram Language (Mathematica)

Отображение молекулярных орбиталей с помощью языка Wolfram Language (Mathematica) - 1

Перевод поста Jason B. "Plotting electronic orbitals using Mathematica [1]".
Выражаю благодарность за помощь в переводе участнику сообщества ВКонтакте Русскоязычной поддержки Wolfram Mathematica Курбану Магомедову [2].
Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, а также дополнительные материалы, можно здесь [3].

Химикам часто бывает полезно изображение молекулярных орбиталей [4] (МО). Они используются для описания волновой функции [5] электронов в атомах или молекулах. Как правило, это результаты различных квантово-химических или квантово-физических расчетов, производимых в специализированном программном обеспечении для расчета МО, которые представлены в виде cube-файла [6], разработанного Gaussian [7]. Эти файлы содержат объемные данные для построения орбиталей на трехмерной сетке.

Существует множество приложений для просмотра cube-файлов, такие как VMD [8] или GaussView [9], но я хотел бы воспользоваться возможностями Mathematica, которые она дает для совмещения и создания различных типов графических объектов, а также автоматизации всего процесса, что в итоге позволило эффективно создавать кадры для видео [10], в котором можно наблюдать изменение МО.



Прежде всего, нам понадобится функция для извлечения данных из cube-файла. В процессе мы создадим также текст для файла XYZ [11] (формат, также представленный Gaussian). Функция OutForm по сути имитирует работу функций PRINTF [12], встречающихся в других языках программирования.

In[1]:=

Plotting electronic orbitals using Mathematica_1.png

Импорт cude-файла:

In[2]:=

Plotting electronic orbitals using Mathematica_2.png

Если Вам необходимо создать cube-файл, то можно использовать следующую функцию:

In[3]:=

Plotting electronic orbitals using Mathematica_3.png

Далее нам потребуется функция отображения МО:

In[4]:=

Plotting electronic orbitals using Mathematica_4.png

Давайте теперь рассмотрим как все работает на примере. Возьмем некоторый cude-файл, скажем, cys-MO35.cube и импортируем данные из него:

In[5]:=

Plotting electronic orbitals using Mathematica_5.png

Теперь построим трехмерную модель:

In[6]:=

Plotting electronic orbitals using Mathematica_6.png

Out[6]=

Plotting electronic orbitals using Mathematica_7.png

Если вам необходимо создать видео файл, то вам потребуется набор изображений с одинаковой точкой обзора, которую можно задать с помощью опций ViewAngle [13], ViewPoint [14], и ViewCenter [15]. Когда вы указываете эти опции с их значениями внутри функции CubePlot, она передает их непосредственно в функцию Show, что позволяет использовать в вашей функции отображения МО, встроенные опции стандартных функций Wolfram Language:

In[7]:=

Plotting electronic orbitals using Mathematica_8.gif

Out[8]=

Plotting electronic orbitals using Mathematica_9.png

Наконец, вы также можете использовать любые опции, которые имеет встроенная функция ListContourPlot3D [16]:

In[9]:=

Plotting electronic orbitals using Mathematica_10.png

Out[9]=

Plotting electronic orbitals using Mathematica_11.png

In[10]:=

Plotting electronic orbitals using Mathematica_12.png

Out[10]=

Plotting electronic orbitals using Mathematica_13.png

Автор: OsipovRoman

Источник [17]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/himiya/81365

Ссылки в тексте:

[1] Plotting electronic orbitals using Mathematica: http://mathematica.blogoverflow.com/2013/09/plotting-electronic-orbitals-using-mathematica/

[2] Курбану Магомедову: http://vk.com/iamkurban

[3] здесь: http://goo.gl/uJjfcu

[4] молекулярных орбиталей: https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D0%BC%D0%BE%D0%BB%D0%B5%D0%BA%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D1%85_%D0%BE%D1%80%D0%B1%D0%B8%D1%82%D0%B0%D0%BB%D0%B5%D0%B9

[5] волновой функции: https://ru.wikipedia.org/wiki/%D0%92%D0%BE%D0%BB%D0%BD%D0%BE%D0%B2%D0%B0%D1%8F_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F

[6] cube-файла: http://paulbourke.net/dataformats/cube/

[7] Gaussian: http://www.gaussian.com

[8] VMD: http://www.ks.uiuc.edu/Research/vmd/plugins/molfile/cubeplugin.html

[9] GaussView: http://www.gaussian.com/g_tech/gv5ref/results.htm

[10] видео: http://www.pnas.org/content/suppl/2013/09/05/1308604110.DCSupplemental/sm01.mp4

[11] XYZ: http://en.wikipedia.org/wiki/XYZ_file_format

[12] PRINTF: http://en.wikipedia.org/wiki/Printf_format_string

[13] ViewAngle: http://reference.wolfram.com/language/ref/ViewAngle.html

[14] ViewPoint: http://reference.wolfram.com/language/ref/ViewPoint.html

[15] ViewCenter: http://reference.wolfram.com/language/ref/ViewCenter.html

[16] ListContourPlot3D: http://reference.wolfram.com/language/ref/ListContourPlot3D.html

[17] Источник: http://habrahabr.ru/post/249469/