CFL条件 (Courant-Friedrichs-Lewy Condition)
CFL条件、もしくはクーラン条件は、
数値解析を用いた
コンピュータシミュレーションにおいて、情報の伝播速度が物理現象における波やその他の物理量の伝播速度を上回ることを求めるものです。この条件は1928年に
リヒャルト・クーラント、カート・フリードリヒ、
ハンス・レヴィーによって提示されました。
CFL条件の概要
例えば、
波動のシミュレーションを行う際、数値解を求めるための時間ステップΔtは実際の
波動が隣接する格子点に到達するまでの時間よりも短く設定する必要があります。もしもΔtがこの時間を超えると、数値的な情報の伝達速度が実際の物理現象に追随できず、数値発散が発生する可能性があります。これにより、物理的に意味を持たない解が得られるため、正確な計算を行うには、格子間隔Δxを小さくする場合、Δtの上限もそれに応じて小さくしなければなりません。
CFL条件は特に陽解法を利用した時間の進展において重要です。この条件に抵触する場合、陰解法を用いることで回避することができます。陰解法では、前の時間ステップのほぼ全ての格子点からの情報を使用して、次の時間ステップの計算を行います。これにより、CFL条件におけるΔxの実質的なサイズが大きくなり、解決が容易になります。
数学的表現
実際の物理現象が特性速度Cを持つ
波動であると仮定し、その現象は次の
移流方程式で表されます:
$$ \frac{\partial u}{\partial t} + C \frac{\partial u}{\partial x} = 0 $$
ここで、uは速度場を示します。この方程式を1次精度の陽解法と風上
差分法を用いて離散化すると、次のような形になります:
$$ \frac{u_{i}^{n+1} - u_{i}^{n}}{\Delta t} + C \frac{u_{i}^{n} - u_{i-1}^{n}}{\Delta x} = 0 $$
ここから、次の時間の格子点における数値解uは次のように求められます:
$$ u_{i}^{n+1} = u_{i}^{n} - \frac{C \Delta t}{\Delta x} (u_{i}^{n} - u_{i-1}^{n}) $$
この式において、時刻$t_{n+1}$の格子点$x_{i}$における数値解は、時刻$t_{n}$の同じ格子点と前の格子点$x_{i-1}$から抽出された情報に基づいています。
物理の現象では、Δtの時間内に情報はCΔtの距離だけ伝わります。このため、物理的な情報の伝播が数値計算の範囲を越えないためには、次の不等式が必要です:
$$ \frac{\Delta x}{\Delta t} > C $$
この不等式はCFL条件とも呼ばれます。また、この条件は無次元数であるクーラン数$\frac{C \Delta t}{\Delta x}$を用いて「クーラン数が1未満でなければならない」と表現されることもあります。これは、「Δtの間に最大で移動できる距離が格子幅を超えない」ことを示唆しています。
参考文献
- - 藤井孝藏『流体力学の数値計算法』東京大学出版会、1994年。
- - 腰塚誠一『数値流体力学』培風館、1997年。
- - Carlos A. de Moura and Carlos S. Kubrusly (Eds.): "The Courant-Friedrichs-Lewy (CFL) Condition: 80 Years After Its Discovery", Birkhauser, ISBN 978-0-8176-8393-1 (2013).
このように、CFL条件は
数値解析における非常に重要な概念であり、正確なシミュレーションを行うためにはこの条件を適切に考慮する必要があります。