概要
このドキュメントでは、SimScaleの Simulation control と呼ばれるシミュレーション実行を制御する設定について、以下に示す OpenFOAM® ベースの解析タイプとMulti-purpose解析タイプについて詳しく説明します。
- Incompressible (非圧縮性流れ)
- Compressible (圧縮性流れ)
- Conjugate heat transfer (対流熱伝達)
- Conjugate heat transfer v2.0 (共役熱伝達v2.0)
- Conjugate heat transfer (IBM) (共役熱伝達(IBM))
- Multiphase (混相流)
Simulation controlには以下の設定項目があります。
それぞれの項目の意味を説明します。
End time (終了時間)
シミュレーションのグローバル設定で時間依存性を Steady-state とした場合(定常解析)と Transient とした場合(非定常解析)によって、設定の意味が異なります。
Steady-state (定常解析)
定常シミュレーションは時間に非依存であり、計算には時間微分を含みません。したがって、 End time (終了時間)は シミュレーションの繰り返し計算における終了タイミングを表します。(実現象における終了時間ではありません。詳しくは次節Delta tで説明しています。)この値を超える反復計算は実行されません。
Transient (非定常解析)
非定常シミュレーションは時間に依存し、時間経過に伴う現象のシミュレーションを行います。流れに関する変数は時間に対して変化します。したがって、 End time (終了時間)は、あらゆる物理現象において過渡現象を解析する必要がある時間を表します。非定常シミュレーションでは、End time (終了時間)をシミュレーション時間と呼ぶこともあります。
Delta t
シミュレーションのグローバル設定で時間依存性を Steady-state とした場合(定常解析)と Transient とした場合(非定常解析)によって、設定の意味が異なります。
Steady-state (定常解析)
定常シミュレーションでは、 Delta tは反復計算の1ステップサイズを表します。定常シミュレーションでは擬似時間ステップとも呼ばれます。したがって
$$反復回数 = \frac{End\ time}{Delta\ t}$$
| 注 |
| 同じ反復回数でも、End time (終了時間)とDelta tの組み合わせはさまざまに設定することができます。しかしDelta tは小さくしておくことが望ましいため、デフォルトの1のままにしておき、反復回数=End time (終了時間)で設定することを推奨します。 |
Transient (非定常)
非定常シミュレーションでは、Delta tは シミュレーション実行中に方程式を解く時間ステップです。
| Steady-state (定常) vs. Transient (非定常) |
|
反復回数は、Steady-state (定常)とTransient (非定常)で意味が異なります。定常シミュレーションでは反復回数は総計算回数と等しいです。一方、非定常シミュレーションでは、反復回数は各時間ステップ内の収束までの反復回数を意味します。 非定常シミュレーションでは、残差が所定の値以下になれば、その時間ステップでの反復計算は収束したとみなされます。 |
Adjustable time step (タイムステップの調整)
非定常シミュレーションでは、時間ステップの調整オプションをTrueに設定することにより、時間ステップDelta tを調整することができます。これは、時間ステップの値を定義しても、クーラン数の最大値と許容される時間ステップの最大値に基づいて調整されることを意味します。
Maximal Courant number (最大クーラン数)
CFL (Courant-Friedrichs Lewy)条件によると、\(^1\) :
$$C=U \frac{\Delta t}{\Delta x}\tag{2}\le 1$$
ここで、\(C\) はクーラント数、\(U\) はセルでの流速、\(\Delta x\) はセル長、\(\Delta t\) は時間ステップです。
上記の式は、与えられたセルからの情報はそのすぐ隣のセルにのみ伝播しなければならないことを意味します。この設定は非定常シミュレーションでのみ有効です。詳しくはこちらのページ (英語)をご覧ください。
陽解法時間積分スキームを使用する場合、クーラン数は1以下にすることを推奨します。ほとんどの場合、クーラン数は0.5~0.7が望ましいとされています。
Maximal step (最大ステップ)
この設定は、シミュレーション中に超えてはならない最大時間ステップ長を定義します。この設定は、 Adjustable time step(調整可能な時間ステップ)で設定した時間ステップの調整の自由度に対して、さらにコントロールが追加されるため、重要です。この設定は過渡シミュレーションでのみ有効です。
Max alpha co
この設定は、 Multiphase (混相流)解析タイプでのみ利用できます。Alphaは相分率を表し、 Max alpha co は2流体間の界面速度に基づくクーラン数の最大許容値です。
Write controlとWrite interval
Write control (書き込み制御)では、シミュレーション結果を書き込む頻度を指定する方法を選択できます。書き込み間隔は、Write intervalで指定します。
以下の方法があります:
- Time step (時間ステップ) : 連続する2回の書き込みの間にスキップする時間ステップ数を指定します。例えば、Write interval (書き込み間隔)3、タイムステップ Delta tが 2秒の場合、3 x 2 = 6秒ごとに結果を書き込むことになります。
- Clock time (クロック時間) : Clock timeとは、実際の時刻を意味します。連続する2回の書き込みの間隔となる、この実時間の間隔を秒単位で指定します。
- Run time (ランタイム) : Runtimeでは 、指定した間隔秒ごとにデータを書き込むことができます。
- CPU time (CPU時間) : シミュレーション実行中、CPUが命令処理に使用する時間を表します。従って、指定間隔はこのCPU時間の秒数になります。
- Adjustable runtime (調整可能なランタイム) : これは Runtimeと同じ設定ですが、タイムステップのDelta tを書き込み間隔に合わせて調整することができます。
| Adjustable runtime (実行時間の調整) |
| ここで、実行時間とはシミュレーション時間または終了時間を意味します。 Adjustable runtime (実行時間の調整)は、タイムステップを調整することで行います。したがって、Adjustable time stepがTrueに 設定されている非定常シミュレーションにのみ適用されます。 例えば、Write interval (書き込み間隔)が0.1に設定されている場合、様々なDelta t値が0.1, 0.2, 0.3, 0.4,…の時間に正確に一致しない限り、データは保存されません。Adjustable runtime (実行時間の調整)を使用することで、ソルバーがWrite interval (書き込み間隔)で指定された時間(0.1、0.2、0.3、0.4、0.5など)に保存するように、実行中に必要に応じてタイムステップを調整することができます。 |
Number of processors (プロセッサ数)
SimScaleを使用する最大の利点の1つは、シミュレーションを並列で実行できることです。つまり、シミュレーション領域の異なる部分が異なるコアに割り当てられ、それぞれの部分が同時に実行されます。これにより、計算時間が短縮されます。
例えば、下図のような2D正方形ドメインを考えてみましょう:
左側では、ドメイン全体のシミュレーションが1つのコアで実行され、右側では、ドメインが分解アルゴリズムを用いて4つの等しいドメインに分解されます。各ドメインのシミュレーションは同時に実行され、結果は分割されたドメイン境界を越えて通信され、ドメイン全体の最終結果が得られます。
Communityプランでは最大16コア、Professionalプランでは最大96コアを割り当てることができます。より多くのコアを選択するとシミュレーションのスピードが上がりますが、CPUh消費も増えます。コア数の割り当てについて見通しがなければ、最もコストパフォーマンスの高いコア数を自動で割り当てるAutomaticを選択してください。
CPUhとは何か、CPUhの管理方法についてはこちらのページをご覧ください。
Maximum runtime (最大実行時間)
ここでは、最大制限時間を実時間で設定できます。この制限時間を超えると、 End timeで 設定した値にかかわらず、シミュレーションは自動的に終了します。この設定は、特に初期反復中の時間支出を制御するのに役立つため、重要です。
Potential flow initialization (ポテンシャル流の初期化)
Potential flow initialization (ポテンシャル流の初期化)は 、流速の初期条件と境界条件を与えて圧力方程式を解くことで機能します。シミュレーションの初期ステップで収束が遅いか、安定性に問題がある場合、この設定を切り替えると改善が期待できます。
Decompose algorithm (分解アルゴリズム)
シミュレーション領域を分割するアルゴリズムを指定します。 Scotch、Hierarchical、Simpleの 3つのアルゴリズムがあります。
- Scotch : Scotch 分解アルゴリズムは、分解されたドメイン/プロセッサ間の境界の数を最小化しようとします。境界が少ないということは、プロセッサ間の必要な通信が減少し、シミュレーションが高速になることを意味します。追加の入力は必要ありません。
| 重要 |
| SimScaleは、最も効率的なアルゴリズムであるため、Decompose algorithmを常にデフォルトの Scotchに保つようユーザーにアドバイスします。 |
-
Simple : 各空間方向で指定されたサブドメインの数に応じて幾何学ドメインを分割します。図3に(x, y, z)方向に(2, 2, 1)を指定した場合を示します。
追加パラメータ Delta はセル歪み係数として定義されます。これはサブドメイン境界で許容されるセル歪度を表し、通常10\(^{-2}\) 以下に保たれます。
- Hierarchical : Simpleと同様に動作しますが、分解の順序を指定する追加機能があります。 XYZ、XZY、YXZ、YZX、ZXY、ZYXの 合計6つの組み合わせが利用可能です。
| 重要 |
| サブドメインの数は割り当てられたコアの数と一致させる必要があります(上記のNumber of processors (プロセッサ数)を参照)。 |