Українська   English
ДонНТУ   Портал магистров

Реферат по теме выпускной работы

Введение

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

Агломерат (англ. agglomerate) – совокупность частиц, прочно удерживаемых между собой.

1. Общие понятия

Частицы в агломератах связаны между собой более сильными взаимодействиями, чем в агрегатах. Агломераты могут рассматриваться как «вторичные» частицы, обладающие внутренней поверхностью, т. е. во многих случаях внутренняя площадь поверхности гораздо больше внешней. При этом агломераты могут обладать структурированной пористой системой. Примерами агломератов являются песчаник, силикагель и т. п. Четкой границы между понятиями «агрегат» и «агломерат» не существует, и иногда они используются для описания однотипных объектов. В ряде случаев (например, для описания технологии пигментов и др.) сложилась терминология, когда термины «агрегат» и «агломерат» имеют значения, противоречащие рекомендациям Международного союза теоретической и прикладной химии (IUPAC). В связи с этим при употреблении понятий «агрегат» или «агломерат» часто указывают, сильные или слабые взаимодействия присутствуют между первичными частицами [1].

Каждая молекула – агломерат, т.е. представляет собой объект неопределенной формы. Это означает, что не существует молекул в виде идеальных сфер, кубов, пирамид и т.д. Но, допустим, известно количество атомов, из которых состоит данный агломерат. Возникает вопрос об их пористости и взаиморасположении в пределах объема молекулы. Программа, написание которой является конечным результатом данной работы, позволит это выяснять и исследовать до перехода на экспериментальный уровень.

2. Описание программы

Процесс написания программы был разбит условно на 6 частей:

  1. Чтение координат объекта из файла.
  2. Создание процедуры поиска объема объекта.
  3. Нахождение крайних точек объекта.
  4. Нахождение объема параллелепипеда с координатами углов, соответствующими крайним точкам объекта.
  5. Создание проверки процедуры попадания атома в предел объекта.
  6. Заполнение объема атомами.

Выполнено 5 из 6 пунктов по заполнению 3Д-объекта неопределенной формы сферами при использовании языка программирования С++ и файлов с расширением .stl.

STL (от англ. stereolithography) — формат файла, широко [3][4] используемый для хранения трехмерных моделей объектов для использования в технологиях быстрого прототипирования, обычно, методом стереолитографии. Информация об объекте хранится как список треугольных граней, которые описывают его поверхность, и их нормалей. STL-файл может быть текстовым (ASCII) или двоичным [2].

Нормали граней - В двоичной и ASCII версиях STL, нормаль грани должен быть единичный вектор, направленный от объекта. В большинстве программ он может быть установлен в (0,0,0), и программа автоматически рассчитает нормаль на основе порядка вершин треугольника используя правило правой руки. Некоторые STL загрузчики (к примеру, плагин STL для Art of Illusion), сверяют нормали в файле с рассчитанными по правилу правой руки и предупреждают при не совпадении. Другое ПО может игнорировать и использовать только правило правой руки [2].

Анимация блок-схемы программы (10 циклов повторения, 8 кадров, Размер 8,21 Кбайт)

Анимация блок-схемы программы

3. Решение задачи и результаты исследований

  1. Чтение координат объекта из файла

    Исходными данными программы являются координаты треугольников, образующих агломерат. Файл, из которого они берутся, имеет расширение .stl и имеет так же координаты нормалей для каждого из треугольников. Эти нормали считываются вместе с треугольниками, к которым они относятся.

    Рисунок 1, размеры: 364*254, размер: 51,2 Kбайт

    Рис. 1 Пример агломерата с явно видимыми треугольниками

  2. Создание процедуры поиска объема объекта

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

  3. Нахождение крайних точек объекта

    Здесь простым перебором координат треугольников находятся положительные и отрицательные экстремумы по трем осям X, Y, Z. Они и запоминаются как крайние точки объекта.

  4. Нахождение объема параллелепипеда с координатами углов, соответствующими крайним точкам объекта

    Используя данные, полученные в предыдущем пункте, создается параллелепипед. Цель данного действия будет объяснена дальше.

  5. Создание проверки процедуры попадания атома в предел объекта

    Самый маленький атом — это атом гелия, имеющий радиус 32 пм, а самый большой — атом цезия (225 пм). Эти размеры в тысячи раз меньше длины волны видимого света (400—700 нм), поэтому атомы нельзя увидеть в оптический микроскоп. Так как атомы очень малы, то в процессе визуализации они изображаются сферами. Для наглядности так же для примера скажем, что размер молекулы белка составляет 43*10-8 см.

  6. У каждого из атомов есть своя координата и радиус. Из этой координаты в углы параллелепипеда проводятся прямые и проверяется количество пересечений с треугольниками, образующими объект. Если количество пересечений каждой прямой с треугольниками нечетное, то атом находится внутри объекта.

  7. Заполнение объема 3Д-объкта атомами.

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

    Рисунок 2, размеры: 413*404, размер: 79.1 Kбайт

    Рис. 2 Пример агломерата с видимыми осями

    Итог

    При выполнении работы использовались справочные материалы по С++, математическим формулам для расчета объема тел в 3Д-пространстве.

При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: декабрь 2014 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Список литературы


1. Агломерат (химия). Интернет-ресурс. Режим доступа: http://ru.wikipedia.org/wiki/%D0%90%D0%B3%D0%BB%D0%BE%D0
2. STL (формат файла). Интернет-ресурс. Режим доступа: http://ru.wikipedia.org/wiki/STL
3. Photogrammetry getting more out of the 3x3 rules. Интернет-ресурс. Режим доступа: http://billboyheritagesurvey.wordpress.com/
4. Molecule mass. Интернет-ресурс. Режим доступа:: http://av-physics.narod.ru/molecule/molecule-mass.htm
5. Атом. Интернет-ресурс. Режим доступа:http://ru.wikipedia.org/wiki/Атом
6. Пересечение прямой с плоскостью. Интернет-ресурс. Режим доступа: http://www.gamedev.ru/code/faq/?id=3629 — пересечение прямой с плоскостью.
7. A method to calculate the centre of mass. Интернет-ресурс. Режим доступа:http://stackoverflow.com/questions/2083771/a-method-to-calculate-the-centre-of — A method to calculate the centre of mass
8. Determining Whether A Point Is Inside A Complex Polygon. Интернет-ресурс. Режим доступа:http://alienryderflex.com/polygon/ — Determining Whether A Point Is Inside A Complex Polygon.
9. Пересечение луча и треугольника. Интернет-ресурс. Режим доступа:http://www.gamedev.ru/code/forum/?id=64824&page=1 — пересечение луча и треугольника.