1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

宇宙プラズマを自宅で再現?— 磁気流体力学(MHD)シミュレーター入門

1
Posted at

皆さん、液体に磁場をかけると流れ方がガラリと変わるって知ってましたか?

「え、磁石で水を操るの?SFじゃないの?」と思ったあなた。実はこれ、液体金属冷却の原子炉核融合炉の設計で実際に使われている本格的な物理現象なんです。

しかも、その振る舞いはたった1つの無次元数「ハートマン数」で統一的に説明できてしまう。流体力学と電磁気学が交差するこの世界、今日はコードを書きながら徹底的に理解していきましょう。


「磁場のブレーキ」が流れを平坦にする

まず直感を掴んでください。水道の蛇口から出る水は、中心が速くて壁際が遅い放物線の速度分布を持ちます。これは常識ですよね。

ところが、この水が電気を通す液体(液体金属や海水)だったら?そこに強力な磁場をかけるとどうなるか。

答え:速度分布が「放物線」から「台形(プラグ流)」に変わる。

壁際の遅い部分が加速され、中心の速い部分が抑えられて、全体が均一な流速に近づくんです。なぜこんなことが起きるのか——それがローレンツ力の仕業です。

「磁場が強いほど、流れは『みんな同じ速さで走れ』と命令する」


数式で理解する:ハートマン流れの正体

では、この現象を支配する数式を見てみましょう。平行平板の隙間 $h$ の中を、圧力勾配 $-dP/dx$ で駆動される導電性流体が流れる状況を考えます。

磁場の強さを表すハートマン数は次のように定義されます:

Ha = B \cdot h \sqrt{\frac{\sigma}{\mu}}

ここで:

  • $B$:磁束密度(磁場の強さ)[T]
  • $h$:平板間の隙間 [m]
  • $\sigma$:流体の電気伝導度 [S/m]
  • $\mu$:流体の動粘性係数 [Pa·s]

この $Ha$ が磁場の影響の強さを決める鍵です。$Ha$ が大きいほど、ローレンツ力が支配的になります。

そして、速度分布の解析解がこちら:

u(y) = \frac{(-dP/dx)h^2}{\mu \cdot Ha^2}\left(1 - \frac{\cosh(Ha \cdot y/h)}{\cosh(Ha)}\right)

この式を分解して読み解きましょう:

  • $(-dP/dx)h^2 / (\mu \cdot Ha^2)$ :特性速度。圧力勾配と磁場の強さで決まるスケール
  • $1 - \cosh(Ha \cdot y/h) / \cosh(Ha)$ :形状関数。$y=0$(中心)で最大、$y=\pm h$(壁面)でゼロ

特に注目すべきは $Ha$ が大きくなると:

  • $\cosh(Ha)$ が爆発的に大きくなる → 中心付近の速度が均一化される
  • 壁近傍の速度勾配が急峻になる(= 境界層が薄くなる)

これが「プラグ流」への変化の正体です。


コードで実装する:たった30行でMHDシミュレーター

理論がわかったら、実際に動くコードを書いてみましょう。以下のJavaScriptコードは、先ほどの解析解をそのまま実装したものです。ブラウザのコンソールでも動きます。

/**
 * ハートマン流れの速度分布を計算する
 * @param {number} B - 磁束密度 [T]
 * @param {number} sigma - 電気伝導度 [S/m]
 * @param {number} mu - 動粘性係数 [Pa·s]
 * @param {number} h - 平板間距離 [m]
 * @param {number} dPdx - 圧力勾配 [Pa/m] (正の値)
 * @param {number} numPoints - 計算点数
 * @returns {{ y: number[], u: number[], Ha: number, uAvg: number }}
 */
function hartmannFlow(B, sigma, mu, h, dPdx, numPoints = 50) {
    // ハートマン数
    const Ha = B * h * Math.sqrt(sigma / mu);
    
    // 特性速度(分母が0の場合は0除算を回避)
    const U0 = (Ha === 0) 
        ? (dPdx * h * h) / (2 * mu)  // Ha=0のときはポアズイユ流れ
        : (dPdx * h * h) / (mu * Ha * Ha);
    
    const y = [];
    const u = [];
    
    // y = -h から y = +h までを計算
    for (let i = 0; i < numPoints; i++) {
        const yi = -h + (2 * h * i) / (numPoints - 1);
        y.push(yi);
        
        if (Ha === 0) {
            // 磁場なし:放物線分布(ポアズイユ流れ)
            u.push(U0 * (1 - (yi * yi) / (h * h)));
        } else {
            // 磁場あり:ハートマン流れ
            const uVal = U0 * (1 - Math.cosh(Ha * yi / h) / Math.cosh(Ha));
            u.push(uVal);
        }
    }
    
    // 平均流速(数値積分)
    let sumU = 0;
    for (let i = 0; i < numPoints - 1; i++) {
        sumU += (u[i] + u[i + 1]) / 2 * (y[i + 1] - y[i]);
    }
    const uAvg = sumU / (2 * h);
    
    return { y, u, Ha, uAvg };
}

// === 使用例:液体ナトリウムのケース ===
const params_sodium = {
    B: 1.0,        // 1テスラ(強力な磁石並み)
    sigma: 1e7,    // 液体ナトリウムの電気伝導度
    mu: 3e-4,      // 動粘性係数
    h: 0.01,       // 平板間距離 1cm
    dPdx: 1000     // 圧力勾配 1000 Pa/m
};

const result = hartmannFlow(
    params_sodium.B,
    params_sodium.sigma,
    params_sodium.mu,
    params_sodium.h,
    params_sodium.dPdx
);

console.log(`ハートマン数: ${result.Ha.toFixed(2)}`);
console.log(`平均流速: ${(result.uAvg * 1000).toFixed(2)} mm/s`);
console.log(`中心流速: ${(result.u[Math.floor(result.u.length / 2)] * 1000).toFixed(2)} mm/s`);

// 速度分布を表示(最初の5点と最後の5点)
for (let i = 0; i < 5; i++) {
    console.log(`y=${result.y[i].toFixed(4)}m, u=${(result.u[i] * 1000).toFixed(2)}mm/s`);
}
// ... 途中省略 ...
for (let i = result.y.length - 5; i < result.y.length; i++) {
    console.log(`y=${result.y[i].toFixed(4)}m, u=${(result.u[i] * 1000).toFixed(2)}mm/s`);
}

このコードのポイント:

  • $Ha=0$ のときは通常のポアズイユ流れ(放物線分布)にフォールバック
  • $Ha$ が大きいほど $\cosh$ 項が効いて、速度が平坦化
  • 平均流速は数値積分で計算(実用的な精度)

数値例で確かめる:ナトリウム vs 水銀 vs 海水

実際に値を入れて計算してみましょう。条件は:

  • 平板間距離 $h = 1$ cm
  • 圧力勾配 $-dP/dx = 1000$ Pa/m
  • 磁場 $B = 1$ T

ケース1:液体ナトリウム($\sigma=1\times10^7$, $\mu=3\times10^{-4}$)

Ha = 1.0 \times 0.01 \times \sqrt{\frac{1\times10^7}{3\times10^{-4}}} = 0.01 \times \sqrt{3.33\times10^{10}} \approx 0.01 \times 182,574 \approx 1826

$Ha \approx 1826$ — これは非常に大きい値です。速度分布はほぼ完全なプラグ流になります。

中心流速:約 0.33 mm/s
平均流速:約 0.31 mm/s(中心の94%!)

ケース2:水銀($\sigma=1\times10^6$, $\mu=1.5\times10^{-3}$)

Ha = 1.0 \times 0.01 \times \sqrt{\frac{1\times10^6}{1.5\times10^{-3}}} = 0.01 \times \sqrt{6.67\times10^8} \approx 0.01 \times 25,820 \approx 258

$Ha \approx 258$ — ナトリウムよりは小さいですが、十分に大きい。プラグ流に近いが、壁面付近の速度勾配はナトリウムより緩やか。

中心流速:約 4.7 mm/s
平均流速:約 4.2 mm/s

ケース3:海水($\sigma=5$, $\mu=1\times10^{-3}$)

Ha = 1.0 \times 0.01 \times \sqrt{\frac{5}{1\times10^{-3}}} = 0.01 \times \sqrt{5000} \approx 0.01 \times 70.7 \approx 0.71

$Ha \approx 0.71$ — ほとんど磁場の影響なし。放物線分布のまま。

中心流速:約 16.7 mm/s(磁場なしのポアズイユ流れと同じ)
平均流速:約 11.1 mm/s

ここが重要:海水は電気伝導度が低いので、1Tもの強磁場をかけてもほとんど影響を受けません。一方、液体ナトリウムは同じ磁場で流れが完全に変わる。これが「電気伝導度が全てを決める」と言われる所以です。


シミュレーターで遊ぶ:3つの実験

実際のブラウザツールで確認してみましょう。

磁気流体力学(MHD)シミュレーター

実験1:「磁場ゼロ → 強磁場」の変化を目で見る

  1. プリセットを「液体ナトリウム」に設定
  2. 磁束密度Bを 0 T から 2 T までゆっくり動かす

何が起きるか:速度プロファイルが放物線($B=0$)から、見る見るうちに台形に変化していきます。$B=2T$ ではほとんど平らなプラグ流に。壁面付近の速度がグッと上がる様子がはっきり見えます。

実験2:「同じHaでも違う見た目」を確認する

ハートマン数 $Ha$ が同じでも、$B$ と $\sigma$ の組み合わせで速度分布に微妙な違いが出ます。

  • 設定A:$B=1T$, ナトリウム($Ha \approx 1826$)
  • 設定B:$B=2T$, 水銀($Ha \approx 516$)← ナトリウムより小さい

「え、Bが大きいのにHaが小さい?」そう、水銀の電気伝導度がナトリウムの1/10だからです。磁場強度だけでは決まらないという実務の教訓がここに。

実験3:「圧力勾配を固定」の罠

スライダーで「圧力勾配 -dP/dx」を固定したままBを大きくしてみてください。平均流速が下がっていくのがわかりますか?

これはローレンツ力がブレーキとして働くからです。磁場を強くすると流れにくくなる。でも速度分布は平坦化するので、壁面摩擦は減る。このトレードオフが実設計の肝です。


現場でハマるポイント:理論と現実のギャップ

ここまで理論を完璧に理解したあなたに、現場で必ず直面する3つの落とし穴をお伝えします。

落とし穴1:「磁場を強くすれば流速が上がる」は大間違い

これは初学者が最もよくやる誤解です。シミュレーターで「圧力勾配固定」の状態でBを上げると、平均流速は下がる。磁場は流体にブレーキをかけるんです。

「でもプラグ流になるんでしょ?それって流速が上がるんじゃ?」→ 違います。分布の形が変わるだけで、全体の流量(平均流速)は減ります。実務では「必要な流量を確保しつつ、どこまで平坦化するか」のバランスを取ります。

落とし穴2:電気伝導度だけで判断してはいけない

ハートマン数の式をよく見てください:

Ha = B \cdot h \sqrt{\frac{\sigma}{\mu}}

分母に 動粘性係数 $\mu$ があります。例えば:

  • 水銀:$\sigma=1\times10^6$, $\mu=1.5\times10^{-3}$ → $\sigma/\mu \approx 6.7\times10^8$
  • ナトリウム:$\sigma=1\times10^7$, $\mu=3\times10^{-4}$ → $\sigma/\mu \approx 3.3\times10^{10}$

ナトリウムの方が約50倍も効率が良い。電気伝導度だけ見ると水銀も悪くないのに、粘性が高いせいで磁場の効きが悪いんです。

落とし穴3:2次元平行平板は「理想化モデル」に過ぎない

このシミュレーターは解析解なので理論値と完全に一致します。でも実設計では:

  • 円管(円形ダクト)が一般的 → ハートマン流れの式が使えない
  • 磁場は完全に一様ではない → 入口・出口効果が無視できない
  • 温度分布がある → 物性値が場所で変化する

つまり、このツールで本質を掴んだ後は、3次元のCFD-MHD連成解析に進む必要がある。このシミュレーターの結果をそのまま実機設計に使うのは危険です。


まとめ:磁場で流れをデザインする時代

今日のポイントを3つにまとめます:

  1. ハートマン流れの本質:磁場をかけるとローレンツ力が働き、速度分布が放物線からプラグ流に変化する。その強さはたった1つの無次元数 $Ha$ で決まる
  2. 実装は30行で完了:解析解があるから、コードは驚くほどシンプル。しかしその背後にある物理は深い
  3. 現場ではトレードオフ:平坦化と流量減少のバランス、物性値の正確な評価、3次元効果の考慮——理論を現実に落とし込むにはさらなる検討が必要

このシミュレーターは、そんなMHDの世界への完璧な入り口です。ブラウザ一つで、液体金属の不思議な振る舞いをリアルタイムに体験できます。

磁気流体力学(MHD)シミュレーター — 今すぐブラウザで動作、登録不要

NovaSolverでは700以上の工学シミュレーターを無料公開中です。電磁気、流体、熱、構造——あらゆる物理現象をコードとともに学べます。

👉 一覧はこちら

「磁場で流れを操る」——一見SFのようなこの技術が、実は原子炉や核融合炉で使われている。そんな事実に、ちょっとワクワクしませんか?

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?