|
|
◆ csc_ilu0()
| void csc_ilu0 |
( |
int |
n, |
|
|
const double |
val[], |
|
|
const int |
colptr[], |
|
|
const int |
rowind[], |
|
|
int |
base, |
|
|
double |
val2[], |
|
|
double |
d[], |
|
|
int * |
info |
|
) |
| |
不完全LU分解(フィルインなし) (ILU0) (CSC)
- 目的
- 連立一次方程式の疎な係数行列 A の不完全LU分解(フィルインなし)を求める. ここで, Rは完全なLU分解との差分であるが, Rが小さいものとしてこの分解を使って連立一次方程式を解くことにすると次の前処理行列が得られる. val2[] に下三角行列 L と上三角行列 U を出力する. また, d[] に U の対角要素をコピーする. val2[] および d[] を csc_ilu_solve() が使用する.
- 引数
-
| [in] | n | 行列 A の次数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る) |
| [in] | val[] | 配列 val[lval] (lval >= nnz) (nnz は行列 A の非ゼロ要素数)
行列 A の非ゼロ要素の値. |
| [in] | colptr[] | 配列 colptr[lcolptr] (lcolptr >= n + 1)
行列 A の行ポインタ. |
| [in] | rowind[] | 配列 rowind[lrowind] (lrowind >= nnz)
行列 A の列インデクス. |
| [in] | base | colptr[] および rowind[] のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1. |
| [out] | val2[] | 配列 val2[lval2] (lval2 >= nnz)
下三角行列 L と上三角行列 U の非ゼロ要素の値. (nnz は A の非ゼロ要素数と同じで, 値は A の下三角要素および上三角要素と同じ場所に書き込まれる.) |
| [out] | d[] | 配列 d[ld] (ld >= n)
上三角行列 U の対角要素. |
| [out] | info | = 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り.
= j > 0: 行列が特異である(j番目の対角要素が0). |
|