1 CFL条件の概要
CFL条件は、数値流体力学や一般の数値偏微分方程式において、時間発展の手順が空間解像度に対して過度に速く進まないよう制限する考え方として用いられる。双曲型方程式では情報(不連続や波面)が有限速度で伝わるため、差分・離散化後の計算でも、その伝播を時間刻みの範囲内で表現できることが安定性に直結する。
この条件は「時間刻みをどれほど小さくすべきか」を一律に決めるものではなく、離散化の方式、波の伝播速度、格子幅、次元、境界の扱いなどを通じて上限が決まる。結果として、同じ方程式でも手法や設定によって要求される時間刻みが変わる。
1.1 CFL条件の定義
CFL条件はCourant–Friedrichs–Lewyが示した、双曲型問題の初期値計算における整合性(情報伝播の追跡可能性)を数値的に保証するための条件である。一般に「CFL数がある範囲に収まる」こととして実装上の目安が与えられる。
1.1.1 双曲型方程式における安定性の考え方
双曲型方程式では、解の変化が有限速度で伝わる。連続体の世界では、ある時刻から次の時刻へ進む間に、特定の特徴方向(特性曲線)に沿って情報が伝わる距離が決まっている。数値計算ではこの伝達を格子点間の更新として表すため、時間刻みが大きいと「情報が格子を飛び越える」状況が生じる。
この飛び越しが許されると、離散化の更新則が本来の物理的な因果関係を反映できず、数値誤差が増幅して解が破綻しやすくなる。CFL条件は、そのような因果の不整合を避けるための制約として解釈できる。
1.1.2 信号伝播距離と時間刻み幅の関係
時間刻み幅を\(\Delta t\)、空間刻み(格子幅)を\(\Delta x\)とし、最大伝播速度(代表的には波速や流速に対応)を\(a_{\max}\)とする。1ステップで信号が到達できる理想的な距離は概ね\(a_{\max}\Delta t\)で見積もれる。CFL条件は、この距離が格子幅に対して十分小さい(ある上限内)ことを要求する形で表されることが多い。
直観的には、1ステップの更新で情報が少なくとも隣接セル程度までに収まるように時間刻みを制限する発想である。具体的な上限の係数は、用いる離散化が数値的に許す誤差増幅の度合いに依存する。
1.2 CFL数とその意味
CFL数は、時間刻みと空間刻み、さらに伝播速度を無次元化して比較した量である。これにより、問題のスケールや格子の取り方が異なっても、安定性の観点から同じような判断がしやすくなる。
1.2.1 一般形(比の形で表す考え方)
代表的な一次元の例では、移流型の双曲問題に対して\[ \mathrm{CFL}=\frac{a_{\max}\Delta t}{\Delta x} \] のような比が用いられる。ここで\(a_{\max}\)は計算中で到達し得る最大の特徴速度(多くの場合、状態に依存しセルごとに変わる)を意味する。
多次元では各方向の格子幅と速度成分が絡み、しばしば\(\Delta x,\Delta y,\Delta z\)と対応する速度の組合せに対して合計やノルムをとる形で安定条件が記述される。離散化の型に応じて上限値や式の細部は変わるが、「時間刻みが空間解像度に対して大きすぎない」ことが共通の核となる。
1.2.2 上限値が依存する要因
CFL数の許容上限は一意に固定されるわけではない。離散化スキームの時間方向の近似(例えば前進オイラー型か、より高次のルンゲ・クッタ型か)、空間方向の離散化(風上・中心差分、リミッティングの有無)、数値フラックスの構成(リーマンソルバや近似リーマン法)、および境界処理が影響する。
また、同じスキームでも「安定性の意味」が違う場合がある。たとえばフォン・ノイマン解析で見た線形安定性と、エネルギー評価やTVD(全変動減少)に関連する非線形安定性では条件の厳密さが異なることがある。したがって実務では、理論上の上限を基準にしつつ数値検証で安全側に調整する運用が一般的である。
1.3 安定性と精度の関係
CFL条件は主として安定性を制御するが、時間刻みを小さくすることは精度にも影響する。時間離散化の次数と誤差の構造を踏まえると、条件を満たす範囲でどれだけ余裕を持つかが計算結果に結び付く。
1.3.1 安定条件を満たすことの保証範囲
「CFL条件を満たせば必ず安定」と言い切れない場合もある。線形問題では理論的に成立しやすいが、非線形性が強い系では厳密証明の前提が崩れたり、局所的に最大速度が跳ねて実効CFLが一時的に上限を超えたりすることがある。
さらに、空間離散化が本質的に不安定要因を含むと、時間側の調整だけでは救えない。したがって実際には「時間離散化単独の観点で十分条件に近い」ことを目安にし、空間スキームの妥当性や境界の整合性も合わせて評価する必要がある。
1.3.2 CFL条件が精度に与える影響
時間刻みが小さいほど局所時間離散化誤差は減少しやすいが、計算コストは増える。双曲型では誤差の性質として位相誤差(伝播のずれ)や数値粘性(人工的な減衰)も重要であり、時間刻みの大小がこれらの特性に間接的に作用することがある。
一方で、CFLを過度に小さくすると、空間方向の誤差支配へ移行し、時間側の改善が頭打ちになることがある。効率よく精度を上げるには、CFL制限で決まる最小時間刻みの中で、時間離散化次数・空間次数・目標誤差を整合させる方針が求められる。
2 数値計算への適用
CFL条件は、双曲型偏微分方程式を差分・離散化して解く際に、時間更新を安定化させる指標として組み込まれる。適用の際には、対象方程式の性格、離散化の手法、境界条件、次元に応じて実効的な上限を判断する。
2.1 対象となる方程式
CFL条件が本質的に効くのは、情報伝播速度が有限である双曲型に関連する問題である。代表例として移流や波、圧縮性流体の一部モデルが挙げられる。
2.1.1 代表的な双曲型問題
代表的には移流方程式、線形波動方程式、線形化した圧縮性流体方程式などが対象となる。いずれも特徴速度が現れ、時間刻みがその速度により規格化されるため、CFL数の概念が自然に導入できる。
2.1.1.1 線形移流方程式の例
線形移流方程式\[ \frac{\partial u}{\partial t}+a\frac{\partial u}{\partial x}=0 \] は、CFL条件を理解するための定番例である。ここでは\(a\)が伝播速度に相当し、時間離散化と空間差分の組合せによって安定性条件が導出される。
例えば単純な風上型の更新では、1ステップでの情報伝播が格子間隔の範囲に収まることが安定性に影響する。その結果として\(\Delta t\)の上限が\(\Delta x\)と\(a\)の比で制限され、CFL数が1未満(あるいはスキームによりそれ以下)であることが目安となる。
2.1.2 波動方程式やオイラー方程式の位置づけ
波動方程式は、波速に基づく有限伝播と位相構造を持つため、CFL条件の適用対象として広く扱われる。とくに時間・空間の離散化の組合せによって数値的な波速や分散が変わるが、安定性の基礎には伝播速度と格子の整合がある。
圧縮性流体を記述するオイラー方程式では、音速を含む特徴速度が流れ場とともに変化するため、局所最大速度を用いた実効CFLが重要になる。これにより時間刻みは一定ではなく、状態更新に追随して変動させる設計が一般的となる。
2.2 空間・時間の離散化
CFL条件は、離散化された更新則に対して現れるため、空間と時間の両方の選択が絡む。時間方向をどう進めるか、空間方向で流れをどう近似するかによって、許容される\(\Delta t\)の大きさが変わる。
2.2.1 差分法・有限体積法・有限要素法との関係
差分法では格子点の値の更新により時間発展を行うため、安定性条件が理論上比較的わかりやすく見えることが多い。有限体積法ではセル平均に基づくフラックス評価が中心で、数値フラックスの構成により安定性の条件が反映される。
有限要素法も双曲型の時間発展を行う際に同様の概念が現れるが、形状関数や質量行列の取り扱いによって制限の表れ方が異なる場合がある。いずれにせよ「情報が離散更新の範囲に収まる」ことが中核である。
2.2.2 明示的手法と暗示的手法での扱い
明示的手法では、次の時刻の未知量が現在の情報だけで直接更新される。この場合、安定性を保つにはCFL型の制限が比較的強く現れ、時間刻みの上限が実務上の制約として効く。
一方、暗示的手法は次時刻の未知量を方程式として解くため、形式上は時間刻みを比較的大きくしても安定性が保たれることがある。ただし、暗示化は必ずしも精度を保証しない。時間刻みが大きいと物理的伝播の追跡や位相の再現が崩れ、定性的に誤った振る舞いをする可能性がある。そのため暗示法でも、安定性に加えて精度要件としてCFL指標を参照することがある。
2.3 境界条件の影響
境界条件は、計算領域内での有効な特徴速度や数値フラックスの評価に影響する。結果として、理論式で想定した上限よりも厳しい時間刻み制限が必要になる場合がある。
2.3.1 固定境界・流入流出境界の考慮
固定境界(壁面など)では、反射や擬似的な不連続の扱いが更新則に影響する。流入流出境界では、境界から入る情報と、外へ出る情報の区別が必要であり、特性方向に沿った条件付けが安定性に関わる。
特に流入を含む場合、境界でのデータが最大速度に相当する値を与え得るため、局所的に最大特徴速度が上がり、実効CFLが増大する。このため境界近傍の挙動を前提に時間刻みを選ぶ必要が出る。
2.3.2 境界処理が与える実効伝播速度
境界処理は、理想的な連続問題の伝播とは異なる数値モデルを導入することがある。例えば、特性に基づく外挿や、数値境界条件による緩和が行われると、計算上の有効な伝播特性が変化する。
その結果、CFL条件の「最大速度」の見積もりが境界近傍で変わり得る。実務では、全領域の理論上の最大速度だけでなく、境界近傍の離散化特性を踏まえた安全係数を使うことで破綻を防ぐ運用が行われる。
3 CFL条件の決め方
CFL条件の決定は、(1)伝播速度の見積もり、(2)格子幅との関係付け、(3)実務的な検証と調整、の流れで行われる。数値計算では局所的な最大速度やスキームの特性を考慮するため、手順化が重要になる。
3.1 伝播速度の見積もり
CFL制限に現れる速度は、物理系の特徴速度に対応する。実際の計算では状態が変化するため、時間と空間に依存する最大値を扱う必要がある。
3.1.1 特性速度(固有値)による評価
双曲系はヤコビアンの固有値として特徴速度が得られる。たとえば圧縮性流体なら音速と流速の組合せが固有値となり、局所ごとに最大値が変わる。
このため実務では、各セルあるいは各格子点で固有値の大きさを評価し、その最大を用いて\(\Delta t\)を制限する方法が採られる。これにより、局所的に速い伝播が出現した場合にも破綻を回避しやすい。
3.1.2 安定化のための保守的見積もり
固有値の厳密計算が負担になる、あるいは境界や離散化が引き起こす追加の不安定性を織り込む必要がある場合、速度見積もりは保守的に行われる。具体的には、状態から理論速度を計算した上で安全係数を掛ける、あるいは最大値の取り方をより厳しくする、といった調整が行われる。
さらに、数値拡散やリミッタにより実効的な信号速度が変化する場合もあるため、理論上の速度より大きめの上限を置き、実験で裏取りする運用が多い。
3.2 メッシュと時間刻み幅の選択
時間刻みはメッシュ解像度に強く依存する。特に多次元では、方向ごとの格子幅と速度成分を総合した条件が必要になり、最小の格子幅がボトルネックになりやすい。
3.2.1 1次元・多次元での違い
1次元では\(\Delta x\)と\(\Delta t\)と速度の比で単純に見積もれることが多い。多次元では更新が複数方向の寄与を含むため、ある方向でのCFLが小さくても別方向で大きいと不安定になり得る。
そのため実効CFLは、複数方向の情報伝播の寄与をまとめて評価する形になる。結果として、時間刻みは最も厳しい方向の条件に支配されることが多い。
3.2.2 異方メッシュでの扱い
異方メッシュでは格子幅が方向により大きく異なる。例えば壁に平行な方向は粗く、法線方向は細かい、といった設定では、細かい方向の条件が支配して\(\Delta t\)が小さくなる。
この状況では計算効率が大きく低下し得るため、メッシュ設計やスキーム選択(例えば方向分割の考え方、許容CFLの見直し、暗示化の部分導入など)を組み合わせて現実的な時間刻みを実現する方策が検討される。
3.3 実務的な手順
理論式に基づく初期設定だけでなく、検証計画と計算中の監視が重要になる。特に非定常計算では、時間とともに最大速度が変化し実効CFLが変わるため、動的な調整が必要になる。
3.3.1 CFL数の設定と検証計画
まず対象のスキームに対して、理論上の許容範囲あるいは推奨値を参照し、初期のCFL目標を決める。次に、格子を用いた短時間のテスト計算を行い、不安定な成長やエネルギーの非物理増大がないかを確認する。
検証では、残差の挙動、物理量の妥当性、時間発展の滑らかさなどを確認する。安定性の閾値は問題設定や境界の扱いに依存しやすいため、数値実験による補正が実務上の重要な工程となる。
3.3.2 計算中の適応(時間刻み可変)の考え方
非定常な流れでは最大伝播速度が変化するため、固定時間刻みでは実効CFLが上限を超える瞬間が出ることがある。そこで、各ステップで最大速度を再評価し、\(\Delta t\)を再計算する可変時間刻みが用いられる。
ただし可変刻みは、時間離散化の整合や誤差制御にも影響する。ルンゲ・クッタ型の段数管理、補間の整合、保存則の扱いなどに配慮しながら運用することで、安定性と精度の両立を目指す。
4 安定性の評価とトラブルシューティング
CFL条件は有効な指標である一方、実際の計算では複数要因が絡む。ここでは典型的な破綻の兆候、確認手段、改善策を整理する。
4.1 不安定になる典型例
不安定性は、時間刻みの過大以外にも離散化や境界が原因となることがある。現象の種類を見分けることで、原因特定と修正が速くなる。
4.1.1 解の発散・振動・過度な数値拡散
解が発散する場合は、更新則が誤差を増幅している可能性が高い。振動が現れる場合は、位相や勾配の扱いが合わず、局所的な誤差が増幅していることがある。過度な数値拡散はCFL過小の側面で起こる場合もあるが、スキームの選択が主因のこともある。
これらは観察量としては、最大値の急増、スペクトルの高周波成分の増加、保存量の急激なずれなどに現れる。どの特徴が優勢かで対応策が変わる。
4.1.2 刻み幅だけでなく離散化が原因となる場合
時間刻みが条件を満たしていても破綻する場合がある。空間離散化が高次すぎて、境界や急峻な勾配に対してリミッタや補正が適切でないと、局所的な不安定が発生する。
また、暗示法で見かけ上は安定に進んでいても、実際には大きな誤差が蓄積して非物理的な状態へ移行することもある。したがって、原因の切り分けではCFLだけでなく、空間方向の安定性特性と境界処理を合わせて点検する必要がある。
4.2 安定性確認の方法
理論と実験をつなぎ、適切なモニタリングで早期に異常を検出することが重要になる。
4.2.1 理論条件と数値実験の突き合わせ
理論条件で得られた上限は指標であり、実データでの成立範囲は検証するのが望ましい。典型的には、CFLを段階的に増やしていき、安定性が保たれる範囲の境界を探る手順がとられる。
このとき、テストは本番と同程度の初期条件、境界条件、物性、ならびに同じ離散化設定で実施することが重要である。スキーム変更やリミッタの設定が異なると、CFLの要求水準も変わる。
4.2.2 モニタリング指標(残差・エネルギー等)
残差(あるいは反復法の収束指標)や、物理エネルギーに相当する量の推移は、数値的破綻の早期兆候となり得る。双曲系ではエネルギーの保存・減衰が物理モデルに沿っているかが重要で、増大が非物理なら不安定を疑う。
また、最大勾配やリミッティング係数の頻度など、スキーム内部の指標を観察することで、局所的な不安定性の場所が特定できる。これにより、時間刻み調整だけでなく、空間側の設定見直しに素早くつなげられる。
4.3 改善策
問題の種類に応じて、時間刻みの縮小、離散化の変更、有限体積法に特有の補正手段などを選択する。単一の対処に頼らず組合せることが多い。
4.3.1 時間刻み幅の縮小と計算コストの調整
最も直接的な改善策は\(\Delta t\)を小さくし、実効CFLを上限から十分離すことである。だが計算時間が増えるため、目標精度と許容計算量のバランスを取る必要がある。
実務では、単に縮小するのではなく、安定性に必要な最小限の余裕幅を探る。これにより無駄なコスト増を抑えつつ破綻を回避する。
4.3.2 スキームの変更(安定性の高い離散化)
時間刻みを縮めても改善しない場合、安定性特性の異なるスキームへ切り替えることがある。例えば、風上化を強める、Riemannソルバに基づく数値フラックスへ変更する、あるいは高次補間にリミッタを導入するなどである。
選択は、対象の現象(衝撃波や接触面、波の分散、渦の発展)と、保存性・振動抑制の優先度によって決まる。スキーム変更は誤差の性質も変えるため、安定性改善と精度維持を同時に評価するのが望ましい。
4.3.3 有限体積・リミッタ等の併用
有限体積法においては、セル境界でのフラックス評価が支配的であり、単調性を保つためのリミッタが安定化に寄与する。急峻な勾配や不連続に対して、過度な振動を抑える役割を担うため、結果として実効的な安定性が向上することがある。
リミッタの種類やパラメータは、数値拡散と振動抑制のトレードオフに直結する。CFLによる時間側の制御と合わせて、全体の挙動が物理的に妥当であるかを総合的に確かめることが、トラブルシューティングの要点となる。