Моделирование динамической системы частиц

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
Частицы

Введение

Для решения многих задач термодинамики требуется нахождение не только макропараметров системы, но и микропараметров отдельных частиц, из которых она состоит. Решение этой задачи сводится к нахождению координат и скоростей молекул в каждый момент времени с помощью исходных данных о начальных координатах и скоростях, а также типе движения и взаимодействия частиц между собой. Написание программы для вычисления этих данных с помощью методов численного интегрирования не составит особого труда, но, так как количество молекул воздуха в 1 см3 при нормальных условиях составляет порядка 1019, то отладка подобных программ и нахождение в них ошибок затрудняется большим объёмом вычисляемых данных. Кроме того, по полученным данным не всегда понятно, по какой траектории движется та или иная частица, а также провзаимодействовала ли она с стенками сосуда или с другими частицами. Именно поэтому для решения подобных задач приобретают принципиальную значимость системы для моделирования динамики процессов, происходящих в жидкостях и газах. Существует большое количество программных пакетов, моделирующих обтекание газом или жидкостью того или иного объекта, но практически нет таких, которые бы позволили смоделировать внутренние процессы в данной среде, задаваемые пользовательскими уравнениями. После краткого анализа существующих программных пакетов было принято решение написать собственную программу для графического моделирования динамики системы множества частиц, которая позволит пользователю загружать файлы специального формата с расчётами скоростей и координат молекул, а результатом выполнения программы станет визуальное представление модели, позволяющее перемещать камеру для обзора сосуда со всех сторон и просматривать положения частиц в выбранные моменты без произведения расчётов в режиме реального времени.

Цель работы

Создание программы, визуализирующей динамическое развитие системы множества частиц.

Задачи

  • Создание математической библиотеки для работы с векторами, кватернионами и базисами;
  • Создание класса анимации;
  • Создание собственного компилятора шейдеров GLSL;
  • Написание системы управления камерой с помощью мыши и клавиатуры;
  • Отправление буфера координат и цветов точек на видеокарту;

Перспективы развития проекта

  • Использование других способов поворота базисных векторов для выявления лучшего из них;
  • Улучшение плавности поворота камеры с помощью задания скоростных коэффициентов, добавление инерции при повороте;
  • Улучшение пользовательского интерфейса, добавление меню и элементов управления;
  • Получение характеристик отдельной частицы в данный момент времени путём запуска луча;
  • Переход на более новые графические библиотеки (Vulkan API);
  • Доработка системы работы с файлами;

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

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

  • OpenGL Development Cookbook by Muhammad Mobeen Movania
  • OpenGL 4 Shading Language Cookbook - Second Edition by David Wolff

Ссылки

Приложение

Участники проекта

См. также

Кафедра "Теоретическая механика"