Аннотация
Описывается система («Конструктор регулярных областей»), предназначенная для подготовки работы
пакета параллельных программ для численного решения сложных двумерных газодинамических течений
на треугольных адаптивных сетках переменной структуры. Система обеспечивает решение следующих
задач: интерактивное графическое описание области моделирования, генерация «процедурного
описания» расчетной области и ее границ, генерация исходной треугольной сетки, верификация и
коррекция построенной сетки.
Abstract
Is described the system («The designer of regular regions»), intended for the preparation
of the work of the parallel application package for the numerical solution of complex
two-dimensional gas-dynamic flows on the triangular adaptive grids of variable structure.
System provides solution of the following problems: the interactive graphic description of
the simulation region, the generation of the «procedural description» of simulation region
and its boundaries, the generation of initial triangular grid, verification and correction
of the constructed grid.
Содержание
Введение. 4
1. Особенности пакета. 5
2. Постановка задачи. 5
3. Типовой сценарий генерации сетки. 7
3.1. Визуальное описание области. 9
3.2. Коррекция описания области. 11
3.3. Генерация процедурного описания области. 13
3.4. Просмотр характеристических точек. 15
3.5. Генерация процедурного описания границ области. 16
3.6. Генерация исходной сетки. 16
4. Дополнительные возможности Конструктора. 17
4.1. Скругление углов. 17
4.2. Модификация треугольников. 19
4.3. Интерактивная доработка сеточной области. 19
4.4. Масштабирование. 20
4.5. Редактирование файла сцены.. 21
Заключение. 22
Приложение 1. Структура файла сцены.. 23
Введение
Современный пакет прикладных программ представляет
собой сложную систему, включающую в свой состав не только компоненты,
собственно выполняющие расчеты, но и набор компонент, обеспечивающих
эффективную эксплуатацию пакета. Фактически счетные компоненты пакета
«погружены» в «управляющую среду», предоставляющую пользователю (прикладному
специалисту) удобные сервисы для управления пакетом программ на всех этапах
работы с задачей. Типичные сервисы, предоставляемые «управляющей средой»,
включают в себя
§
подготовку
исходных данных,
§
подготовку и
осуществление запуска задачи,
§
хранение
исходных, промежуточных и результирующих данных,
§
контроль процесса
выполнения задачи,
§
анализ
результатов.
Опыт показывает, что оптимальным способом построения
«управляющей среды» является создание набора инструментов, каждый из которых
решает отдельную задачу управления и способен функционировать автономно, но в
то же время в совокупности составляющих взаимосвязанную систему, обладающую
всей необходимой функциональностью.
Такой подход (называемый «best-of-breed tools»)
обладает следующими преимуществами:
·
конкретный
пользователь имеет возможность сформировать управляющую среду, наиболее удобную
для решения конкретной задачи;
·
такую среду
удобно проектировать, реализовывать и сопровождать, поскольку разработку
каждого компонента можно вести автономно.
Таким образом, система управления пакетом (или
управляющая среда пакета) представляет собой совокупность инструментов,
обеспечивающих пользователю доступ к различным сервисам. Инструменты могут
взаимодействовать друг с другом, а могут быть полностью автономными
подсистемами. Но в любом случае они должны быть построены в рамках единой
идеологии и «покрывать» всю требуемую пользователю функциональность.
В настоящем документе описан один из компонентов
подобной системы управления пакетом - инструмент «Конструктор регулярных
областей», предназначенный для подготовки работы пакета параллельных программ
для численного решения сложных двумерных газодинамических течений с учетом
химико-кинетических процессов на треугольных адаптивных сетках переменной
структуры (далее – пакет решения задач газовой динамики).
1.
Особенности пакета
Пакет предназначен для численного моделирования
двумерных задач газовой динамики с учетом химико-кинетических процессов [1].
Эти задачи описываются системой уравнений газовой динамики: уравнением
неразрывности, уравнением движения без учёта физической вязкости (уравнением
Эйлера), уравнением энергии. Химико-кинетические процессы в простейших условиях
описываются жесткой системой обыкновенных дифференциальных уравнений. Рассматриваются
процессы в сложных областях, границы которых описываются конечным набором
гладких кривых. На любой из кривых, ограничивающей расчётную область, может задаваться
любое из следующих краевых условий: условие прилипания, условие непротекания, условие
свободного выхода (неотражающее краевое условие), условие задания входного
потока, условие, задающее свободную границу. Газодинамические и
химико-кинетические процессы связаны через источниковый член в уравнении
энергии и через уравнения неразрывности для компонент газа, правые части
которых совпадают с правыми частями соответствующих химико-кинетических
обыкновенных дифференциальных уравнений.
В рамках указанного описания формулируются многие сложные
актуальные задачи физики плазмы, астрофизики, плазменной аэродинамики. К
особенностям многих задач относится сложная форма области, состоящей из
разномасштабных подобластей, что приводит к наличию локальных разномасштабных
процессов (во времени, в пространстве и по отношению к величине основных
параметров газа), соединяющихся в один общий процесс.
Одним из трудоемких этапов решения задач
математического моделирования является создание расчетных сеток. Процесс
создания такого описания является очень трудоемким и чреват высокой
вероятностью внесения трудно обнаруживаемых ошибок.
Одним из перспективных путей автоматизации процесса генерации сеток
является разработка инструментов «твердотельного» проектирования областей
моделирования. Наличие «твердотельной» модели расчетной области позволяет
заметно упростить генерацию, редактирование и визуализацию расчетных сеток.
Такой подход был использован при создании средств
автоматизации построения расчетных сеток для пакета решения задач газовой
динамики.
Основные сложности генерации сеток для
рассматриваемого пакета состоят в следующем:
§
в задачах газовой
динамики процессы моделируются в сложных областях, границы которых описываются
набором гладких кривых;
§
для решения
некоторой задачи с помощью рассматриваемого пакета пользователю необходимо
создать «процедурное описание» расчетной области, т.е. набор функций на языке
Фортран, которые определяют, принадлежит ли некоторая геометрическая точка
искомой области или нет, а также описывают в параметрическом виде фрагменты
границ искомой области. Такое «процедурное описание» расчетной области
необходимо, в частности, для того, чтобы программы пакета могли динамически
изменять сетку в процессе моделирования.
Если область моделирования не тривиальна, то создание «процедурного
описания» является непростой задачей. При этом такое описание трудно
верифицируется и является источником трудно обнаруживаемых ошибок.
Поэтому необходимо было разработать и реализовать систему, позволяющую
упростить и автоматизировать процесс создания «процедурного описания» расчетной
области. Система должна позволять верифицировать созданное описание,
осуществлять генерацию исходной расчетной сетки и обеспечивать возможность
«тонкой» настройки этой сетки (т.е. позволять пользователю в интерактивном
визуальном режиме корректировать построенную сетку).
После проведения анализа возможных способов решения поставленной задачи
была предложена следующая концептуальная идея такого инструмента (получившего
название «Конструктор регулярных областей»), базирующаяся на использовании
«твердотельного» представления области моделирования:
·
пользователь
описывает область моделирования в интерактивном режиме с помощью графических
средств Конструктора;
·
затем Конструктор
автоматически генерирует процедурное описание визуально заданной области;
·
по этому
процедурному описанию генерируется расчетная сетка;
·
расчетная сетка
предъявляется пользователю, который может визуально верифицировать и
редактировать ее, интерактивно перемещая отдельные узлы сетки.
Более формально задача, которую должен решать Конструктор, определяется
следующим образом:
1. Пользователь строит область с использованием
теоретико–множественных операций с конечным набором стандартных фигур.
Характерные параметры фигур и характерные точки могут задаваться численно и
интерактивно.
2. Конструктор автоматически генерирует
характеристическую функцию ограниченной области .
3. Конструктор автоматически генерирует характеристическую
функцию границы области , представленной конечным набором кривых. Конкретнее: на
границе области есть характерные (угловые) точки. Между последовательными двумя
угловыми точками граница задаётся формулой. Универсальным является
параметрическое задание кривой, описывающей часть границы области.
4. Сформированная характеристическая функция, угловые
точки и границы должны быть интерактивно проверяемы.
5. По характеристической функции области стандартная
программа генерирует треугольную сетку. Данные представлены по стандартному
протоколу. Ограничение стандартной программы: область лежит в первой четверти
декартовой системы координат. Параметры стандартной программы: размеры области
по направлениям. Интерактивно может задаваться характерное число узлов по
каждому направлению, есть умолчание, которое вычисляется в программе по
размерам области.
6. После срабатывания стандартной программы генерации
сетки производится доработка сеточной области. Ближайшие узлы «сажаются» в
угловые точки, граничные узлы проектируются на свою границу. Возможна
интерактивная версия доработки сеточной области в части «сажания» узлов сетки в
углы. Результат сбрасывается в стандартном протоколе. В протоколе должны
содержаться числовые признаки границ и угловых точек.
Опишем возможности разработанного инструмента –
Конструктора - на примере выполнения пользователем простого типового сценария,
состоящего из сформулированных в постановке задачи этапов:
·
визуальное
описание регулярной области;
·
генерация
процедурного описания области, т.е. генерация характеристических функций
области и ее границ;
·
генерация
расчетной сетки;
·
верификация и
интерактивная доработка сеточной области.
(Такое описание соответствует описанию программы hello, с которой начинается знакомство пользователя с новым
языком программирования или новым инструментальным средством).
Итак. После запуска Конструктора на экране появляется
главное окно, предназначенное для «рисования» регулярной области.
Выполним функцию «Файл/Конструктор области». На экране
появится панель Конструктора:
Эта панель предназначена для контроля процесса
создания, изменения и удаления элементов области, а также для управления
параметрами генератора расчетных сеток.
Общая логика
работы с Конструктором состоит в следующем.
1. Область моделирования (сцена) формируется из конечного набора
элементов области – прямоугольников, окружностей, треугольников и эллипсов. Над
этими элементами определены две теоретико-множественные операции: «сложения» и
«вычитания». Если элемент «прибавляется», то мы называем его «опорным
элементом». Если элемент «вычитается», то мы называем его «вырезкой».
Элементы расположены в определённом пользователем порядке, и операции
производятся в соответствии с этим порядком.
2. Для «грубого» формирования области можно
пользоваться мышью. Например, «схватив» мышью элемент сцены или его характерную
точку, пользователь может «таскать» его по экрану, менять размеры или поворот,
контролируя текущие координаты по значениям в соответствующих полях панели
Конструктора.
Второй (точный) способ состоит в указании значений
параметров элемента (координаты характерных точек, значения углов и т.д.) в
соответствующих полях панели Конструктора с последующей активизацией указанных
параметров нажатием кнопки «применить».
3. Когда визуальное описание области моделирования
выполнено, его можно сохранить, нажав кнопку «сохранить». В дальнейшем
визуальное описание области можно прочитать, нажав кнопку «читать» и выбрав с
помощью стандартной панели файл, содержащий описание требуемой области.
4. Для генерации характеристической функции области предназначена
кнопка «функция». Конструктор создаст описание построенной области в виде
функции на языке Фортран-90 и сохранит эту функцию в файле Inobl.f90.
Для генерации характеристических функций границ
области предназначена кнопка «границы». Конструктор создаст описание границ в
виде набора функций на языке Фортран-90 и сохранит их в файле Boundary.f90.
5. Задав параметры искомой сетки (количество узлов,
шаг по координатным осям и т.п.) можно сгенерировать исходную треугольную
сетку.
6. Вычисления, выполняемые сгенерированной функцией для определения
статуса точки (равно как и вычисления, выполняемые самим Конструктором при
определении точек пересечения границ элементов области), выполняются с
некоторой точностью. Эта точность определяется на панели Конструктора в поле
«точность».
Далее опишем более подробно последовательность
действий при построении области моделирования и генерации исходной сетки.
3.1. Визуальное
описание области
Сконструируем какую-либо область. Для создания новых
элементов области предназначены функции меню «Редактировать»:
Редактировать / Новый
прямоугольник
Редактировать / Новый
треугольник
Редактировать / Новая
окружность
Редактировать / Новый
эллипс
Смысл этих функций ясен из их имен.
Для упрощения использования этих функций они дублируются на панели
инструментов основного окна:
- Новый прямоугольник
- Новая окружность
- Новый треугольник
- Новый эллипс
Допустим, мы выполнили функцию «Новый прямоугольник». Переместим курсор
в ту точку экрана, где мы намереваемся расположить левый верхний угол
прямоугольника, и нажмем левую кнопку мыши. На экране появится прямоугольник.
Не отпуская левую кнопку мыши позиционируем правый нижний угол прямоугольника.
Заметим, что на панели Конструктора области индицируются имя созданного
элемента (по умолчанию «1 прямоугольник») и его параметры: координаты левого
нижнего угла (поля «X Y» с пометкой 1 (С)), координаты правого верхнего угла
(поля «X Y» с
пометкой 2) и признак опорного элемента (отметка в поле «обл», указывающая, что
этот элемент принадлежит области).
Как только мы отпустим левую кнопку мыши, параметры элемента
фиксируются, и мы можем заняться созданием нового элемента области.
Видно, что технология визуального конструирования области вполне
традиционна для графических редакторов.
Допустим, мы добавили mutatis
mutandis еще несколько элементов (прямоугольник, окружность и
треугольник), сконструировав таким образом «картинку» требуемой области:
3.2. Коррекция
описания области
Допустим, нам необходимо уточнить область, изменив некоторые параметры.
Выполняется это следующим образом. В списке «Сцена» выбираем (помечаем) нужный
элемент области. Пометим, например, элемент «2 прямоугольник»:
Выбранный элемент индицируется в окне красным цветом, а в
соответствующих полях панели Конструктора индицируются его параметры.
Есть два способа коррекции параметров элемента. Первый (грубый) состоит
в визуальной коррекции, используя функции меню
Редактировать /
Переместить элемент
Редактировать /
Изменить размер элемента
Для упрощения использования этих функций они дублируются на панели
инструментов основного окна:
- Переместить элемент
- Изменить размер элемента
Выполнив функцию «Переместить элемент», пользователь может, «схватив»
элемент мышью, «таскать» его по экрану, контролируя текущие координаты углов по
значениям в соответствующих полях панели Конструктора.
Выполнив функцию «Изменить размер элемента», пользователь может,
«схватив» мышью любой угол элемента (например, прямоугольника), менять размеры
элемента, контролируя текущие параметры по значениям в соответствующих полях
панели Конструктора.
Второй (точный) способ состоит в указании значений параметров элемента
(в случае прямоугольника - значения координат углов) в соответствующих полях
панели Конструктора с последующей активизацией указанных параметров нажатием
кнопки «применить».
Кроме определения числовых значений, можно изменять «статус» элемента,
т.е. указывать – является ли он «опорным элементом» или «вырезкой».
Результирующая область формируется последовательностью
теоретико-множественных операций над элементами области. Этими операциями
являются «сложение» и «вычитание».
Порядок выполнения операций определяется порядком следования элементов
области в списке «Сцена». Сначала берется первый элемент (в нашем случае «1
прямоугольник»), затем к нему прибавляется (или вычитается) следующий элемент
(в нашем случае «2 прямоугольник») и т.д.
Операция, выполняемая над очередным элементов, указывается флажком
«обл». Если флажок помечен, то выполняется операция «сложения» (т.е. элемент
принадлежит области). В противном случае выполняется операция «вычитания» (т.е.
элемент является «вырезкой»).
Например, сбросим флажок «обл» для элемента «4 треугольник»,
активизируем изменение параметра нажатием кнопки «применить» и сбросим
выделение изменяемого элемента нажатием кнопки «сброс». Область приобретет
следующий вид:
Удалить элемент, выбранный в списке «Сцена», можно с помощью кнопки
«удалить».
Кнопка «сброс» предназначена для сброса выделения текущего элемента
области на рисунке в главном окне.
Итак, будем считать, что
визуальное описание области моделирования выполнено. Мы можем сохранить его,
нажав кнопку «сохранить». На экране появится стандартная панель выбора каталога
и имени файла. Сохраняется описание в текстовом виде (формат описания приведен
в Приложении 1), что дает дополнительную возможность коррекции области.
В дальнейшем визуальное описание области можно прочитать, нажав кнопку
«читать» и выбрав с помощью стандартной панели файл, содержащий описание
требуемой области.
Кнопка «новая» позволяет начать новый «проект». Нажатие этой кнопки
очищает все внутренние структуры данных Конструктора, очищает главное окно и
пользователь может приступить к созданию новой области.
3.3. Генерация
процедурного описания области
Для генерации характеристической функции области нажмем кнопку
«функция». Конструктор создаст описание построенной области в виде функции на языке
Фортран-90, сохранит функцию в файле FUNCTION
/ INOBL.F90, и откроет
этот файл в окне стандартного редактора WordPad:
Сгенерированная функция имеет имя INOBL, входными параметрами функции являются координаты
точки, а значение функции указывает на одну из двух альтернатив: точка не
принадлежит области или точка принадлежит внутренности области.
Кроме того, генерируется функция с именем checkpoint; входными параметрами функции также являются
координаты точки, а значение функции указывает на одну из трех альтернатив:
точка не принадлежит области, точка принадлежит внутренности области, точка
лежит на границе области.
Отметим важное обстоятельство. Вычисления, выполняемые сгенерированной
функцией для определения статуса точки (равно как и вычисления, выполняемые
самим Конструктором при определении точек пересечения границ элементов
области), выполняются с некоторой точностью. Эта точность указывается на панели
Конструктора в поле «точность».
Если необходимо изменить точность, то для этого нужно активизировать
поле «точность» нажатием кнопки «ok» (в штатном
положении поле деактивировано для избежания случайных изменений), изменить
значение, а затем активировать новое значение повторным нажатием кнопки «ok».
3.4. Просмотр
характеристических точек
Нажмем кнопку «точки» в группе «Функции». Окно приобретет следующий
вид:
На визуальном образе области обозначатся
характеристические точки (точки пересечения границ элементов, из которых
построена область), а в списке группы «Функции» появится перечень этих точек.
Можно посмотреть координаты любой из этих точек,
пометив нужную точку в списке (координаты индицируются в полях, расположенных
под списком точек):
С помощью кнопок «1-ая» и «>>» в группе «Точки»
можно последовательно перебрать все характеристические точки.
3.5. Генерация
процедурного описания границ области
Для генерации характеристической функции границ области нажмем кнопку
«границы». Конструктор создаст описание границ области в виде набора функций на
языке Фортран-90, сохранит ее в файле FUNCTION
/ Boundary.f90 и откроет
этот файл в окне стандартного редактора WordPad:
Каждый отрезок границы описан парой функций, имеющих имена getiX и getiY (где i – целое число). Входным аргументом каждой функции
является параметр u, принадлежащий диапазону [0,1].
Значение функции getiX является координата X отрезка границы, значение функции getiY - координата Y отрезка границы.
3.6. Генерация
исходной сетки
Параметры исходной треугольной сетки указываются в полях H, M, N, NB, IDIM и NPTS группы «Сетка».
Смысл этих параметров определяется внешним алгоритмом генерации сетки.
Например, параметр H определяет длину стороны
треугольника, а параметр NB определяет
число разбиений стороны треугольника для поиска точки пересечения этой стороны
с границей области (при этом точность вычислений определяется величиной H/2**NB) и т.д.
После установки необходимых значений параметров нажмем кнопку «Сетка
2»:
Визуальное представление сгенерированной сетки позволяет пользователю
верифицировать сетку (проверить «попадание» узлов сетки в характеристические
точки области и т.п.) и при необходимости модифицировать сетку (см. раздел
4.3).
Рассмотрим другие возможности Конструктора, используемые при построении
области моделирования.
4.1. Скругление
углов
Конструктор позволяет скруглить углы прямоугольных и треугольных
элементов области моделирования. Для этого предназначена группа элементов
«Скругление углов» на панели Конструктора.
Допустим, необходимо скруглить выступающие углы элемента «1
Прямоугольник».
Выделим этот элемент. Затем в группе элементов «Скругление углов»
установим флажки тех углов, которые необходимо скруглить. Порядок нумерации
углов – от нижнего левого против часовой стрелки. Следовательно, в нашем случае
нужно скруглить углы 1 и 4. Укажем в соответствующих полях радиус скругления в
радианах («2.1» и «3.4» соответственно) и нажмем кнопку «Применить»:
В указанных углах появились вписанные окружности скругления. Если
теперь нажать кнопку «сброс», то на экране появится результирующий вид области
моделирования:
При скруглении углов треугольника используются первые три флажка (1, 2
и 3) группы «Скругление углов».
4.2. Модификация
треугольников
Конструктор предоставляет два способа изменения треугольных элементов
области моделирования. Функция «Редактировать/Новый треугольник», которую мы
использовали ранее, строит треугольник путем фиксации координат вершин.
Первоначально создается равнобедренный треугольник, а затем, «хватая» любую
вершину треугольника мышью, можно переместить эту вершину в любую точку экрана.
При этом остальные две вершины треугольника остаются на месте.
Однако в ряде случаев пользователю необходимо задать точное значение
некоторого угла треугольника. Для таких случаев предусмотрены флажок
«фиксировать угол» и поле «значение (рад)». Если установить этот флажок и
указать значение угла (в радианах), то фиксируется значение угла при 1-ой
вершине треугольника. Если в дальнейшем этот треугольник модифицируется,
например, меняя координаты некоторой вершины, модификация осуществляется с
сохранением значения фиксированного угла.
4.3.
Интерактивная доработка сеточной области
В настоящей версии средств контроля и тестирования механизмов
интерактивной доработки сеточной области, Конструктор использует встроенный
генератор простой прямоугольной сетки.
Для управления встроенным генератором предназначена группа «Сетка»
панели Конструктора. В полях «шаг по X» и «шаг
по Y» указываются соответствующие параметры сетки и
нажимается кнопка «сетка». Область на экране «заполняется» прямоугольной
сеткой:
Интерактивная доработка сетки состоит в перемещении некоторых узлов
сетки в нужные точки области или границы области (например, в
характеристические точки).
Выполняется эта операция следующим образом. Активизируем инструмент
перемещения узлов сетки, нажав соответствующую кнопку на панели инструментов:
- перемещение узлов сетки
«Хватаем» мышкой узел сетки и «перетаскиваем» его на новое место. Затем
повторяем операцию с новой точкой и т.д.
На следующем скриншоте представлен пример измененной сетки:
Деактивация инструмента перемещения узлов сетки осуществляется
повторным нажатием кнопки «перемещение узлов сетки» на панели инструментов.
Удаление тестовой прямоугольной сетки осуществляется нажатием кнопки
«убрать» в группе «Сетка» на панели инструментов.
4.4.
Масштабирование
Конструктор позволяет изменить масштаб сцены для
детального изучения/модификации фрагментов области моделирования. Для этого
нажмем кнопку «M+» панели инструментов основного
окна. Затем с помощью мышки выделим пунктирным прямоугольником интересующий нас
фрагмент сцены. Отпустив кнопку мыши, получим увеличенное изображение
выделенного фрагмента сцены:
Мы можем работать с этим фрагментом, при необходимости
вновь выделить фрагмент сцены и т.д.
Нажатие кнопки «M-» панели инструментов основного окна вернет сцену в
исходный масштаб.
4.5.
Редактирование файла сцены
Описание построенной области моделирования (сцены) сохраняется в
текстовом файле (формат этого файла описан в приложении 1). Такой способ
сохранения дает дополнительные возможности редактирования сцены с помощью
обычного текстового редактора. Например, можно изменять координаты и параметры
элементов области, удалять или добавлять новые элементы и т.п.
Например, можно изменить имена элементов сцены, даваемые Конструктором
по умолчанию («1 Прямоугольник», «2 Окружность» и т.д.), более содержательными
именами.
Заключение
В работе описан прототип инструмента «Конструктор
регулярных областей», предназначенного для подготовки работы пакета
параллельных программ для численного решения сложных двумерных газодинамических
течений с учетом химико-кинетических процессов на треугольных адаптивных сетках
переменной структуры.
«Конструктор регулярных областей» предназначен для
решения следующих задач:
·
генерации
«процедурного описания» расчетной области и ее границ, используемого для
изменения сетки в процессе работы пакета;
·
генерации
исходной треугольной сетки;
·
верификации и
коррекции построенной сетки.
«Конструктор регулярных областей» базируется на использовании концепции
«твердотельного» представления области моделирования и обеспечивает следующий
сценарий построения исходной расчетной сетки:
·
пользователь
описывает область моделирования в интерактивном режиме с помощью графических
средств Конструктора;
·
затем Конструктор
автоматически генерирует процедурное описание визуально заданной области и ее
границ в виде набора функций на языке
Фортран-90;
·
по этому
процедурному описанию и заданному набору параметров генерируется исходная
треугольная расчетная сетка;
·
расчетная сетка
предъявляется пользователю, который может верифицировать и редактировать ее,
интерактивно перемещая отдельные узлы сетки;
·
созданное
«процедурное описание» расчетной области и ее границ (в виде набора функций на
языке Фортран-90) может использоваться пакетом для адаптации сетки в процессе
счета.
В работе описаны функциональные возможности
Конструктора, управляющие элементы Конструктора, а также типовой сценарий
работы с Конструктором, иллюстрируемый скриншотами.
Автор считает своим долгом
выразить благодарность Н. В. Арделяну и К. В. Космачевскому за постановку
задачи, полезные обсуждения и предложения, повлиявшие на данную работу.
Литература
1.
Арделян Н.В.,
Космачевский К.В. Неявный свободно-лагранжев метод расчета двумерных
магнитогазодинамических течений // Математическое моделирование. М.: Изд-во
Моск. ун-та, 1993, 25-44.
Приложение 1. Структура файла сцены
Ниже приведен листинг файла, содержащий описание
области, состоящей из прямоугольника, окружности и треугольника.
Element 1 прямоугольник
type= 1
status= 1
role= 0
x1=
8.7074829932
y1=
13.8775510204
x2=
25.0340136054
y2=
34.6485260771
r1=
0.0000000000
r2=
0.0000000000
EndElement
Element 2 окружность
type= 2
status= 1
role= 0
x1=
16.3265306122
y1=
12.1541950113
x2=
0.0000000000
y2=
0.0000000000
r1=
7.7710542628
r2=
0.0000000000
EndElement
Element 3 треугольник
type= 3
status= 1
role= 1
x1= 28.9342392517
y1= 22.6757341043
x2= 37.9160992517
y2= 26.6757341043
r1= 37.9160992517
r2= 19.8548724263
EndElement
Описание области представляет собой последовательность
описаний отдельных элементов области.
Описание элемента области начинается предложение с
ключевым словом Element, за которым через пробел следует произвольное имя
элемента. Завершается описание элемента предложением с ключевым словом EndElement.
Все предложения, находящиеся между указанными скобочными предложениями,
начинаются пробелом.
Следом за предложением Element следуют три предложения, указывающие параметры
элемента: type, status и role. В каждом из них после знака равенство указывается
целочисленный параметр.
Предложение type определяет тип элемента:
type= 1 тип элемента – прямоугольник
type= 2 тип элемента - окружность
type= 3 тип элемента - треугольник
type= 4 тип элемента - эллипс
Предложение status определяет текущий статус элемента:
status= 0 статус элемента – помеченный
status= 1 статус элемента – нормальный
Предложение role определяет роль элемента:
role= 0 роль элемента – опорный элемент
role= 1 роль элемента – вырезка
Далее следуют предложения, указывающие геометрические
параметры элемента. Их смысл меняется в зависимости от типа элемента.
Для прямоугольника
параметры x1, y1, x2 и y2 указывают координаты соответственно левой нижней и
правой верхней вершины; параметры r1 и r2 значения не имеют (но должны присутствовать).
Для окружности
параметры x1 и y1 указывают координаты центра; параметр r1 указывает радиус окружности; остальные параметры
значения не имеют (но должны присутствовать).
Для треугольника
параметры (x1, y1), (x2, y2) и (r1, r2) указывают координаты трех вершин треугольника.
Для эллипса
параметры x1 и y1 указывают координаты центра эллипса; параметры r1 и r2 указывают два
радиуса (по оси X и оси Y соответственно).
|