Текст ВКР (1218920), страница 5
Текст из файла (страница 5)
Использование данного компонента, разработанного в лаборатории ММФТ, позволяет максимально задействовать свободные ресурсы кластера для расчета большого числа наборов без участия пользователя.
Более подробно работа программного компонента Запускатель описана в [13].
3.4 Визуализатор
На этапе проектирования программного комплекса были описаны основные возможности вычислительного кластера по отображению данных. В данном разделе подробно описаны алгоритмы, реализующие визуализацию результатов и те сложности, с которыми пришлось столкнуться в ходе разработки.
3.4.1 Представление результатов численного решения в виде двумерных графиков
Построение двумерных графиков осуществляется для всех наборов, которые были признаны оптимальными. Сценарииbash2d.sh и plot2d.sh выполняют построение двумерных графиков зависимости величины погрешности от шага сетки. Файлы данных, необходимые для визуализации этим сценариями, создаются Анализатором при работе в режиме analyze. Формат файлов с данными следующий:
3 0.084474
4 0.053220
5 0.033352
6 0.015923
7 0.007595
8 0.003697
Первая цифра – номер сетки, на которой найдено значение исследуемой погрешности (второе число). Значения первого столбца считываются в массив array при помощи цикла:
while read line; do
s=$(echo ${line##* })
array[$index]="$s"
index=$(($index+1))
done< $file
и передаются скрипту plot2d.sh в качестве параметров:
./plot2d.sh $file ""${array[0]}" ${array[0]}, … ,"${array[5]}" ${array[5]}"
Схема работы сценариев показана на рисунке 9:
Рисунок 9 – Блок-схемы работы скриптов bash2d.sh (слева) и вызываемого им plot2d.sh(справа)
Краткое описание работы Визуализатора:
– bash2d.shпоочередно передает имена файлов ($file) с данными для вывода в качестве параметра скрипту plot2d.sh, а также массив подписей по оси y ($(tics));
– plot2d.sh осуществляет настройку терминала gnuplot и последующую печать графика в файл формата *.eps.
Работа скриптов не требует участия человека. Благодаря использованию командной оболочки Bash достигается автоматизация построения графиков погрешностей.
Важной особенностью построения является использования массива подписей по оси погрешностей – tics. Этот массив передается скрипту plot2d.sh, который корректно воспринимает полученный список и производит визуализацию графика с необходимыми подписями.
Примеры двумерных графиков показаны на рисунке 10:
Рисунок 10 – Двумерные графики изменения погрешности с измельчением шага сетки
Каждый график строится в цикле по списку количества файлов, удовлетворяющих следующему шаблону:
ROOT_PATH/data2D*
где ROOT_PATH=$(cd $(dirname $0) && pwd). Данная запись означает, что будут отобраны все файлы из рабочего каталога, имена которых начинаются с data2D.
После построения графиков происходит копирование всех полученных результатов и представляющих их графиков в папку Final.
-
3.4.2 Представление результатов численного решения в виде трехмерных графиков
Сценарии bash3d.sh и plot3d.sh, написанные для gnuplot под Bash, позволяют визуализировать результаты численного решения математических задач в виде трехмерных графиков. Как и скрипты bash2d.sh и plot2d.sh они представляют собой комбинацию между командами на Bash и программными настройками для gnuplot. Из Анализатора вызывается основной скрипт bash3d.sh, который подает на очередь скрипту plot3d.shимена файлов с данными:
./plot2d.sh $file
Эти имена находятся в файле dirs, который очищается после каждой итерации программного комплекса. Содержимое файла dirs:
/Path_to_result1/u
/Path_to_result1/v
…
/Path_to_result5/u
/Path_to_result5/v
Хранение полного пути к файлам с данными является необходимым условием при построении графиков в gnuplot.
В скрипте plot3d.sh происходит непосредственное обращение к gnuplot с определением настроек.
Поверхности создаются с разрешение 100х100 полигонов, так как процесс отрисовки в этом случае не является слишком долгим, а также обладает достаточной наглядностью. Использование различных видов заливки полигонов позволяет наглядно отобразить распределение погрешности в области. В случае использования точно заданной палитры необходимо соотнести диапазон изменения величины абсолютной погрешности с количеством отображаемых цветов, чтобы разбиение на диапазоны было корректным (рисунок 11):
Рисунок 11 – Графики, построенные gnuplot для u (слева) и v (справа) компонент в градиентной (рисунки сверху) и жесткой (рисунки снизу) палитре
Построение трехмерных графиков, так же как и двумерных, происходит с выводом в файлы формата *.eps. Для этого в файле plot3d.sh устанавливается терминал вывода и имя файла вывода:
set terminal postscript eps color enhanced
set output "$1.eps"
Строка настройки set output "$1.eps" означает, что именем файла вывода будет первый параметр, передаваемый скрипту при запуске.
Файл plot3d.sh содержит следующие настройки по умолчанию:
– подключение возможности закрашенных полигонов и стандартной палитры RGB
set pm3d; set palette
set palette model RGB
– настройки угла обзора, подписей и масштаба сцены отображения;
set title "3d-map of absolute error"
set ticslevel 0.5
set view 72,63
set autoscale
set hidden3d
set contour both
set dgrid3d 70,70,4;
set style datalines
– настройки полигональной сетки, в зависимости от которых достигается наибольшая корректность отображения;
splot "$1.dat" ti ""
– вывод графика на печать, используя данные из указанного файла.
Оценить, насколько сильно влияет соотношение полигонов по каждой из компонент на информативность визуализации можно в Приложении В, в котором приведены графики с различными конфигурациями как палитры, так и полигонального разбиения.
В заключение следует добавить, что, как и упоминалось ранее в пункте 2.2, существует возможность вывода графиков и в интерактивном оконном режиме XWindows. Поддержка данной возможности также реализована в программном комплексе, но является неактивной в силу причин, описанных в том же пункте.
3.5 Тестирование автоматизированной работы
Разработанный комплекс был апробирован при исследовании двумерных задач теории упругости с сингулярностью, вызванной наличием на границе области входящего угла.
В многоугольной невыпуклой области
была рассмотрена краевая задача с неоднородными граничными условиями первого рода относительно поля перемещений
для системы Ламе с постоянными коэффициентами
и
(3.1)
(3.2)
Здесь предполагается, что граница
содержит один входящий угол с вершиной в начале координат, а правые части (3.1)–(3.2) удовлетворяют условиям (см. [14])
(3.3)
Для поставленной задачи было введено понятие
-обобщенного решения.
Определение 1.
-обобщенным решением задачи (3.1)–(3.3) будем называть такую функцию
, которая почти всюду на
удовлетворяет краевому условию (3.2) и для любой вектор-функции
обращает
(3.4)
в верное равенство при любом, но фиксированном
.
Здесь
соответственно билинейная и линейная формы. Весовая функция
совпадает с расстоянием до особой точки в области
и равна
для
.
Для численного решения краевой задачи (3.1)–(3.3) была построена следующая схема весового метода конечных элементов.
1. Область
разбивается на конечное число треугольников
с вершинами
так, чтобы кончено-элементная сетка, удовлетворяла следующим стандартным требованиям: 1) два различных элемента либо не пересекаются, либо имеют общими только сторону или вершину; 2) площади всех элементов — одного порядка; 3) наименьший из углов триангуляции строго положительный и не зависит от нее.
2. Каждому узлу
в соответствие ставится функция
где
линейна на каждом конечном элементе,
,
— символ Кронеккера, и
(для
) вещественное число.
3. Через
обозначается линейная оболочка, построенная на системе базисных функций
, а через
— подмножество
, содержащее функции, обращающиеся в
в узлах, попадающих на границу. Для соответствующих множеств вектор-функций вводятся обозначения
и
.
4. Конечно-элементная аппроксимация, связанная с построенной триангуляцией, имеет вид
где
,
,
Определение 2. Приближенным
-обобщенным решением задачи (3.1)–(3.3) по весовому методу конечных элементов будем называть такую функцию
, которая почти всюду в узлах, попадающих на
удовлетворяет краевому условию
и для любых вектор-функции
и
удовлетворяет интегральному тождеству
(3.5)
где
.
Для проведения серии численных экспериментов была использована программа «Проба-IV» [15] и разработанный комплекс. Значения параметров, близкие к оптимальным, шкала для параметра v, а также графики и рисунки были получены комплексом автоматически.















