CFL条件
From Wikipedia, the free encyclopedia
CFL条件(シーエフエルじょうけん、Courant-Friedrichs-Lewy Condition)またはクーラン条件とは、数値解析によるコンピュータシミュレーションにおいて、「情報が伝播する速さ」は「実際の現象で波や物理量が伝播する速さ」よりも速くなければならないという必要条件のことである。1928年に、リヒャルト・クーラント、カート・フリードリヒ、ハンス・レヴィーによって提唱された[1]。
概要
例えば、離散格子系において波動を扱う場合に、その運動方程式の数値解を求める際に用いる時間ステップΔt の値は、実際の波動が隣り合う格子に伝達するまでの時間よりも小さくなければならない。もしΔt の値がその時間の上限を超えると、計算上の情報伝達速度が実現象の速さに追従できずに数値発散が生じてしまい、物理的に意味の無い解を得てしまう。意味のある計算をするためには空間格子の間隔Δx を小さくするなら、時間ステップΔt の上限値もそれに伴って減らさなければならない。
CFL条件は陽解法の時間進展を行う際に用いられる条件であり、この条件を回避するためには陰解法がしばしば用いられる。陰解法を用いることでCFL条件の回避や緩和ができる理由としては様々な説明が存在するが、最も簡潔に説明すると、陽解法は1ステップ前の自分の周りのごくわずかな格子点のみから情報を得て次の時間の値を決めるのに対して、陰解法は1ステップ前の(ほぼ)全ての格子点の情報を処理して次の時間の値が決まるため、CFL条件におけるΔx が実質的に巨大になるためである。
数式による説明
実際の現象を速さ(特性速度)の大きさが C の波動であるとする。この現象は次の移流方程式で記述される:
ここでは速度場である。この方程式を時間ステップ幅Δt 、格子幅Δx として、時間微分に1次精度陽解法、空間微分に1次精度風上差分を用いて離散化すると、
すなわち
となる。ここで、時刻 の格子点 における数値解 は、時刻 の格子点 と の情報だけから計算される。したがって、この差分法が1ステップの間に取り込める情報の空間の範囲は高々 である。一方、実際の物理では、時間 の間に情報は距離 だけ伝播する。ゆえに、物理的な情報伝播が数値計算の参照範囲を超えないためには
が必要であり、これをCFL条件と呼ぶ。
この式を無次元数であるクーラン数 C Δt /Δx を使って、「クーラン数は1より小さくなければならない」と表現することもある。「Δtの間に格子を何個分移流するか」が、クーラン数の意味であるから、この条件は「Δtの間に許される移流距離は格子幅を超えてはいけない」ということを意味している[2]。