ОБЪЕДИНЕННЫЙ   ИНСТИТУТ   ЯДЕРНЫХ   ИССЛЕДОВАНИЙ
lit БИБЛИОТЕКА   ПРОГРАММ   JINRLIB

MATPROG,CMATPROG - решение трехдиагональной алгебраической системы векторных уравнений методом матричной прогонки


Автор: Е.В.Земляная
eng
Вы
counter
посетитель.

Язык: Фортран


Программа MATPROG (CMATPROG) предназначена для решения алгебраической системы следующего вида:

ai * zi-1 + bi * zi + ci * zi+1 = di         i =1,...,N                       (1)

где:
a,b,c - матрицы коэффициентов размерностью (L,L,N);
d - вектор правых частей размерностью (L,N);
z - вектор решений размерностью (L,N).

В программе MATPROG данные a,b,c,d,z - вещественные;
СMATPROG реализует случай комплексных переменных.

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

Архив программы включает в себя описание программ, фортранные тексты программ и тестов, результаты тестов, текст препринта [2] с описанием алгоритма (в формате .pdf).

Структура:

Тип: SUBROUTINE
Имена входа для пользователя:    MATPROG, CMATPROG
Используемые подпрограммы: MATIN2
Внутренние подпрограммы: MULTMM, MULTMV, INVERSE, MULTMMC, MULTMVC, INVERSE_C.

Обращение:

CALL MATPROG (N,L,a,b,c,d,z,aa,bb)
CALL CMATPROG (N,L,a,b,c,d,z,aa,bb), где:
N, L - (INTEGER) размерность массивов;
a,b,c - массивы коэффициентов размерности (L,L,N);
d - массив правых частей размерности (L,N);
z - вектор решений, получаемых в результате работы программы, размерности (L,N);
aa,bb - рабочие массивы размерности (L,L,N).

В программе MATPROG тип переменных a,b,c,d,z,aa,bb - REAL*8;
В программе CMATPROG тип переменных a,b,c,d,z,aa,bb - СOMPLEX*16.

Программы MULTMM, MULTMV, INVERSE, MULTMMC, MULTMVC, INVERSE_C используются для перемножения матриц и векторов (комплексных и вещественных) и для обращения матрицы (в комплексном и вещественном виде).

Метод:

Принципы матричной прогонки излагаются в книгах А.А.Самарского (см., например, [1]). Алгоритм, реализованный в программах MATPROG и CMATPROG, подробно описан в [2], п.4.

На практике программа MATPROG использовалась в рамках неявной схемы для моделирования термоупругих эффектов в металлах под действием импульсного ионного излучения [2]; программа CMATPROG применялась в составе ньютоновской схемы для исследования устойчивости щелевых солитонов [3].

Литература:

  1. А.А.Самарский, С.В.Николаев. Методы решения сеточных уравнений. Наука, 1978.
  2. И.В.Амирханов, Е.В.Земляная, И.В.Пузынин, Т.П.Пузынина, И.Сархадов. Сообщение ОИЯИ Р11-2002-24, Дубна, 2002.
  3. I.V.Barashenkov and E.V.Zemlyanaya. Comp. Phys. Comm. Vol.126, No.1-2, 2000, pp.22-27



home up e-mail