Pull to refresh
0
Wolfram Research
Wolfram Language, Mathematica, Wolfram Alpha и др.

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

Reading time 2 min
Views 8.9K
Original author: Jason B.

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


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

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



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

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, ViewPoint, и ViewCenter. Когда вы указываете эти опции с их значениями внутри функции CubePlot, она передает их непосредственно в функцию Show, что позволяет использовать в вашей функции отображения МО, встроенные опции стандартных функций Wolfram Language:

In[7]:=

Plotting electronic orbitals using Mathematica_8.gif

Out[8]=

Plotting electronic orbitals using Mathematica_9.png

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

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

Ресурсы для изучения Wolfram Language (Mathematica) на русском языке: habrahabr.ru/post/244451
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+14
Comments 0
Comments Leave a comment

Articles

Information

Website
www.wolfram.com
Registered
Founded
1987
Employees
1,001–5,000 employees
Location
США