WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     || 2 |

«дипломная работа по специальности Математическое обеспечение и администрирование информационных систем студента Королева Александра Сергеевича на тему Трёхмерная анимация процесса взаимодействия наклонной ударной волны ...»

-- [ Страница 1 ] --

федеральное агентство по образованию

государственное общеобразовательное учреждение

высшего профессионального образования

московский государственный индустриальный университет

(ГОУ МГИУ)

кафедра Информационные системы и технологии

дипломная работа

по специальности Математическое обеспечение и

администрирование информационных систем студента Королева Александра Сергеевича на тему Трёхмерная анимация процесса взаимодействия наклонной ударной волны солнечного ветра с околоземной головной ударной волной Руководитель работы: д. ф.-м. н., профессор Пушкарь Евгений Александрович Студент-дипломник А. С. Королев Руководитель работы, д. ф.-м. н., профессор Е. А. Пушкарь допускается к защите Зав. кафедрой 36, к. ф.-м. н., доцент Е. А. Роганов Москва Аннотация Объем работы 70 страниц, 14 рисунков, 38 источников информации.

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

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

Разработанная программа позволяет представить трехмерную картину взаимодействия двух ударных волн. При этом отчетливо просматривает ся воздействие межпланетного возмущения на распределение всех физи ческих величин на поверхности головной ударной волны.

Подобная постановка задачи ранее не рассматривалась. О правильности полученных результатов можно судить по проведенным ранее исследова ниям, в том числе для двумерной постановки.

Оглавление Введение Литературный обзор 1 Основные теоретические сведения 1.1 Уравнения магнитной гидродинамики................... 1.2 Классификация поверхностей сильного разрыва.............. 1.3 Разрешение условий на магнитогидродинамических ударных волнах.. 1.4 Условия эволюционности МГД ударных волн............... 2 Системы координат 2.1 Обобщение координат и......................... 2.2 Матрица перехода............................... 3 Программная реализация 3.1 Используемые инструменты......................... 3.2 Реализация главного окна.......................... 3.3 Класс для хранения данных......................... 3.4 Чтение и сохранение данных......................... 3.5 Алгоритм выбора цвета............................ 3.6 Построение трёхмерного изображения................... 4 Подготовка трёхмерных векторных иллюстраций 4.1 Обзор существующих средств........................ 4.2 Структура программы............................ 4.3 Применение к задаче взаимодействия ударных волн........... 5 Результаты расчетов. Анализ найденного решения Введение В 1600 г. английский физик Уильям Гильберт (1544–1603) опубликовал труд, ко торый стал первой в истории науки книгой о земном магнетизме и электричестве (ученый ввел это слово в обиход). В нем он предположил, что Земля огромный магнит.

Происхождение земного магнетизма объясняется тем, что при вращении Земли в ее железном ядре, особенно в жидкой части, возникают электрические токи. Вся наша планета как бы опутана магнитными силовыми линиями, которые сходятся в двух точках так называемых магнитных полюсах Земли (они не совпадают с привычными географическими полюсами). Так что помимо атмосферы земной шар окутывает магнитосфера.

С началом полетов космических аппаратов за пределы земной атмосферы ученые получили много новой информации, касающейся магнитосферы Земли. Она прости рается на десятки тысяч километров в космическое пространство. Существенную роль играет взаимодействие магнитосферы и солнечного ветра потока заряжен ных частиц, летящих от Солнца. Под действием солнечного ветра магнитное поле Земли искажается и приобретает шлейф в направлении от Солнца, который про стирается на сотни тысяч километров, выходя за орбиту Луны.

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

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

Более подробно остановимся на случае, когда косая ударная волна солнечного ветра сталкивается с околоземной головной ударной волной и рассмотрим образую щиеся при сильные разрывы и значения физических величин на них в трехмерном пространстве.

Литературный обзор Обтекание солнечным ветром Земли имеет сложную трехмерную структуру [10].

В результате взаимодействия между магнитным полем Земли и стационарным по током солнечного ветра, непрерывно истекающего из солнечной короны вместе с вмороженным в него магнитным полем Солнца, образуется огромная многослойная конфигурация магнитосфера Земли, характерный поперечный размер которой на порядок превосходит диаметр Земли [11].

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

Перед магнитосферой, границей которой является магнитопауза m, разделяю щая солнечный ветер и сильно разреженную околоземную плазму, на расстоянии 13–17 земных радиусов от центра Земли образуется квазистационарная отошедшая головная ударная волна Sb, на которой плотность и давление солнечного ветра рез ко возрастают, самосогласованно меняется межпланетное магнитное поле, а поток отклоняется от радиального направления Солнце-Земля (рис. 1). Между m и Sb рас полагается магнитопереходный слой, представляющий собой поток солнечного ветра, ударно сжатого на Sb.

Магнитосфера никогда не находится в стационарном равновесном состоянии. Ча стично из-за возмущений солнечного ветра, частично из-за процессов в хвосте маг

ЛИТЕРАТУРНЫЙ ОБЗОР

нитосферы, при которых энергия магнитного поля превосходит некоторое пороговое значение, магнитосфера способна испытывать глобальные структурные изменения, связанные с перестройкой распределения плазмы и магнитного поля [12]. Эти про цессы связаны с такими наблюдаемыми на Земле явлениями, как полярные сияния и магнитные бури, которые могут приводить к нарушениям радиосвязи и даже по вреждениям линий электропередачи.

В рамках общей задачи обтекания магнитосферы Земли солнечным ветром пред ставляет несомненный интерес исследование процесса взаимодействия ударного воз мущения, распространяющегося по солнечному ветру, с околоземной головной удар ной волной.

Взаимодействие межпланетных ударных волн и других сильных разрывов с си стемой головная ударная волна магнитопауза было исследовано в одномерном приближении [13, 14] и двумерной плоскополяризованной постановке [3, 1, 7, 8]. В последнем случае были изучены эволюция возникающего течения по мере распро странения ударного возмущения по Sb и влияние на него ориентации напряженности магнитного поля Hsw и падающего разрыва. Кроме того была отмечена несиммет ричность воздействия на фланги Sb.

Однако исследованые в двумерной плоскополяризованной постановке течения да ют картину взаимодействия только в плоскости, содержащей векторы скорости сол нечного ветра vsw и напряженности межпланетного магнитного поля Hsw. Как пра вило, это плоскость эклиптики, поскольку в невозмущенном потоке солнечного ветра так называемая z-компонента магнитного поля обычно равна нулю, т. е. полученные решения относятся только к линии утро-вечер пересечения плоскости эклиптики с трехмерной поверхностью околоземной головной ударной волны. В действительности же задача о падении ударного возмущения солнечного ветра на головную ударную волну принципиально трехмерная и не может быть рассмотрена в плоскополяризо ванной постановке из-за нарушения условия компланарности векторов Hsw, vsw и нормалей к поверхности Sb и фронту ударного возмущения вне плоскости, в которй лежит Hsw.

В настоящей работе в трехмерной неплоскополяризованной постановке в рамках модели идеальной магнитной гидродинамики на основании результатов исследова ния взаимодействия двух быстрых неплосколяризованных МГД ударных волн [9] рассмотрено распространение ударной волны солнечного ветра Sf в виде плоского фронта с нормалью, направленной под углом к линии Солнце-Земля, по поверхно сти околоземной головной ударной волны Sb. Напряженность межпланетного магнит ного поля Hsw, вмороженного в солнечный ветер, наклонена к его скорости vsw под углом H = 45. Кроме того для получения решения будем рассматривать наиболее характерные значения параметров солнечного ветра и напряженности межпланетно го магнитного поля.

Рассмотрим падение плоского фронта быстрой ударной волны Sf, движущейся от Солнца со скоростью vSf относительно солнечного ветра, скорость которого vsw, на околоземную головную ударную волну Sb. Будем предполагать, что напряженность межпланетного магнитного поля Hsw, вмороженного в солнечный ветер, наклонено к vsw под углом H и лежит в плоскости эклиптики. Нормаль nSf к фронту Sf на правлена под углом к линии Солнце-Земля. Ранее угол всегда полагался равным нулю. Поэтому все описываемые геометрические параметры имеют смысл только для = 0. Тем не менее, продолжим рассмотрение такой постановки задачи, чтобы мож но было проводить сравнительный анализ между традиционной моделью для = и моделью, которую нам предстоит построить.

ЛИТЕРАТУРНЫЙ ОБЗОР

Рис. 2. Положение фронта ударной волны Sf солнечного ветра и линии пересече ния Sf и Sb при = 0.

В декартовой системе координат XY Z, связанной с Землей (ось X направлена к Солнцу, ось Y в плоскости эклиптики, а ось Z перпендикулярна плоскости эк липтики), головная ударная волна предполагается стационарной. Положение каж дого элемента Sb, который имеет нормаль nSb и может быть аппроксимирован ка сательной плоскостью к поверхности Sb, задается двумя угловыми координатами:

углом наклона этого элемента к оси X и углом наклона nSb к плоскости эклипти ки XY (рис. 2). Форма поверхности Sb может быть конретизирована заданием рас стояния от рассматриваемого элемента поверхности до начала координат r = r(, ).

При H = 0 головная ударная волна несимметрична. Если состояние перед Sb в невозмущенном потоке солнечного ветра: плотность sw, давление psw, скорость vsw и напряженность магнитного поля Hsw известны, то все параметры течения и магнитное поле за Sb можно определить как функции угла из соотношений на наклонной неплоскополяризованной магнитогидродинамической ударной волне [9, 15]. Компонента магнитного поля, касательная к поверхности Sb и перпендикулярная оси X, будет определяться углом из геометрии задачи после перехода в систему координат, связанную с линией пересечения фронтов Sf и Sb, на которой каждый из фронтов будем аппроксимировать плоскостью.

После соприкосновения фронтов Sf и Sb в точке с координатой = 90 (угол неопределен) падающая ударная волна Sf перемещается по фронту Sb, пересекая его по некоторой линии, на которой = const. Перемещение происходит со сверхзвуко вой скоростью, поэтому процесс столкновения двух разрывов Sf и Sb можно рассмат ривать локально. Предполагается, что установление течения при взаимодействии Sf и Sb происходит за достаточно короткое время, которым можно пренебречь по срав нению с характерным временем перемещения. При этом интенсивность падающего разрыва и состояние за ним не изменяются, а головная ударная волна и состояние за ней параметрически зависят от углов и. Тем самым зависимость от времени при перемещении фронта Sf по поверхности Sb преобразуется в параметрическую

ЛИТЕРАТУРНЫЙ ОБЗОР

зависимость от и.

В итоге, задача заключается в изменении описанной выше модели взаимодей ствия ударной волны солнечного ветра с головной ударной волной таким образом, чтобы можно было задавать произвольные значения угла. Стоит заметить, что при этом координаты и уже нельзя использовать для описания поверхности голов ной ударной волны. Поскольку матрица перехода из глобальной системы координат в локальную зависит от этих двух координат, получается, что и матрица перехода применима только для частного случая = 0. Таким образом, необходимо описать трехмерную геометрическую модель, которая будет общим случаем рассмотренной и будет сводиться к ней при = 0. Кроме этого, требуется разработать программное обеспечение для динамической визуализации этой геометрической модели.

Глава Основные теоретические сведения 1.1 Уравнения магнитной гидродинамики Магнитная гидродинамика изучает взаимодействие электромагнитного поля с жидким или газообразным проводником, рассматриваемым как сплошная среда. Ее теоретический фундамент составляют классические уравнения электромагнитного поля и гидродинамические уравнения движения сплошной среды. Уравнения маг нитной гидродинамики представляют собой совокупность уравнений Максвелла для электромагнитного поля и обычных гидродинамических уравнений, описывающих движение сплошной среды жидкости или газа. Связь этих двух групп уравне ний обусловлена, с одной стороны, возникновением тока индукции при движении проводящей среды в магнитном поле. Этот ток должен быть учтен в уравнениях Максвелла. С другой стороны, действие магнитного поля на токи в среде приводит к дополнительной электромагнитной объемной силе, которую следует учесть в гид родинамических уравнениях.

Таким образом, напряженности электрического и магнитного полей E и H под чиняются известным уравнениям в которых e плотность электрического заряда, j плотность тока, c электро динамическая постоянная (скорость света в вакууме). В уравнениях (1.1)-(1.2) не делается различия между напряженностью магнитного поля H и вектором магнит ной индукции B = µH, так как во всех известных проводящих жидкостях и газах отличие магнитной проницаемости µ от единицы пренебрежимо мало.

Составим систему магнитогидродинамических уравнений в условиях, когда мож но пренебречь всеми диссипативными процессами для идеальной жидкости. Это значит, что не учитываются как процессы вязкости и теплопроводности, так и конеч ность электрической проводимости среды ; последняя рассматривается как сколь угодно большая ( ).

Плотность тока j складывается из конвекционного тока e v и тока проводимости, который включает также индукционный ток, возникающий при движении электро

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

проводящей среды со скоростью v в магнитном поле H:

В предположении, что проводимость среды велика и рассматриваются не слиш ком быстрые электромагнитные процессы в уравнениях (1.1)-(1.2) и (1.3) можно пре небречь током смещения и конвекционным током по сравнению с током проводимо сти.

При заданных v и H плотность тока j, напряженность электрического поля E и плот ность заряда e полностью определяются уравнениями (1.4)-(1.8). Таким образом, задача сводится к определению взаимодействия магнитного поля H и гидродинами ческого поля скоростей v. Именно поэтому рассматриваемый круг вопросов получил название магнитной гидродинамики.

Движение среды подчиняется обычным гидродинамическим уравнениям, в кото рые включена объемная электромагнитная сила fe :

Здесь v и скорость и плотность среды, p давление, вязкость, второй коэффициент вязкости.

Сила fe выражает действие электромагнитного поля на связанные со средой заряд и ток и определяется по формуле Из уравнений (1.4)-(1.6) при условии большой проводимости среды следует, что пер вый член правой части выражения (1.11) имеет второй порядок величины v2 по c сравнению со вторым членом. Поскольку макроскопические скорости среды всегда значительно меньше скорости света, то во всех приложениях магнитной гидродина мики выполняется условие которое позволяет ограничиться нерелятивистским приближением и опустить члены порядка v 2 /c2.

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Опуская в силу сказанного выше первый член в выражении электромагнитной силы (1.11) и используя уравнение (1.4), получим Уравнения (1.7)-(1.10) вместе с выражением (1.13) определяют поведение хорошо проводящей жидкой или газообразной среды и связанного с ней магнитного поля.

Таким образом, система уравнений магнитной гидродинамики имеет вид:

где m = 4. Величина m играет в уравнении (1.14) ту же роль, что и кинемати ческая вязкость = / в уравнении движения среды (1.16), и поэтому называется магнитной вязкостью. Вместе с уравнением состояния среды, взятым, например, в форме где T температура, эта система содержит два векторных и два скалярных уравне ния для величин v, H, p, и T и должна быть дополнена еще одним уравнением. Та ким уравнением служит уравнение энергии. Так как полная энергия единицы объема равна (энергия электрического поля пренебрежимо мала по сравнению с магнитной энергией) где внутренняя энергия на единицу массы среды, то уравнение энергии должно иметь вид Плотность потока энергии g складывается из плотности гидродинамического пото ка энергии v v2 + w, где w = + тепловая функция единицы массы среды, плотности потока электромагнитной энергии, выражаемой вектором Умова-Пойтин га 4 E H, который в силу уравнения (1.5) равен 4 (H (v H)) m (H rot H), плотности потока энергии (v ), обусловленного процессами внутреннего трения, где есть тензор вязких напряжений, и, наконец, плотности теплового потока T, где коэффициент теплопроводности среды. Таким образом, плотность потока энергии в магнитной гидродинамике равна

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

С помощью уравнений (1.14)-(1.17) и термодинамического тождества решение (1.19) может быть преобразовано в уравнение переноса тепла где s энтропия единицы массы. Это уравнение показывает, что изменение коли чества тепла в движущемся элементе объема (dQ = T ds) определяется вязкостью, джоулевыми потерями и теплопроводностью.

Из уравнений (1.14)-(1.17) легко получить закон сохранения импульса для рас сматриваемой системы в форме где тензор плотности потока импульса ik равен Импульс электромагнитного поля мал и не входит в уравнение (1.23), так как рас сматриваются достаточно медленные процессы и ток смещения опущен.

С помощью известной формулы векторного анализа уравнение (1.14) с учетом (1.4) и (1.15) может быть преобразовано в интегральную форму:

где поверхностный интеграл берется по материальной, то есть перемещающейся вместе с частицами среды, поверхности S, ограниченной контуром L. Из уравнения (1.26) следует, что изменение магнитного потока через связанную со средой поверх ность определяется электрическим сопротивлением среды.

Относительное значение процессов диссипации магнитного поля за счет ограни ченной проводимости среды можно оценить следующим образом. Если L и V ха рактерные для рассматриваемой задачи линейный размер и скорость, то первый член правой части уравнения (1.14) по отношению ко второму имеет порядок величины По аналогии с гидродинамическим числом Рейнольдса R = VL безразмерную комби нацию (1.27) принято называть магнитным числом Рейнольдса. При Rm 1 электро сопротивлением среды и связанными с ними джоулевыми потерями и диссипацией магнитного поля можно пренебречь точно так же, как можно пренебречь вязкостью в

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

гидродинамике при больших числах R. В астрофизических приложениях магнитной гидродинамики Rm 106 и выше вследствие хорошей проводимости ионизованного газа и огромных размеров рассматриваемых объектов. Так как, кроме того, велики и обычные числа Рейнольдса, то во многих задачах достаточно ограничиться рас смотрением идеальной жидкости с бесконечной проводимостью. При этом подразу мевается, что процессы теплообмена также несущественны, то есть движение среды адиабатично.

Для идеальной среды (,, равны нулю, проводимость бесконечна) уравнения (1.14)-(1.17) и (1.23) сводятся к следующим:

Уравнение (1.32) выражает сохранение энтропии при адиабатическом движении иде альной среды. Вместе с уравнением состояния (1.28)-(1.32) образуют полную систему магнитогидродинамических уравнений для идеальной среды. Уравнения (1.30)-(1.32) могут быть записаны в форме законов сохранения энергии, импулься и массы:

где плотность потока энергии и тензор плотности потока импульса равны соответ ственно

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

1.2 Классификация поверхностей сильного разрыва Система уравнений (1.28)-(1.32) описывает движение проводящего газа или несжимаемой жидкости в тех областях, где движение непрерывно. Однако возможны и движения, при которых возникают разрывы непрерывности характеристик среды и поля. Разрыв непрерывности в движении среды имеет место вдоль некоторых поверх ностей; при прохождении через такую поверхность характеристики среды и поля ис пытывают скачкообразное изменение. Такие поверхности называются поверхностями разрыва. Различают поверхности слабого разрыва и поверхности сильного разрыва.

Поверхностью слабого разрыва некоторой функции называется поверхность, на ко торой имеет место разрыв производной некоторого порядка этой функции при непре рывности самой функции. Если на поверхности имеет место разрыв самой функции, то такая поверхность называется поверхностью сильного разрыва. При нестационар ном движении газа поверхности разрыва не остаются, вообще говоря, неподвижными;

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

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

Прежде всего, на поверхности разрыва должен быть непрерывен поток вещества:

количество газа, входящего с одной стороны, должно быть равно количеству газа, выходящему с другой стороны поверхности:

где фигурные скобки обозначают, что берется разность значений соответствующей величины с одной и другой стороны разрыва, а индекс n означает нормальную к поверхности составляющую вектора.

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

Также должен быть непрерывен и поток импульса. Это условие означает, что {ik nk } = 0, где = {ik } тензор плотности потока импульса, а n единичный вектор нормали к поверхности. С помощью (1.37) получим отсюда уравнения Наконец, непрерывны нормальная составляющая магнитного поля и тангенциаль ная составляющая электрического поля:

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Так как для среды с бесконечной проводимостью из уравнения (1.5) следует то соотношение (1.43), учитывая (1.42), можно переписать в виде Соотношения (1.38)-(1.42) и (1.45) являются в магнитной гидродинамике условия ми на поверхностях разрыва для идеального газа. Эти соотношения, как будет видно из дальнейшего, могут описывать поверхности разрыва различных типов.

Рассмотрим прежде всего такие поверхности разрывы, через которые отсутствует поток вещества. Это значит, что vn1 = vn2 = 0, то есть жидкость движется парал лельно поверхности разрыва. Если при этом Hn = 0, то из уравнений (1.38)-(1.42), (1.45) видно, что должны быть непрерывны скорость, давление и магнитное поле.

Произвольный же скачок может испытывать плотность (а также энтропия, темпе ратура и т. п.). Такой разрыв, называемый контактным, представляет собой просто границу раздела между двумя неподвижными средами с различными плотностями и температурами. Если же теперь Hn = 0, то получаем разрыв, называемый тангенци альным. На таком разрыве скорость и магнитное поле касательны к его поверхности и испытывают произвольные по величине и направлению скачки:

Произволен также скачок плотности, а скачок давления связан со скачком H урав нением (1.40):

Скачки же других термодинамических величин (энтропии, температуры, и т. д.) опре деляются по скачкам плотности и давления с помощью уравнения состояния газа.

Другим типом разрывов являются разрывы, в которых плотность газа не испыты вает скачка. Ввиду непрерывности потока { vn } = 0 из отсутствия скачка плотности сразу следует, что будет непрерывной и нормальная составляющая скорости:

Далее, разделив почленно уравнения (1.41) и (1.45) друг на друга, получаем:

После этого уравнение (1.41) или (1.45) дает Перепишем уравнение (1.39), учитывая непрерывность плотности, заменив Hn со гласно (1.49) и w = + и произведя перегруппировку членов:

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Второй член здесь обращается в нуль в силу равенства (1.40), а третий в силу (1.50), так что остается {} = 0, т. е. наряду с плотностью непрерывна также и внут ренняя энергия. Но всякая другая термодинамическая величина однозначно опреде ляется заданием двух величин модинамические величины, в том числе давление. Из уравнения же (1.40) следует тогда, что непрерывен также квадрат H, т. е. абсолютная величина вектора H :

Одновременная непрерывность H и Hn означает, что остаются неизменными так же полная абсолютная величина вектора H и угол, образуемый им с нормалью к поверхности.

Формулы (1.48)-(1.52) определяют все свойства рассматриваемых разрывов. На них непрерывны термодинамические величины газа, а магнитное поле поворачива ется вокруг направления нормали, оставаясь неизменным по своей абсолютной вели чине. Вместе с вектором H испытывает скачок касательная составляющая скорости (согласно (1.45)), а нормальная составляющая скорости vn непрерывна и равна Разрывы этого типа называются вращательными или альфвеновскими.

Перейдем к следующему типу разрывов, в котором Эти разрывы называются ударными волнами. Они характеризуются наличием скач ка плотности и тем, что газ движется сквозь них (vn1 и vn2 отличны от нуля). Что касается нормальной компоненты магнитного поля, то она, вообще говоря, отлична от нуля, но в частном случае может быть и Hn = 0.

Сравнивая уравнения (1.41) и (1.45), видим, что (при Hn = 0) векторы H 2 H и v2 H 2 v1 H 1 параллельны одному и тому же вектору v 2 v 1 и потому парал лельны между собой. Отсюда в свою очередь следует коллинеарность H 1 и H 2, т. е. векторы H1, H2 и нормаль к поверхности разрыва лежат в одной плоскости в противоположность тангенциальным и альфвеновским разрывам, в которых плос кости (H1, n) и (H2, n), вообще говоря, не совпадают. Этот результат справедлив и в случае Hn = 0, когда из (1.45) следует, что v1 H 1 = v2 H 2.

Скачок v 1 v 2 расположен в той же плоскости, что и H1, H2. Не ограничивая общности, можно считать, что и сами векторы v1 и v2 лежат в той же плоскости, так что движение в ударной волне является по своей природе плоским.

Введем соотношение, играющее для ударных волн в магнитной гидродинамике роль адиабаты Гюгонио обычной гидродинамики. Исключив {v } из уравнений (1.41) и (1.45), получим соотношение обозначая здесь H вместо H, имея уже в виду коллинеарность H 1 и H 2. Для того чтобы исключить v из уравнения (1.39), перепишем его тождественно в следующем виде:

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Третий член обращается в нуль в силу уравнения (1.41) и, таким образом, v выпа дает. В последнем члене подставляем 2 vn из (1.55), а в первом из (1.40), т. е.

После простых вычислений получим тогда окончательно Это и есть искомое уравнение ударной адиабаты в магнитной гидродинамике. Оно отличается от обычного уравнения третьим членом.

Выпишем здесь еще раз также уравнение (1.41):

определяющее скачок v по скачку H. Уравнения (1.55)-(1.58) составляют полную систему уравнений, описывающих ударные волны. Ниже условимся приписывать ин декс 1 той среде, в сторону которой волна распространяется; другими словами, сам газ проходит со стороны 1 перед ударной волной на сторону 2 позади нее.

В магнитной гидродинамике, как и в обычной, справедлива теорема Цемплена, согласно которой в ударной волне давление и плотность увеличиваются

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

1.3 Разрешение условий на магнитогидродинамических ударных волнах Рассмотрим плоскую МГД ударную волну в системе координат, связанной с эле ментом фронта разрыва. Будем предполагать, что линии тока могут пересекать по верхность ударной волны под произвольным углом, т. е. фронт разрыва наклонен к скорости потока, такие ударные волны называются наклонными или косыми. Бу дем считать, что внутренняя энергия газа по обе стороны от разрыва определяется соотношением Здесь = cp /cv показатель адиабаты. Среда перед и за ударной волной явля ется бесконечно проводящей, электрическое поле по обе стороны от разрыва опреде ляется законом Ома E = (1/c) v H.

На ударной волне должны быть выполнены следующие соотношения (система (1.38)-(1.42), (1.45)):

скорость света, j ток, текущий по фронту разрыва, n нормаль к поверхности разрыва. Фигурные скобки обозначают скачок величин на разрыве, индексы n и относятся соответственно к нормальным и касательным к разрыву составляющим величин.

При любой скорости набегающего потока можно выбрать движущуюся систему координат так, чтобы ударная волна была плоскополяризованной. Однако в ряде стационарных задач система координат определяется их постановкой, поэтому целе сообразно разрешить условия (1.60)-(1.63) на ударной волне, не вводя требования компланарности векторов n, v, H.

Выберем систему координат XY Z следующим образом. Ось Z расположим в плос кости разрыва, ее направление задается либо произвольно (вне конкретных постано вок задач), либо определяется внешними причинами. Оси X и Y лежат в плоскости, перпендикулярной Z (эта плоскость содержит нормаль к фронту разрыва), так что ось X направлена по составляющей вектора скорости, перпендикулярной оси Z, а ось Y перпендикулярна оси X и выбрана таким образом, чтобы система координат XY Z была правой.

В выбранной системе координат вектор скорости набегающего потока v = (vx0, 0, vz0 ), магнитное поле H = (Hx0, Hy0, Hz0 ). Пусть угол наклона фронта ударной волны к оси X, угол между скоростью и магнитным полем в плоскости XY, H0 = Hx0 + Hy0 абсолютная величина напряженности магнитного поля в этой плоскости.

Введем безразмерные переменные

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Здесь вектор обозначает направление в плоскости разрыва, перпендикулярное оси Z, а i ток, текущий в этом направлении. Индексы 0 и 1 относятся к состояниям перед разрывом и за ним соответственно.

В выбранной системе координат из соотношений на разрыве (1.60)-(1.63) следуют (в том же порядке) безразмерные соотношения на МГД ударной волне:

При написании (1.66)-(1.71) использовались: уравнение неразрывности (1.65), условие непрерывности нормальной компоненты магнитного поля (1.72), а также связи (1.73) между скачками касательных компонент магнитного поля и токами iz и i, текущими по разрыву.

Будем считать все величины перед волной заданными. Выразим состояние за разрывом чрез отношение плотностей и угол наклона ударной волны.

Из (1.65)-(1.68), (1.72), (1.73) получим явные зависимости для компонент магнит ного поля hx, hy, hz, скорости u, v, w и давления p:

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Из (1.66) легко также получить выражение для полного давления p = p + H / (8). Прибавляя к P величину 0, 5 N 2 h2 + h2 + h2, равную магнитному дав лению, отнесенному к p0, получим для P = p /p0 выражение Таким образом, давление и все компоненты магнитного поля и скорости за удар ной волной выражаются явными формулами (1.74)-(1.79) через токи iz и i, текущие по фронту разрыва, отношение плотностей и угол наклона разрыва.

Подставив в (1.70) и (1.71) зависимости (1.75)-(1.77) для u, v, w получим урав нения, связывающие iz и i с, и параметрами, характеризующими начальное состояние:

В (1.80) cos ( ) и hz0 касательные к разрыву начальные магнитные поля в направлениях, перпендикулярных соответствующим токам. Поскольку iz (, ) и i (, ) описываются одинаковыми уравнениями, то можно перейти в систему коор динат, в которой течение будет удовлетворять условиям компланарности векторов n, v и H.

Из (1.80) при условии = 0 получим Подставляя выражения (1.74)-(1.78), (1.80), (1.82) в (1.69), после сокращения на (1 ) и алгебраических преобразований получаем связь между и :

где = (,, M, N ) определяется формулой (1.81).

Уравнение (1.83), которое будем называть уравнением ударной адиабаты, посколь ку оно есть следствие закона сохранения энергии (1.63), является многочленом тер тьей степени по.

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

1.4 Условия эволюционности МГД ударных волн Эти условия понимаются как условия существования единственного решения ли неаризованной задачи о взаимодействии малого плоского возмущения с плоским фронтом разрыва и сводятся к ограничениям-неравенствам на скорости течения по нормали к разрыву (перед разрывом и за ним) для быстрых S + и медленных S ударных волн, а именно для S + : vn,0 a+,0, aA,1 vn,1 a+,1 ;

Здесь a±,i, i = 0, 1 быстрая и медленная магнитозвуковые скорости перед раз рывом (i = 0) и за ним (i = 1), а aA,i, i = 0, 1 альфвеновские скорости, соответ ственно.

Из теории нестационарных ударных волн известно, что условия эволюционности равносильны двум условиям: 1) плотность в ударной волне возрастает: 1; 2) знак касательной компоненты магнитного поля не изменяется. При этом в S + касательное магнитное поле по модулю растет, а в S убывает. Из (1.74) и (1.80) следует, что касательные компоненты магнитного поля описываются выражениями где cos ( ) и hz0 касательные компоненты H перед разрывом. Таким обра зом, из (1.84) получаем, что для сохранения знака касательного магнитного поля необходимо и достаточно, чтобы выполнялось условие ( 1) / ( ) 0. Условия эволюционности принимают вид:

Для S + неравенство 1 < 0, а для S неравенство > 0 являются след ствиями двух других неравенств в (1.85). Таким образом, условия эволюционности принимают простой вид:

Неравенства (1.86) можно понимать как ограничения на отношение плотностей по обе стороны от ударной волны и углы наклона ударных волн. Для нахождения последних необходимо подставить в (1.86) зависимость = () из (1.83). Из (1.86) следует, что условие эволюционности по магнитозвуковой скорости за S + и S для волн сжатия 1 является следствием остальных условий эволюционности.

Подставляя = 1 в (1.83), получим Можно показать, что обращение в нуль выражений в первой или второй скобке в (1.87) равносильно равенству нормальной и альфвеновской или нормальной и магни тозвуковой скоростей перед ударной волной, т. е. ударная адиабата пересекает одну из границ области эволюционности ( = 1) при характеристических углах A и ±.

Для S других ограничений нет, т. е. вся часть ударной адиабаты между харак теристическими углами для состояния перед ударной волной = и = A удовлетворяет условиям эволюционности (1.86).

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

щей и приходящей быстрых магнитозвуковых характеристик) недостаточно. Допол нительно необходимо выполнение условия, которое соответствует требованию vn,1 aA,1 : скорость по нормали за ударной волной должна превосходить альфвенов скую.

Таким образом, при численных расчетах ударных адиабат и поляр необходимо заранее выбирать, для S и, для S +. Для этого необходи мо найти угля наклона магнитозвуковых характеристик ± и альфвеновских волн A из уравнений:

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

Таким образом, наклонные ударные волны как одномерное многообразие в про странстве физических переменных описываются формулами (1.74)-(1.78), (1.82), (1.83) с ограничениями-неравенствами (1.86). Эволюционная часть ударной адиаба ты начинается от своей характеристики. В этой точке все параметры потока непре рывны.

Рассмотрим неплоскополяризованный альфвеновский разрыв. Подстановка в (1.83) условия равенства скорости перед разрывом альфвеновской скорости ( = 1) дает одно из возможных решений: = A, = 1. Выполнение условия = 1 до стигается при = A, которое определяется из (1.89). Это решение соответствует неплоскополяризованному альфвеновскому разрыву, в котором вектор магнитного поля поворачивается вокруг нормали к ударной волне на произвольный угол. Появ ляющийся произвол в определении альфвеновского разрыва связан с вырождением при = 1, = 1 уравнений (1.80), которые в этом случае выполнены тождественно.

Введем угол H наклона тангенциального магнитного поля к плоскости XY :

Тогда угол поворота магнитного поля будет служить мерой интенсивности альф веновского разрыва. Из (1.74) можно найти токи, которые обеспечивают поворот магнитного поля на угол в альфвеновском разрыве:

Верно и обратное, задание токов iz и i в (1.91), удовлетворяющих условию неиз менности модуля магнитного поля в альфвеновском разрыве, однозначно определяет поворот магнитного поля. Таким образом, в неплоскополяризованном случае состоя ние за альфвеновским разрывом определяется токами iz и i, текущими по его фрон ту, которые однозначно задаются углом поворота магнитного поля. Компоненты

ГЛАВА 1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

скорости определяются из (1.75)-(1.77), куда нужно подставить = A, = 1, p = 1, а также iz и i из (1.91).

При = A уравнение (1.83), кроме корня = 1, имеет еще два корня, один из которых больше, а другой меньше единицы.

Глава Системы координат 2.1 Обобщение координат и Когда мы рассматривали поверхность головной ударной волны в терминах коор динат и, у нас не возникало необходимости конкретизировать форму головной ударной волны. Полученные ранее данные представляют собой информацию о со стояниях за разрывами (значения плотности, давления, скорости и напряженности магнитного поля у потока солнечного ветра) при столкновении Sb с ударной волной солнечного ветра. При этом точки, в которых вычислены значения, имеют парамет рические координаты, и явно нигде не указано, какая поверхность аппроксимирует поверхность головной ударной волны. Так было задумано для того, чтобы не привя зываться к какой-то определенной аппроксимации Sb и сделать задачу автомодель ной, т. е. не зависящей от характерных размеров исследуемых объектов.

Однако при косом падении ударной волны мы не сможем получить уравнение се чения в виде = const. Поэтому важно задать конкретную форму Sb. Поверхность головной ударной волны имеет довольно сложную и несимметричную форму. Ее ис следованию посвящено множество трудов [22], а вопрос о том, какая поверхность наилучшим образом аппроксимирует Sb, до сих пор остается открытым. Исследова ние этого вопроса является самостоятельной задачей, поэтому в качестве поверхно сти, описывающей Sb мы выберем поверхность параболоида. Его уравнение в системе координат, связанной с Землей, имеет следующий вид.

где s это расстояние от лобовой части Sb до центра координат, а c произвольная константа, задающая форму параболоида.

Уравнение плоскости падающего разрыва имеет вид где d это произвольная константа, характеризующая конкретное положение плос кости в пространстве.

Для нахождения всех точек сечения в каждый момент времени необходимо ре шить систему двух уравнений.

В момент столкновения разрывов (т. е. в момент их касания) координата z = 0.

Найдем координаты точки касания xc и yc, а также dc значение константы d.

Заметим, что эта константа по модулю равна расстоянию от начала координат до сечения.

В момент касания D = 0, поэтому получаем dc можно найти из D = 0.

Теперь найдем xc, используя найденное выражение для dc.

Вектор нормали к падающему разрыву имеет координаты (cos, sin, 0). Прямая, параллельная этому вектору и проходящая через точку (xc, yc, 0), является траек торией движения этой точки по мере распространения ударной волны солнечного ветра. Найдем уравнение этой прямой.

Подставим (2.4) и (2.2) в (2.5) и получим систему для x0, y0 и d0. Переменные x0 и y0 являются координатами точки пересечения плоскости падающего разрыва и прямой (2.5), а d0 расстояние от начала координат до этой точки.

Заметим, что при = 0, y0 также обращается в нуль. Аналогично ситуации с = введем полярный угол и r радиус, который отсчитывается от точки с коорди натами (x0, y0, 0). Тогда связь между r, и x, y, z можно записать в следующем виде.

Подставим (2.8) в (2.1) и найдем r = r( ).

Получаем квадратное уравнение относительно r.

Координаты нормали к параболоиду в каждой точке имеют вид Угол между нормалями к взаимодействующим разрывам можно найти из скаляр ного произведения нормалей.

2.2 Матрица перехода Найдем матрицу перехода между глобальной и локальной системами координат.

Локальная система координат устроена таким образом, что ось Oz направлена вдоль линии пересечения разрывов. Направление оси Ox совпадает с направлением стаци онарной скорости, т. е. скорости движения линии пересечения разрывов. Ось Oy на правлена так, чтобы оси координат составляли правую тройку векторов. Получается, что необходимо выполнить следующие преобразования.

• Поворот на угол + вокруг глобальной оси Oz.

• Поворот на угол вокруг нормали (cos, sin, 0) к падающей ударной волне, на который необходимо повернуть систему координат, чтобы ось Oz стала ка сательной к сечению-эллипсу.

• Перенос начала координат на вектор (x(r, ), y(r, ), z(r, )).

• Поворот на угол /2 2 вокруг локальной оси Oz, получившейся после преды дущих трех преобразований. Угол 2 это угол между вектором стационарной скорости и вертикальной осью.

Матрица A, объединяющая первые три преобразования, имеет следующий вид.

Найдем координаты локальной оси Oz для четвертого преобразования (преобра зование переноса временно опустим).

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

Для получения результирующей матрицы осталось умножить матрицу B на мат рицу A. В результате алгебраических преобразований имеем матрицу.

Можно проверить, совпадает ли эта матрица с полученной ранее для = 0 и =.

Подставим = 0, опустим преобразования переноса и получим ту же матрицу, что была использована для решения задач лобового столкновения ударных волн.

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

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

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

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

Несмотря на стремительное развитие свободного программного обеспечения и рост его популярности в образовательных учреждениях по-прежнему нередко можно наблюдать использование операционных систем семейства Windows. Чтобы не всту пать в длительную дискуссию на тему достоинств и недостатков различных операци онных систем, было принято решение использовать мультиплатформенный подход для решения поставленной задачи. Поэтому, как мы увидим позднее при обсуждении полученных результатов, разработанная программа визуализации одинаково хорошо работает под управлением различных операционных систем.

Стремясь сделать программу, не зависимую от платформы, мы будем исполь

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

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

Одним из главных преимуществ средств разработки Qt является расширение языка программирования C++ механизмом создания независимых компонентов про граммного обеспечения, которые можно соединять вместе, несмотря на то, что они могут ничего не знать друг о друге. Этот механизм называется метаобъектной си стемой, и он обеспечивает две основные служебные функции: взаимодействие сиг налов и слотов и анализ внутреннего состояния приложения.

Механизм сигналов и слотов играет решающую роль в разработке программ Qt.

Слоты почти совпадают с обычными функциями, которые объявляются внутри клас сов C++ (функции-члены). Они могут быть виртуальными, перегруженными, откры тыми, защищенными и закрытыми, они могут вызываться непосредственно, как и любые другие функции-члены C++ и их параметры могут быть любого типа. Одна ко слоты (в отличие от обычных функций-членов) могут подключаться к сигналам, и в результате они будут вызываться при каждом генерировании соответствующего сигнала. Оператор connect(), который осуществляет подключение, имеет вид connect(отправитель, SIGNAL(сигнал), получатель, SLOT(слот));

где отправитель и получатель являются указателями на объекты QObject, и где сигнал и слот являются сигнатурами функций без имен параметров. Макросы SIGNAL() и SLOT() фактически преобразуют свои аргументы в строковые перемен ные.

Анализ внутреннего состояния необходим для реализации сигналов и слотов и позволяет прикладным программистам получать метаинформацию о подклассах QObject во время выполнения программы, включая список поддерживаемых объек том сигналов и слотов и имена их классов. В стандартном языке C++ не предусмот рена динамическая поддержка метаданных, необходимых системе объектов Qt. В Qt эта проблема решена за счет применения специального инструментального сред ства компилятора moc, который просматривает определения классов с макросом Q_OBJECT и делает соответствующую информацию доступной функциям C++. По скольку все функциональные возможности moc обеспечиваются только с помощью чистого C++, метаобъектная система Qt будет работать с любым компилятором C++ [26].

Таким образом, реализация графического интерфейса программы сводится к со зданию виджетов (т. е. его элементов) и организации взаимосвязей между ними с помощью сигналов и слотов.

3.2 Реализация главного окна Главное окно приложения обеспечивает каркас для построения пользовательского интерфейса приложения. Оно содержит меню, строку состояния, панели инструмен тов и окна с трехмерной визуализацией (рис. 3.1).

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Приложения, которые обеспечивают работу со многими документами в централь ной области главного окна, называются приложениями с многодокументным интер фейсом или MDI-приложениями. В Qt MDI-приложения создаются с использованием в качестве центрального виджета класса QMdiArea и путем представления каждого документа в виде дочернего окна QMdiSubWindow.

Рис. 3.1. Главное окно с одним открытым документом Обычно MDI-приложения содержат пункт главного меню Окна с командами по управлению как окнами, так и их списком. Активное окно помечается галочкой.

Пользователь может сделать любое окно активным, щелкая по его названию в меню Окна.

Разрабатываемое приложение будет иметь многодокументный интерфейс, где до кументом мы будем считать набор данных для той или иной задачи и их трехмерное представление. Это позволит пользователю работать с несколькими отдельными на борами данных одновременно (рис. 3.2).

Приведем текст заголовочного файла для класса MainWindow. Мы определяем класс MainWindow как подкласс QMainWindow. Он содержит макрос Q_OBJECT, посколь ку имеет собственные слоты.

#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include class QMenu;

class QAction;

class QToolBar;

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

class QMdiArea;

class QComboBox;

class QMdiSubWindow;

class ValuesWidget;

class MdiSubWindow;

class GraphicsScene;

class AnimationWidget;

class ProjectInfoWidget;

class MainWindow : public QMainWindow public:

MainWindow(QWidget *parent = 0, Qt::WindowFlags flags = 0);

~MainWindow();

QSize sizeHint() const;

QSize minimumSizeHint() const;

Для классов QMenu, QAction, QToolBar и т. д., использующихся в классе главного окна, мы даем предварительные объявления. Предварительные объявления указыва ют компилятору C++ только на существование класса, не давая подробного опреде ления этого класса (обычно определение класса содержится в его собственном заголо вочном файле). Использование предварительных объявлений допустимо, потому что все переменные этих классов входят в текущий класс только в виде указателей. При использовании предварительных объявлений компилятор работает немного быстрее.

Методы sizeHint() и minimumSizeHint() следует переопределить для того, что бы задать рекомендуемый и минимальный размеры главного окна соответственно.

protected:

void timerEvent(QTimerEvent *event);

private slots:

void changeBgColor();

void changeProject();

void updateToolBars();

void changeVectorsColor();

void stars(bool b);

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Рис. 3.2. Главное окно с несколькими открытыми документами. Каждое из окон документа может содержать свои собственные данные и настройки void minus(bool b);

void vectors(bool b);

void changeWaveAfter(QString str);

void changeWaveBefore(QString str);

void changeActiveSubWindow(QMdiSubWindow *activatedSubWindow);

void playPauseAnimation();

void changeAnimationFrame(int newValue);

void updateWaveList(QString key);

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

Таким образом, динамическая картина будет состоять из отдельных кадров. Частота смены этих кадров это частота срабатывания таймера.

В конструкторе класса MainWindow мы создаем и запускаем таймер с помощью функции QObject::startTimer(). Этот вызов возвращает число-идентификатор (за крытая переменная timerId), которое мы можем использовать позже для идентифи кации таймера. QObject поддерживает несколько независимых таймеров, каждый из которых использует свой временной интервал. После вызова функции startTimer() Qt генерирует событие таймера приблизительно каждые 30 миллисекунд, причем точность зависит от базовой операционной системы. Далее, система вызывает функ цию timerEvent() в соответствующие моменты времени. Поэтому мы переопреде ляем эту функцию, чтобы указать, какие действия должны выполняться при смене кадра анимации.

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

private:

QAction *newAction;

QAction *tileAction;

QAction *gridAction;

QAction *axesAction;

QAction *starsAction;

QAction *minusAction;

QAction *vectorsAction;

QAction *bgColorAction;

QAction *screenShotAction;

QAction *vectorsColorAction;

QMenu *colorsMenu;

QMenu *windowMenu;

QToolBar *valuesToolBar;

QToolBar *mainToolBar;

QToolBar *animationToolBar;

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

Использование понятия действия упрощает программирование меню и панелей инструментов при помощи средств разработки Qt. Элемент QAction (действие) мож но добавлять к любому количеству меню и панелей инструментов. Создание в Qt меню и панелей инструментов разбивается на следующие этапы:

• создание и настройка действий;

• создание меню и добавление к ним действий;

• создание панелей инструментов и добавление к ним действий.

Опишем кратко набор действий, которые используются в главном окне. Действие newAction служит для создания нового документа, т. е. окна с трехмерным изоб ражением выбранных данных. tileAction позволяет размещать окна документов таким образом, чтобы они не перекрывали друг друга. Действие gridAction отоб ражает структурную сетку на поверхности головной ударной волны. axesAction, starsAction и vectorsAction позволяют отключать отображение осей координат, звезд на фоне и векторов соответственно.

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

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

Поэтому добавим в программу возможность менять цвет фона, а, вместе с тем, еще и цвет векторов. Для этого служат два действия bgColorAction и vectorsColorAction соответственно.

QMdiArea *mdiArea;

MdiSubWindow *activeSubWindow;

GraphicsScene *activeGraphicsScene;

ValuesWidget *valuesWidget;

AnimationWidget *animationWidget;

ProjectInfoWidget *projectInfoWidget;

void createActions();

void createWidgets();

void createToolBars();

void createStatusBar();

#endif // MAINWINDOW_H Действие screenShotAction позволит сохранять построенные трехмерные изоб ражения в виде графических файлов. Реализация подобной функции в большинстве случаев тривиальна. Однако в рассматриваемой программе не удастся сделать эту возможность стандартными путями. Возникающие проблемы и их решение мы обсу дим позднее.

3.3 Класс для хранения данных Рассмотрим теперь, каким образом данные, полученные с помощью программы, написанной на языке Fortran (обозначим ее символом PF ), передаются в программу, разрабатываемую на языке C++ (аналогично введем обозначение PC++ ).

Программа PF может рассчитать значения плотности, давления, напряженности магнитного поля и скорости потока солнечного ветра за всеми разрывами. При этом она выдает результат только на одном из заранее указанных сечений поверхности, аппроксимирующей головную ударную волну Sb. Программа обеспечивает возмож ность расчетов на двух видах сечений. Первый тип сечений может быть получен как пересечение Sb с плоскостью, которой принадлежит отрезок Земля-Солнце. Ко вто рой группе относятся сечения, полученные пересечением Sb с плоскостями, перпенди кулярными отрезку Земля-Солнце, или расположенными под углом к направлению Земля-Солнце.

Таким образом, программа PF способна построить только двумерные графики взаимодействия Sb с ударной волной солнечного ветра. Для того чтобы построить трехмерную картину взаимодействия, мы будем многократно запускать программу

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

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

Приведем для примера фрагмент файла с именем T.10, в котором хранится плот ность.

# Three-dimensional collision of Sf and Sb: ro(tau) Первый столбец содержит величину угла некоторого полярного угла, характе ризующего точки сечения. Значения остальных столбцов соответствуют состояниям за сильными разрывами. Каждое сечение характеризуется углом углом меж ду поверхностью Sb и прямой Земля-Солнце. В программе PF этот угол кодируется трехзначным числом, полученным путем умножения на 10 угла в градусах, округ ленного до одного знака после запятой.

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

Рассмотрим фрагмент класса FileData, который отвечает за хранение всех про читанных данных и дополнительной информации.

#ifndef FILEDATA_H #define FILEDATA_H #include #include template class QSet;

template class QList;

template class QHash;

class Point;

class FileData

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

private:

Point ***pointTable;

Все данные, полученные в результате работы программы PF хранятся в дву мерном массиве pointTable указателей на экземпляры класса Point. Класс Point устроен таким образом, что все данные, относящиеся к данной точке содержатся в хеш-таблице. В качестве ключа этой таблицы используется конкатенация названия физической величины и названия сильного разрыва. Значениями таблицы являются экземпляры класса Value, а не обычные числа, чтобы мы могли кроме абсолютных значений указывать компоненты векторных величин.

Класс FileData содержит два списка tList и tauList. Координаты всех вычис ленных точек попадают в эти списки и хранятся в отсортированном виде. Перемен ные класса c, s и zeta равны соответствующим параметрам головной ударной волны.

В хеш-таблице valueWaveHash отображено соответствие между названием фи зической величины и набора сильных разрывов для нее. А в хеш-таблице valueFileNameHash названиям физических величин поставлены в соответствие на звания файлов, содержащих данные. Это удобно в том смысле, что в программе не надо жестко задавать имена файлов с данными. Если имена файлов изменятся, то программа будет по-прежнему корректно работать, если внести поправки в конфи гурационный файл.

QHash *valueWaveHash;

QHash *valueFileNameHash;

QHash *valueRangeHash;

QHash *minimumValueHash;

QHash *maximumValueHash;

QHash *tauFileNameHash;

void fillList(QSet *set, QList *list);

#endif // FILEDATA_H

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Когда данные из файлов полностью скопированы в экземпляр класса FileData, требуется решить тривиальную задачу о нахождении минимального и максималь ного значений для каждой величины. Необходимость в этом возникает при работе алгоритма выбора цвета, так как этот алгоритм должен знать пределы изменения изображаемой величины. Минимальные, максимальные значения и разность меж ду ними мы будем хранить в хеш-таблицах minimumValueHash, maximumValueHash и valueRangeHash соответственно.

3.4 Чтение и сохранение данных За чтение и сохранение данных отвечает отдельный класс FileReader. Экземпляр этого класса всегда привязан к экземпляру класса FileData. Работая в паре с ним, FileReader анализирует файлы с данными и сохраняет все необходимые значения в экземпляр класса FileData. Далее, при построении трехмерной модели работа осу ществляется только с упорядоченными специальным образом данными из FileData.

Подобный подход позволяет отделить полезную структуру данных от функций, под готавливающих данные.

Каждый набор данных сопровождается специальным конфигурационным фай лом. Рассмотрим пример такого файла. Каждый параметр задается своим именем и значением в фигурных скобках. В конфигурационном файле допустимы коммен тарии. Значения констант s и c подбираются произвольно и влияют на форму и положение головной ударной волны. Плоскость сильного разрыва солнечного ветра может быть наклонена под углом.

zeta { 25.0 } sf_height { 100.0 } sf_width_left { 50.0 } sf_width_right { 50.0 } value "Головная ударная волна (Sb)" # Исследуемые разрывы.

"Ударная волна (Sf’)" "Медленная ударная волна (Sf-)" "Медленная ударная волна (Sb-)" "Головная ударная волна (Sb’)" "Ударная волна (Sf)" value

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

"Головная ударная волна (Sb)" # Исследуемые разрывы.

"Ударная волна (Sf’)" "Контактный разрыв (C)" "Головная ударная волна (Sb’)" "Ударная волна (Sf)" vector_value "Головная ударная волна (Sb)" # Исследуемые разрывы.

"Ударная волна (Sf’)" "Преломленная альфвеновская волна (Af)" "Контактный разрыв (C)" "Отраженная альфвеновская волна (Ab)" "Головная ударная волна (Sb’)" "Ударная волна (Sf)" Так как мы можем менять форму головной ударной волны, то размер прямоуголь ника, ограничивающего плоскость падающего сильного разрыва, также необходимо корректировать. Параметры sf_height, sf_width_left и sf_width_right задают размеры ограничивающего прямоугольника.

Скалярные физические величины мы будем задавать тегом value, а векторные vector_value. В фигурных скобках перечислены название величины, имя одного или нескольких файлов с данными, имя специального файла, в котором хранится информация о точках сечения в зависимости от координаты и, наконец, список исследуемых разрывов. Такая организация конфигурационного файла очень удобна, так как можно произвольно изменять наборы входных данных без изменения главной программы.

Рассмотрим readConfigFile() класса FileReader, отвечающую за чтение конфи гурационного файла. В качестве аргумента ей передается название проекта имя директории, содержащей данные.

void FileReader::readConfigFile(QString &projectName) insideBraces = false;

valueContainsSpaces = false;

QString fileName;

fileName += DATA_DIR;

fileName += projectName;

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

fileName += CONFIG_FILENAME;

QFile file(fileName);

if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { QString projectDir = QString(DATA_DIR) + QDir directory(projectDir);

QStringList subdirs = directory.entryList(QDir::AllDirs, QStringListIterator i(subdirs);

float zeta = fileData->getZeta();

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Конфигурационный файл содержит для каждой физической величины имя фай ла со списком значений второй координаты. Рассмотрим фрагмент такого файла.

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

Множество tauSet составляется путем чтения всех таких файлов. Это множество формируется функцией fillTauSet().

void FileReader::fillTauSet(QString &projectName) tauSet->clear();

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

QSetIterator t(*tSet);

while (t.hasNext()) { QString tDir = QString(DATA_DIR) + QString("/" + projectName) + QStringListIterator tauList(tauListFileNames);

while (tauList.hasNext()) { QString tFileName(tDir + "/" + tauList.next());

while(!(line = in.readLine().simplified()).isNull()) { QStringList list = line.split(" ", QString::SkipEmptyParts);

tauSet->insert(QString::number(list.first().toFloat()/ Именно в функции fillTauSet() особенно полезно использование структуры дан ных множество. Читая файл за файлом эта функция будет встречать среди значений большое количество повторений. Но в множестве каждое значение будет хранить ся в единственном экземпляре. Сформированное множество будет преобразовано в двусвязный список, а его элементы отсортированы по возрастанию. Напомним, что этот список является членом класса FileData.

3.5 Алгоритм выбора цвета При изображении головной ударной волны цвет поверхности в каждой точке опре деляется значением рассматриваемой величины. Для определенности положим, что такой величиной является плотность. Таким образом, те точки, в которых плотность больше средней, мы окрашиваем в один цвет, а в которых меньше в другой. Про межуточные точки должны быть окрашены таким образом, чтобы переходы цветов были плавными. Встает вопрос о том, какие именно цвета использовать и как осуще ствить плавные переходы. Опишем один из путей решения такой задачи.

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Разрабатывая алгоритм выбора цвета, мы будем опираться на популярную цве товую модель RGB, согласно которой каждый цвет задается тремя числами r, g и b.

Каждое из этих чисел соответственно задает доли красного, зеленого и синего цве тов в исходном цвете. С помощью цветовой модели RGB очень легко задать плавный переход цветов как в радуге, так как при этом одно из чисел r, g или b принимает минимальное значение из возможных, второе принимает максимальное значение, а третье линейно изменяется от минимального значения к максимальному (или наобо рот). Чередуясь, эти три числа образует плавный переход между красным, желтым, зеленым, голубым, синим и фиолетовым цветами. Именно такую схему распределе ния мы и будем использовать, отбросив только фиолетовый цвет.

Предположим, что минимальное значение плотности на всей отображаемой об ласти равно нулю, а максимальное равно примем нулем, а из максимального вычтем исходное значение минимального и обозначим его буквой m. Кроме этого будем полагать, что числа r, g и b прини мают действительные значения в промежутке [0, 1]. Тогда минимальному значению плотности соответствует синий цвет (r = 0, g = 0, b = 1), а максимальному крас ный (r = 1, g = 0, b = 0). Исходя из этих соображений, можем записать выражения для функций r(x), b(x) и g(x), где x значение плотности в произвольной точке (см. рис. 3.3).

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Таким образом, подставляя значение плотности во все три функции, получим три числа, однозначно определяющие цвет. В программе для этого используется функция glColor3f(getRed(x, m), getGreen(x, m), getBlue(x, m));

Реализация функций getRed(x, m), getGreen(x, m) и getBlue(x, m) имеют сле дующий вид.

float GraphicsScene::getRed(float x, float m) float result = 0.0f;

} else if (x >= m/2.0f && x 3.0f * m/4.0f && x = 0 && x < m/2.0f) { } else if (x >= m/2.0f && x 3.0f * m/4.0f && x = 0 && x < m/4.0f) { } else if (x >= m/4.0f && x m/2.0f && x getTList();

QList *tauList = fileData->getTauList();

for (int tIndex = 0; tIndex < tList->size() - 1; tIndex++) { for (int tauIndex = 0; tauIndex < tauList->size(); tauIndex++) { glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

drawBowShockElement(d01, d02, tau1, tau2);

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Рассмотрим теперь некоторые из обработчиков событий. Обработчиком событий называется функция, вызываемая в ответ на какое-то действие (ввод с клавиатуры, сигнал таймера и др.) Например, при нажатии кнопкой мыши в области отобра жения, должен измениться внешний вид курсора. Пока пользователь удерживает нажатие, курсор имеет вид сжатой в кулак руки.

void GraphicsView::mousePressEvent(QMouseEvent *event) setCursor(QCursor(Qt::ClosedHandCursor));

Когда пользователь перестает удерживать нажатие на кнопку мыши, курсор дол жен принять исходный вид символ расслабленной руки.

void GraphicsView::mouseReleaseEvent(QMouseEvent *event) setCursor(QCursor(Qt::OpenHandCursor));

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

void GraphicsScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) QGraphicsScene::mouseMoveEvent(event);

if (event->isAccepted()) { const QPointF delta = event->scenePos() - event->lastScenePos();

if (event->buttons() & Qt::LeftButton) { Наконец, рассмотрим обработчик события, отвечающий за изменения масшта ба изображения. Реально преобразования масштаба не происходит. Увеличение или уменьшение изображения достигается соответственно уменьшением или увеличени ем расстояния distFromCamera от центра координат до наблюдателя.

void GraphicsScene::wheelEvent(QGraphicsSceneWheelEvent *event) QGraphicsScene::wheelEvent(event);

if (event->isAccepted()) {

ГЛАВА 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

distFromCamera *= pow(1.2, -event->delta() / 120);

event->accept();

Таким образом, задача визуализации трехмерного изображения в условиях дан ной задачи сводится к следующей последовательности действий. Необходимо подго товить файлы с данными, прочитать и сохранить их в программе, а затем нарисовать поверхность головной ударной волны, выбирая в каждой точке цвет с помощью ал горитма выбора цвета.

Глава Подготовка трёхмерных векторных иллюстраций 4.1 Обзор существующих средств Типы рассматриваемых приложений Для работы с компьютерной графикой доступно очень много различных про грамм. Одни из них являются универсальными инструментами, другие предназначе ны для решения конкретных задач. Рассмотреть все возможные средства в рамках одной статьи не представляется возможным. Поэтому выделим среди них несколько категорий приложений, имеющих отношение к подготовке иллюстраций в научных и методических работах, и приведём примеры для каждого типа. При этом будет рассматриваться только свободное программное обеспечение, предназначенное для работы с векторными изображениями. Это связано с тем, что векторная графика позволяет добиться наилучшего качества для представления иллюстраций.

Предполагая, что для подготовки основного текста работы используется L TEX, программы для создания изображений можно условно разделить на две основные группы. К первой мы будем относить системы, использование которых сводится к написанию набора команд напрямую в тексте работы. Эти средства встраиваемой графики являются наиболее мощными инструментами для работы с иллюстрация ми. Во вторую категорию попадают все остальные программы. Будем называть их внешними в противоположность встраиваемым системам.

Программы встраиваемой графики Стандартное окружение {picture}, входящее в состав макропакета L TEX, позво ляет создавать только очень простые рисунки. Разумеется, это не связано с недостат ком знаний или воображения разработчиков. Подобные ограничения это плата за высокую переносимость макропакета. Поэтому были разработаны различные паке ты, способные строить изображения произвольной сложности.

Пакет PSTricks является достаточно мощным, чтобы создавать сложные иллю страции, но ориентирован на работу с языком PostScript [28], что в некоторых слу чаях затрудняет его использование. Одним из самых первых графических пакетов Под векторной графикой понимают использование геометрических примитивов, которые мож но описать математическими формулами, для представления изображений. Термин используется в противоположность к растровой графике, которая сопоставляет рисунку матрицу пикселей (точек).

ГЛАВА 4. ПОДГОТОВКА ТРЁХМЕРНЫХ ВЕКТОРНЫХ ИЛЛЮСТРАЦИЙ

является X -pic. Он также предлагает большой набор возможностей, но его синтаксис весьма сложен.

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

Система PGF Более подробно остановимся на системе встраиваемой графики PGF. PGF (Portable Graphics Format формат переносимой графики) это пакет, определяю щий ряд TEX-команд для построения изображений. Программирование графики с помощью PGF подобно программированию документа с помощью TEX. Такой подход придаёт этой системе множество достоинств: быстрое создание простых ил люстраций, высокая точность, возможность использовать макросы и превосходное качество. Значительно облегчает изучение и использование PGF удобный интерфейс Tik Z [27, 29]. Чтобы дать более полное представление о том, как организована работа с графическим пакетом, приведем простой пример (рис. 4.1) из руководства по этой системе [27].

Рис. 4.1. Простой пример использования системы PGF Графики функций, изображённые на рис. 4.1, являются результатом обработки кода, из которого становится понятным, что создание качественных векторных ил люстраций требует меньше времени и сил, чем может показаться на первый взгляд.

\begin{tikzpicture}[domain = 0:4] \draw[very thin, color = gray] (-0.1, -1.1) grid (3.9, 3.9);

\draw[->] (-0.2, 0) -- (4.2, 0) node[right] {$x$};

\draw[->] (0, -1.2) -- (0, 4.2) node[above] {$f(x)$};

ГЛАВА 4. ПОДГОТОВКА ТРЁХМЕРНЫХ ВЕКТОРНЫХ ИЛЛЮСТРАЦИЙ

\draw plot (\x, {sin(\x r)}) node[right] {$f(x) = \sin x$};

\draw plot (\x, {\x*\x / 8}) node[right] {$f(x) = \frac{1}{8} x^2$};

\end{tikzpicture} Система PGF является одним из лучших средств встраиваемой графики. При этом она очень проста в использовании и хорошо документирована. Поэтому этот пакет был выбран основным средством вывода для программы построения трёхмер ных изображений, разработанной авторами.

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

Примером может служить Xg программа с графическим интерфейсом для работы с векторной графикой. В настоящий момент ведётся разработка преобразо вателя из графики Xg в PGF, но она ещё далека от завершения [27].

С задачей построения графиков функций, в том числе и объёмных, хорошо справ ляется программа Gnuplot. С помощью этой программы можно получить изображе ния в различных форматах. Среди этих форматов есть как растровые, так и вектор ные [30]. При этом к иллюстрации можно добавить подписи и формулы, содержащие команды L TEX. К сожалению, эти важные возможности нередко остаются без вни мания.

Особенностью программы Gnuplot является огромное количество настроек, что позволяет гибко настраивать внешний вид графика. При игнорировании настроек результат обычно выглядит неаккуратно. А ведь именно такой неаккуратный рису нок в растровом формате часто принимается готовой иллюстрацией. Заметим, что Gnuplot неявно используется при интерпретации кода PGF для построения графиков функций (рис. 4.1).

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

Потребность в трёхмерной графике может возникнуть в целом ряде случаев. В качестве примеров можно привести построение одного или нескольких графиков функций двух переменных, иллюстрации к задачам по стереометрии и т. д. Если для отображения графиков функций хорошо подходит Gnuplot, то с изображением произвольных объёмных объектов дело обстоит намного хуже. Рассмотрим инстру менты, способные помочь в решении этой проблемы.

Программа Sketch позволяет создавать PGF-код и ориентирована именно на по строение трёхмерных моделей [33]. Этот проект находится на ранней стадии разви тия. Но уже сейчас он способен строить достаточно сложные трёхмерные иллюстра ции [34]. Sketch представляет собой набор команд надстройку над PGF, которая

ГЛАВА 4. ПОДГОТОВКА ТРЁХМЕРНЫХ ВЕКТОРНЫХ ИЛЛЮСТРАЦИЙ

упрощает работу с пространственными объектами. Этот инструмент является гиб ким в использовании, но из-за отсутствия графического интерфейса невозможно ин терактивно перемещать, вращать и масштабировать трёхмерную модель перед фор мированием PGF-кода. Поэтому сложно визуально оценить, как наилучшим образом расположить её на иллюстрации.

Строить объёмные объекты произвольной сложности в интерактивном режиме позволяет Blender профессиональная программа визуализации трёхмерной графи ки и анимации [31]. Существует программа для генерации PGF-кода (более точно, Sketch-кода) на основе моделей, построенных в Blender [32]. Подобный подход, несо мненно, интересен, но имеет свои недостатки.

Во-первых, Blender, хотя и обладает графическим интерфейсом, в изучении ни чуть не проще, чем средства, графическим интерфейсом не обладающие. Во-вторых, Blender в большей степени ориентирован на создание художественной компьютерной графики, чем на подготовку строгих чертежей. Например, построить трёхмерную модель сферы, конуса или цилиндра в Blender легко, а способа сделать стрелку одним действием не предусмотрено. Да и вообще, сделать стрелку в Blender так, чтобы она не отличалась от PGF-стрелки, не удастся. Наконец, программа по переводу данных из Blender в Sketch развивается медленно и предлагает лишь небольшой набор возможностей.

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

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

1. Разрабатываемая программа должна иметь удобный графический интерфейс пользователя, позволяющий видеть и изменять изображение в процессе постро 2. Программа не должна являться полностью самостоятельной (внешней), так как не сможет предоставить широкого набора возможностей, присущего таким гра фическим пакетам, как PGF. Более разумным представляется подход, когда программа для работы с трёхмерной графикой является интерфейсом для су ществующих средств, так как сформированное изображение можно будет сде лать встраиваемым. Это гарантирует соответствие иллюстрации с текстом и позволяет делать другие иллюстрации в той же работе без использования гра фической оболочки.

3. Важным моментом является отсутствие ограничений на типы входных данных.

Для этого необходимо реализовать механизм отображения произвольных трёх

ГЛАВА 4. ПОДГОТОВКА ТРЁХМЕРНЫХ ВЕКТОРНЫХ ИЛЛЮСТРАЦИЙ

мерных моделей, а архитектура программы должна способствовать лёгкому добавлению поддержки различных форматов данных.

Таким образом, суть задачи состоит в разработке программного обеспечения, спо собного обеспечить соответствие между интерактивным трёхмерным изображением и кодом, описывающим векторную иллюстрацию.

Некоторые моменты реализации Интерактивные трёхмерные изображения, то есть такие изображения, которые способны реагировать на воздействия со стороны пользователя, позволяет строить графическая библиотека OpenGL2 [35]. Она не только формирует изображение, но и позволяет осуществлять его масштабирование и вращение вокруг осей (рис. 4.2).

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

Каждая точка трёхмерной фигуры задаётся тремя координатами. Эти координа ты постоянны и не зависят от угла обзора. Средствами библиотеки OpenGL каждая точка фигуры проецируется на плоскость экрана монитора. Координаты точек в двумерной системе координат, связанной с экраном, называются их экранными ко ординатами. Такие координаты можно получить с помощью режима обратной связи OpenGL [37]. В режиме обратной связи информация о преобразованных примитивах помещается в возвращаемый массив значений с плавающей запятой. Возвращаемые Строго говоря, OpenGL является программным интерфейсом к графическому оборудова нию [36].

ГЛАВА 4. ПОДГОТОВКА ТРЁХМЕРНЫХ ВЕКТОРНЫХ ИЛЛЮСТРАЦИЙ

значения состоят из маркеров, указывающих тип примитива (точка, линия, много угольник, растровое изображение или битовый образ), сопровождаемых вершинами, цветом и другими данными. Воспользоваться таким буфером позволяет функция glFeedbackBuffer(). На основе экранных координат можно составить набор команд встраиваемой графики, которые будут описывать текущее трёхмерное изображение.

Такой способ очень удобен, так как автоматизирует преобразование из одной си стемы координат в другую, а также расчёт цвета каждой вершины с учётом источ ников освещения. С другой стороны, механизм обратной связи не может передать информацию о сплайнах, невидимых гранях объектов и другие полезные данные.

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

Следует заметить, что текст и формулы передаются специальным образом. Каж дая подпись задаётся в двух вариантах: обычная строка в кодировке Unicode для отображения средствами OpenGL и строка, которая будет вставлена в код итогового изображения. Подобный подход позволяет добавлять к иллюстрации текст, содержа щий команды L TEX, не загромождая интерактивное изображение спецсимволами.

Таким образом, буфер обратной связи и ряд вспомогательных средств позволяют сделать нечто вроде фотографии трёхмерной модели, которую можно сохранить в файл формата.tex. На основе данных из этого файла стандартный интерпретатор L TEX может сформировать готовую иллюстрацию.

Рис. 4.3. Структура программы. Стрелками обозначены возможные преобразования данных

ГЛАВА 4. ПОДГОТОВКА ТРЁХМЕРНЫХ ВЕКТОРНЫХ ИЛЛЮСТРАЦИЙ

Хранение и преобразование данных Данные, описывающие трёхмерные модели могут храниться в разных форматах.

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

Реализация поддержки разных форматов данных напрямую в программе сдела ет её архитектуру слишком сложной. Кроме того, отсутствие расширяемости ведёт к ограниченным возможностям. Поэтому разработанная программа имеет модуль ную структуру и состоит из трёх основных компонентов: приложения (исполняемого файла), набора динамических библиотек и модулей расширения, которые также яв ляются динамическими библиотеками (рис. 4.3).

Модули расширения ориентированы на перевод из произвольного формата дан ных в единый общий формат передачи данных внутри приложения, который описан в библиотеках и является частью программного интерфейса для создания дополне ний. Динамические библиотеки также предоставляют программный интерфейс для перевода данных обратно в выходные форматы. На риc. 4.3 стрелками изображены возможные последовательности преобразования данных.

Исполняемый файл включает в себя только графический интерфейс пользовате ля и механизм отображения данных, полученных из общего формата. Такая структу ра программы позволяет добавлять новые возможности, не изменяя её центральные части. Чтобы реализовать поддержку нового формата данных или набор геомет рических фигур, заданных программно, необходимо просто создать подключаемый модуль и поместить его в поддиректорию plugins в папке приложения.

Возможные обобщения рассматриваемой задачи Разработанная программа способна формировать каркасы трёхмерных моделей с набором подписей, что удовлетворяет сформулированным требованиям и позволяет применять её во многих случаях. Но круг охватываемых программой задач можно значительно расширить, внеся в неё следующие изменения:

1) возможность делать цветные изображения и накладывать текстуры на трёх мерные модели;

2) поддержка отсечения невидимых граней объектов и отображение невидимых рёбер пунктиром заданного образца;

3) интерактивное создание таких элементарных геометрических объектов, как точ ки, отрезки, стрелки, дуги и т. д.;

4) создание многослойных двумерных изображений и возможность их комбиниро вания с трёхмерными;

5) библиотеки инструментов, позволяющие быстро решать наиболее типичные за дачи (оформление графиков функций, составление электрических цепей и т. д.) Этот список можно продолжить. Но независимо от количества и типа добавля емых в программу функций её структура не изменится. Расширение возможностей

ГЛАВА 4. ПОДГОТОВКА ТРЁХМЕРНЫХ ВЕКТОРНЫХ ИЛЛЮСТРАЦИЙ

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

4.3 Применение к задаче взаимодействия ударных Задача взаимодействия ударных волн Идея разработки программы для построения трёхмерных векторных изображе ний возникла из-за необходимости специальным образом изобразить результаты рас чётов задачи взаимодействия ударной волны солнечного ветра и околоземной голов ной ударной волны в сильном межпланетном магнитном поле. Ранее решение было найдено и представлено набором двумерных графиков, описывающих изменения фи зических параметров среды (плотности, давления, скорости, магнитного поля) в семи волнах и разрывах, образующихся при взаимодействии, в зависимости от одной из локальных переменных (угла наклона головной ударной волны или азимутального угла вдоль её поверхности) [38]. Для лучшего понимания такого представления рассмотрим постановку задачи более подробно.

Ударные волны могут возникать в солнечном ветре в силу различных причин (при опрокидывании волн сжатия, из-за вспышек на Солнце и корональных выбро сов солнечного вещества, при взаимодействии различных разрывов в свободном по токе солнечного ветра и т. д.) и вследствие этого имеют сложную пространствен ную структуру. Точно описать их геометрию в настоящее время не представляется возможным. С целью максимального упрощения геометрии взаимодействия и выяв ления наиболее значимых эффектов ударного воздействия на магнитосферу Земли ударная волна солнечного ветра Sf была аппроксимирована плоскостью, ортогональ ной линии, соединяющей центры Солнца и Земли [38]. С той же целью поверхность головной ударной волны Sb была описана геометрически с помощью двух угловых координат и, но её форма не была конкретизирована заданием расстояния точки на ее поверхности от начала координат r = r(, ), неявно предполагалось лишь, что наклон Sb монотонно (но необязательно гладко) уменьшается при распространении Таким образом, каждое найденное решение задачи о произвольном разрыве, воз никшем в результате взаимодействия Sf и Sb, было параметрически связано с неко торой точкой на поверхности Sb. Ударная волна солнечного ветра Sf, перемещаясь по Sb, в каждый момент времени пересекает её по некоторой линии LSf Sb, которая определяется зависимостью r = r(, ), и в случае, когда Sb является поверхностью вращения, может быть задана углом. Следовательно, зависимость от времени при перемещении фронта Sf по поверхности Sb преобразуется в параметрическую зави симость от. Точка на линии LSf Sb дополнительно задаётся азимутальным углом наклона нормали к поверхности Sb к плоскости эклиптики z = 0.

Взаимодействие ударной волны солнечного ветра и головной ударной волны было исследовано в рамках магнитогидродинамической модели [38]. Согласно этой модели, при столкновении двух ударных волн образуется набор новых волн различного типа, причём волновая картина течения может изменяться в процессе перемещения Sf по Sb и зависит от параметров солнечного ветра и интенсивности Sf (например, числа Маха). Вычисление скачков различных физических величин за каждой из образующихся волн и является главной целью рассматриваемой задачи.

ГЛАВА 4. ПОДГОТОВКА ТРЁХМЕРНЫХ ВЕКТОРНЫХ ИЛЛЮСТРАЦИЙ

Рис. 4.4. Графики распределений некоторых физических величин для сече ния = 60 ; x-компонента напряжённости магнитного поля (а); плотность (б);

y-компонента скорости (в); z-компонента напряжённости магнитного поля (г) Двумерное представление решения Для построения двумерных графиков использовалась информация о состоянии за головной ударной волной, преломлённой быстрой ударной волной, преломлённым альфвеновским, контактным и отражённым альфвеновским разрывами, отражённой быстрой ударной волной и ударной волной солнечного ветра. Эти волны обознача ются символами Sb, Sf, Af, C, Ab, Sb и Sf соответственно.

Заметим, что все исследуемые физические величины (плотность, давление, ско рость и напряжённость магнитного поля) являются безразмерными в рамках постро енной модели. Поэтому на графиках изображаются не конкретные их значения, а отношение этих величин к параметрам солнечного ветра. Примером могут служить распределения компонент Hx и Hz напряжённости магнитного поля, плотности и компоненты скорости vy в зависимости от для сечения = 60 (рис. 4.4). Измене ние соответствующей компоненты величины в каждой волне равно разности ординат кривых, описывающих состояние за этой и предыдущей волнами.

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

ГЛАВА 4. ПОДГОТОВКА ТРЁХМЕРНЫХ ВЕКТОРНЫХ ИЛЛЮСТРАЦИЙ

зации становится совершенно необходимым.

Рис. 4.5. Распределение некоторых физических величин в цилиндрической систе ме координат; x-компонента напряжённости магнитного поля (а); плотность (б);



Pages:     || 2 |
Похожие работы:

«1 ИНСТИТУТ КУЛЬТУРОЛОГИИ И МУЗЕЕВЕДЕНИЯ АННОТАЦИИ УЧЕБНЫХ ПРОГРАММ ПО СПЕЦИАЛЬНОСТИ КУЛЬТУРОЛОГИЯ 1. ИСТОРИЯ КУЛЬТУРОЛОГИЧЕСКИХ УЧЕНИЙ Учебная программа по специальности 031401 Культурология, квалификация Культуролог Составители: А. П. Краснопольская, канд. филос. наук, ст. преп. О.Н. Луканина, преподаватель Курс История культурологических учений преподатся на втором и третьем курсах для студентов-культурологов и является во многом базовым для студентов данной специальности. В нм затрагивается...»

«Р. И. Идрисов ОБЛАЧНЫЙ СЕРВИС ДЛЯ НАУЧНЫХ ВЫЧИСЛЕНИЙ И ОБРАЗОВАНИЯ 1 ВВЕДЕНИЕ На сегодняшний день всё большую популярность набирают облачные сервисы. Конечно, зачастую под активно употребляемым словом облачный скрываются обычные вещи, которые просто были названы по-новому. Согласно последней редакции российской Википедии2, на момент написания статьи облачный сервис – это просто некоторый доступный ресурс в сети, который может быть использован без знания его внутренней структуры. Статистика...»

«Государственное бюджетное общеобразовательное учреждение Самарской области средняя общеобразовательная школа Образовательный центр п.г.т. Рощинский муниципального района Волжский Самарской области Рассмотрено Согласовано Утверждаю на заседании МО учителей ИОД Председатель ПК ОУ Директор ОУ Руководитель МО _ / О.Н.Степанова / О.И. Рубина / С.А. Малкина 10 сентября 2012 г. 14 января 2012 г. 03 сентября 2012 г. Календарно – тематическое планирование курса ИСТОРИИ Классы 5А, 5Б, 5В, 5Г Учитель...»

«ПРАВОСЛАВНЫЙ СВЯТО-ТИХОНОВСКИЙ ГУМАНИТАРНЫЙ УНИВЕРСИТЕТ Богословский факультет Магистратура (форма обучения – очная) Направление Религиоведение 2009 г. ПРОГРАММА ВСТУПИТЕЛЬНЫХ ЭКЗАМЕНОВ И КРИТЕРИИ ОЦЕНОК Зачисление в магистратуру происходит на основании результатов двух вступительных экзаменов: 1) представление реферата по предполагаемой теме магистерской диссертации 2) экзамена по Религиоведению. Экзамены оцениваются по пятибальной системе. 1) Представление реферата. Реферат по предполагаемой...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Ярославский государственный университет им. П.Г. Демидова Юридический факультет УТВЕРЖДАЮ Проректор по развитию образования _Е.В. Сапир _2012 г. Рабочая программа дисциплины послевузовского профессионального образования (аспирантура) Английский язык по специальности научных работников 12.00.05 Трудовое право; право социального обеспечения Ярославль 2012 2 1. Цели освоения дисциплины Целями освоения дисциплины Английский язык в соответствии с...»

«1 Рабочая программа учебной дисциплины ХИМИЯ разработана на основе Федерального государственного образовательного стандарта (далее – ФГОС) по профессии начального профессионального образования (далее НПО). Программа учебной дисциплины разработана на основе примерной программы учебной дисциплины Химия Габриелян О. С. для профессий начального профессионального образования и специальностей среднего профессионального образования. М. 2008., для обучающихся по профессии: 190623.01 Машинист...»

«WWW.MEDLINE.RU, ТОМ 12, ПУЛЬМОНОЛОГИЯ, МАРТ 2011 БРОНХИАЛЬНАЯ АСТМА И ТАБАКОКУРЕНИЕ В.В. Гноевых, А.Ю. Смирнова, Ю.С. Нагорнов, Е.А. Шалашова, А.А. Куприянов, Ю.А. Портнова Ульяновский государственный университет [email protected] Резюме Табакокурение у больных бронхиальной астмой (БА) потенцирует воспаление малых дыхательных путей, ухудшает вентиляционную способность лёгких, оказывает дополнительное негативное влияние на кислородотранспортную функцию крови, вызывает адаптивные...»

«Министерство культуры Российской Федерации ФГБОУ ВПО Российская академия музыки имени Гнесиных Основная образовательная программа высшего профессионального образования Направление подготовки 073100.62 Музыкально-инструментальное искусство Профиль Баян, аккордеон и струнные щипковые инструменты Квалификация (степень) Бакалавр Форма обучения – очная Нормативный срок обучения – 4 года Направление подготовки утверждено приказом Минобрнауки России От 06.04.2011 № 1464 зарегистрированным Минюстом...»

«Содержание курса по предмету Физическая культура 10 -11 классы Цели обучения в 10-11 классах Общей целью образования в области физической культуры является формирование у учащихся устойчивых мотивов и потребностей в бережном отношении к своему здоровью, целостном развитии физических и психических качеств, творческом использовании средств физической культуры в организации здорового образа жизни. В соответствии с этим, Рабочая программа среднего (полного) общего образования своим предметным...»

«Данилов Д.Д., Кузнецов А.В., Лисейцев Д.В. РАБОЧАЯ ПРОГРАММА ИСТОРИЯ РОССИИ И ВСЕОБЩАЯ ИСТОРИЯ 5 – 9 КЛАССЫ Программа составлена в соответствии с требованиями Федерального государственного образовательного стандарта основного общего образования и обеспечена УМК для 5–9 классов авторов Д.Д. Данилова, А.В. Кузнецова, Д.В. Лисейцева, В.А. Клокова, В.А. Рогожкина, Н.С. Павловой, Е.В. Сизовой, С.М.Давыдовой, С.С.Кузнецовой и других1. I. Пояснительная записка Каковы главные проблемы современного...»

«Стоимость обучения для иностранных граждан, обучающихся на 1 курсе в 2014/2015 учебном году на условиях договора о компенсации затрат по программам бакалавриата ОЧНАЯ ФОРМА ОБУЧЕНИЯ Страны ближнего Страны Код зарубежья и дальнего Наименования направлений подготовки. Балтии, тыс. руб. зарубежья, в год тыс. руб. в год 01.00.00 МАТЕМАТИКА И МЕХАНИКА Прикладная математика и информатика - Математическое моделирование 01.03.02 - Системное программирование 127,0 138, - Математическое и информационное...»

«2 1. Цели освоения дисциплины. Целями освоения дисциплины (модуля) Управление техносферной безопасностью являются подготовка специалистов, в области основ обеспечения, управления техносферной безопасностью, формирование у студентов знаний в области взаимодействия организма человека с факторами окружающей среды, о медико-биологических последствиях воздействия на людей вредных и опасных факторов среды обитания, о санитарно-гигиеническом их нормировании, получение высшего профессионально...»

«РОССИЙСКАЯ ФЕДЕРАЦИЯ РОСТОВСКАЯ ОБЛАСТЬ МУНИЦИПАЛЬНОЕ ОБРАЗОВАНИЕ ГОРОД ТАГАНРОГ АДМИНИСТРАЦИЯ ГОРОДА ТАГАНРОГА ПОСТАНОВЛЕНИЕ 20.04.2011 № 1179 Об утверждении отчета о ходе работ по выполнению в 2010 году Долгосрочной целевой программы мероприятий по охране окружающей среды города Таганрога на 2010-2013 гг., утвержденной постановлением Мэра города Таганрога от 28.01.2009 №601 В соответствии с Бюджетным кодексом Российской Федерации, Решением Городской Думы города Таганрога от 25.10.2007 № 536...»

«1 УТВЕРЖДАЮ Ректор Кубанского ГАУ, профессор _ А.И. ТРУБИЛИН 26 января 2010 г. ПРАВИЛА ПРИЁМА В федеральное государственное образовательное учреждение высшего профессионального образования КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ на 2010/2011 учебный год 1 Общие положения В целях организации приема в Кубанский государственный аграрный университет в 2010 году Учный совет университета утверждает следующий порядок приема. 1. Настоящие правила приема регламентируют прием граждан Российской...»

«Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Саратовский государственный аграрный университет им Н.И. Вавилова Согласно Утверждаю Декан ФВМиБТ Проректор по учебной работе _А.В. Молчанов _С.В. Ларионов _2013 г. 2013 г. МОДУЛЬНАЯ РАБОЧАЯ ПРОГРАММА по дисциплине Основы животноводства Специальность 110201 – Агрономия Факультет – Агрономический Кафедра технологии производства продуктов животноводства и племенного дела Курс 3 Объем дисциплины...»

«Уголовный процесс Учебник 2-е издание, переработанное и дополненное Под редакцией докторов юридических наук Б. Б. Булатова, А. М. Баранова Допущен УМО по юридическому образованию в качестве учебника для студентов высших учебных заведений, обучающихся по направлению и специальности Юриспруденция москва • юрайт • 2011 УДК 34 УДК 34 ББК 67.411я73 ББК 67.411я73 У26 У26 Уголовный процесс учебник для вузов / Б. Булатова, БулатоУголовный процесс :: учебник / под ред. Б. под ред. Б. Б.А. М. Баранова. —...»

«ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ Методика преподавания психологии Утверждаю Ректор Института государственного администрирования д.э.н., профессор Тараканов В.А. для студентов специальности 030301.65 Психология Методика преподавания психологии Цели и задачи дисциплины Цель курса состоит в формировании у студентов знаний теоретических основ, структуры и содержания методики преподавания психологии, умений проводить объяснение, отработку, закрепление и контроль психологических знаний и действий на...»

«1 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ УТВЕРЖДАЮ Заместитель Министра образования и науки Российской Федерации А.Г.Свинаренко 31 января 2005 г. Номер государственной регистрации № 704 пед/сп (новый) ГОСУДАРСТВЕННЫЙ ОБРАЗОВАТЕЛЬНЫЙ СТАНДАРТ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ Специальность 032700.00 Юриспруденция с дополнительной специальностью Квалификация учитель права и _ (в соответствии с дополнительной специальностью) Вводится в действие с момента переутверждения вместо...»

«Рабочая программа по литературному краеведению (8 класс) Пояснительная записка Но более всего любовь к родному краю Меня томила, мучила и жгла. С. Есенин. Краеведение своими корнями уходит в далекое прошлое. У всех народов, во все времена были люди, которые хорошо знали окружавшую их местность, ее природу, прошлое и современную жизнь, фольклор. Безвестные народные краезнатцы были знатоками родных мест. Свои знания исторического, географического, культурного характера устно или в различных...»

«МИНИСТЕРСТВО ЗДРАВООХРАНЕНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ УТВЕРЖДАЮ Министр здравоохранения Республики Беларусь В.И.Жарко 200_ г. Регистрационный номер _ ОФТАЛЬМОЛОГИЯ программа интернатуры СОГЛАСОВАНО СОГЛАСОВАНО Директор государственного учреждения Главный внештатный Республиканский методический центр по офтальмолог высшему и среднему медицинскому и Министерства здравоохранения фармацевтическому образованию Республики Беларусь С.В.Жаворонок Т.А.Имшенецкая 200 _ г. _ 200 г. Ректор учреждения...»




























 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.