Комплекс объектно-ориентированных программ моделирования двухмерных задач

Тип работы:
Реферат
Предмет:
ТЕХНИЧЕСКИЕ НАУКИ


Узнать стоимость

Детальная информация о работе

Выдержка из работы

УДК 681. 5
Комплекс объектно-ориентированных программ моделирования двухмерных задач
Д. А. Сидоров
Рассмотрено создание пакетов программ на основе объектно-ориентированного программирования, легко адаптируемые к различным задачам.
Building of program packs on the basis of object-oriented programming that are easily adapted to different tasks was considered.
Введение
Уровень и высокие темпы развития вычислительной техники открыли новые возможности для фундаментальных исследований и их приложений в области моделирования физических процессов, управления техническими и социальноэкономическими системами.
Объектно-ориентированная программа (ООП) — это совокупность объектов и способов их взаимодействия. Типы объектов оформляются в виде классов. Каждый класс является самодостаточным для решения конкретной задачи. Любой класс может быть порожден от другого класса и автоматически наследует все его свойства и методы. Кроме того, в классе-потомке имеющиеся методы могут быть модифицированы и дополнены новыми методами. Принцип наследования приводит к созданию ветвящегося дерева классов, постепенно разрастающегося, причем каждый потомок дополняет возможности своего родителя и, в свою очередь, передает их своим потомкам. Все это позволяет использовать при расчетах по сути одну универсальную математическую модель, адаптированную к конкретному процессу или аппарату с помощью соответствующих классов.
В статье на примере задач гидродинамики рассматривается создание легко адаптируемых к другим аналогичным задачам пакетов программ, описывающих различные процессы гидродинамики на основе ООП.
При реализации использовались возможности среды программирования Delphi. Набор разрабатываемых классов был определен кругом решаемых задач и применяемых при этом алгоритмов и численных методов [1]. Процедура, разработанная для расчета поля течения, получила название SIMPLE (от англ. Semi-Implicit Method for Pressure-Linked Equations) [2].
Структура объектно-ориентированного пакета программ
При моделировании задач гидродинамики наиболее часто используются методы, основанные на SIMPLE-пoдoбныx алгоритмах.
Схематично SIMPLE-пoдoбный алгоритм можно представить в виде набора логически законченных блоков, каждый из которых выполняет определенные функции (рис. 1).
При разработке программного обеспечения целесообразно разработать иерархию классов, каждый из которых отвечает за тот или иной блок и за ту или иную его реализацию. Применение ООП позволяет сделать это наиболее простым и быстрым способом.
Можно выделить несколько характерных типов блоков, таких как блок хранения основных переменных, блок вычисления коэффициентов, блок решения системы уравнений, блок управления последовательностью действий. Для каждого типа создается базовый класс, а после в классах-потомках будут описаны те действия, которые эти потомки будут выполнять. Таким образом, можно получить несколько классов-потомков, описание которых будет одинаковым, а реализация разной. В результате иерархия классов будет выглядеть так: несколько базовых классов, у каждого из ко-
Рис. 1. Схема SIMPLE-подобного алгоритма
торых есть несколько потомков, у некоторых из которых также имеются классы-потомки. Рассмотрим некоторые из них.
Поскольку при моделировании процессов гидродинамики иногда возникает необходимость учитывать процесс теплопроводности, а при моделировании теплопереноса можно использовать некоторые из созданных ранее классов, имеет смысл расширить разрабатываемый набор классов и на задачи такого рода.
На рис. 2. представлена иерархия классов, разработанная для моделирования двухмерной задачи гидродинамики и теплопроводности.
Данный набор классов может быть расширен в связи с особенностями моделируемого процесса (геометрия расчетной области, дополнительные физические и химические процессы и т. д.).
При моделировании процессов гидродинамики часто возникают вопросы, связанные с обработкой и визуализацией полученных данных. При визуальном представлении можно следить за процессами, происходящими в системе, и при желании получить точные значения. Качественная оценка особенно важна на этапе отладки программы, когда разработчик видит, как те или иные из-
Рис. 2. Иерархия классов для моделирования двухмерной задачи
менения влияют на результаты расчетов.
Средства визуализации данных в среде Бе1рЫ
В среде Бе1рЫ существует несколько стандартных средств, направленных на визуализацию данных, полученных в ходе расчета. Кроме этого, имеется возможность для разработки собственных средств визуализации, что достаточно актуально.
При моделировании различных процессов результаты вычислений часто формируются в виде двухмерных или трехмерных массивов, содержа-
щих значения переменных в узловых точках. Для визуализации данных такого вида стандартных средств Delphi недостаточно, и поэтому необходимо разрабатывать новые компоненты, направленные на визуализацию.
Разработанные компоненты предоставляют пользователю набор сервисных функций. Некоторые из них представлены ниже:
¦ изменение размера изображения (возможность увеличения размера изображения при визуализации данных с небольшим количеством узловых точек) —
¦ отображение линии уровня (отображать или нет линии уровня, менять их число, значение, цвет) —
¦ изменение схемы перевода значения в его цветовое представление (равномерная, логарифмическая) —
¦ изменение диапазона значений, используемых при отображении данных (автоматическое или принудительное определение минимального и максимального значения) —
¦ сохранение результатов визуализации в виде bmp- и avi-файлов.
Часть этих функций доступна как на этапе разработки, так и на этапе выполнения. Кроме того, для удобства редактирования некоторых сложных свойств компонента были разработаны редакторы компонента.
Разработанные компоненты были объединены в один пакет, легко интегрируемый в среду Delphi. В виде пакета компоненты без усилий импортируются в Borland C++ Builder.
Дополнительные компоненты (по умолчанию) устанавливаются на страницу «Samples» палитры компонентов. На рис. 3 изображена палитра компонентов среды Delphi 6 после установки пакета с компонентами.
Для проверки работоспособности и тестирования разработанных классов и компонент было разработано Delphi-приложение, демонстрирующее работу алгоритмов для расчета двухмерных прямоугольных задач движения жидкости в декартовой системе координат, которое делает возможным сравнение алгоритмов не только на стандартных областях, но и в области, произвольно заданной пользователем.
Для проведения расчетов основными являются следующие исходные данные:
¦ размеры профиля-
¦ число точек разбиения-
¦ плотность жидкости-
Рис. 3. Палитра компонентов с дополнительными компонентами, предназначенными для визуализации
¦ вязкость жидкости-
¦ размер входного отверстия-
¦ начальное иоле скорости-
¦ скорость жидкости на входе-
¦ итерационный алгоритм-
¦ метод решения дискретных уравнений-
¦ релаксационные коэффициенты ар аи ау-
¦ способ визуализации.
Для исследования поведения моделируемого объекта разработана программа, предоставляющая пользователю удобный интерфейс. Взаимодействие пользователя с программой можно представить схемой, изображенной на рис. 4.
¦ гидродинамические процессы с учетом турбулентности и химическим реагированием.
На рис. 5 представлен интерфейс программы, моделирующей процесс горения метана в осесимметричной камере. На рисунке иллюстрируется распределение продольных скоростей и температуры.
Рис. 4. Схема взаимодействия пользователя с программой
Посредством определенных команд (событий) пользователь воздействует на программу (объект), откликом которой является создание и вызов той или иной модели и проведение и визуализация расчетов. Сама программа также в рамках ООП состоит из различных объектов, реализованных в виде классов и предназначенных для решения определенных задач.
Разработанная программа позволяет моделировать следующие процессы:
¦ ламинарное двухмерное течение в естественных переменных-
¦ гидродинамические процессы с учетом турбулентности-
Рис. 5. Внешний вид Бе1рЫ-приложения
При работе с приложением пользователь может выполнять следующие действия по управлению процессом моделирования:
¦ осуществлять выбор моделируемого процесса (гидродинамика, гидродинамика с учетом турбулентности, гидродинамика с учетом турбулентности и химическим реагированием) при помощи группы переключателей «Моделируемый процесс" —
¦ осуществлять выбор визуализируемой переменной (компоненты скорости, давление, плотность и т. д.) при помощи группы переключателей «Отображаемая переменная" —
¦ включать и выключать процесс визуализации получаемых результатов при помощи группы переключателей «визуальное представление» (данная возможность используется для ускорения процесса расчета из-за экономии процессорного времени, затрачиваемого на визуализацию) —
¦ сохранять полученные данные в файл для дальнейшего более точного анализа числовых значений моделируемых параметров, осуществляется при помощи переключателя «сохранить" —
¦ управлять процессом расчета (продолжение, завершение и конфигурация средств визуализации) при помощи соответствующих переключателей объединенных в группу-
¦ настраивать параметры визуализации при помощи выбора поперечного сечения (номера слоя) и вызова диалога конфигурации средств визуализации.
Во время моделирования пользователю предоставляется следующая информация о моделируемом процессе и работе программы:
¦ распределение значений выбранного параметра (компоненты скорости, давление, температура и т. д.) продольного сечения камеры-
¦ распределение значений выбранного параметра (компоненты скорости, давление, температура и т. д.) поперечного сечения камеры-
¦ шкала, отображающая соответствие между значением визуализируемого параметра и цветом, соответствующим этому значения-
¦ число выполненных итераций-
¦ значение суммарной ошибки, выбранный критерий сходимости.
Пользователь имеет возможность настраивать процесс визуального представления получаемых данных следующими способами:
¦ включать или выключать соответствующий визуализирующий компонент-
¦ выбирать поперечное сечение для его последующей визуализации-
¦ редактировать некоторые свойства графических компонент при помощи вызова соответствующего диалогового окна.
Вызов диалогового окна осуществляется выбором переключателя «конфигурация», при этом процесс расчета приостанавливается до закрытия
диалогового окна и изменения при необходимости некоторых свойств.
Внешний вид диалогового окна конфигурации компонент визуализации изображен на рис. 6.
Рис. 6. Внешний вид диалогового окна конфигурации компонент для визуализации
Используя это средство настройки параметров визуализации, можно управлять следующими функциями:
¦ изменение размера изображения (изменение размера зерна) —
¦ изменение плавности цветовых переходов (количество пропущенных цветовых оттенков) —
¦ включение прорисовки линий уровня и задание их параметров (значение, цвет).
Результаты моделирования
На рис. 7, а-г представлен внешний вид интерфейса программы при ее работе в этих расчетных областях соответственно. Здесь можно видеть распределения скорости и по расчетной области (1 -отрицательное, 2 — положительное значение скорости), изменение величины невязки при увеличении числа итераций, а также различные параметры, используемые в модели.
Анализ результатов числовой информации, полученной при моделировании, показал следующее: было установлено, что скорость расчета в каждой области пропорциональна числу точек разбиения области и зависит от использованного алгоритма дискретных уравнений.
При использовании метода двухмерной факторизации заданная точность поля давления и скорости достигается быстрее, чем при использовании одномерного метода. Это связано с тем, что граничная информация о скорости и давлении пе-
Рис. 7. Результаты работы приложения в четырех расчетных областях (а-г): 1 — отрицательное значение скорости ^ 2 — положительное значение скорости u
редается внутрь области быстрее, чем при использовании одномерного метода, в результате чего получаются более точные значения поля скорости на текущей итерации.
Анализ численных результатов показывает, что заранее не известно, какой алгоритм лучше для конкретного расчетного профиля, поскольку каждый из алгоритмов имеет свои достоинства и недостатки.
Это можно проверить исходя из результатов: времени сходимости и числе итераций.
Поступила 25. 01. 2008 г.
ЛИТЕРАТУРА
1. Жукова Н. Ю., СидоровД. А. Математическое моделирование конвективного течения в горизонтальном цилиндрическом слое насыщенной пористой среды.- Научные труды Балтийской Академии информатизации, Рига, 2005, вып. 3, с. 70 — 75.
2. Jukova N. Y., Maikov I. L., Sidorov D. A. Numerical and analytical research of heat and mass exchange at the thermal destructive process of a single particle of organic fuel. — Advanced problems in thermal convection: Proceedings International Conference. — Perm (Russia), 24−27 November 2003- Perm, 2004, pp. 376−380.

ПоказатьСвернуть
Заполнить форму текущей работой