| エラー |
|
Automatic time-stepping lead to a time-step below the minimum threshold. 自動時間ステップにより、時間ステップが最小閾値を下回りました。 |
何が起こったのでしょうか?
解がある時点でニュートン収束を達成せず、自動時間ステップ計算がユーザーによって許可された最小値よりも低い時間ステップ値を計算しました。
考えられる理由は?
自動時間ステップ計算の設定が適切でないです。
今できることは?
このエラーはニュートンの収束不足に関連しているため、まずそのエラーを解決することをお勧めします。詳しくはこちらのドキュメントをご覧ください。
もしこのエラーが解決されない場合、シミュレーションが解を計算するために小さな時間ステップを必要とすることが考えられます。これは非線形性が高い場合や、ダイナミクスが速い場合に起こります。
このような場合は、Simulation controlパネルに進みます:
ここでは、自動時間ステップ定義アルゴリズムの関連パラメータのデフォルト値を確認できます:
- Time step definition (時間ステップの定義): Automatic
- Maximum time step length (最大時間ステップ長さ): \(\Delta t_{max} = \) 0.1\(s\)
- Minimum time step length (最小時間ステップ長さ)\(\Delta t_{min} = \) 1e-5\(s\)
- Time step calculation (時間ステップ計算): Manual
- Number of subdivision (サブディビジョン数): \(n = \) 4
- Max subdivision depth (最大サブディビジョン深さ): \(m = \) 3
このアルゴリズムは、積分過程で解の発散によるエラーが発生した場合、時間ステップを\(n\) 等分に細分化します。さらにエラーが発生した場合は、時間ステップが最小値を下回るまで、再び細分化ルールを適用します。この意味で、\(i\) 小区分後の時間ステップは式で与えられることがわかります:
$$ \Delta t_i = \frac{ \Delta t_{max} }{ n ^ i } $$
そうすると、\( i = m \) で与えられる最後の細分化では、時間ステップは次のようになります:
$$ \Delta t_{ i = m } = \frac{ \Delta t_{max} }{ n ^ m } $$
誤差の発生を避けるためには、最小時間ステップより常に大きくする必要があります。これにより、Minimum time step length (最小時間ステップ長さ)を選択するルールが得られます:
$$ \Delta t_{min} \leq \frac{ \Delta t_{max} }{ n ^ m } $$
デフォルト値の場合
$$ 1×10^{-5} \leq \frac{0.1}{4^3} = 1.5625×10^{-3} $$