RokkoInterfaceParallelDenseSolvers - t-sakashita/rokko GitHub Wiki
密行列ソルバ(MPI並列版)向けインターフェース
- 表中でデフォルトとは、
scalapack:
(コロンはなしでも良い)のようにライブラリ名だけが与えられた場合に選択されるルーチンを指す。
ScaLAPACK
標準固有値問題
Rokkoルーチン名 | 元々のルーチン名 | 解法 | 入力パラメータ(オプション) | 出力パラメータ | 備考 |
---|---|---|---|---|---|
scalapack:pdsyev scalapack:qr | pdsyev | QR法 | uplow | なし | ScaLAPACKの引数なしのデフォルト |
scalapack:pdsyevx | pdsyevx | QR法/2分法 | upper_indexとlower_index(またはupper_valueとlower_value), abstol, uplow | m, ifail | abstol>0のとき、2分法のみ, abstol<0のとき、QR法 |
scalapack:bisection | pdsyevx | 2分法 | upper_indexとlower_index(またはupper_valueとlower_value), abstol, uplow | m, ifail | pdsyevxをabstol>0として使用 |
scalapack:pdsyevr scalapack:mr3 | pdsyevr | MR3法 | upper_indexとlower_index(またはupper_valueとlower_value), abstol, uplow, orfac | m, nz, ifail, iclustr, gap | LAPACKの固有値範囲指定ありのデフォルト |
scalapack:pdsyevd scalapack:dc | pdsyevd | 分割統治法 | uplow | なし |
EigenExa
標準固有値問題
Rokkoルーチン名 | 元々のルーチン名 | 解法 | 入力パラメータ(オプション) | 出力パラメータ | 備考 |
---|---|---|---|---|---|
eigen_exa:tri eigen_exa:eigen_s | eigen_s | 分割統治法(3重対角化を経由) | m_forward, m_backward | なし | |
eigen_exa:penta eigen_exa:eigen_sx | eigen_sx | 分割統治法(5重対角化を経由) | m_forward, m_backward | なし | EigenExaのデフォルト |
一般化固有値問題(KMATH_EIGEN_GEVを利用)
ELPA
標準固有値問題
Elemental(C++11が必要)
標準固有値問題
共通の入力パラメータ(オプション)
Rokkoのパラメータ名 | ScaLAPACKのパラメータ名 | 型 | 意味 | 値 | 備考 |
---|---|---|---|---|---|
matrix_part | uplow | std::string (charや文字列は変換して格納) | 上三角と下三角のうちどちらが読まれるか | upper(U), lower(L) | 最初の一文字で判断。大文字か小文字かはどちらでも良い。デフォルトは、'U' |
abstol | abstol | double | |||
upper_index | iu | int | 求めたい固有値の番号の上限(番号は昇順につけられる) | ||
upper_value | vu | double | 求めたい固有値の範囲の上限 | ||
lower_index | il | int | 求めたい固有値の番号の下限(番号は昇順につけられる) | ||
lower_value | vl | double | 求めたい固有値の範囲の下限 | ||
verbose | なし | bool | Rokko側で用意した表示ルーチン。ソルバに設定した入力パラメータ、エラーの詳細を表示。 | デフォルトはfalse |