Вперед: 5.2.3. Основные подпрограммы библиотеки Aztec
Назад: 5.2.1. Общая информация о библиотеке Aztec
К содержанию: Оглавление


5.2.2. Конфигурационные параметры библиотеки Aztec

Для использования библиотеки Aztec в текст программы должен быть включен include-файл, в котором определен набор необходимых переменных:

С:

#include <az_aztec.h>

Fortran:

include 'az_aztecf.h'

Пакет написан на языке C, поэтому все используемые при вызове подпрограмм массивы должны индексироваться от 0 (в том числе и на Фортране). Вызов различных подпрограмм решения систем линейных алгебраических уравнений выполняется через драйверную подпрограмму AZ_solve. Управление режимами работы решателя осуществляется с помощью двух массивов:

Возвращаемая информация помещается в вещественный массив с двойной точностью status(0:AZ_STATUS_SIZE).

Приведем список наиболее важных опций. Значения констант, используемых в качестве индексов элементов массивов options, params, status и в качестве значений, присваиваемых этим элементам, определены в include-файлах.

options[AZ_solver]Специфицирует алгоритм решения. Возможные значения задаются либо в виде именованных констант, либо в виде числовых значений, которые приведены в скобках:
AZ_cg (0)Метод сопряженных градиентов (применяется только к симметричным, положительно определенным матрицам).
AZ_gmres (1)Обобщенный метод минимальных невязок.
AZ_cgs (2)Квадратичный метод сопряженных градиентов.
AZ_tfqmr (3)>Метод квазиминимальных невязок.
AZ_bicgstab (4)Метод бисопряженного градиента со стабилизацией.
AZ_lu (5)Прямой LU метод решения (только на одном процессоре).
Значение по умолчанию: AZ_gmres
options[AZ_scaling]Определяет алгоритм масштабирования. Масштабируется вся матрица (запись идет на место старой). Кроме того, при необходимости масштабируются правая часть, начальные данные и полученное решение.
Возможные значения:
AZ_noneБез масштабирования.
AZ_JacobiТочечное масштабирование Якоби.
AZ_BJacobiБлочное масштабирование Якоби, где размер блоков соответствует VBR блокам. Точечное масштабирование Якоби применяют, когда используется MSR формат.
AZ_row_sumМасштабирование каждой строки такое, что сумма ее элементов равна 1.
AZ_sym_diagСимметричное масштабирование такое, что диагональные элементы равны 1.
AZ_sym_row_sumСимметричное масштабирование с использованием суммы элементов строки.
Значение по умолчанию: AZ_none.
options[AZ_precond]Специфицирует переобуславливатель.
Возможные значения:
AZ_noneПереобуславливания нет.
AZ_Jacobik шаговый метод Якоби. Число k шагов Якоби задается через options[AZ_poly_ord].
AZ_NeumannРяд полиномов Неймана, где степень полинома задается через options[AZ_poly_ord].
AZ_lsПолином наименьших квадратов, где степень полинома задается через options[AZ_poly_ord].
AZ_luМетод декомпозиции областей (аддитивная процедура Шварца), использующий неполную LU факторизацию с величиной допустимого отклонения params[AZ_drop] на подматрице каждого процессора. Обработка внешних переменных в подматрице определяется с помощью options[AZ_overlap].
AZ_iluПодобно AZ_lu, но используется ilu(0) вместо LU.
AZ_biluПодобно AZ_lu, но используется bilu(0) вместо LU, где каждый блок соответствует VBR блоку.
AZ_sym_GSk-шаговый симметричный метод Гаусса-Зейделя для неперекрывающейся декомпозиции области (аддитивная процедура Шварца). Симметричная процедура Гаусса-Зейделя декомпозиции области используется тогда, когда каждый процессор независимо выполняет один шаг симметричного метода Гаусса-Зейделя на его локальной подматрице, после чего с помощью межпроцессорных коммуникаций обновляются граничные значения, требуемые на следующем локальном шаге метода Гаусса-Зейделя. Число шагов k задается через options[AZ_poly_ord].
Значение по умолчанию: AZ_none.
options[AZ_conv]Определяет выражение невязки, используемое для подтверждения сходимости. Итерационное решение завершается, если соответствующее выражение невязки меньше, чем params[AZ_tol].
Возможные значения:
AZ_r0
AZ_rhs
AZ_Anorm
AZ_sol
AZ_weighted
Значение по умолчанию: AZ_r0.
options[AZ_output]Специфицирует информацию, которая должна быть выведена на печать в процессе решения (выражения невязки см. options[AZ_conv]).
Возможные значения:
AZ_allВыводит на печать матрицу и индексирующие векторы для каждого процессора. Печатает все промежуточные значения невязок.
AZ_noneПромежуточные результаты не печатаются.
AZ_warningsПечатаются только предупреждения Aztec'а.
AZ_lastПечатается только окончательное значение невязки.
n (n >0)Печатается значение невязки на каждой n-ой итерации.
Значение по умолчанию: 1.
options[AZ_pre_calc]Показывает, использовать ли информацию о факторизации из предыдущего вызова AZ_solve.
Возможные значения:
AZ_calcНе использовать информацию из предыдущих вызовов AZ_solve.
AZ_recalcИспользовать информацию предварительной обработки из предыдущего вызова, но повторно вычислять переобуславливающие множители.
AZ_reuseИспользовать переобуславливатель из предыдущего вызова AZ_solve. Кроме того, можно использовать масштабирующие множители из предыдущего обращения для масштабирования правой части, начальных данных и окончательного решения.
По умолчанию: AZ_calc.
options[AZ_max_iter]Максимальное число итераций.
Значение по умолчанию: 500.
options[AZ_poly_ord]Степень полинома при использовании полиномиального переобуславливателя. А также число шагов при переобуславливании Якоби или симметричном переобуславливании Гаусса-Зейделя.
Значение по умолчанию: 3.
options[AZ_overlap]Определяет подматрицы, факторизуемые алгоритмами декомпозиции области AZ_lu, AZ_ilu, AZ_bilu.
Возможные значения:
AZ_noneФакторизовать определенную на этом процессоре локальную подматрицу, отбрасывая столбцы, которые соответствуют внешним элементам.
AZ_diagФакторизовать локальную подматрицу на процессоре, расширенную диагональной (блочно-диагональной для VBR формата) матрицей. Эта диагональная матрица состоит из диагональных элементов строк матрицы, связанных с внешними элементами.
AZ_fullФакторизовать определенную на процессоре локальную подматрицу, расширенную строками, связанными с внешними переменными. Результирующая процедура - аддитивная процедура Шварца с совмещением.
Значение по умолчанию: AZ_none.
options[AZ_kspace]Размер подпространства Крылова для GMRES.
Значение по умолчанию: 30.
options[AZ_orthog]Схема ортогонализации GMRES.
Возможные значения:
AZ_classicКлассическая ортогонализация Грамм-Шмидта.
AZ_modifiedМодифицированная ортогонализация Грамм-Шмидта.
Значение по умолчанию: AZ_classic.

Массив params двойной точности служит для передачи в процедуры значений параметров вещественного типа. Элементы этого массива имеют следующие значения:

params[AZ_tol]Определяет критерий сходимости. По умолчанию: 10-6
params[AZ_drop]Определяет величину допустимого отклонения для LU переобуславливателей. По умолчанию: 0.0.
params[AZ_weights]Когда options[AZ_conv] = AZ_weighted, i-ая локальная компонента вектора веса хранится в элементе params[AZ_weights+i].

Вся целочисленная информация, возвращаемая из AZ_solve, переводится в вещественные значения двойной точности и помещается в массив status. Содержание элементов массива status описано ниже.

status[AZ_its]Число итераций, выполненных итерационным методом.
status[AZ_why]Причина завершения программы AZ_solve.
Возможные значения:
AZ_normalКритерий сходимости, который запросил пользователь, удовлетворен.
AZ_paramНекорректно заданная опция.
AZ_breakdownПроизошло численное прерывание.
AZ_lossПроизошла потеря точности.
AZ_ill_condМетод Хессенберга в GMRES некорректен. Это может быть вызвано сингулярностью матрицы. В этом случае GMRES пробует найти решение наименьшими квадратами.
AZ_maxitsСходимость не достигнута после выполнения максимального число итераций, заданного соответствующим параметром.
status[AZ_r]Истинная норма невязки, соответствующая выбору options[AZ_conv] (для вычисления нормы используется полученное решение).
status[AZ_scaled_r]Истинное выражение отношения невязки как определено в options[AZ_conv].
status[AZ_rec_r]Норма соответствующая options[AZ_conv] конечной невязки или оценочной конечной невязки (рекурсивно вычисленной итерационным методом).


Вперед: 5.2.3. Основные подпрограммы библиотеки Aztec
Назад: 5.2.1. Общая информация о библиотеке Aztec
К содержанию: Оглавление