Next:2.3. Основные подпрограммы библиотеки Aztec
Up:2. ИСПОЛЬЗОВАНИЕ БИБЛИОТЕКИ ПАРАЛЛЕЛЬНЫХ ПОДПРОГРАММ Aztec
Prev:2.1. Общая организация библиотеки Aztec

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

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

С:
#include <az_aztec.h>
FORTRAN:
include 'az_aztecf.h'

Пакет написан на языке С, поэтому все используемые при вызове подпрограмм пакета массивы должны быть описаны индексируемыми от 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_Jacobi
    k-шаговый метод Якоби. Число 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_GS
    k-шаговый симметричный метод Гаусса-Зейделя для неперекрывающейся декомпозиции области (аддитивная процедура Шварца). Симметричная процедура Гаусса-Зейделя декомпозиции области используется тогда, когда каждый процессор независимо выполняет один шаг симметричного метода Гаусса-Зейделя на его локальной подматрице, после чего с помощью межпроцессорных коммуникаций обновляются граничные значения, требуемые на следующем локальном шаге метода Гаусса-Зейделя. Число шагов k задается через options[AZ_poly_ord].
 
    По умолчанию: AZ_none.
options[AZ_conv] Определяет выражение невязки, используемое для подтверждения сходимости. Итерационное решение завершается, если соответствующее выражение невязки меньше, чем params[AZ_tol].
Возможные значения:
AZ_r0
AZ_rhs
AZ_Anorm
AZ_sol
AZ_weighted
    , где ,  n - общее число неизвестных,  w - вес вектора, задаваемый пользователем через params[AZ_weights], и  - начальная невязка.
 
    По умолчанию: 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] конечной невязки или оценочной конечной невязки (рекурсивно вычисленной итерационным методом).



Next:2.3. Основные подпрограммы библиотеки Aztec
Up:2. ИСПОЛЬЗОВАНИЕ БИБЛИОТЕКИ ПАРАЛЛЕЛЬНЫХ ПОДПРОГРАММ Aztec
Prev:2.1. Общая организация библиотеки Aztec