スキャッター方程式(Scatter equation)は、放射輸送方程式の一種であり、放射伝達を記述する非常に重要な方程式です。
スキャッター方程式は、放射粒子(光子など)が物質と相互作用する際の挙動をモデル化します。
放射輸送方程式の一般形式は以下の通りです:
$$
[
\frac{\partial I(\mathbf{r}, \mathbf{\Omega}, \lambda, t)}{\partial s} = -\sigma(\mathbf{r}, \lambda) I(\mathbf{r}, \mathbf{\Omega}, \lambda, t) + \sigma_s(\mathbf{r}, \lambda) \int_{4\pi} P(\mathbf{\Omega}’ \to \mathbf{\Omega}, \lambda) I(\mathbf{r}, \mathbf{\Omega}’, \lambda, t) d\mathbf{\Omega}’ + Q(\mathbf{r}, \mathbf{\Omega}, \lambda, t)
]
$$
ここで、$ (I(\mathbf{r}, \mathbf{\Omega}, \lambda, t)) $は空間位置$ (\mathbf{r}) $、方向$ (\mathbf{\Omega}) $、波長$ (\lambda) $、時間$ (t) $における放射束密度、$ (s) $は放射束が進む距離、$ (\sigma) $は吸収係数、$ (\sigma_s) $は散乱係数、$ (P(\mathbf{\Omega}’ \to \mathbf{\Omega} $,$ \lambda)) $は方向$ (\mathbf{\Omega}’) $から方向$ (\mathbf{\Omega}) $に散乱される確率密度関数、$ (Q) $は放射源項です。
これを適切な境界条件とともに解くことで、放射場の挙動を理解することができます。
以下に、スキャッター方程式を解くためのPythonコードを示します。
このコードでは、単純な1次元空間上の放射輸送を考えます。
境界条件として、一方向に入射する放射束が与えられると仮定します。
1 | import numpy as np |
このコードでは、1次元の空間内でスキャッター方程式を解き、放射束密度の分布をプロットしています。
[実行結果]
ソースコード解説
ソースコードの各部分を説明します:
1. ライブラリのインポート
1 | import numpy as np |
numpy
:数値計算を行うためのライブラリ。配列処理などをサポートします。matplotlib.pyplot
:データの可視化(グラフ化)のためのライブラリ。
2. 定数とパラメータの設定
1 | L = 1.0 # 空間の長さ |
L
:空間の長さ。N
:空間をいくつの分割に区切るかを示す値。sigma_s
:散乱係数。sigma_a
:吸収係数。Q
:放射源項。dx
:空間の分割幅。
3. 初期条件の設定
1 | I0 = np.zeros(N) # 放射束密度 |
I0
:初期の放射束密度。
全ての要素がゼロで初期化されます。I0[0] = 1.0
:入射する放射束。
空間の最初のセルにのみ入射する放射束が1.0と設定されます。
4. スキャッター方程式を解く関数の定義
1 | def solve_scatter_eq(I0, sigma_s, sigma_a, Q, dx): |
solve_scatter_eq
:与えられた初期条件とパラメータに基づいて、スキャッター方程式を解く関数。- 方程式はループを使って数値的に解かれます。
- 解析解ではなく、数値解法を使用しています。
5. スキャッター方程式を解く
1 | I = solve_scatter_eq(I0, sigma_s, sigma_a, Q, dx) |
solve_scatter_eq
関数を使ってスキャッター方程式を解き、放射束密度の配列I
に結果を格納します。
6. 結果のプロット
1 | x_values = np.linspace(0, L, N) |
plt.plot(x_values, I)
:放射束密度の分布を折れ線グラフとしてプロットします。plt.title('放射束密度の分布')
:グラフのタイトルを設定します。plt.xlabel('空間の位置')
:$x軸$のラベルを設定します。plt.ylabel('放射束密度')
:$y軸$のラベルを設定します。plt.grid(True)
:グリッドを表示します。plt.show()
:グラフを表示します。
これらの手順によって、スキャッター方程式の解析結果が放射束密度の分布として可視化されます。
結果解説
下記のグラフは、放射束密度の空間内での分布を表しています。
[実行結果]
以下は、グラフに表示される内容の詳細な説明です:
- 横軸(x軸)は空間の位置を表します。
1次元の空間が均等に分割されており、それぞれの分割(セル)の中心が表示されています。 - 縦軸(y軸)は放射束密度を表します。
放射束密度は各位置における放射の強度を示し、単位長さあたりの放射エネルギーを表します。 - グラフは、放射源から放射束が入射し、空間内を進んでいく様子を示しています。
放射源からの入射は、グラフの左端にある位置から始まります。 - 入射した放射束が空間内を進むにつれて、吸収や散乱によって減衰したり増加したりします。
これにより、放射束密度の分布が変化します。 - 散乱係数 $((\sigma_s))$と吸収係数 $((\sigma_a))$の値によって、放射の挙動が変化します。
例えば、散乱が支配的な場合は放射が拡散し、吸収が支配的な場合は放射が減衰します。 - 放射源項 $((Q))$は、空間内に追加の放射を与える項です。
放射源からの入射だけでなく、空間内での放射生成を考慮しています。
このグラフは、スキャッター方程式に基づいて、放射輸送の基本的な挙動を可視化しています。