+ All Categories
Home > Documents > Применение средств PDE Toolbox при обучении … · Секция 1....

Применение средств PDE Toolbox при обучении … · Секция 1....

Date post: 08-Aug-2020
Category:
Upload: others
View: 24 times
Download: 0 times
Share this document with a friend
13
Труды III научной конференции «Проектирование инженерных и научных приложений в среде MATLAB» УДК 004.94:519.63 ПРИМЕНЕНИЕ PDE TOOLBOX ПРИ ИЗУЧЕНИИ НЕКОТОРЫХ РАЗДЕЛОВ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ Ануфриев И. Е. Санкт-Петербургский государственный политехнический университет, Санкт-Петербург, E-mail: [email protected] Введение PDE ToolBox предназначен для решения задач, описываемых дифференциальными уравнениями в частных производных в двумерных областях, при помощи линейных треугольных элементов. Безусловно, накладываемое ограничение на класс задач и тип конечных элементов не позволяет PDE ToolBox конкурировать с известными CAD/CAE программными продуктами, создаваемыми для решения сложных задач механики сплошной среды. Однако, с методической точки зрения PDE ToolBox обладает рядом несомненных достоинств, основное из которых заключается в открытости кода реализованных в нем алгоритмов для всех этапов решения задач методом конечных элементов. Кроме того, овладение средствами PDE ToolBox не требует больших временных затрат и позволяет практически сразу проводить исследования, касающиеся различных аспектов применения метода конечных элементов, привлекая также средства MATLAB и его расширений. Открытость кода способствует глубокому познанию алгоритмов метода конечных элементов, что может выступать в роли плодотворного фактора, инициирующего студенческие работы. Один из примеров тому представляемый на конференции доклад по улучшению алгоритма триангуляции «Сравнение вариантов алгоритма Рапперта построения триангуляции с ограничением минимального угла». Эта работа выполнена студентом 4-го курса кафедры «Прикладная математика» СПбГПУ А. Алексеевым с использованием MATLAB и PDE Toolbox. Перечисленные особенности PDE ToolBox могут быть полезны при изучении не только основ метода конечных элементов, но и современных подходов к решению вычислительных задач, что и продемонстрировано далее на ряде примеров, связанных с адаптивными вычислениями и методом декомпозиции области. Перед рассмотрением этих примеров обратимся к краткому обзору PDE ToolBox и одному из способов расширения его стандартных возможностей в части задания криволинейных границ при помощи сплайнов. Возможности PDE Toolbox Класс задач, охватываемый средствами PDE Toolbox, достаточно широк, в него входят: плоская задача теории упругости, стационарная и нестационарная задачи 42
Transcript
Page 1: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Труды III научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»

УДК 004.94:519.63

ПРИМЕНЕНИЕ PDE TOOLBOX ПРИ ИЗУЧЕНИИ НЕКОТОРЫХ РАЗДЕЛОВ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ

Ануфриев И. Е. Санкт-Петербургский государственный политехнический университет,

Санкт-Петербург, E-mail: [email protected]

Введение PDE ToolBox предназначен для решения задач, описываемых дифференциальными

уравнениями в частных производных в двумерных областях, при помощи линейных треугольных элементов. Безусловно, накладываемое ограничение на класс задач и тип конечных элементов не позволяет PDE ToolBox конкурировать с известными CAD/CAE программными продуктами, создаваемыми для решения сложных задач механики сплошной среды. Однако, с методической точки зрения PDE ToolBox обладает рядом несомненных достоинств, основное из которых заключается в открытости кода реализованных в нем алгоритмов для всех этапов решения задач методом конечных элементов. Кроме того, овладение средствами PDE ToolBox не требует больших временных затрат и позволяет практически сразу проводить исследования, касающиеся различных аспектов применения метода конечных элементов, привлекая также средства MATLAB и его расширений. Открытость кода способствует глубокому познанию алгоритмов метода конечных элементов, что может выступать в роли плодотворного фактора, инициирующего студенческие работы. Один из примеров тому — представляемый на конференции доклад по улучшению алгоритма триангуляции «Сравнение вариантов алгоритма Рапперта построения триангуляции с ограничением минимального угла». Эта работа выполнена студентом 4-го курса кафедры «Прикладная математика» СПбГПУ А. Алексеевым с использованием MATLAB и PDE Toolbox. Перечисленные особенности PDE ToolBox могут быть полезны при изучении не только основ метода конечных элементов, но и современных подходов к решению вычислительных задач, что и продемонстрировано далее на ряде примеров, связанных с адаптивными вычислениями и методом декомпозиции области. Перед рассмотрением этих примеров обратимся к краткому обзору PDE ToolBox и одному из способов расширения его стандартных возможностей в части задания криволинейных границ при помощи сплайнов.

Возможности PDE Toolbox Класс задач, охватываемый средствами PDE Toolbox, достаточно широк, в него

входят: плоская задача теории упругости, стационарная и нестационарная задачи

42

Page 2: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Секция 1. MATLAB — система инженерных и научных расчетов

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

PDE ToolBox содержит приложение с графическим интерфейсом пользователя pdetool и более 150 функций с открытым кодом, из которых около 50 подробно описано в справочной системе. Приложение pdetool позволяет задавать область при помощи примитивов и операций над множествами, выбирать описывающее изучаемый процесс дифференциальное уравнение (или систему уравнений), задавать граничные и начальные условия, производить триангуляцию области и ее измельчение, решать получающуюся конечноэлементную систему и визуализировать решение. Фактически, приложение pdetool служит интерфейсом к основным функциям PDE Toolbox, использование которых обособленно предоставляет большие возможности по сравнению с pdetool. В качестве примера рассмотрим создание области с криволинейной границей, которая не может быть сконструирована средствами только pdetool.

По заданной примитивами и связями между ними геометрии области при помощи функции decsg создается матрица декомпозиционной геометрии, содержащая информацию о граничных участках. Функция wgeom по данной матрице генерирует функцию на языке MATLAB, описывающую участки границы области параметрическими выражениями. При этом каждый участок границы может быть представлен требуемой зависимостью внесением небольших изменений в код сгенерированной функции. Ниже приведен пример блока операторов функции mydomain.m, задающей область с одной криволинейной границей — кубическим сплайном, построенным при помощи функции spline по заданным точкам. Поскольку сплайн требуется построить только один раз, а функция mydomain.m может вызываться неоднократно, то переменная CurBound с информацией о сплайне объявлена в разделе persistent.

function [x,y] = mydomain(bs, s) persistent CurBound mlock … % вычисление первого граничного сегмента ii = find(bs==1); if length(ii)     if isempty(CurBound)         % строим сплайн при первом вызове mydomain         par = [0 0.3 0.5 0.8 1];         X = [1 ‐1 ‐0.5 0 0.5 1 1];         Y = [0 0.5  0.8 1.1 0.3 0.5 0];         CurBound = spline(par, [X; Y]);     end     % вычисляем точки границы 

43

Page 3: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Труды III научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»

    YY = ppval(CurBound, s(ii));   x(ii) = YY(1, :);   y(ii) = YY(2, :);     End  

Далее имя функции mydomain указывается во входных аргументах других функции PDE Toolbox, например для визуализации области может быть использована функция pdegplot, а для триангуляции и ее графического представления функции initmesh и pdemesh, соответственно:

pdegplot('mydomain') [p, e, t] = initmesh('mydomain', 'Hmax', 0.1); pdemesh(p, e, t) 

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

Рис. 1. Область с криволинейной границей, задаваемая функцией mydomain, и ее триангуляция

От описания PDE Toolbox перейдем к демонстрации адаптивного подхода и метода декомпозиции области при решении задач методом конечных элементов.

Адаптивные вычисления На практике часто встречаются задачи, решение которых в подобластях имеет

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

),( yxfu =Δ− в Ω , 0=Γu ,

где область Ω является квадратом )1,1()1,1( −×− , Γ — граница , а правая часть дифференциального уравнения выбрана так, что точным решением

Ω

),( yxf ),( yxuex

44

Page 4: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Секция 1. MATLAB — система инженерных и научных расчетов

задачи является функция ( ) yxyxyxuex 2cos

2cos),(

2/22 ππα+= , частные производные

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

,( yxf

Цель исследования состоит в получении зависимости погрешности конечноэлементного решения от шага равномерной в области Ω сетки. Для этого численно проинтегрируем по области Ω модуль градиента точного решения для

вычисления его энергетической нормы exu , где ∫Ω=uex2

б ую у

∇ dxdyu 2 . Далее зададим

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

femu дем вычислять энергетическ норм ошибки

Ω

у

нию22

femex uue −= .

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

Рис. 2. Зависимость энергетической нормы ошибки конечноэлементного решения от шага

равномерной сетки.

45

Page 5: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Труды III научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»

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

На рис. 3 представлено поведение энергетической нормы ошибки конечноэлементного решения в зависимости от числа неизвестных для предыдущей задачи при значении параметра 5.0=α , причем сравниваются решения на равномерной и адаптивно полученной (начиная со стартовой из 300 элементов) сетках. По горизонтальной оси отложен не шаг сетки, а число неизвестных NDOF. Заметим в частности, что для достижения точности на равномерной сетке требуется в 30 раз больше неизвестных по сравнению с сеткой, полученной в адаптивном режиме.

08.0

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

46

Page 6: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Секция 1. MATLAB — система инженерных и научных расчетов

Рассмотрим еще один классический пример уравнения Пуассона в L-образной области (см., например [1]). Если вершина угла величины 2/3π расположена в начале координат и на исходящих из нее отрезках задано однородное условие Дирихле, то в

этой вершине возникает особенность порядка 3/2r . Ниже приведено адаптивное решения задачи в L-образной области с однородными условиями Дирихле при помощи функции adaptmesh и на рис. 4 изображена получившаяся на последнем шаге измельчения сетка.

[u,p,e,t]=adaptmesh('lshapeg','lshapeb',1,0,1,'maxt',inf,'Rmethod', 'regular','ngen',3);  

pdemesh(p, e, t) 

В функции adaptmesh область задана функций lshapeg, а однородные граничные условия — функцией lshapeb (обе эти вспомогательные функции входят в состав PDE Toolbox). В данном примере начальная сетка не задана, поэтому функция adaptmesh вызывает initmesh для инициализации сетки, которая для данной области содержит около 260 треугольных элементов. Функция adaptmesh позволяет ввести ряд параметров, управляющих ходом адаптивных вычислений. Так, задано не более трех сгущений сетки (ngen = 3), число получающихся треугольников не ограничено (maxt = inf) и выбран регулярный способ разбиения (Rmethod = regular), при котором взамен подлежащего разбиению треугольника (на основе значения индикатора ошибки) образуется четыре новых треугольника соединением середин его сторон. При этом соседние треугольники разбиваются на два для предотвращения появления висящих узлов, т.е. узлов на стороне треугольника. Функция adaptmesh позволяет применять заданные пользователем апостериорные оценки или индикаторы ошибки, для чего следует установить в качестве значения свойства Tripick имя соответствующей функции.

Рис. 4. Адаптивное решение задачи с особенностью.

47

Page 7: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Труды III научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»

Метод декомпозиции области Методы декомпозиции области являются одним из наиболее активно

развивающихся направлений вычислительной математики (см. обзорную статью [2]), поскольку они приводят к существенному увеличению эффективности решения задач с большим числом неизвестных, в том числе и за счет появляющейся возможности распараллеливания вычислений. Обратимся теперь к сочетанию инструментария PDE Toolbox и MATLAB для демонстрации подходов, основанных на декомпозиции области.

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

Итак, область Ω является объединением трех квадратов , и ) с интерфейсной границей между ними

)1,0()0,1(1 ×−=Ω

)1,0()1,0(2 ×=Ω

2312

2,1()1,0(3 ×=Ω

γγγ ∪= (см. рис. 5). Внутри области Ω задано уравнение Пуассона , а на

границе — однородные условия Дирихле. Пусть

1=Δ− u

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

F

FKu =

1Ω 2Ω и 3Ω (они на рисунке

обозначены точками), после этого пронумеруем неизвестные на интерфейсе γ (они обозначены кружками).

48

Page 8: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Секция 1. MATLAB — система инженерных и научных расчетов

2Ω12γ

23γ

Рис 5. L-образная область, составленная из квадратных подобластей, и разделение неизвестных

на внутренние и интерфейсные.

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

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

cc FFFF

uuuu

CBBBBK

BK

BK

321

321

321

T33

T22

T11

,

где , и являются неизвестными во внутренних вершинах подобластей , 1u 2u 3u 1Ω 2Ω

и , соответственно, а — неизвестные в вершинах интерфейсной границы.

Обозначим 3Ω cu

⎥⎥⎥

⎢⎢⎢

⎡=

32

1

KK

KKI , , ,

⎥⎥⎥

⎢⎢⎢

⎡=

321

FFF

FI⎥⎥⎥

⎢⎢⎢

⎡=

321

uuu

uI [ ]321 BBBB =

и запишем систему в более компактном виде:

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎥⎥⎦

⎢⎢⎣

cI

cII

FF

uu

BBKC

T.

Применяя разложение Шура к матрице данной системы

⎥⎥⎦

⎢⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡=

⎥⎥⎦

⎢⎢⎣

⎡ −−

cIII

cI

IIE

BKEKEBK

E

BBK T1

1T

SC,

49

Page 9: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Труды III научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»

где — дополнение Шура, а T1BBKCS −−= IE и — единичные матрицы

соответствующих размеров, несложно установить, что решение системы выражается по следующим формулам

cE

)( 11Icc FBKFSu −− −= , )(1

cII BuFKu −= − .

То есть, сначала требуется найти неизвестные на интерфейсной границе , решив

систему , а затем найти внутренние неизвестные

cu

Icc FBKFuS 1−−= Iu , решая

систему cIII BuFuK −= . Учитывая введенные выше обозначения для , S IK , IF и

B , получаем требуемую последовательность действий: 1. Решить систему

31

3321

2211

11T3

133

T2

122

T1

111 )( FKBFKBFKBFuBKBBKBBKBC cc

−−−−−− −−−=−−− .

Заметим, что обращение матриц не требуется, т.к., например, можно выполнить

разложение Холецкого , где — верхняя треугольная матрица. Тогда,

поскольку

1T11 RRK =

( )1R

( )T111

11

T1

T1

111

−−− RBRBBKB

T1a =

1= B

T1B

11

T11

−= RRB

T1R

, то достаточно решить

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

. Аналогично вычисляются и остальные слагаемые, содержащие обратные

матрицы.

T1

111 BKB −

Taa 11

2. Найти , и , решив следующие системы 1u 2u 3u

cuBFuK T1111 −= , , . cuBFuK T

2222 −= cuBFuK T3333 −=

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

Обратимся теперь к реализации данного алгоритма декомпозиции средствами PDE Toolbox и MATLAB. Предположим, что в приложении pdetool создана L-образная область, заданы однородные граничные условия на ее границах и сделана триангуляция, которая приведена на рис. 6 вместе с нумерацией вершин и треугольников (число вершин специально выбрано небольшим, поскольку далее мы рассмотрим применение функций для выделения нужных неизвестных). Матрица граничных условий экспортирована в рабочую среду MATLAB в массив b, а триангуляция в массивы p, e и t, содержащие: координаты вершин, информацию о граничных ребрах триангуляции и инцидентную матрицу, соответственно.

50

Page 10: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Секция 1. MATLAB — система инженерных и научных расчетов

Рис. 6. L-образная область, составленная из трех квадратных подобластей (приведена нумерация

элементов и узлов).

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

c0 = pdesdp(p, e, t) 

приводит к записи в вектор c0 номеров тех узлов, которые принадлежат границам 12γ и 23γ :

c0 = 5 7 8 16 17 34 35 36 37

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

[i1, c1] = pdesdp(p, e, t, 1) 

возвращает в i1 номера внутренних для подобласти 1Ω узлов, а в c1 те узлы, которые

находятся на границе 12γ i1 = 1 2 9 11 15 20 24 25 30 33 c1 = 5 8 17 35 37

Еще одна используемая далее функция pdesubix возвращает номера элементов массива с1 по порядку в массиве c0, например, обращение

ic1 = pdesubix(c0, c1)  

51

Page 11: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Труды III научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»

приводит к заполнению вектора ic1 ic1 = 1 3 5 7 9

причем ic1(1) равно 1, т.к. с1(1) равное 5 находится на первом месте в массиве с0, ic1(2) равно 3, т.к. с1(2) равное 8 находится на третьем месте в массиве с0 и т.д.

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

np = size(p, 2);  c = pdesdp(p, e, t); 

Затем создаем нулевые матрицу C и вектор правой части FC системы относительно неизвестных на интерфейсной границе γ , которые далее при вычислениях на подобластях будем пополнять нужными элементами

nc = length(c);   C = zeros(nc, nc);   FC = zeros(nc, 1);  

Опишем подробно вычисления на первой подобласти 1Ω . Делаем сборку матрицы

и вектора правой части подобласти 1Ω при помощи функции assempde, последний входной аргумент которой является номером подобласти

[K, F] = assempde(b, p, e, t, 1, 0, 1, [], 1);  

Узнаем номера внутренних и граничных узлов подобласти 1Ω [i1, c1] = pdesdp(p, e, t, 1);  ic1 = pdesubix(c, c1);  

и выделяем блок внутренних неизвестных подобласти 1Ω в массив K1 (здесь в качестве индексов задаются вектора с номерами внутренних неизвестных, т.е. K1(i, j) = K(i1(i), i1(j)) для i и j меняющихся от 1 до числа элементов в i1)

K1 = K(i1, i1); 

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

1R

1

K1 = chol(K1); 

Из матрицы жесткости K, соответствующей неизвестным подобласти , выделяем

блок B1, используя массивы с1 (номера граничных узлов Ω ) и i1 (номера внутренних

узлов Ω ) 1

T1

T1 BaR =

B1 = K(c1, i1); 

Решаем систему с множителем разложения Холецкого T1 и записываем

ее решение в массив a1. В MATLAB для решения системы линейных алгебраических уравнений используются знаки / и \, причем X = A\B заносит в X решение системы AX=B, где B может быть матрицей и тогда X(:,k) — решение системы c матрицей A и

52

Page 12: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Секция 1. MATLAB — система инженерных и научных расчетов

1

1

1

k-ым столбцом матрицы B в качестве правой части системы. Выражение B/A эквивалентно (A'\B')’, где апостроф обозначает операцию транспонирования).

a1 = B1/K1;  

Изменяем в матрице C элементы, относящиеся к интерфейсу подобласти ΩC(ic1,ic1) = K(c1,c1)‐a1*a1'; 

Выделяем вектор F1, соответствующий внутренним неизвестным подобласти ΩF1 = F(i1); 

Решаем систему с множителем разложения Холецкого, записываем результат в e1 e1=K1'\F1; 

Изменяем в векторе FC элементы, относящиеся к интерфейсу подобласти ΩFC(ic1)=FC(ic1)+F(c1)‐a1*e1;  

Проводим аналогичные операции для подобластей 2Ω и 3Ω , модифицируя матрицу C

и вектор FC [i2, c2] = pdesdp(p, e, t, 2);    ic2 = pdesubix(c, c2);  [K, F] = assempde(b, p, e, t, 1, 0, 1, [], 2);  K2 = K(i2, i2);   K2 = chol(K2);   B2 = K(c2, i2);   a2 = B2/K2;  C(ic2, ic2) = C(ic2, ic2) + K(c2, c2) ‐ a2*a2';  F2 = F(i2);  e2 = K2'\F2;    FC(ic2) = FC(ic2) + F(c2) ‐ a2*e2;  [i3, c3] = pdesdp(p, e, t, 3);   ic3 = pdesubix(c, c3);  [K, F] = assempde(b, p, e, t, 1, 0, 1, [], 3);  K3 = K(i3, i3);  K3 = chol(K3);   B3 = K(c3, i3);   a3 = B3/K3;  C(ic3, ic3) = C(ic3, ic3) + K(c3, c3) ‐ a3*a3';  F3 = F(i3);   e3 = K3'\F3;    FC(ic3) = FC(ic3) +F(c3) ‐ a3*e3;  

Решаем задачу на интерфейсе γ , записывая значения неизвестных в интерфейсных вершинах на соответствующие позиции в векторе решения u (их номера в векторе c)

u = zeros(np, 1);      u(c) = C\ FC;  

Решаем задачи в подобластях декомпозиции относительно неизвестных во внутренних вершинах, записывая их значения на соответствующие позиции в векторе решения u

u(i1) = K1\(e1‐a1'*u(c1));  u(i2) = K2\(e2‐a2'*u(c2));  u(i3) = K3\(e3‐a3'*u(c3)); 

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

pdesurf(p, t, u) 

Заключение Демонстрационные примеры в среде PDE Toolbox можно развивать и далее,

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

53

Page 13: Применение средств PDE Toolbox при обучении … · Секция 1. MATLAB — система инженерных и научных расчетов задачи

Труды III научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»

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

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

Литература 1. Babuška I., Strouboulis T. The finite element method and its reliability. — Oxford :

Clarendon Press, 2001. — 802 p. 2. Korneev V., Langer U. Domain decomposition methods and preconditioning

// Encyclopedia of computational mechanics. Vol. I: Fundamentals / E. Stein, R. de Borst and T.J.R. Hughes eds. — Chichester : John Wiley and Sons, 2004. — P. 617–647.

54


Recommended