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

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

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

Корректный учет промежуточных граничных условий первого и второго родов для схемы Писмана – Рекфорда был подробно рассмотрен в [1]. Существенное отличие трехмерной схемы Дугласа – Рекфорда от двумерной схемы Писмана – Рекфорда состоит в том, что в последнюю из упомянутых схем пространственные координаты входят симметрично. Таким образом, второе уравнение схемы Писмана – Рекфорда содержит конечно-разностные представления производных для обеих пространственных координат. Этот факт обусловливает громоздкость вывода соотношения между значениями неизвестной функции на различных гранях – см. детали в [1].

Несмотря на то, что схема Дугласа – Рекфорда спроектирована для трехмерной пространственной области, учет промежуточных граничных условий 3-го рода оказывается для нее более простым благодаря несимметричному вхождению производных по пространственным координатам в выражения (1) – (3):

, (1)

, (2)

, (3)

где - оператор Лапласа; - неизвестная функция, определенная на следующей сетке:


(4)
где , (5)

, (6)

i,j,s- индексы узлов пространственной сетки вдоль направлений X, Y и Z соответственно. - полные числа узлов пространственной сетки вдоль направлений X, Y и Z соответственно. - величины шагов вдоль направлений X, Y и Z соответственно. - величина под-шага по времени: полный шаг по времени составляет .

Пусть на гранях прямоугольной области моделирования заданы следующие граничные условия (условия 3-го рода на всех гранях):

, (7)
,(8)
,(9)
,(10)
,(11)
.(12)

В выражениях (7) – (12) узлы с индексами являются фиктивными и находятся за пределами области моделирования. Они введены для сохранения второго порядка точности схемы Дугласа – Рекфорда по пространственным координатам.

Перепишем теперь уравнения (1), (2) и (3) в такой форме, чтобы неизвестные , и стояли в левой части:

, (13)

, (14)

, (15)

и определим, какие величины неизвестны явно.

Рассмотрим уравнение (14). Чтобы найти значения , необходимо решить систему линейных алгебраических уравнений:

, (16)

, (17)

, (18)

… и т.д. .

В свою очередь, решение этой системы требует знания величин и , которые могут быть найдены из соотношения (9):

, (19)

. (20)

В то время как использование соотношения (19) является полностью обоснованным, возникает проблема с использованием соотношения (20) – как следует интерпретировать это соотношение на временном слое ? Ведь - не является истинным значением неизвестной функции u на промежуточном временном слое !

Для преодоления этой трудности естественным шагом будет взятие известного граничного условия (9) в моменты времени k и k+3 и, таким образом, получить (9) в момент k+2:

, (21)

где параметры и T берутся в момент k+3. Такой выбор момента времени основан на том, что целью является определение величины .
После этого, соотношение (17) принимает следующий вид:

. (22)

По аналогии, рассмотрим уравнение (15). Чтобы найти значения , необходимо решить систему линейных алгебраических уравнений:

, (23)

, (24)

, (25)

… и так далее .

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

, (26)

, (27)

i=1

… и так далее . (28)

В выражении (27) величины , , и при могут быть найдены из соответствующих граничных условий 3-го рода. В случае задания граничных условий 1-го рода на одной из граней, диапазон индексов в (28) должен быть изменен соответствующим образом (например - ).

Как видно из приведенного выше рассуждения, корректный учет промежуточных граничных условий 3-го рода является менее громоздким, чем корректный учет граничных условий 1-го рода (см. Заметку 1).

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

, (29)

, (30)

, (31)

, (32)

, (33)

. (34)

т.е., на гранях перпендикулярных оси Y заданы граничные условия 1-го рода, а на всех остальных гранях – условия 3-го рода.

В соответствии с проведенным выше обсуждением, алгоритм учета промежуточных граничных условий примет следующую форму:

1. Найти значения при используя следующее соотношение (см. выражение (19) в Заметке 1):

. (35)

Это возможно благодаря тому, что величины и известны при из граничных условий (29) и (30).

2. Найти значения при используя следующее соотношение (см. выражение (18) в Заметке 1):

. (36)

Это возможно благодаря тому, что нам известны величины и при .

3. Решить уравнение (13). На этом шаге в распоряжении имеется все необходимое для нахождения при .

4. Решить уравнение (14) посредством решения СЛАУ (16) – (18).

5. Решить уравнение (15) посредством решения СЛАУ (23) – (25).

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

Автор выражает признательность Prof. T.I. Lakoba (University of Vermont) за полезные обсуждения.

1. Lakoba, T. (13 04 2012 r.). Lecture notes on Numerical Differential Equations. Vermont, USA: University of Vermont. – internet resource. http://www.cems.uvm.edu/~tlakoba/

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>