
- •2.2 Конечноэлементная дискретизация и переход к локальным матрицам
- •2.3 Схемы численного интегрирования для вычисления локальных матриц
- •Описание разработанных программ
- •3.1 Структуры данных
- •3.2 Структура основных модулей программы
- •Описание тестирования программ
- •4.1 Тестовые примеры и полученные результаты
- •Проведенные исследования и выводы
- •Тексты основных модулей программ Листинг программы
Министерство Образования и Науки Российской Федерации
Новосибирский Государственный Технический Университет
КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ
Курсовой проект по дисциплине
«Численные методы»
Факультет: ПМИ
Группа: ПМ-14
Студент: Полищук С.Ю.
Преподаватель: Персова М.Г.
Вариант: 60
Новосибирск, 2013
Содержание
1. Постановка задачи 2
1.1 Решаемое уравнение 3
1.2 Краевые условия 3
1.3 Расчетная область 3
2. Теоретическая часть 3
2.1 Вариационная постановка 3
2.2 Конечноэлементная дискретизация и переход к локальным матрицам 4
2.3 Схемы численного интегрирования для вычисления локальных матриц 6
3. Описание разработанных программ 6
3.1 Структуры данных 6
3.2 Структура основных модулей программы 7
4. Описание тестирования программ 8
4.1 Тестовые примеры и полученные результаты 8
5. Проведенные исследования и выводы 9
6. Тексты основных модулей программ 10
Листинг программы 10
Постановка задачи
МКЭ для
двумерной краевой задачи для эллиптического
уравнения в полярной
системе координат. Базисные функции
билинейные на прямоугольниках. Краевые
условия всех типов. Коэффициент диффузии
разложить по биквадратичным базисным
функциям. Матрицу СЛАУ генерировать в
разреженном строчном формате. Для
решения СЛАУ использовать МСГ или ЛОС
с неполной факторизацией.
1.1 Решаемое уравнение
-div(
grad
)+
задано в
некоторой области
с границей
.
В полярной системе координат:
.
1.2 Краевые условия
,
,
1.3 Расчетная область
Расчётная область разбивается на прямоугольники, содержащие по четыре узла.
Локальная нумерация выглядит следующим образом:
Теоретическая часть
2.1 Вариационная постановка
Запишем для
исходной краевой задачи эквивалентную
вариационную постановку в форме уравнения
Галёркина, для этого правую и левую
часть исходного уравнения домножим на
функцию
из пространства пробных функций
и проинтегрируем по
:
(-div(
grad
)+
.
Преобразуем полученное уравнение с использованием формулы Грина:
-
.
Воспользовавшись краевыми условиями преобразуем интегралы:
-
.
В качестве
выберем
пространство
пробных функций
,
которые на границе S1
удовлетворяют нулевым первым краевым
условиям. При этом будем считать, что
,
где
множество
функций, имеющих суммируемые с квадратом
первые производные и удовлетворяющих
только первым краевым условиям на
границе S1:
+
+
=
+
+
.
(1.1)
2.2 Конечноэлементная дискретизация и переход к локальным матрицам
Получим
аппроксимацию уравнения (1.1) на
конечномерных подпространствах
и
,
аппроксимирующих исходные пространства
и
.
Для этого заменим функцию
аппроксимирующей её функцией
,
а функцию
функцией
:
+
+
=
+
+
.
Поскольку
любая функция
может быть представлена в виде линейной
комбинации
,
то полученное вариационное уравнение
эквивалентно следующей системе уравнений:
+
+
=
+
+
.
Поскольку
,
оно может быть представлено в виде
в итоге получаем СЛАУ для компонент
вектора весов q с индексами
:
=
+
+
.
При решении исходной краевой задачи с использованием базисных функций, принимающих нулевые значения во всех узлах сетки, кроме одного, конечноэлементная СЛАУ для вектора весов q может быть записана в матричном виде: Aq = b, где компоненты матрицы А и вектора b определяются соотношениями
=
=
,
эти будем интегралы вычислять как сумму
интегралов по конечным элементам
,
на которые разбита расчётная область:
=
=
,
,
=
=
,
=
=
,
.
В полярных координатах
примут
компоненты локальных матриц вид
=
,
=
.
Компоненты
локального вектора правой части
конечного
элемента
определяются как
.
Также формулы
эти можно записать в виде
.
Билинейные базисные функции:
На отрезке
задаются две одномерные линейные функции
=
,
=
,
=
.
Аналогично
на интервале
задаются линейные функции
=
,
=
,
=
.
Локальные
базисные функции на конечном элементе
=
представляются в виде произведений:
=
,
=
,
=
,
=
.
Биквадратичные базисные функции:
=
,
=
,
=
,
=
,
=
,
=
,
=
,
=
,
=
.
2.3 Схемы численного интегрирования для вычисления локальных матриц
Для вычисления локальных матриц используется кубатурная формула Гаусса с четырьмя узлами, имеющая четвёртый порядок.
,
где
и
.
Описание разработанных программ
3.1 Структуры данных
На входе программа считывает информацию о сетке и краевых условиях:
Файл g.txt(описывает сетку):
-количество конечных элементов Nr(по r);
-значения всех границ подобластей по r;
-количество
конечных элементов Np(по
);
-значения всех границ подобластей по ;
-количество подобластей L;
-L наборов по 5 целых чисел, описывающих все подобласти;
-количество узлов N;
-список узлов(номер по r, номер по ).
Файл cond.txt:
-количество рёбер, в которых действуют главные краевые условия n1;
- n1 наборов по 6 целых чисел(тип краевого условия, номер границы, номер элемента по r, с которого рассматриваемый фрагмент границы начинается по оси r, номер элемента по r, которым заканчивается фрагмент по оси r, номер начального элемента по , номер по которым заканчивается фрагмент по оси );
-количество рёбер, в которых действуют вторые краевые условия n2;
-n2 наборов по 6 целых чисел по аналогии с первыми краевыми условиями
-количество рёбер, в которых действуют третьи краевые условия n3;
-n3 наборов по 6 целых чисел.
3.2 Структура основных модулей программы
Программа состоит из четырёх модулей:
-main.cpp(основной модуль, в котором генерируется портрет матрицы, вычисляются локальные матрицы, генерируется глобальная матрица);
-task.h(описывает
функцию правой части, коэффициент
диффузии
,
коэффициент
,
задаются формулы для краевых условий);
-solver.h(решение полученной СЛАУ локально-оптимальной схемой с неполной LU – факторизацией);
-paint.h(визуализация полученного решения и заданной расчётной области).