1

序章

線形演算子の前処理を使用して MHD 問題を解決するコードを Fortran で開発しています。反転する疎行列は、次のような階層構造の行列と考えることができます。元の行列 (たとえば、A_1) は、ブロックのバンド行列です。A_1 の各ブロックは、同じ構造 (つまり、ブロック バンド行列) のスパース行列 (たとえば、A_2) です。A_2 の各ブロックも、同じスパース構造 A_3 のブロック バンド行列です。A_3 の各ブロックは、最終的に、5 行 5 列の密行列 A_4 になります。この階層表現は、行列の要素を初期化するのに非常に便利です。

質問

Sparse BLAS または MKL Pardiso が使用されるため、そのような構造を処理し、標準の疎行列形式 (CSR、CSC、BSR、...) のいずれかに変換できる (Fortran の) ライブラリが存在するかどうか疑問に思います。それを反転します。私の意図は、マトリックスの要素を初期化するためだけに階層構造を使用することです。もちろん、階層構造を無視して、マトリックスを CSR 形式でハードコーディングすることもできますが、これは実装とテストに時間がかかりすぎると思います。

コメント

  1. S. Pissanetsky " Sparse matrix technology", 1984, Academmic Press, page 27 (こちらからオンラインで入手可能) では、そのようなストレージ スキーム、つまり「ハイパーマトリックス」と「スーパースパース」ストレージ スキームであり、ガウス消去法で使用されました。これらのスキームの利用可能な実装をまだ見つけていません。

  2. ブロック圧縮スパース行 (BSR) 形式 (MKL でサポート) を使用して、行列の 2 つのレベル、A_3(スパース) + A_4(密) を処理できます。

4

0 に答える 0