線形ソルバー:高度なオプション

本項では、上級ユーザーを対象に、ソルバーパラメータの機能について説明します。ソルバーのタイプだけでなく、使用するソルバーを手動で選択しようとする上級ユーザーは、Flux Supervisor > Options > User mode > Advancedを選択してソルバーのユーザーモードを変更したうえで、Fluxをいったん閉じ、再度開いてその変更を適用する必要があります。このアドバンストモードでは、他のモードよりもはるかに多くのオプションがソルバーオプションのボックスに表示されます。例として線形ソルバーのリストを以下に示します。

タイプ ソルバー名 並列処理 分散処理
該当せず 自動ソルバー[デフォルト] 該当せず 該当せず
反復ソルバー ICCG[デフォルト] × ×
IJCG × ×
PETSc
GMRes × ×
BICGStab × ×
直接ソルバー SuperLU × ×
Mumps(局所処理)[デフォルト] ×
Mumps(分散処理)
該当せず ユーザーサブルーチンによるソルバー 該当せず 該当せず
該当せず 外部ソルバー 該当せず 該当せず

並列ソルバーおよび分散ソルバーでは、Flux Supervisor > Options > System > Parallel computingを選択すると全体規模で計算パラメータを設定できます。MumpsやPETScでは、これらのパラメータを使用して一部のデフォルトのオプションを設定します。詳細については、並列コンピューティングをご参照ください。

以下では、各ソルバーパラメータについて詳しく説明します。

ICCGおよびIJCG

ICCGとIJCGは、解析に共役勾配法を使用し、前処理にLDLT不完全コレスキー分解を使用する反復ソルバーです。Steady State ACでは、ICCGおよびIJCGは解析に共役勾配法を使用し、前処理にLDU不完全分解を使用します。

オプション

パラメータ 説明

共役勾配法の精度

反復プロセスを停止するうえで達成する必要がある相対精度

デフォルト値:1.0e-6

共役勾配法の

最大反復回数

反復プロセスを停止するまでに実行する計算の最大反復回数。この反復回数を設定するために、次の2つのオプションを使用できます:

  • 次のように2つの整数AとBを入力として取る1次関数

    N = A   ×   n u m b e r   o f   d e g r e e s   o f   f r e e d o m + B

  • 固定値N

デフォルト値:A = 1、B = 1とした1次関数。問題にある方程式の数を表します。

LDU前処理に対するトレランス

前処理の精度

デフォルト値:1.0e-7
収束の進展に関するメッセージの出力

反復プロセスの詳細レベルを示すフラグ。解析中に反復プロセスの進展状況を出力するには“Yes”に設定します。

デフォルト値:“No”

PETSc

PETScは、並列反復ソルバーと分散反復ソルバーのライブラリです。問題の次元およびタイプに応じて、ソルバーと前処理の組み合わせを事前に選択します。2Dでは、この組み合わせとしてLGRMRESとILUまたはBCGSとILUを使用します。3Dの問題では、デフォルトのソルバーでの組み合わせはTFQMRとICCです。このソルバーで処理に失敗した場合はBCGSとILUが使用されます。プロセス数はFlux Supervisorで定義します。詳細については、並列コンピューティングをご参照ください。

オプション

現在のバージョンで使用可能なオプションはありません。

GMRes

GMResは反復ソルバーです。このソルバーでは、解析に再起動型一般化最小残差法を使用し、前処理にILUTによる不完全分解を使用します。

オプション

パラメータ 説明
GMResの精度

反復プロセスを停止するうえで達成する必要がある相対精度

デフォルト値:1.0e-6

GMResの最大反復回数

反復プロセスを停止するまでに実行する計算の最大反復回数。この反復回数を設定するために、次の2つのオプションを使用できます:

  • 次のように2つの整数AとBを入力として取る1次関数

    N = A   ×   n u m b e r   o f   d e g r e e s   o f   f r e e d o m + B

  • 固定値N

デフォルト値:A = 1、B = 1とした1次関数。問題にある方程式の数を表します。

ILUT前処理に対するトレランス

前処理の精度

デフォルト値:1.0e-6

ILUT前処理の充足レベルに対する係数

ILUT前処理の充足係数。

デフォルト値:6.0

クリロフ空間の次元

クリロフ空間を構築するために保存するベクトルの数。

デフォルト値:120

収束の進展に関するメッセージの出力

反復プロセスの詳細レベルを示すフラグ。解析中に反復プロセスの進展状況を出力するには“Yes”に設定します。

デフォルト値:“No”

BiCGStab

BiCGStabは反復ソルバーであり、解析に安定化双共役勾配法を使用し、前処理にLDLT不完全コレスキー分解を使用します。Steady State ACでは、BiCGStabは前処理に不完全LDU分解を使用します。

オプション

パラメータ 説明

BiCGStabの精度

反復プロセスを停止するうえで達成する必要がある相対精度

デフォルト値:1.0e-6

BiCGStabの最大反復回数

反復プロセスを停止するまでに実行する計算の最大反復回数。この反復回数を設定するために、次の2つのオプションを使用できます:

  • 次のように2つの整数AとBを入力として取る1次関数

    N = A   ×   n u m b e r   o f   d e g r e e s   o f   f r e e d o m + B

  • 固定値N

デフォルト値:A = 1、B = 1とした1次関数。問題にある方程式の数を表します。

LDU前処理に対するトレランス

前処理の精度

デフォルト値:1.0e-7

収束の進展に関するメッセージの出力

反復プロセスの詳細レベルを示すフラグ。解析中に反復プロセスの進展状況を出力するには“Yes”に設定します。

デフォルト値:“No”

SuperLU

SuperLUは、ガウス消去法アルゴリズムを使用する直接解法です。

オプション

パラメータ 説明
列の再配置アルゴリズム

行列の列をどのように並べ替えてスパース性を保持するかを指定します。列の並べ替え方法は次のとおりです:

  • Minimum degree on AT + A: AT + Aの構造での最小次数順
  • Minimum degree on AT * A: AT* Aの構造での最小次数順
  • COLAMD: 列の近似最小次数順
  • Dissection (2D) [2Dでは自動]: 並べ替えにMETISを使用します。
  • Dissection (3D) [3Dでは自動]: 並べ替えにMETISを使用します。

デフォルト値:“Automatically specified reordering method”

部分行ピボット選択

行ピボット選択を設定します。次の2つの選択肢があります:

  • 0.0: ピボット選択を無効化
  • ]0.0, 1.0[: 緩和した部分ピボット選択を使用
  • 1.0: 従来のピボット選択法を使用

デフォルト値:0.0

反復改良

反復改良を実行するかどうかを指定し、実行する場合は残差を計算するための精度を指定します。

デフォルト値:“Without”

対称モード

対称モードを使用するかどうかを指定します。対称モードでは、対角線ピボットを優先して、(AT + A)ベースの列置換アルゴリズムを使用します。

デフォルト値:“Without”

pivot growthの計算

reciprocal pivot growthを計算するかどうかを指定します。

デフォルト値:“Without”

条件数の計算

条件数の逆数を計算するかどうかを指定します。

デフォルト値:“Without”

Mumps

Mumpsは、マルチフロンタル法に基づく直接ソルバーです。

Mumps(局所処理)は単一プロセスですが、マルチスレッドソルバーです。プロセスは1つのみですが、スレッド数はFlux Supervisorで選択したコア数による固定値です。

Mumps(分散処理)はマルチプロセスでマルチスレッドのソルバーです。プロセス数とスレッド数は、Flux Supervisorで定義します。詳細については並列コンピューティングをご参照ください。

オプション

パラメータ 説明
詳細レベル

解析プロセスを実行するときに詳細レベルを設定します。取得する情報のレベルを指定する次の4つのオプションが用意されています:

  • 1- Only errors messages
  • 2- Errors, warnings and main statistics
  • 3- Errors, warnings and terse diagnostics
  • 4- Errors, warnings and information on input and output parameters

デフォルト値:“1- Only errors messages”

ディスクのメモリの使用

ディスク使用量に関するオプションを設定します。次の4つのオプションがあります:

  • No, do not use the disk memory
  • Automatic – Switch over to Out-of-core depending on the matrix size
  • Yes – Default temporary directory
  • Yes – Choice of the temporary directory

デフォルト値:“No”

並べ替え方法

使用する並べ替え方法を設定します。次の5つの方法を使用できます:

  • METIS
  • AMD – 近似最小次数
  • QAMD – 準高密度行の検出を伴うAMD
  • PORD
  • AMF

デフォルト値:“Automatic – Choice in Mumps”

メモリ制限(RAM)

メモリ使用量に対する制限を設定します。Mumpsで使用できるメモリ量を制限できます(MB単位)。

デフォルト値:無制限

MPIのオプション

MUMPS(分散処理)専用。MPIオプションを定義するために設定します。MPIによる計算を有効にするには、スレッド数でMPIの数を指定します。

デフォルト値:“No"