1 数値フラックスの基本概念
1.1 フラックスと保存則
フラックスとは、物理量が空間の境界を単位時間あたりにどれだけ通過し、ある領域に流入または流出するかを表す概念である。連続体の記述では、保存則は「領域内の蓄積量の時間変化」が「境界を通じた流れ(流入出)」に等しいこととして定式化される。この枠組みによって、質量・運動量・エネルギーのような保存される量の時間発展が決まる。
数値計算では、連続的に定義された場を離散的な変数に置き換えるため、境界を通じた移動をその離散表現に合う形で近似する必要がある。その近似量として導入されるのが「数値フラックス」である。数値フラックスは、保存則の離散版を満たすための交換(流入出)の計算手段として位置づけられる。
1.2 離散化における役割
連続方程式を格子上または要素上で解く際、境界面における物理量の流れをどう表すかが離散化の核心になる。通常、支配方程式は有限差分・有限体積・有限要素などの枠組みに従って離散され、その過程で「セル(要素)の境界面におけるフラックス」が線形または非線形の数値演算として与えられる。
数値フラックスの役割は大きく3つに整理できる。第一に、保存則の離散版を構成するための基本要素である。第二に、対流や拡散のように振る舞いの異なる成分を、それぞれ安定かつ整合的に表すことが求められる。第三に、衝撃波や接触面のような急峻な構造を含む問題では、単調性の確保や振動抑制が実装上の重要な目標となる。
1.2.1 有限体積法での面フラックス
有限体積法では、解はセル平均(各制御体積における平均値)として表される。時間更新は、各セルの体積内の蓄積量が、セル境界の面を通じたフラックスの総和で変化するという関係によって行われる。そのため有限体積法における数値フラックスは、各面での交換量そのものとして直接現れる。
具体的には、各制御体積の周りに定義された面に対してフラックス評価を行い、隣接セルの値が同じ面を共有することにより、流入が流出として相殺される構造を作る。これにより、厳密な保存性(離散的な保存則)を設計しやすくなる一方、面フラックスの精度や安定性が計算全体の品質を左右する。
1.2.2 有限要素法・離散化手法との関係
有限要素法では、弱形式に基づく積分表現から離散方程式を構成するため、フラックスは直接の境界面の数値量として現れるとは限らない。ただし対流優勢の問題では、弱形式の中で導入される数値的安定化(例:流れ方向の追加散逸や界面での整合)によって、実質的に数値フラックスに相当する効果が生じる。
また有限差分法やガラーキン系の安定化手法では、格子点間の情報移送が境界面の交換として解釈できる場合が多い。つまり「数値フラックス」という言い方は有限体積法に限らず、離散化がどの情報をどの境界的な位置でやり取りするかを整理する概念として広く適用できる。
1.3 対象物理量(質量・運動量・エネルギー等)
数値フラックスは保存される量ごとに設計される。代表的には質量フラックス、運動量フラックス、エネルギーフラックスであり、流体の圧縮性・非圧縮性、熱輸送、混合物の成分拡散などにも拡張される。
選ぶフラックス形式は物理量の方程式系に依存する。例えば移流支配であれば情報は流れ方向に伝播し、反対に拡散成分は勾配により滑らかさを作る。両者が共存する場合には、どの程度の散逸(数値粘性)を持たせるか、急峻な変化に過剰な平滑化を与えないかといった調整が重要になる。
2 数値フラックスの設計原理
2.1 一次元モデルによる理解
数値フラックスの考え方は、一つの典型方程式で把握すると整理しやすい。一次元で、未知量を \(u(x,t)\) とし、対流速度 \(a\) が一定の状況を想定すると、移流方程式は単純化された保存形で書ける。ここではセル境界での情報の受け渡しをフラックスとして近似することが本質になる。
一次元モデルでは、衝撃波のような非線形な急峻面は、左側と右側の状態が混じる位置を境界面に見立てることで考えられる。その結果、フラックスの設計は「境界面における有効な流れ」をどのように選ぶか、という問題に収着する。
2.1.1 対流項の離散化
対流項の離散化では、セル境界での値は一般に一意ではなく、左右のセル情報から合成される。そこで数値フラックスは、どちらの情報を優先し、どれほどの誤差を含むかを定める役割を担う。
対流優勢のときに最も重要なのは、解が本来持つ伝播構造に沿って情報を流すことである。速度の符号や特性方向を踏まえた選択が安定性と精度の両立に直結する。
2.1.1.1 アップウィンドの考え方
アップウィンドは、特性方向に沿って情報を取ることで非物理的な振動を抑える発想である。速度 \(a\) が正ならば、境界面の流出側ではなく流入側の値が境界面のフラックスを支配する、といった選択になる。
この手法は一次元の線形問題で安定性を示しやすい。さらに多次元では、流れ方向に対する分解や面ごとの符号判定により同等の概念を適用することが多い。欠点としては過剰な数値拡散が生じやすく、急峻な構造が鈍る傾向があるため、高解像度化では補間や限量器で改善する方向へ進む。
2.1.2 拡散項の扱い
拡散成分は物理的には勾配に比例して移動し、滑らかさを増やす作用を持つ。したがって拡散を含む方程式では、対流と異なる離散化が必要になる。一般に拡散の離散化は、有限差分や有限要素で用いられる勾配近似に基づき、安定性に十分な散逸が自然に現れやすい。
ただし対流拡散型では、対流が支配的な領域と拡散が支配的な領域が混在する。そこで数値フラックスにも拡散寄与の項を組み込み、境界面での勾配評価や係数の取り扱いを丁寧に行う必要がある。特に係数が空間的に変動する場合には、整合性(離散的な滑らかさの再現)と、保存則の破れを防ぐことが重要になる。
2.2 安定性条件と数値粘性
安定性は、計算が時間発展を行う際に誤差が増幅されず、解が発散しない性質として評価される。対流方程式では、時間刻みと格子幅に関する条件が基本になることが多く、代表的にはCFL条件として知られる。
また安定性には「数値粘性」と呼ばれる実効的な散逸が関わる。数値粘性は本来物理的な粘性とは限らないが、離散化が必要に応じて高周波成分の成長を抑えるために現れる。この量を過不足なく設計することが、精度と安定性のトレードオフを制御する鍵になる。
2.2.1 CFL条件との関係
CFL条件は、対流の伝播速度と計算格子の寸法、時間刻みの関係を制限する考え方である。直感的には、一つの時間ステップで情報(特性)がどれだけ格子を跨ぐかを適切に抑えるという要請に対応する。
アップウィンド型などの単純なフラックスでは、CFLの上限に近づくと不安定化しやすくなる。高次化や非線形化では、局所的な速度や波の種類に応じてより厳密な条件が現れることがあるため、時間積分法との組合せで評価する必要がある。
2.2.2 数値粘性の解釈と調整
数値粘性は、離散化が暗黙に導入する散逸成分として解釈できる。アップウィンドの基本形は、理想的には存在しない粘性を付加することで安定化している側面がある。これは衝撃波付近では適切な幅を与える一方、滑らかな領域では本来の精度を落としてしまう。
高解像度スキームでは、無駄な散逸を抑えるように補間を工夫する。たとえば限量器は、発振が起きそうな領域でだけ散逸を増やし、滑らかな領域では高次精度を保つよう設計される。この考え方により、数値粘性の過剰化を避けつつ安定性を維持できる。
2.3 保存性・整合性・単調性
数値フラックスの評価では、保存性(離散的な保存則を満たすか)、整合性(連続極限で正しい方程式に収束するか)、単調性(不要な振動を抑え、極値を不当に作らないか)が重要になる。
保存性は有限体積法のように枠組みによって自然に得られる場合があるが、フラックスの作り方が適切でないと損なわれることがある。整合性は、速度や係数の極限で期待される挙動が再現されるかで判断する。単調性は高次スキームで特に課題になり、発振抑制の設計が必要になる。
2.3.1 保存則の厳密性
離散化された更新式が、隣接セル間でのフラックスを正しく相殺する構造を持つとき、全体の量に対して保存が成り立つ。有限体積法では面フラックスを共有させることで、セル境界での流入と流出が整合しやすい。
厳密性を狙う場合、境界条件の実装や係数の取り扱いも保存性に影響する。とりわけ複数成分系では、成分ごとに保存形が異なるため、フラックスベクトルとしての整合が必要になる。
2.3.2 単調性と発振抑制
高次精度化を行うと、急峻な勾配や衝撃波近傍でリバウンドのような振動が生じることがある。単調性を保つとは、物理的に単調な領域で新しい極値を生成しないようにすることを意味する場合が多い。
その対策として、TVD(Total Variation Diminishing)の考え方や限量器による補間制約が用いられる。適切な限量は、滑らかな領域では高次性を許し、急変領域では段階的な構造へ寄せることで、発振を抑える働きを持つ。
3 代表的な数値フラックス手法
3.1 厳密(または近似)リーマンソルバ型
リーマンソルバ型は、セル境界での左状態と右状態から局所的なRiemann問題を考え、その解に基づく波の寄与をフラックスとして計算する枠組みである。非線形保存則では、波の種類と伝播速度がフラックスに直接関与するため、この方法は物理的解釈に基づく設計が可能になる。
厳密リーマンソルバは理想的だが計算負荷が大きいことがある。そのため実務では、波の概略を捉える近似ソルバが広く使われる。
3.1.1 粒子法・衝撃波を意識した近似解
粒子法や衝撃波を含む流れでは、急峻な構造の位置と強さを適切に捉えることが重要である。近似ソルバは、波分解の詳細を省略しつつも、衝撃波や接触面のような特徴的面での輸送量を壊さないよう設計される。
衝撃を意識した設計では、非物理的な膨張や振動を生みにくい形で実効的な散逸を導入する。結果として、滑らかさの再現と急峻面の安定な追跡の両方が改善されることがある。
3.1.2 代表的なソルバの位置づけ
代表例として、HLLやRoe型、さらにLax系の簡略近似など、複数の系統がある。HLLは波の範囲を見積もり、内側の詳細を捨てることで頑健性を得る傾向がある。一方、Roe型は線形化した情報を用いるため、高精度化しやすい場合があるが、線形化の扱いによっては追加の配慮が必要になることがある。
近似ソルバの選定は、問題の非線形性、波の分解に必要な情報量、安定性要求、計算コストのバランスで決まる。実験的ベンチマークと理論的保証の両方を参照して採用される。
3.2 アップウィンド系(人工粘性型を含む)
アップウィンド系の数値フラックスは、流れ方向に基づく選択と、場合によっては人工粘性の添加によって安定性を確保する。対流優勢のときに扱いやすく、保存則の枠組みに自然に適合しやすい。
代表的手法では、与えられた2点(または局所近傍)の情報から面フラックスを構成する。精度向上の方向では、高次化や補間と組み合わせることで改善する。
3.2.1 Godunov系の基本
Godunov法は、保存則に対して各セル境界でのRiemann問題を考え、厳密解を用いてフラックスを更新に反映する代表的手法である。これにより波の伝播構造を尊重しやすく、衝撃波や接触面の取り扱いに強みを持つ。
基本形では一次精度になりがちだが、安定性の観点では有利である。実務ではGodunovの考え方を基盤にしつつ、高次化の要素(再構成や限量器)を組み合わせて使用することが多い。
3.2.2 Lax–Friedrichs・Lax–Wendroff系の要旨
Lax–Friedrichs系は、中央差分に起因する不安定性を抑えるために、追加の散逸成分を設けた構成として知られる。これにより安定化するが、衝撃近傍でのにじみが増える傾向がある。
Lax–Wendroff系は、より高次の展開に基づき精度を高める方向で設計される。反面、急峻な領域では振動を生みやすく、単調性が課題になる。これらの特徴から、現代的には限量器やTVD条件と組み合わせて実用上の挙動を整える設計がよく用いられる。
3.3 高解像度スキームと補間
高解像度スキームは、一次手法の安定性を保ちつつ、高次精度を狙うための再構成や補間の工夫を含む。特徴的な点は、境界面における値や勾配を「滑らかな領域では高次に」「急変では抑制的に」と使い分ける設計である。
補間の次数を上げるほど、誤差が位相や振幅に影響しやすくなる。そのため、単調性や局所全変動を制御する理論指標に基づく調整が実装に組み込まれる。
3.3.1 TVDと限量器
TVDは解の全変動が時間発展で増えないことを要求する考え方である。これにより、急峻な変化での振動が抑えられる可能性が高まる。限量器は、再構成に使う勾配や係数を局所的な滑らかさ指標に応じて制約することで、TVD性を満たしやすくする役割を持つ。
限量器の設計は、過度な制限による精度低下と、制限不足による振動発生の間の折り合いを取る問題になる。結果として、限量器は安定性確保と高解像度化の両面で中心的存在となる。
3.3.2 MUSCLによる高次化
MUSCL(Monotonic Upstream-centered Schemes for Conservation Laws)は、セル境界での状態を再構成し、一次更新を高次化するための枠組みである。セルの平均値から勾配や傾きを推定し、境界面の左・右状態を作ることで、面フラックスをより精密に評価する。
MUSCLはしばしば限量器と組で用いられ、滑らかな領域で二次精度相当を狙い、急変では勾配を抑えて一段低い有効次数に寄せる。これにより、極端な振動を避けつつ解像度を上げられる場合がある。
3.3.3 WENOによる滑らかさ認識
WENO(Weighted Essentially Non-Oscillatory)は、複数の候補再構成(複数ステンシル)を用意し、各候補が滑らかかどうかを指標で評価する。滑らかな領域に対応する候補には重みを大きく与え、急変近傍では不適切な候補に重みを小さくすることで、発振を抑えながら高次精度を狙う。
WENOの特徴は、局所的な滑らかさ判定を通じて、衝撃や接触の位置に適応する点にある。分岐の多い非線形問題でも安定に動作しやすい設計思想として知られる。
4 応用と実装の観点
4.1 移流拡散方程式への適用
移流拡散方程式では、対流による輸送と拡散による平滑化が同時に存在する。したがって数値フラックスは、境界面での対流成分と拡散成分を別々に整合させ、全体としての保存と安定性を維持する必要がある。
対流優勢ではアップウィンドや高解像度再構成が効きやすく、拡散優勢では勾配評価の精度が支配的になる。両者のバランスが崩れると、にじみ過多、発振、あるいは過度な数値拡散が生じるため、物理パラメータや格子解像度に応じた調整が求められる。
4.1.1 反応項併用時の注意点
反応を含む場合、保存則の対象が単純な対流拡散だけではなくなり、化学種や内部エネルギーの扱いが絡む。反応速度が速い領域では、時間刻み制約が強くなり、フラックス計算の安定性に加えて結合項の剛性が問題となる。
また負の濃度や非物理な温度が出ると、反応の計算が崩れることがある。そこで数値フラックスと時間積分の設計に加え、成分の非負性や整合性を維持する方策を合わせて検討する必要がある。
4.2 流体力学(圧縮性・非圧縮性)
流体計算では、保存則はオイラー方程式やナビエ–ストークス方程式として現れる。圧縮性では衝撃波や膨張波、接触面が支配しやすく、数値フラックスはこれらの波動現象を壊さないことが重要になる。
非圧縮性では、質量保存に起因する制約(発散自由条件など)が支配的となる。したがってフラックスは運動学的条件と両立する必要があり、圧力-速度の結合戦略とセットで考えることが不可欠になる。
4.2.1 圧縮性の衝撃・接触の扱い
圧縮性流体では、衝撃波の離散表現が特に難しい。強い勾配により高次再構成が振動を誘発しやすく、また衝撃の位置を誤ると物理量の分布が大きく変わる。リーマンソルバ型やアップウィンド系の散逸を含むフラックスは、これらを安定化させる目的で使われる。
接触面では、密度や温度が急に変化する一方で速度が連続的なこともある。そのため、衝撃ほど大きな散逸を必要としない領域で過度に平滑化しない工夫が求められる。結果として、選択するフラックス方式と限量の設計が解像度に直結する。
4.2.2 非圧縮性における結合戦略
非圧縮性では、速度場の更新と圧力場の調整が協調して働く。数値フラックスは対流項の安定化に関与するが、同時に圧力の取り扱いが発散条件を満たすかどうかに影響する。
代表的には、速度の格子上配置や圧力の取り方(スタッガード格子など)に応じて、面フラックスの評価点や保存性の担保方法が変わる。さらに粘性項を含む場合には、拡散成分の離散と整合した形で結合し、数値的な非物理発散を防ぐ必要がある。
4.3 境界条件と数値フラックスの整合
境界条件は、数値フラックスの外部状態をどう与えるかに直結する。内点で構成したフラックスと、境界で与える状態の整合が取れていないと、保存則の破れや反射的な誤差が生じることがある。
また壁面や対称条件では、速度や熱量の取り扱いに特有の制約がある。したがって境界面でのフラックス計算を、物理的な対称性や無浸透条件に合わせて実装する必要がある。
4.3.1 入出流境界の設定
入出流境界では、外部から入ってくる量と系から出ていく量の切り分けが重要になる。数値フラックスの評価では、境界面における左右状態の定義を通じて、流れの向きに応じた情報伝播が表現される。
流れが一方向に固定されない場合は、時間変化する速度により境界の分類が変わり得る。そのため、流速の符号や特性に基づく判定を用いて、境界での状態補完を行う設計が一般的である。適切に行えないと、不自然な反射波が発生して解が汚れる。
4.3.2 壁面・対称条件の実装方針
壁面では無滑りや無浸透などの条件が課せられ、速度成分の境界値が定められる。数値フラックスでは壁面における状態を作る際に、法線方向と接線方向で異なる扱いが必要になることが多い。
対称条件では、ある方向の勾配や速度成分が符号反転の規則に従うため、境界面の左右状態を対称性が保たれるように定義する。これにより、非物理的な流入出を避けつつ、格子配置の有限性による誤差を抑えられる。
4.4 誤差評価と検証手法
数値フラックスを含む離散化全体の性能は、誤差評価と検証によって確認する。誤差は空間離散化、時間積分、境界処理、さらに非線形ソルバの収束性など複数要因から生まれるため、切り分けが重要になる。
検証では、既知の厳密解を用いる問題や、保存則の性質が明確に現れるテストを選ぶことが多い。とくに保存性と安定性を同時に見る指標(全量誤差、振動指標など)を併用すると、フラックス方式の違いが見えやすい。
4.4.1 ベンチマークテスト
代表的なベンチマークとして、滑らかな問題(収束率を確認する用途)と、衝撃や接触を含む問題(安定性や解像度を見る用途)が用意される。一次元のRiemann問題は、数値フラックスの挙動を比較する際に特に扱いやすい。
流体分野では、古典的なキャビティ流や衝撃管、境界層を含む計算などが参照される。適切なベンチマークを選ぶことで、フラックスが本質的に関与する部分の評価が可能になる。
4.4.2 精度(収束率)と安定性の確認
精度の確認は格子幅を変えて誤差がどの程度減るかを調べ、収束率として評価する。高次スキームでは、理論上の次数に近い振る舞いが観測されるかが重要になる。
安定性は、時間発展での発散有無や、急変領域での振動の有無、さらに物理的な制約(例えば密度や濃度が負にならないこと)を監視して判断する。計算時間の増加と引き換えに過度な制限をかけて精度を落としていないかも同時に検討する必要がある。
4.5 実装・計算コスト
数値フラックスは局所計算であることが多いが、高次化やリーマンソルバ型では評価が複雑になり計算コストが増える。実装では、演算回数だけでなくメモリ確保やデータ参照のパターンも重要になる。
また多次元では面の数が増え、並列化では隣接領域との通信が必要になる。したがって面フラックスの計算だけでなく、面データをどのように管理するかが全体効率を左右する。
4.5.1 次元拡張と計算量
一次元から三次元へ拡張する場合、セル数が増えるだけでなく、境界面の組み合わせが多様化する。各面での状態復元やフラックス評価が必要になるため、計算量は面数に比例して増える。
高次WENOのようなステンシル依存手法では、参照する近傍数が増えやすく、その結果としてアクセス回数も増える。実務では計算時間のボトルネックを見極め、次数や再構成戦略を目的に合わせて調整する。
4.5.2 並列計算における面データ管理
並列計算では、領域分割した各サブドメイン間で境界セルの値を共有する必要がある。数値フラックスは面で計算されるため、ゴーストセル(境界外の参照領域)を適切に更新し、面ごとの左右状態が一貫した定義を持つようにすることが重要になる。
通信量は、境界面近傍で必要なデータサイズと、更新頻度に左右される。さらに高次化では参照範囲が広がり、ゴースト領域の厚みが増える可能性がある。データ管理の設計次第で、フラックス計算の理論上の利点が実効性能として現れないこともあるため、実装最適化が不可欠である。