2.2. Конфигурационные параметры библиотеки Aztec
Для использования библиотеки Aztec в текст программы должен быть включен include-файл, в котором определен набор необходимых переменных:
Пакет написан на языке С, поэтому все используемые при вызове подпрограмм пакета массивы должны быть описаны индексируемыми от 0 (в том числе и на Фортране). Вызов различных подпрограмм решения систем линейных алгебраических уравнений выполняется через драйверную подпрограмму AZ_solve. Управление режимами работы решателя осуществляется с помощью двух массивов:
Возвращаемая информация помещается в массив двойной точности status(0:AZ_STATUS_SIZE).
Приведем список наиболее важных опций. Значения констант, используемых в качестве индексов элементов массивов options, params, status и в качестве значений, присваиваемых этим элементам, определены в include-файлах.
options[AZ_solver] | Специфицирует алгоритм решения.
Возможные значения задаются либо в виде именованных констант, либо числовых значений, которые приведены в скобках: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options[AZ_scaling] | Определяет алгоритм масштабирования. Масштабируется вся матрица (запись
идет на место старой). Кроме того, при необходимости масштабируются правая
часть, начальные данные и полученное решение.
Возможные значения: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options[AZ_precond] | Специфицирует переобуславливатель.
Возможные значения: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options[AZ_conv] | Определяет выражение невязки, используемое для подтверждения сходимости.
Итерационное решение завершается, если соответствующее выражение невязки
меньше, чем params[AZ_tol].
Возможные значения: |
|
|
|
|
|
|
|
|
|
|
|
|
options[AZ_output] | Специфицирует информацию, которая должна быть выведена на печать в
процессе решения (выражения невязки см. options[AZ_conv]).
Возможные значения: |
|
|
|
|
|
|
|
|
|
|
|
|
options[AZ_pre_calc] | Показывает, использовать ли информацию о факторизации из предыдущего
вызова AZ_solve.
Возможные значения: |
|
|
|
|
|
|
|
|
options[AZ_max_iter] | Максимальное число итераций.
По умолчанию: 500. |
options[AZ_poly_ord] | Степень полинома при использовании полиномиального переобуславливателя.
А также число шагов при переобуславливании Якоби или симметричном переобуславливании
Гаусса-Зейделя.
По умолчанию: 3. |
options[AZ_overlap] | Определяет подматрицы, факторизуемые алгоритмами декомпозиции области
AZ_lu, AZ_ilu, AZ_bilu.
Возможные значения: |
|
|
|
|
|
|
|
|
options[AZ_kspace] | Размер подпространства Крылова для GMRES.
По умолчанию: 30. |
options[AZ_orthog] | Схема ортогонализации GMRES.
Возможные значения: |
|
|
|
|
|
|
Массив 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.
Возможные значения: |
|
|
|
|
|
|
|
|
|
|
|
|
status[AZ_r] | Истинная норма невязки, соответствующая выбору options[AZ_conv] (для вычисления нормы используется полученное решение). |
status[AZ_scaled_r] | Истинное выражение отношения невязки как определено в options[AZ_conv]. |
status[AZ_rec_r] | Норма соответствующей options[AZ_conv] конечной невязки или оценочной конечной невязки (рекурсивно вычисленной итерационным методом). |