Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией Иванов Илья Александрович

Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией
<
Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Иванов Илья Александрович. Конечноэлементное моделирование электромагнитных полей в трехмерных областях с сильно разномасштабной геометрией : диссертация ... кандидата технических наук : 05.13.18.- Новосибирск, 2005.- 182 с.: ил. РГБ ОД, 61 06-5/1482

Содержание к диссертации

Введение

1. Методы построения трехмерных сеток 14

1.1. Обзор методов построения нерегулярных тетраэдральных сеток 14

1.2. Метод тиражируемых сечений 18

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

1.2.2. Формирование информации об узлах трехмерной сетки 22

1.2.3. Формирование информации о конечных элементах при проходе по сечениям 23

1.3. Автоматизация метода тиражируемых сечений 24

1.3.1. Автоматическая генерация частично совпадающих промежуточных сечений 26

1.3.2. Задание различного количества промежуточных сечений на сегменте 32

1.3.3. Анализ работы предложенных автоматических процедур 35

1.4. Выводы 39

2. Обобщенный метод тиражируемых сечений 40

2.1. Поиск образов треугольников грубой триангуляции в подробной 43

2.1.1. Поиск образов узлов грубой триангуляции в подробной 44

2.1.2. Поиск образов ребер грубой триангуляции в подробной... 50

2.1.3. Поиск треугольников подробной триангуляции, лежащих внутри ограничивающего контура. 59

2.2. Построение тетраэдров в локальном объеме 61

2.3. Формирование подобластей в образе треугольника грубой триангуляции. Фронтальный способ 70

2.4. Построение тетраэдров в локальном объеме в особых случаях 74

2.5. Формирование подобластей в образе треугольника грубой триангуляции. Второй способ: формирование по образцу 79

2.6. Обработка локальных объемов, для которых не удалось построить разбиение образа треугольника грубой триангуляции на подобласти 86

2.7. Совместное использование стандартной и обобщенной схемы построения тетраэдров 96

2.8. Выводы 96

3. Решение задач на сетках, построенных стандартным и обобщенным методом тиражируемых сечений 104

3.1. Математическая модель 105

3.2. Оценка точности решения на примере модельной задачи с осесимметричной геометрией 106

3.2.1. Построение сетки для трехмерной задачи 107

3.2.2. Анализ результатов 111

3.3. Моделирование вихревых полей в тонкостенной металлической трубе 115

3.3.1. Построение сетки 116

3.3.2. Анализ результатов 117

3.4. Моделирование вихревых полей в обшивке самолета 122

3.4.1. Построение сетки 123

3.4.2. Влияние вытянутых элементов на точность получаемого решения 124

3.4.3. Анализ результатов моделирования ЭМ поля самолета 127

3.5. Влияние упорядоченности узлов конечноэлементной сетки на скорость сходимости решения СЛАУ 136

3.5.1. Сравнение критериев сортировки 137

3.5.2. Зависимость скорости сходимости решения СЛАУ от ширины профиля матрицы 139

3.6. Выводы 141

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

4.1. Архитектура библиотеки 145

4.2. Механизм взаимодействия с элементами пользовательского интерфейса 147

4.3. Структура классов библиотеки 152

4.4. Схема взаимодействия классов библиотеки 158

4.5. Реализация обобщенного метода тиражируемых сечений с использованием ООП 160

4.6. Трехмерный препроцессор пакета математического моделирования ТЕША 168

4.7. Выводы 171

Заключение 172

Список использованных источников 174

Введение к работе

Сеточные методы являются в настоящее время основным инструментом решения наиболее сложных краевых задач для дифференциальных уравнений в частных производных, описывающих различные физические процессы. При этом одним из наиболее мощных методов численного моделирования с использованием аппроксимаций на сетках является метод конечных элементов (МКЭ) [29, 30, 55, 58, 70-80, 84]. Практически неограниченная точность описания всех границ геометрически сложных объектов и широкие возможности использования нерегулярных сеток с локальными сгущениями и разрежениями узлов сделали МКЭ очень популярным среди исследователей, ставящих перед собой задачу получения точных характеристик изучаемых процессов методами математического моделирования.

Проблема построения конечпоэлементных сеток является одной из важнейших при решении различных задач с использованием МКЭ [2-6, 8-11, 14-17, 19, 21-27, 31, 34-38, 52, 53, 62]. Значительное внимание, уделяемое исследователями этой проблеме, объясняется тем, что очень часто от того, насколько эффективно удается выполнить дискретизацию расчетной области, зависит сама возможность решения конкретной практической задачи с нужной точностью. Немалую роль при этом играет форма используемых для дискретизации элементов. Поэтому столь велик интерес исследователей к различным процедурам построения двумерных и трехмерных триангуляции, то есть сеток, ячейки которых являются треугольниками в двумерном случае и треугольными пирамидами (тетраэдрами) в трехмерном случае. Этот интерес связан с тем, что именно процедуры построения триангуляции дают возможность получить существенно неравномерные согласованные сетки как с разрежениями узлов в одних подобластях расчетной области, так и с локальными сгущениями узлов в тех ее подобластях, где аппроксимация решения наиболее затруднена. При этом использование неравномерных нерегулярных сеток часто позволяет при фиксированном числе узлов существенно умень-

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

Для двумерного случая в научных публикациях можно встретить достаточно много различных подходов к решению проблемы построения конеч-ноэлементных сеток [4, 5, 8, 10, 14, 24, 27, 37, 52, 61, 62, 70, 84]. Сюда относятся и различные модификации широко известных алгоритмов построения триангуляции Делоне [8, 24] (например, алгоритма Ватсона [37]), и методы автоматизированного построения адаптивных сеток [52, 84, 5, 14], и различные фронтальные методы [10]. Данные методы достаточно хорошо изучены и в настоящее время уже не вызывают столь большого интереса.

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

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

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

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

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

При отсутствии корректного разрежения узлов сетки в задачах с разномасштабной геометрией расчетной области возможны и более негативные последствия. При определенных условиях в такой сетке могут оказаться сильно вытянутые элементы, то есть элементы, у которых минимальная и максимальная длина ребер имеет отношение порядка 1:1000 и менее. Наличие таких элементов значительно ухудшает свойства матрицы аппроксимирующей СЛАУ. Это, во-первых, приводит к существенному ухудшению сходимости итерационного процесса при решении такой СЛАУ и, следовательно, к повышению временных затрат на решение задачи. Во-вторых, из-за плохой обусловленности матрицы может оказаться затруднительно получить решение с необходимой точностью. Таким образом, узлы не просто могут оказаться "лишними", но и привести к невозможности получить решение СЛАУ, а следовательно и всей задачи, с требуемой точностью.

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

8 с разномасштабной геометрией в современных пакетах математического моделирования вызывает значительные сложности. Так, например, в пакете ANSYS [1] с настройками по умолчанию при попытке задать объект с размерами значительно меньшими размеров всей расчетной области он был просто проигнорирован системой, которая сочла его пренебрежимо малым.

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

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

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

На защиту выносится:

1. Процедуры автоматической генерации частично совпадающих промежуточных и основных сечений для известной модификации метода тиражируемых сечений, позволяющие облегчить работу оператора, задающего сетку, и без ущерба для точности получаемого решения сократить количество узлов в сетке на 15-70% в зависимости от особенностей задачи.

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

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

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

Научная новизна работы состоит в следующем:

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

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

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

  4. Проведено исследование влияния вытянутых элементов сетки на точность получаемого решения.

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

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

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

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

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

Апробация работы. Основные результаты работы были представлены и докладывались на: региональной научной конференции «Наука. Техника. Инновации» (Новосибирск, 2002, 2003гг); российской научно-технической конференции «Информатика и проблемы телекоммуникаций» (Новосибирск, 2004г); Международной конференции по вычислительной математике МКВМ-2004 (Новосибирск, 2004г); VII международной конференции «Актуальные проблемы электронного приборостроения» (Новосибирск, 2004г); The Eighth Korea-Russia International Symposium on Science and Technology KORUS 2004 (Томск, 2004г). Работа поддержана грантом Федерального агентства по образованию № А04-8-704.

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

Структура работы. Диссертация состоит из введения, четырех глав, заключения и списка использованных источников (85 наименований). Работа изложена на 182 страницах, включая 60 иллюстраций и 22 таблицы.

Краткое содержание работы.

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

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

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

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

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

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

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

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

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

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

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

В заключении приводятся основные результаты данной диссертационной работы.

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

Для построения тетраэдральной сетки между двумя сечениями сначала строится сетка из треугольных призм с основаниями, полученными из одного и того же треугольника базовой плоскости. Если призма не вырождена (то есть все ее вершины различны), то каждая четырехугольная грань призмы может быть разбита на два треугольника. При этом из двух возможных разбиений выбирается в каждом случае то, при котором самый тупой угол в полученных треугольниках будет минимальным. Если возможные разбиения близки по этому критерию (например, это справедливо для прямоугольной грани), то строится диагональ из вершины с меньшим номером. Всего возможно 8 (23) вариантов разбиения граней призмы. Эти варианты показаны на рис.1 Л-рис.1.2. Для шести из них призму всегда можно разбить на 3 тетраэдра (см. рис. 1.1), а в двух оставшихся случаях (см. рис. 1.2) ставится точка внутрь призмы и строится 8 тетраэдров [10, 19].

Отличительной особенностью такого подхода является то, что согласованная сетка строится без хранения информации о соседних треугольниках в сечении, в отличие от подходов, предлагаемых в большинстве публикаций (см., например, работы [19, 23]).

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

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

В [63] предложен специальный способ хранения координат узлов, не требующий дополнительных затрат на сохранение информации о перенумерации узлов. Его суть заключается в следующем. Массив, в котором хранятся координаты узлов, изначально инициализируется кодами чисел, заведомо не являющимися координатами точек (например, NAN=Not A Number). Для проверки того, что узел уже обработан, используется его первая координата. Вторая координата используется для хранения номера нефиктивного узла, с которым совпадает рассматриваемый узел, если он фиктивный (для случая совпадения узлов на соседних сечениях). При этом третья координата обработанных фиктивных узлов все равно будет содержать код инициализации, по которому и определяется фиктивность узла.

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

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

Если рассматривать случай плоскопараллельных сечений без пустот, то алгоритм создания списка конечных элементов оперирует только с номерами узлов сетки, и для его работы не нужна информация о координатах этих узлов. В остальных случаях производится вычисление координат всех неопре 24 деленных ранее вершин призмы с помощью функции node" (m,&). Затем вычисляются длины трех боковых ребер призмы. Если длина какого-то ребра равна нулю, то вершина этого ребра, принадлежащая сечению с большим номером, помечается как совпадающая с соответствующей вершиной предыдущего сечения, то есть во вторую ее координату заносится номер узла предыдущего сечения (если узел предыдущего сечения также фиктивный, то копируется его вторая координата), а в третью координату - пометка о фиктивности узла. Полученные при разбиении такой призмы вырожденные тетраэдры, содержащие две вершины с одинаковым номером, не записываются в список конечных элементов. Такая обработка вырожденных призм никак не влияет на согласованность сетки.

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

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

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

Внутренние треугольники будем искать фронтальным методом. Начальный фронт формируется из треугольников, хоть одно ребро которых принадлежит контуру и третья вершина лежит внутри контура. Чтобы проверить положение вершины Vk определяется знак скалярного произведения {Vk,n), где п = (Рм-Р-У , РІРІ+\ - ребро контура. Если скалярное произведение положительно, то вершина лежит внутри контура. Учитывая, что ограниченная контуром фигура может иметь связи только по ребрам, то такие ребра следует исключить из обработки, так как для таких ребер не существует треугольников, лежащих внутри контура. Далее формируется новый фронт из треугольников, являющихся соседями треугольников из фронта с предыдущего шага. Естественно, уже обработанные треугольники в новый фронт не попадают. Процесс повторяется до тех лор, пока очередной фронт не будет содержать ни одного треугольника.

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

Рассмотрим возможный способ разбиения локального объема на тетраэдры [64, 65, 67]. Пусть локальный объем образован треугольником ABC грубой триангуляции и многоугольником А В С" в подробной триангуляции, где А\ В1 и С образы соответствующих узлов грубой триангуляции в подробной. Как и при поиске образов треугольников грубой триангуляции в подробной, при построении тетраэдров мы не будем учитывать локальный рельеф, возможно заданный на сечениях. Необходимо лишь, чтобы ребра построенных тетраэдров не пересекали треугольники подробной триангуляции, содержащиеся в образе треугольника грубой триангуляции.

Рассмотрим один отдельный локальный объем, представленный на рис.2.8. Пусть образ А В С треугольника ABC грубой триангуляции разбит на три подобласти A S{OSi, B S OSl и C S OS , как это показано на рис.2.8. Каждая из этих трех подобластей соответствует одной из вершин треугольника грубой триангуляции. Узел, принадлежащий всем трем подобластям, будем называть центральной точкой (точка О, см. рис.2.8). Узлы, принадлежащие двум подобластям и лежащие на образах ребер треугольника грубой триангуляции, будем называть особыми точками (точки S{, S2 и 5%, см. рис.2.8). Путь от особой точки к центральной является границей между двумя соседними подобластями. Ребра, образующие границу подобластей, будем называть также особыми. Так как особая точка принадлежит двум подобластям, а подобласти связаны с вершинами треугольника грубой триангуляции, то мы будем говорить о соответствии особой точки двум вершинам этого треугольника (например, особой точке S[ соответствуют вершины А и В, точке S2 — вершины В и С, точке 5з -вершины С и А, см. рис.2.8).

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

Все треугольники, принадлежащие одной подобласти, соединяются с соответствующей вершиной треугольника грубой триангуляции, образуя тетраэдры, заполняющие локальный объем. Так формируются тетраэдры A S[OA, A S OA для подобласти A S{OS 3, тетраэдры B S2OB, B S[OB для подобласти B S 2OS{ и тетраэдры C S OC, CS2OC для подобласти CS OS2 (см. рис.2.8). Такие тетраэдры будем называть тетраэдрами первого типа или базовыми.

Далее нужно построить тетраэдры, которые должны целиком заполнить локальный объем. Рассмотрим ребро S{0, принадлежащее двум подобластям (Л) и () (см. рис.2.8). К этому ребру уже примыкают две грани AS[0 и BS{0 от базовых тетраэдров. Очевидно, что мы должны добавить тетраэдр, который также будет содержать эти грани (это необходимо для согласованности сетки). В данной ситуации это единственно возможный тетраэдр ABS[0. То есть, для каждого особого ребра PtPM, разделяющего области (Х) и (Y) (которые, в свою очередь, связаны с вершинами X и Y треугольника грубой триангуляции), нужно построить тетраэдр Р МХУ. Такие тетраэдры будем называть тетраэдрами второго типа. После этого останется полость, которую можно заполнить одним тетраэдром третьего типа, образованным треугольником грубой триангуляции и узлом подробной триангуляции, принадлежащим всем трем подобластям (тетраэдр АВСО, см. рис.2.8).

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

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

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

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

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

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

Оценка точности решения на примере модельной задачи с осесимметричной геометрией

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

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

Триангуляция поперечного сечения цилиндра для упрощенного случая приведена на рис.3.2а. Это сечение используется в качестве базового. С учетом симметрии относительно плоскостей х = 0 и у = 0 задача решается только в первой координатной четверти.

Основную сложность при построении трехмерной сетки представляют собой тонкие стенки цилиндра. Если строить сетку стандартным методом, то тиражирование базового сечения приведет к появлению вытянутых тетраэдральных элементов. На рис.3.2б показан фрагмент сечения упрощенной тетраэдральной сетки, построенной стандартным методом, плоскостью симметрии х=0. Чтобы избежать неоправданных вычислительных затрат при удалении от цилиндра сетку целесообразно разрежать, поэтому шаги вдоль оси Z постепенно увеличиваются. Но при этом узлы, необходимые для аппроксимации решения в тонких стенках цилиндра по прежнему присутствуют на всех поперечных сечениях, в результате образуются тетраэдры, у которых горизонтальные ребра имеют значительно меньшую длину, чем вертикальные. Это хорошо видно на рис.3.26.

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

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

Относит, ошибка решения задачи на СМТС сетке в точке Pi //Относит, ошибка решения задачи на ОМТС сетке в точке Pi уОтносит. ошибка решения задачи на СМТС сетке в точке Р2 У Относит, ошибка решения задачи на ОМТС сетке в точке Рг УОтносит, ошибка решения задачи на СМТС сетке в точке Рз //Относит, ошибка решения задачи на ОМТС сетке в точке Рз

Результаты сравнения показаны на рис.3.4-3.5. Из приведенных на этих рисунках графиков видно, что для точки Я, удаленной от объекта на 5м, решения, полученные на обеих сетках, имеют незначительную погрешность 1-3%. Для точек Р2 и А,, удаленных на 20м и 40м соответственно, погрешность на сетке, построенной стандартным методом, является уже достаточно большой: ошибка на начальных временах достигает 15% и более. При этом погрешность на сетке, построенной обобщенным методом, остается на допустимом уровне около 3%.

Чтобы объяснить существенную погрешность решения на сетке, построенной стандартным методом, рассмотрим пространственное распределение скалярного потенциала U в момент времени f = 4.12 -10 с в плоскости х = 0 (рис.3.6). Хорошо видно, что на расстоянии 30м от цилиндра линия равного уровня потенциала U имеет существенный излом и образуется этот излом как раз на вытянутых тетраэдрах.

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

Здесь, при использовании стандартного метода тиражируемых сечений для построения сетки, мы сталкиваемся с той же проблемой появления вытянутых тетраэдральных элементов, что и в рассмотренной выше модельной задаче. На рис.3.8а,в показаны фрагменты основного и дополнительного (используемого на удалении от трубы) базовых сечений, а на рис.3.8б,г - сечения плоскостью х = 0 тетраэдральных сеток, построенных стандартным (рис.3.86) и обобщенным методом тиражируемых сечений (рис.3.8г).

Механизм взаимодействия с элементами пользовательского интерфейса

В рассматриваемом подходе, реализация интерфейса пользователя размещается в отдельном динамически подгружаемом модуле (далее будем называть его UI-модулем). Это позволяет вести разработку пользовательского интерфейса с использованием любого наиболее подходящего в каждой конкретной ситуации инструментария. Например, UI-модуль может быть создан с помощью C-H-Buiider или библиотеки Qt.

Механизм взаимодействия в свою очередь также состоит из двух уровней. Нижний (платформозависимый) уровень представляет собой сравнительно небольшой набор функций, которые должны быть реализованы в UI-модуле и будут вызываться прикладным модулем (Арр-модулем) для выполнения некоторых действий над элементами управления. Большинство из этих функций требуют передачи значительного числа параметров, что не очень удобно для разработчика. Поэтому на высоком (платформонезависимом) уровне предлагается набор простых классов, которые внутри себя используют функции нижнего уровня для взаимодействия с элементами управления, а разработчику прикладной части предоставляют простой удобный интерфейс. Значения большинства параметров задаются в момент создания класса и сохраняются в переменных-членах для дальнейшего использования.

Для реализации обмена данными с элементами управления используется заимствованная из MFC идея привязки переменных к элементу управления [59], но в отличие от MFC, привязка осуществляется не к элементу управле 148 ния в целом, а к отдельному его свойству (например, текст на кнопке, атрибут доступности или видимости кнопки и т.д.). Причем присваивание значения привязанной переменной сразу приводит к изменению связанного с ней свойства. Аналогично, при чтении мы получаем реальное значение свойства.

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

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

Для привязки переменных к свойствам элемента управления используется шаблонный класс BFvalLinko. Параметром шаблона является тип свойства, к которому привязывается данная переменная (например, string, long или bool). В конструктор класса BFvalLinko передается указатель на класс BFformLink, представляющий форму, в которой располагается элемент управления, идентификатор элемента управления и идентификатор свойства данного элемента управления.

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

Теперь рассмотрим, как реализовано получение уведомлений о событиях. Со стороны Арр-модуля предоставляется класс BFcmdHandlers-Map, который ставит в соответствие идентификатору события функцию-обработчик. Конструктор этого класса вызывает импортированную функцию SetCmdEntryPoint, передавая в UI-модуль указатель на статическую функ 152 цию BFcmdHandlersMap: :EntryPoint, которая будет вызываться при возникновении событий. Функция BFcmdHandlersMap: :EntryPoint отвечает за поиск и вызов обработчика для данного события. Класс BFcmdHandlersMap для удобства сделан в виде шаблона, чтобы функции-обработчики могли быть функциями-членами некоторого класса. Именно этот класс и является параметром шаблона.

Для поддержки работы с окнами служат классы BFformLink и BFoglFormLink. Первый служит для идентификации формы и содержит методы Show/Hide и DoModal/EndModal. Свойства формы, такие как положение и заголовок, могут быть изменены рассмотренным выше способом, путем привязки переменных. Класс BFoglFormLink наследуется от BFformLink и добавляет функции для получения и освобождения контекста рисования, необходимого для вывода графики, а также функцию Invalidate, инициирующую перерисовку окна. Кроме этого, класс BFoglFormLink обеспечивает передачу уведомлений о событиях мыши и перерисовки окна.

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

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