М.Н.СТРИХАНОВ, Н.Н.ДЕГТЯРЕНКО, В.В.ПИЛЮГИН,
Е.Е. МАЛИКОВА, Н.А. МАТВЕЕВА, В.Д. АДЖИЕВ*, А.А.ПАСЬКО*
Национальный исследовательский ядерный университет «МИФИ», Россия
* Британский национальный центр компьютерной анимации при университете Борнмута, Великобритания
MNStrikhanov@mephi.ru, NNDegtyarenko@mephi.ru, pilyugin@sv-journal.com, malikova@sv-journal.com, matveeva@sv-journal.com, vadzhiev@bournemouth.ac.uk, apasko@bournemouth.ac.uk
Оглавление
Описаны результаты работ в области визуализации наноструктур, проводимых в настоящее время в МИФИ совместно с Британским национальным центром компьютерной анимации при университете Борнмута. Рассматриваются характеристики комплекса инструментальных программных средств научной визуализации. Приведены примеры прикладных программ научной визуализации и результаты их апробации на расчетных файлах наноструктур, полученных в процессе их компьютерного моделирования.
Ключевые слова: анализ данных, научная визуализация, наноструктура, научные исследования, прикладная программа, файл исходных данных, графическая интерпретация.
Как показывает практика, при проведении различных научных исследований часто встречаются задачи анализа тех или иных данных. Для решения таких задач в настоящее время широко используется метод научной визуализации [1,2]. Суть этого метода заключается в том, что исходным анализируемым данным при помощи компьютера ставится в соответствие их некоторая статическая или динамическая графическая интерпретация, которая визуально анализируется, а результаты анализа этой графической интерпретации затем истолковываются по отношению к исходным данным (Рис. 1).
Рис.1. Метод научной визуализации
Можно сказать, что основная задача научной визуализации – это сделать невидимое видимым [2]. Под невидимым понимаются как реальные, так и абстрактные объекты, непосредственно недоступные человеческому зрению. Реальный объект невидим, если он является "очень большим" (например галактика) или "очень маленьким" (например микро- и наноструктуры реального мира) . Абстрактый объект (например, функция многих переменных) невидим в силу своей нематериальной природы (Рис.2).
Рис.2. Визуализация невидимых объектов
В настоящее время метод научной визуализации широко применяется при проведении различных физических исследований в Национальном исследовательском ядерном университете “МИФИ”. В данной статье представлены работы в области компьютерной визуализации наноструктур. Эти работы в настоящее время проводятся совместными усилиями кафедры “Компьютерное моделирование и физика наноструктур и сверхпроводников” и учебно - научной лаборатории “Научная визуализация” НИЯУ МИФИ. В этих работах принимает также участие Британский национальный центр компьютерной анимации.
Эти работы включают в себя:
- разработку комплекса инструментальных программных средств научной визуализации;
- создание прикладных программ визуализации наноструктур с использованием этого комплекса;
- апробацию прикладных программ визуализации на расчетных файлах наноструктур, полученных в процессе их компьютерного моделирования.
Комплекс представляет собой совокупность автономно и совместно используемых программных продуктов 3ds Max [4], HyperFun [5], Jmol апплет [6], Cortona3D Viewer [7] и их функциональных расширений (FE)[3]. Взаимодействие прикладных программ и комплекса показана на Рис.3.
Рис. 3. Взаимодействие прикладных программ и комплекса
Следует отметить, что указанные инструментальные программные средства комплекса научной визуализации обладают широкими функциональными возможностями, которые позволяют создавать на их основе сложные прикладные программы для пассивной и интерактивной визуализации.
Охарактеризуем компоненты комплекса.
3ds Max
3ds Max — широко известный программный продукт, предназначенный для моделирования и визуализации произвольных сложных пространственных сцен [4]. Он располагает развитыми функциональными возможностями геометрического моделирования (полигональное моделирование, моделирование на основе неоднородных рациональных B-сплайнов, моделирование на основе порций поверхностей Безье, моделирование с использованием встроенных библиотек стандартных параметрических объектов (примитивов и модификаторов) и визуализации пространственных объектов (программы рендеринга Scanline render, Mental ray и др.).
Архитектура 3ds Max - открытая, что позволяет расширять его функциональные возможности путем написания плагинов - специализированных программных модулей. Для написания таких плагинов служит 3ds Max SDK (MaxSdk) — набор из средств разработки, утилит и документации, который позволяет разработчикам создавать программные средства по определённой технологии и для программной среды 3ds Max. Программный язык написания таких плагинов – С++.
Для написания прикладных программ визуализации на базе 3ds Max предусмотрен специальный скриптовый язык – Maxscript. На языке MaxScript можно также писать плагины, которые в свою очередь могут использовать ранее написанные плагины. Язык Maxscript - язык программирования, созданный специально для работы в среде 3ds Max, он имеет более простую структуру и синтаксис, нежели C++. Этот интерпретируемый язык не требует в отличие от C++ компиляции и сборки исходного кода. Это достоинство сопровождается вытекающим из него недостатком – программа выполняется более медленно, нежели аналогичная программа на C++.
HyperFun
Программный комплекс HyperFun обеспечивает возможность решения задач моделирования и визуализации сложных геометрических объектов [5]. В основе концепции геометрического моделирования HyperFun лежит функциональное представление (FRep) - задание геометрического объекта как единого целого с помощью одной вещественной непрерывной описывающей функции нескольких переменных в виде F(X). Frep позволяет объединить такие разные по природе модели, как классические неявно заданные примитивы, объекты на базе скелетонов, теоретико-множественные твердые тела, заметания, воксельные объекты, параметрические и процедурные модели.
Моделирование на основе функционального представления осуществляется с помощью языка высокого уровня HyperFun и поддерживающих его программных продуктов: HyperFun Polygonizer, POVRay with HyperFun support, Hyperfox и др.
Эти продукты обеспечивают развитые функциональные возможности:
- широкий и легко расширяемый набор геометрических примитивов и операций;
- процедурная генерация структур высокой сложности;
- моделирование физических свойств с помощью точечных атрибутов;
- визуализация сложных геометрических объектов с использованием кусочно-линейной аппроксимации (полигонизации) и трассировки лучей.
Язык HyperFun позволяет описывать как сами геометрические объекты, так и их внутренние свойства (цвет, материал и т.д.). Описываемый геометрический объект может быть задан в пространстве размерности 1D, 2D, 3D, 4D и даже kD.
Jmol апплет
Jmol апплет обеспечивает возможность моделирования и визуализации специализированных пространственных сцен [6]. В большинстве случаев геометрическая модель пространственной сцены представляет собой совокупность сфер (атомы) и цилиндров (связи между атомами). Наряду с этим Jmol апплет представляет функциональные возможности для задания физических характеристик пространственной сцены, а также ряда атрибутов ее визуализации. Jmol апплет обеспечивает выполнение функциональных процедур измерения пространственной сцены и выполнения необходимых вычислений.
Необходимо отметить, что апплет обеспечивает возможность написания как пассивных, так и интерактивных прикладных программ визуализации, предназначенных для выполнения на локальном компьютере или в сети Интернет.
Указанные выше функциональные возможности Jmol апплета доступны из прикладной программы визуализации, написанной на языке Jmol Scripting Language.
Cortona3D Viewer
Программа представляет собой плагин браузера для высококачественной визуализации статических и динамических пространственных сцен, описание которых представлено в формате VRML [7]. Предоставляются версии работающие с браузерами Internet Explorer, Netscape Browser, Mozilla Firefox. В настоящее время Cortona3D Viewer работает в среде Windows.
Прикладные программы визуализации, разработанные на базе инструментальных программных средств комплекса, предназначены для решения различных задач, которые имеют место в рамках проводимых в МИФИ исследований различных наноструктур. Среди этих задач можно выделить две типовые задачи:
- задача анализа взаимного расположения компонентов исследуемой наноструктуры;
- задача анализа поля исследуемой наноструктуры.
Обе эти задачи по своей сути являются геометрическими задачами.
Рассмотрим примеры разработанных прикладных программ визуализации анализируемых наноструктур.
Программа визуализации нанообъектов N192
В этой программе визуализации в качестве исходных данных используется описание анализируемого нанообъекта N192 в формате XYZ – файла. Описание структуры формата представлено на Рис.4.
Рис.4. Структуры формата XYZ-файла
Результатом работы этой программы является проекционное графическое изображение нанообъекта. Пример такого изображения показан на Рис.5.
Рис.5. Интерактивное графическое изображение нанообъекта N192
Щелкнуть для просмотра
Для просмотра необходимо загрузить Cortona3D Viewer
Программа написана на языке Maxscript, при ее работе используются компоненты комплекса 3ds Max и Cortona3D Viewer. Задаваемыми параметрами программы являются длины двойных, тройных и одинарных связей, цвет атомов, цвет связей. Использование компонента Cortona3D Viewer позволяет осуществлять интерактивную визуализацию исходных данных, задавая различные значения штатных атрибутов визуализации (положение камеры, цвет фона и т.д.). При помощи этой программы решается задача анализа взаимного расположения атомов в исследуемой наноструктуре.
Анимационная программа визуализации формирования нанообъектов из 2-х фуллеренов С20
В качестве исходных данных в этой программе визуализации используется описание анализируемого динамического процесса объединения 2-х фуллеренов С20 в один кластерных димер С40 в формате TXT – файлов. Анимационная структура содержит последовательный набор TXT файлов, где каждый файл содержит описание координат атомов в определенный момент времени, который указан в названии файла. Описание структуры формата для одного TXT файла представлено на Рис.6.
Рис.6. Структура формата TXT файла
Результатом выполнения этой программы является анимационное проекционное графическое изображение процесса объединения 2-х наноструктур. Пример такого изображения показан на Рис.7.
Рис.7. Анимационное графическое изображение процесса объединениия 2-х наноструктур С20
Программа написана на языке Maxscript, при ее работе используются компонент комплекса 3ds Max и его функциональное расширение в виде плагина NLink. Задаваемыми параметрами программы являются штатные атрибуты визуализации, пороговая длина связей (визуализируются только те связи, длина которых не превосходит значение пороговой длины), цвет атомов, цвет связей. При помощи этой программы решается задача анализа исследуемого процесса формирования кластерного димера.
Программа визуализации нанообъектов различных типов
Исходными данными в этой программе визуализации является описание исследуемого нанообъекта того или иного типа, представленного в одном из следующих форматов: XYZ, HIN, OUT, MOL. Формат XYZ был представлен на Рис. 4. Описание структуры форматов HIN, MOL - файлов представлено соответственно на Рис.8, 9. Описание формата используемого в программе фрагмента OUT - файла представлено на Рис. 10.
Рис.8. Структура формата HIN-файла
Рис.9. Структура формата MOL-файла
Рис.10. Структура формата используемого в программе фрагмента OUT-файла
Результатом работы этой программы является проекционное графическое изображение визуализируемого нанообъекта. Примеры таких изображений нанообъектов С180 и Витамин С показаны соответственно на Рис.11,12.
Рис.11. Графическое изображение наноструктуры фуллерен С180
Рис.12. Графическое изображение наноструктуры Витамин С
Программа написана на языке Jmol Scripting Language, при ее работе используются компонент комплекса Jmol апплет. Задаваемыми параметрами программы являются длины двойных, тройных и одинарных связей, цвет атомов, цвет связей (Рис.13). Программа может осуществлять измерение расстояний между атомами, углов между связями (Рис.14), строить гистограммы (Рис.15), производить редактирование наноструктуры (Рис.16). Использование компонента Jmol апплета позволяет осуществлять интерактивную визуализацию исходных данных, задавая различные значения штатных атрибутов визуализации – положение камеры, среду и т.д. Различные варианты использования этой программы представлены на Рис.13 – 16. При помощи этой программы решается задача качественного и количественного анализа взаимного расположения атомов в исследуемой наноструктуре.
Рис.13. Задание параметров программы
Рис.14. Измерение расcтояний и углов
Рис.15.Построение гистограмм
Рис.16. Редактирование наноструктуры
Анимационная программа визуализации изоповерхности для параметра порядка трехмерного сверхпроводника 2-го рода
В этой программе визуализации в качестве исходных данных используется описание анализируемого поля параметра порядка сверхпроводника 2-го рода в формате TXT – файла (сверхпроводник моделируется с помощью уравнений Гинзбурга - Ландау). Описание структуры формата представлено на Рис.17.
Рис.17. Структура формата TXT- файла
Результатом работы этой программы является анимационное проекционное графическое изображение изоповерхности поля ( поверхность определяет положение и конфигурацию вихрей Абрикосова). Пример такого изображения показан на Рис.18.
Рис.18. Анимационное графическое изображение изоповерхности поля параметра порядка сверхпроводника 2-го рода
Программа написана на языке Maxscript, при ее работе используются компоненты комплекса 3ds Max и его функциональные расширения плагины MDSpace, FromFile, а также компонент HyperFun и его функциональные расширения OpenFile, CloseFile, ReadSupercond. Задаваемыми параметроми программы являются значение поля, штатные атрибуты визуализации. При помощи этой программы решается задача анализа поля исследуемого сверхпроводника.
Анимационнаая программа объемной визуализации электронной плотности нанообъектов Cl2O
В этой программе визуализации в качестве исходных данных используется описание анализируемого поля электронной плотности нанообъекта Cl2O в формате TXT – файла. Описание структуры формата представлено на Рис.19.
Рис.19. Структура формата TXT - файла
Отметим, что это описание предварительно может быть получено из описания поля электронной плотности данного нанобъекта, представленного в формате OUT – файла с помощью программы MacMolPlt [8].
Результатом работы рассматриваемой программы визуализации является анимационное проекционное графическое изображение совокупности полупрозрачных изоповерхностей поля (объемная визуализация). Пример такого изображения показан на Рис.20.
Рис.20. Анимационное графическое изображение поля электронной плотности нанообъекта CL2O
Программа написана на языке MaxScript, при ее работе используются компоненты комплекса 3ds Max и его функциональные расширения плагины MDSpace, ElectronDens. Задаваемыми параметрами программы являются значение поля, штатные атрибуты визуализации. При помощи этой программы решается задача анализа поля электронной плотности исследуемого нанообъекта.
Необходимо отметить, что исходные данные в рассмотренных прикладных программах визуализации в виде XYZ, HIN, OUT, MOL, TXT - файлов являются результатом работы программ компьютерного моделирования исследуемых наноструктур. Примером таких программ могут служить широко известные HyperChem, Gamess и др.[9,10], а также программы, написанные физиками НИЯУ МИФИ [11] .
Разработанные прикладные программы визуализации наноструктур в настоящее время объединены в библиотеку, доступ к которой осуществляется с помощью программного каталога, располагаемого на локальном компьютере или в сети Интернет. Интерфейс каталога представлен на Рис. 21
Рис.21 Интерфейс библиотеки прикладных программ визуализации наноструктур
Отметим, что рассмотренные программные средства наряду с научными исследованиями используются также и в учебном процессе НИЯУ МИФИ при обучении студентов-физиков в области научной визуализации.
В дальнейшем планируется расширение как самого комплекса инструментальных программных средств научной визуализации, так и библиотеки прикладных программ визуализации, использующих этот комплекс. В отношении комплекса предполагается функциональное расширение уже существующих его компонентов, а также создание новых.