ВИЗУАЛИЗАЦИЯ И КОНСТРУИРОВАНИЕ НАНОСИСТЕМ В РАМКАХ МНОГОМАШТАБНОГО ПОДХОДА: ПРОГРАММА «НАНОМОДЕЛЛЕР»

 

А.А. Багатурьянц, К.Г. Владимирова, Н.Н. Дегтяренко*, Е.Е. Маликова*, Р.Ф. Минибаев,

В.В. Пилюгин*, М.Н. Стриханов*, А.Я. Фрейдзон

Центр фотохимии Российской Академии Наук, Москва, Россия

*Национальный исследовательский ядерный университет «МИФИ», Москва, Россия

minibaev@gmail.com, malikova@sv-journal.com

 

Оглавление

1. Основные проблемы разработки программ для визуализации и конструирования наноструктурированных материалов. 1

2. Характеристика известных программ визуализации и конструирования наноструктур. Обоснование разработки программы «Наномоделлер». 3

3. Спецификация функциональных процедур «Наномоделлера». 4

3.1. Функциональные процедуры задания исходных данных. 6

3.2. Функциональные процедуры редактирования исходных данных. 7

3.3. Функциональные процедуры анализа. 14

3.4. Функциональные процедуры визуализации. 15

4. Апробация «Наномоделлера». 17

Литература. 17

 

Аннотация

Рассмотрены ключевые вопросы разработки программ для визуализации и конструирования наноструктурированных материалов. Приведен обзор некоторых существующих программных продуктов в этой области. Обоснована разработка программы «Наномоделлер», дано описание ряда функциональных процедур, реализованных в программе, и приведены результаты ее  апробации.

 

Ключевые слова:
Визуализатор, наноструктурированные материалы, визуализация и редактирование наноструктур

 

1. Основные проблемы разработки программ для визуализации и конструирования наноструктурированных материалов

Компьютерное атомистическое моделирование наноструктурированных материалов в настоящее время обладает высокой предсказательной способностью и большим потенциалом для дальнейшей разработки новых материалов с заданными свойствами и характеристиками. В основе такого моделирования лежат адекватные многоуровневые физические модели структуры и свойств материала и многомасштабный вычислительный подход с использованием методов квантовой химии и классических методов молекулярного моделирования (молекулярной динамики и Монте-Карло) [ [1] , [2], [3]].

Визуализация структур на атомистическом уровне, как при формировании заданий, так и при анализе результатов теоретических исследований нанообъекта [ [4] ] есть необходимый инструмент, который позволяет как соединять разные уровни моделирования, так и сравнивать полученные результаты этих исследований с известными экспериментальными свойствами наноразмерных объектов. Кроме того, графическое отображение атомно-молекулярной структуры наноматериала (в первую очередь, взаимного расположения ядер атомов в пространстве, но также и характеристик электронного строения системы) позволяет визуализировать области наиболее значительных изменений структуры и электронных характеристик в ходе тех или иных физических или химических процессов.

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

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

Типичный алгоритм работы компьютерного моделирования наноразмерных систем на каждом уровне многомасштабного исследования состоит из следующих основных этапов:

(1) Определение и задание начальной структуры нанообъекта. Начальная структура может быть взята готовой из различных имеющихся источников, таких как базы данных молекулярных и кристаллических структур, или из каких либо других предыдущих расчетов. Она может быть либо использована как есть, либо модифицирована посредством соответствующего редактора атомных структур.

(2) Теоретическое исследование выбранной структуры различными методами, в том числе квантово-химическими, методами молекулярной механики, молекулярной динамики и/или Монте-Карло.

(3) Обработка и анализ полученных результатов.

На сегодняшний день существует большое количество визуализаторов – редакторов  молекулярных структур, в которых реализован базовый функционал для исследования молекул.

Однако, ввиду стремительного развития области исследования наноматериалов – сложных систем, включающих сотни и тысячи атомов, возникает необходимость расширения базового функционала в области анализа структуры и свойств подобных систем.

В качестве примера можно привести модельную систему, в которой краситель адсорбирован на клубке полимерной цепи, состоящей из 500 мономерных звеньев (Рис. 1 ). Подобные системы (краситель, адсорбированный на полимерных наночастицах) выполняют роль чувствительного элемента оптического хемосенсора для детектирования различных (например, вредных) веществ, находящихся в атмосфере.

Рис. 1 . Геометрическая модель молекулы Нильского Красного, адсорбированной на полистироле.

Моделирование свойств данной системы выполняется с использованием гибридной модели (Рис. 2 ): (a) квантово-химических методов для описания молекулы в окружении; (б) эффективных потенциалов для описания фрагментов ближайшего окружения (effective fragment potential, EFP) или методов молекулярной механики. В настоящее время не существует программ, позволяющих визуализировать результаты расчета в рамках данной модели – полную геометрическую и электронную структуру, полученную в результате расчета. Существует также некоторые проблемы в работе с периодическими структурами, на этом мы остановимся подробнее далее. Таким образом, разработка программы с расширенными функциями анализа структуры и свойств наносистем является актуальной задачей в области компьютерного моделирования физико-химических свойств наноматериалов.

Рис. 2 . Схема гибридной модели для описания свойств сложных систем: описание подсистемы "а" ведется на квантово-химическом уровне, а подсистемы "б" на уровне эффективного потенциала отдельных фрагментов или на уровне молекулярной механики.

2. Характеристика известных программ визуализации и конструирования наноструктур. Обоснование разработки программы «Наномоделлер»

В настоящее время существует целый ряд визуализаторов/редакторов атомной структуры молекул и кристаллических структур. Все они отличаются своим интерфейсом и набором функциональных возможностей.

Для работы с молекулами наиболее широко используемыми и разработанными являются программные продукты ChemCraft (www.chemcraft.org), HyperChem (www.hyper.com), Mercury (http://www.ccdc.cam.ac.uk/products/mercury/). При этом набор функциональных возможностей каждой из них развит для специфических задач:

-         ChemCraft позволяет обрабатывать выходные файлы ряда квантово-химических программ (визуализировать данные об электронной структуре и др.), редактировать и проводить анализ симметрии атомной структуры исследуемой системы.

-         HyperChem удобное средство для построения атомной структуры, поскольку после геометрического построения, пользователь может выполнить оптимизацию полученной структуры в рамках метода молекулярной механики.

-         Mercury является программой для работы с данными рентгено-структурного анализа кристаллов, позволяет рассмотреть упаковку и ближайшее окружение отдельной молекулы, характер ее упаковки в кристалле, провести необходимые измерения.

Таким образом, в процессе исследования возникает необходимость перехода от одной программы к другой, что несколько затрудняет и замедляет работу.

Работа с периодическими структурами имеет ряд специфических особенностей, и не во всех программных продуктах есть полноценный функционал для работы с ними.  Из существующих программ можно выделить несколько: Diamond (Crystal Impact) [ [5] ], XCrysDen (X-window CRYstalline Sructures and DENsities) [ [6] ], Accelrys Material Studio [ [7] ].

-         Diamond – визуализатор специализированный для работы с кристаллическими структурами. Обладает мощным инструментарием и  большим спектром возможностей, например, преобразование групп симметрии, вырезание кластеров из кристаллических периодических структур, построение поверхностей и соответствующих кристаллических пластин.

-         XCrysDen – свободно распространяемая программа, может считывать молекулярную или кристаллические структуры нескольких стандартных форматов, таких как XYZ, PDB и из своего внутреннего формата XSF. Программа в достаточной степени обладает всеми функциями, необходимыми современному молекулярному визуализатору. Кроме того программа позволяет работать с форматами данных расчетных программ GAUSSIAN [ [8] ], CRYSTAL [ [9] ], PWscf [ [10] ], WIEN2k [ [11] ], FHI98MD [ [12] ], а именно импортировать данные в формат входных файлов и считывать выходные файлы, считывать данные трехмерных скалярных полей. Из некоторых недостатков можно отметить не совсем удобный интерфейс, что приводит к сложности редактирования структуры исследуемой системы. Для работы в операционной системе Windows необходимо наличие установленного программного пакета CygWin [ [13] ].

-         Хорошее сочетание интерфейса и функциональности реализовано в визуализаторе-редакторе, входящем в состав программного комплекса Accelrys Materials Studio. Полная версия Materials Studio помимо визуализации включает множество расчетных модулей, с помощью которых можно проводить расчет атомной структуры кристалла или молекулы, молекулярную динамику, оптические и упругие свойства и другие. Ограниченная версия Materials Studio представляет собой простой визуализатор-редактор. Программа обладает удобным интерактивным интерфейсом, с помощью которой можно быстро создавать сложные объекты и структуры, поверхности, кристаллические массивы и  редактировать их. Из плюсов стоит отметить большой буфер выполненных операций, что позволяет в случае необходимости отменить несколько шагов. Кроме того программа снабжена хорошей поддержкой пользователя (пункт меню Help).

Из основных недостатков можно выделить высокую стоимость программы, ограниченный набор импортируемых форматов, отсутствие конвертации данных в другие расчетные программы, выходящие за пределы Material Studio.  Для визуализации структуры, полученной в результате квантово-механического расчета с помощью других расчетных программ, необходимо осуществлять преобразование выходной информации для ее восприятия.

3. Спецификация функциональных процедур «Наномоделлера».

В контексте проводимых в настоящее время научных исследований в ЦФ РАН совместно с НИЯУ МИФИ разрабатывается программный пакет «Наномоделлер». Предполагается, что «Наномоделлер» будет обладать развитыми функциональными возможностями создания и редактирования нанообъектов, их анализа и визуализации, а также формирования входных данных для вычислительных программ, используемых в многомасштабном моделировании.

Благодаря работе со многими форматами данных молекулярных и кристаллических структур и входными/выходными данными наиболее часто применяемых расчетных программам, «Наномоделлер» будет представлять собой многофункциональный инструмент, лишенный многих указанных выше недостатков и обеспечивающий комфортную работу исследователю, занимающегося компьютерным моделированием материалов. Данный программный продукт разрабатывается на базе Jmol апплета [ [14] ], представляющего собой визуализатор молекулярных и кристаллических структур с открытым кодом. Это специально созданный для научной работы химиков, биологов, инструмент обладает широким функционалом  визуализации атомных структур и различных полей. Выбор Jmol апплета в качестве основы разрабатываемого «Наномоделлера» обусловлен тем, что его лицензия на основе уже имеющихся разнообразных функциональных процедур позволяет создавать сложный программный продукт. Благодаря наличию языка скриптов Jmol Scripting Language имеется возможность расширения, в том числе и конечным пользователем.

Другими характеристиками Jmol апплета являются:

·        Кросплатформенность

·        Возможность чтения выходных форматов большинства квантово-механических программ

Работая с «Наномоделлером», пользователь может выполнять операции 3-х типов:

·        Операции задания той или иной наноструктуры

·        Операции редактирования наноструктур (например, добавить/удалить атом)

·        Операции анализа наноструктур (например, измерить расстояние между 2-мя атомами)

Совокупность этих операций определяет пользовательский интерфейс (Рис.3) или, другими словами, функциональную модель «Наномоделлера».

Рис.3. Пользовательский интерфейс «Наномоделлера»

Для осуществления этих действий используется входной язык диалога «Наномоделлера». В результате интерпретации интерфейсной программой языковых конструкций (см. Рис.3 ) происходит инициация программных функциональных процедур, к которым относятся:

·        Функциональные процедуры компьютерного моделирования атомных структур  нанообъектов;

·        Функциональные процедуры компьютерной визуализации моделируемых нанообъектов.

визуализируемой

 

Рис. 4. Функциональные процедуры «Наномоделлера».

Функциональные процедуры компьютерного моделирования нанообъектов включают в себя:

·        процедуры задания исходных данных;

·        процедуры редактирования исходных данных;

·        процедуры анализа.

Таким образом, функциональные процедуры служат для реализации соответствующих операций, вводимых в рассмотрение пользователем «Наномоделлера» и сопутствующей визуализации их результатов. Рассмотрим основные характеристики этих функциональных процедур.

3.1. Функциональные процедуры задания исходных данных

Функциональные процедуры задания исходных данных осуществляют процесс получения исходных данных, представляющих собой описание наноструктур в файлах принятых форматов. Этот процесс представляет собой открытие  и чтение данных из файла определенного типа, с последующим созданием определенной компьютерной модели наноструктуры в памяти компьютера (Рис.5). Данная модель служит для представления в памяти массивов числовых данных, которые в общем случае могут являться описанием координат центров атомов и их типа, физических характеристик атомов и связей (масса, заряд), описанием полей. Функциональные процедуры задания исходных данных реализованы в Jmol апплете, и в «Наномоделлере» вызываются с помощью соответствующих операторов на Jmol Scripting Language – языка написания прикладных программ на базе Jmol апплета.

Рис. 5. Функциональные процедуры задания исходных данных.

Апплет Jmol работает с большим числом форматов, в которых общепринятым образом записываются молекулярно-кристаллические структуры. К этим форматам в соответствии со спецификацией Апплета Jmol относятся: MOL[15], CIF[16], mmCIF[16], CML[17], PDB[18], XYZ [19], XSD [7], а также с форматами расчетных программ GAMESS [20], HIN [21], VASP [22], Molden [23] и др.

Вызов функциональной процедуры задания исходных данных осуществляется пользователем из вкладки основного меню "Файл à "Открыть, путем выбора соответствующего файла с описанием наноструктуры. Помимо информации о самой структуре, в памяти также содержится информация об используемой в данный момент пользователем части данных (выделенный атом, связь и др.). Информация, хранящаяся в компьютерной модели наноструктуры, используется и модифицируется другими функциональными процедурами «Наномоделлера». В первую очередь это относится к функциональным процедурам редактирования исходных данных и их анализа.

3.2. Функциональные процедуры редактирования исходных данных.

Функциональные процедуры данной группы обеспечивают возможность редактирования исходной компьютерной модели наноструктуры (Рис. 6). Полученная отредактированная компьютерная модель, при желании пользователя, может быть сохранена в виде файла формата xyz или mol. Данные функциональные процедуры также используют программные процедуры Jmol апплета, и представляют собой последовательность операторов на Jmol Scripting language и JavaScript. Вызов функциональных процедур осуществляется пользователем через элементы интерфейса, представляющие собой элементы html форм, которые расположены на различных вкладках пункта основного меню  и всплывающих диалоговых окнах. Функциональные процедуры этой группы доступны через пункт основного меню «Правка». В настоящее время программно реализован ряд таких функциональных процедур, примеры которых будут представлены ниже.

Рис.6 Функциональные процедуры редактирования исходных данных

3.2.1. Функциональная процедура добавления атома определенного типа в наноструктуру

    В результате вызова этой функциональной процедуры модель исходной наноструктуры редактируется путем добавления к ней нового атома из таблицы Менделеева  Для выполнения этой функциональной процедуры необходимо зайти во вкладку «Правка» à «Добавить» (Рис.7) и выбрать атом определенного типа из таблицы, после чего выбрать атом исходной наноструктуры, который будет иметь связь с новым, добавляемым атомом. В результате выполнения этой функциональной процедуры формируется  соответствующая модель нанообъекта с измененной структурой.

Пример визуализации результата работы этой функциональной процедуры приведен  на Рис.8.

Рис.7 Инициация функциональной процедуры «Добавить атом»

Рис.8 Результат выполнения функциональной процедуры «Добавить атом»

3.2.2. Функциональная процедура добавления фрагмента наноструктуры

   В результате вызова этой функциональной процедуры выполняется добавление к существующему нанообъекту дополнительной молекулы из библиотеки, включенной в состав «Наномоделлера», или взятого из файла, задаваемого пользователем. Вызов этой функциональной процедуры осуществляется через выбор вкладки «Редактирование»à «Добавить»à«Фрагмент». После добавления молекулы ее можно сразу переместить в нужную точку пространства.

Пример визуализации результата выполнения этой функциональной процедуры  приведен  на Рис.10. Исходная наноструктура для этой функциональной процедуры представлена на Рис.9.

Рис.9 Инициация функциональной процедуры «Добавить фрагмент»

Рис.10 Результат выполнения функциональной процедуры «Добавить фрагмент»

3.2.3. Функциональная процедура удаления атома

   Данная функциональная процедура позволяет удалять атомы из структуры нанообъекта. Вызов этой функциональной процедуры осуществляется через выбор вкладки «Редактирование»à «Удалить». Пример визуализации результата работы этой функциональной процедуры и графическое изображение исходной наноструктуры приведены  на Рис.11

Рис.11 Исходная и результирующая наноструктуры

 

3.2.4. Функциональная процедура изменения расстояния между 2-мя атомами

   Данная функциональная процедура позволяет изменять расстояние между двумя атомами нанообъекта. Вызов этой функциональной процедуры осуществляется через выбор вкладки «Анализ»à «Структурные параметры» à «Расстояние», после чего измерить расстояние между 2-мя атомами (функциональная процедура измерения расстояния между атомами будет описана ниже).  Результат измерения будет виден на проекционном графическом изображении и в специальном поле (Рис.12). Значение расстояния между 2-мя выбранными атомами можно изменять, редактируя значение в этом поле, после чего необходимо нажать на одну из кнопок

в зависимости от того, какой атом или оба атома должны быть сдвинуты.

 Пример визуализации результата работы этой функциональной процедуры приведен  на Рис.13

Рис.12 Инициация функциональной процедуры изменения расстояния между атомами

Рис.13 Результат выполнения функциональной процедуры изменения расстояния между атомами

3.3. Функциональные процедуры анализа

Данные функциональные процедуры, как и функциональные процедуры двух предыдущих групп, также используют программные процедуры Jmol апплета, и представляют собой последовательность операторов на JmolScripting language и JavaScript. Функциональные процедуры этой группы доступны через пункт основного меню «Анализ». В результате выполнения этих функциональных процедур вычисляются такие характеристики наностуруктур  как расстояние между атомами, углы между атомами и т.д.

Пример визуализации результата выполнения функциональной процедуры  измерения расстояния между атомами показан на Рис.14.

Рис.14 Результат выполнения функциональной процедуры измерения расстояния между атомами

Отметим, что эта функциональная процедура используется по умолчанию при выполнении ранее упомянутой функциональной процедуры изменения расстояния между 2-мя атомами.

3.4. Функциональные процедуры визуализации

Функциональные процедуры визуализации инициируются «Наномоделлером» по умолчанию, т.е. без прямого участия пользователя. Они предназначены для получения графических представлений наноструктур, а также их пространственных характеристик, и позволяют задавать по умолчанию или изменять по желанию пользователя соответствующие компьютерные модели геометрических и оптических характеристик пространственной сцены, поставленной в соответствие исходным данным (используемых геометрических фигур, их цветового покрытия и т.д.), а также компьютерные модели атрибутов визуализации этой сцены (цвета фона, камеры, источника освещения и т.д.).
С другой стороны, результат выполнения функциональных процедур визуализации (проекционное графическое изображение) позволяет выполнять в процессе редактирования такие  важные функции как задание с помощью мыши координат некоторой точки в пространстве,  выбор интересующего пользователя фрагмента визуализируемой наноструктуры, над которой будет выполняться та или иная операция.
Приведенные выше рисунки (Рис.7-14), иллюстрирующие выполнение  функциональных процедур компьютерного моделирования наноструктур (функциональных процедур задания исходных данных, функциональных процедур редактирования и функциональных процедур анализа), получены с помощью данных функциональных процедур визуализации.
Дополнительно к Рис. 7-14 приведены еще несколько рисунков, иллюстрирующих некоторые возможности функциональных процедур визуализации. На Рис.15 (а,б,в) показан результат визуализации как самой наноструктуры, так и ее пространственных характеристик – молекулярных орбиталей.

 

а)                                                              б)

в)

Рис.15 (а,б,в)  Визуализация наноструктуры и ее молекулярных орбиталей

На Рис.16 представлены два результата визуализации одной и той же наноструктуры. По желанию пользователя существующая между атомами связь может, как визуализироваться, так и нет. Управление визуализацией связей между атомами используется при выполнении операций редактирования, таких как копирование, перемещение или удаления фрагмента наноструктуры.

На Рис.17  приведены два результата визуализации одной и той же молекулы при использовании различного цветового покрытия шариков-атомов и цилиндров-связей в пространственной сцене, а также цвета фона, то есть одной и той же молекуле ставится в соответствие различные пространственные сцены и атрибуты визуализации.

 

Рис. 16.Визуализация одинарной связи между двумя атомами

Рис.17 Два графических представления одной и той же молекулы.

 

Визуальное отображение некоторых свойств и характеристик наноструктур является удобным для пользователя способом их визуального анализа, конструирования. Таким образом, использование функциональных процедур визуализации является неотъемлемой частью визуального анализа наноструктуры и ее конструирования.

4. Апробация «Наномоделлера».

В настоящее время реализовано около 20 функциональных процедур «Наномоделлера». Эти процедуры апробированы на расчетных Gamess out, cif и pdb файлах. Планируется дальнейшее расширение «Наномоделлера» как в плане разработки новых функциональных процедур, так и усложнении существующих.

Благодарности: Авторы благодарят М.В. Алфимова за полезные советы и обсуждения постановки задачи. Работа выполнена при финансовой поддержке Российского фонда фундаментальных
исследований, проект № 09-03-00993.

Литература



[1] М.В. Алфимов, А.А. Багатурьянц, А.А. Сафонов, А.В. Щербинин, К. Г. Владимирова, C.А. Белоусов, М.В. Богданова, И.А. Валуев, А.В. Дейнега, Ю.Е. Лозовик, Б. В. Потапкин, Многомасштабный компьютерный дизайн материалов для оптических хемосенсоров на основе фотонных кристаллов, Российские нанотехнологии (2010) 5, № 3–4, 84–91.

[2] Ф.В. Григорьев, А.Н. Романов, Д.Н. Лайков, С.Н. Жабин, А.Ю. Головачева, И.В. Оферкин, А.В. Сулимов, М.В. Базилевский, А.А. Багатурьянц, В.Б. Сулимов, М.В. Алфимов, Методы молекулярного моделирования супрамолекулярных комплексов: иерархический подход, Российские нанотехнологии (2010) 5, №5-6, 47–53.

[3] A.A. Bagatur'yants, M.A. Deminskii, A.A. Knizhnik, B.V. Potapkin, and S.Ya. Umanskii, “Integrated Approach to Dielectric Film Growth Modeling: Growth Mechanisms and Kinetics”, in Thin Films and Nanostructures: Physico-Chemical Phenomena in Thin Films and at Solid Surfaces, L. I. Trakhtenberg, S. H. Lin, O. J. Ilegbusi, eds., Elsevier 2007, 468 (2007).

[4] Пасько А.А., Пилюгин В.В. Научная визуализация и ее применение в исследованиях наноструктур // Rusnanotech. Международный форум по нанотехнологиям. Сборник тезисов докладов научно-технических секций  2008.  Москва. С. 189.

[5] Diamond Crystal and Molecular Structure Visualization: http://www.crystalimpact.com/diamond/Default.htm

[6] XCrySDen - crystalline and molecular structure visualisation program :

 http://www.xcrysden.org/

[7] Scientific Informatics Software for Life Sciences, Materials R&D |Accelrys:  http://accelrys.com/

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

[9] CRYSTAL – a computational tool for solid state chemistry and physics:

 http://www.crystal.unito.it/

[10] Quantum ESPRESSO: http://www.pwscf.org/

[11] The program package WIEN2k : http://www.wien2k.at/

[12] FHI98md code: http://www.fhi-berlin.mpg.de/th/fhi98md/

[13] Cygwin : http://www.cygwin.com/

[14] Jmol: http://jmol.sourceforge.net

[15] MDL® CTfile Formats:  http://www.symyx.com/solutions/white_papers/ctfile_formats.jsp

[16] A guide to CIF for authors : http://journals.iucr.org/c/services/cifguide.html

[17] Chemical Markup Language – CML: http://www.xml-cml.org/

[18] PDB File Format : http://www.wwpdb.org/docs.html

[19] The XYZ file format :  http://wiki.jmol.org/index.php/File_formats/Formats/XYZ

[20] The General Atomic and Molecular Electronic Structure System (GAMESS): http://www.msg.ameslab.gov/GAMESS/GAMESS.html

[21] HyperChem: http://www.hyper.com/

[22]. VAMP/VASP package: http://cms.mpi.univie.ac.at/vasp/

[23]. The Molden Format : http://www.cmbi.ru.nl/molden/molden_format.html