16. ์ƒ๋Œ€๋ก ์  MHD

16. ์ƒ๋Œ€๋ก ์  MHD

ํ•™์Šต ๋ชฉํ‘œ

์ด ๋ ˆ์Šจ์„ ๋งˆ์น˜๋ฉด ๋‹ค์Œ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ๊ณต๋ณ€ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ˆ˜ ์ƒ๋Œ€๋ก ์  MHD(SRMHD) ๋ฐฉ์ •์‹์„ ์ •์‹ํ™”ํ•˜๊ธฐ
  • SRMHD์—์„œ ์‘๋ ฅ-์—๋„ˆ์ง€ ํ…์„œ์™€ ์ „์ž๊ธฐ์žฅ ํ…์„œ ์ดํ•ดํ•˜๊ธฐ
  • ์ˆ˜์น˜ ๊ตฌํ˜„์„ ์œ„ํ•œ SRMHD ๋ฐฉ์ •์‹์˜ 3+1 ๋ถ„ํ•ด ์œ ๋„ํ•˜๊ธฐ
  • ์ƒ๋Œ€๋ก ์  ์›์‹œ ๋ณ€์ˆ˜ ๋ณต์› ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ
  • ์ƒ๋Œ€๋ก ์  MHD์˜ ํŒŒ๋™ ๊ตฌ์กฐ(fast, slow, Alfvรฉn) ๋ถ„์„ํ•˜๊ธฐ
  • ์ƒ๋Œ€๋ก ์  ์ œํŠธ, ํŽ„์„œ ์ž๊ธฐ๊ถŒ, ๋ธ”๋ž™ํ™€ ๊ฐ•์ฐฉ์— SRMHD ์ ์šฉํ•˜๊ธฐ
  • Python์œผ๋กœ 1D SRMHD ์ถฉ๊ฒฉํŒŒ ํŠœ๋ธŒ ์†”๋ฒ„ ๊ตฌํ˜„ํ•˜๊ธฐ
  • ์ผ๋ฐ˜ ์ƒ๋Œ€๋ก ์  MHD(GRMHD)์˜ ๊ธฐ์ดˆ์™€ ์‘์šฉ ์ดํ•ดํ•˜๊ธฐ

1. ์ƒ๋Œ€๋ก ์  MHD ์†Œ๊ฐœ

1.1 ์ƒ๋Œ€๋ก ์  MHD๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ

๋น„์ƒ๋Œ€๋ก ์  MHD๋Š” $v \ll c$๋ฅผ ๊ฐ€์ •ํ•˜๊ณ  ๋‹ค์Œ์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค: - ์ „์ž๊ธฐ์žฅ์˜ Lorentz ์ˆ˜์ถ• - Maxwell ๋ฐฉ์ •์‹์˜ ๋ณ€์œ„ ์ „๋ฅ˜ - ์ƒ๋Œ€๋ก ์  ์งˆ๋Ÿ‰-์—๋„ˆ์ง€ ๋“ฑ๊ฐ€์„ฑ

์ƒ๋Œ€๋ก ์  MHD(RMHD)๋Š” ๋‹ค์Œ์˜ ๊ฒฝ์šฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค:

โ€ข ์œ ์†์ด c์— ๊ทผ์ ‘: v/c ~ 0.1-1
  - ์ƒ๋Œ€๋ก ์  ์ œํŠธ: AGN, GRB (ฮ“ ~ 10-100)
  - ํŽ„์„œ ๋ฐ”๋žŒ (ฮ“ ~ 10โด-10โถ)
  - ๊ฐ•์ฐฉ ๋””์Šคํฌ ๋‚ด๋ถ€ ์˜์—ญ (ISCO์—์„œ v ~ 0.3c)

โ€ข ์ž๊ธฐ ์••๋ ฅ์ด ์ง€๋ฐฐ: ฯƒ = Bยฒ/(4ฯ€ฯcยฒ) โ‰ซ 1
  - Magnetar ์ž๊ธฐ๊ถŒ: B ~ 10ยนโต G
  - ํŽ„์„œ ๊ทน๊ด€

โ€ข ๊ฐ•ํ•œ ์ค‘๋ ฅ์žฅ:
  - ๋ธ”๋ž™ํ™€ ๊ฐ•์ฐฉ (r ~ 2-10 GM/cยฒ)
  - ์ค‘์„ฑ์ž๋ณ„ ๋ณ‘ํ•ฉ

1.2 ๋น„์ƒ๋Œ€๋ก ์  MHD์™€์˜ ์ฃผ์š” ์ฐจ์ด์ 

์ธก๋ฉด ๋น„์ƒ๋Œ€๋ก ์  ์ƒ๋Œ€๋ก ์ 
์ „๊ธฐ์žฅ $\mathbf{E} = -\mathbf{v} \times \mathbf{B}/c$ $\mathbf{E}$๋Š” ๋…๋ฆฝ์ ์ธ ๋™์  ๋ณ€์ˆ˜
๋ณ€์œ„ ์ „๋ฅ˜ ๋ฌด์‹œ๋จ $\partial \mathbf{E}/\partial t$ ํฌํ•จ
๋ณด์กด ๋ฒ•์น™ ์งˆ๋Ÿ‰, ์šด๋™๋Ÿ‰, ์—๋„ˆ์ง€ ๋ถ„๋ฆฌ $\partial_\mu T^{\mu\nu} = 0$์—์„œ ํ†ตํ•ฉ
ํŒŒ๋™ ์†๋„ $v$์™€ ๋ฌด๊ด€ Lorentz ์ธ์ž $W$์— ์˜ํ•ด ์ˆ˜์ •
์›์‹œ๋ณ€์ˆ˜ ๋ณต์› ๋Œ€์ˆ˜์  ์•”๋ฌต์  ๊ทผ์ฐพ๊ธฐ ํ•„์š”

2. ํŠน์ˆ˜ ์ƒ๋Œ€๋ก ์  MHD (SRMHD)

2.1 ๊ณต๋ณ€ ์ •์‹ํ™”

๊ณ„๋Ÿ‰๊ณผ 4-๋ฒกํ„ฐ:

Minkowski ๊ณ„๋Ÿ‰ (๋ถ€ํ˜ธ $-,+,+,+$): $$ \eta_{\mu\nu} = \text{diag}(-1, 1, 1, 1) $$

4-์†๋„: $$ u^\mu = W(c, \mathbf{v}), \quad u^\mu u_\mu = -c^2 $$ ์—ฌ๊ธฐ์„œ $W = 1/\sqrt{1 - v^2/c^2}$๋Š” Lorentz ์ธ์ž์ž…๋‹ˆ๋‹ค.

์ „์ž๊ธฐ์žฅ ํ…์„œ: $$ F^{\mu\nu} = \begin{pmatrix} 0 & -E_x/c & -E_y/c & -E_z/c \\ E_x/c & 0 & -B_z & B_y \\ E_y/c & B_z & 0 & -B_x \\ E_z/c & -B_y & B_x & 0 \end{pmatrix} $$

์Œ๋Œ€ ํ…์„œ: $$ F^{*\mu\nu} = \frac{1}{2} \epsilon^{\mu\nu\alpha\beta} F_{\alpha\beta} $$ ์—ฌ๊ธฐ์„œ $\epsilon^{\mu\nu\alpha\beta}$๋Š” Levi-Civita ํ…์„œ์ž…๋‹ˆ๋‹ค.

2.2 ๊ณต๋ณ€ ํ˜•ํƒœ์˜ Maxwell ๋ฐฉ์ •์‹

์†Œ์Šค ์—†๋Š” Maxwell ๋ฐฉ์ •์‹: $$ \partial_\mu F^{*\mu\nu} = 0 \quad \Rightarrow \quad \nabla \cdot \mathbf{B} = 0, \quad \nabla \times \mathbf{E} + \frac{\partial \mathbf{B}}{\partial t} = 0 $$

์ „๋ฅ˜ ํฌํ•จ (์ €ํ•ญ์„ฑ RMHD): $$ \partial_\mu F^{\mu\nu} = \frac{4\pi}{c} J^\nu $$ ์—ฌ๊ธฐ์„œ $J^\mu = (c\rho_e, \mathbf{J})$๋Š” 4-์ „๋ฅ˜์ž…๋‹ˆ๋‹ค.

2.3 ์‘๋ ฅ-์—๋„ˆ์ง€ ํ…์„œ

์ด ์‘๋ ฅ-์—๋„ˆ์ง€ ํ…์„œ: $$ T^{\mu\nu} = T^{\mu\nu}_{\text{fluid}} + T^{\mu\nu}_{\text{EM}} $$

์œ ์ฒด ๊ธฐ์—ฌ: $$ T^{\mu\nu}_{\text{fluid}} = (\rho h + u_m) u^\mu u^\nu + (p + p_m) \eta^{\mu\nu} $$ ์—ฌ๊ธฐ์„œ: - $\rho$ = ์ •์ง€ ์งˆ๋Ÿ‰ ๋ฐ€๋„ - $h = 1 + \epsilon + p/(\rho c^2)$ = ๋น„์—”ํƒˆํ”ผ - $\epsilon$ = ๋น„๋‚ด๋ถ€ ์—๋„ˆ์ง€ - $u_m = b^2/(8\pi)$ = ๊ณต๋™ ์ขŒํ‘œ๊ณ„์˜ ์ž๊ธฐ ์—๋„ˆ์ง€ ๋ฐ€๋„ - $p_m = b^2/(8\pi)$ = ์ž๊ธฐ ์••๋ ฅ (๋“ฑ๋ฐฉ์„ฑ ๋ถ€๋ถ„)

์ „์ž๊ธฐ ๊ธฐ์—ฌ: $$ T^{\mu\nu}_{\text{EM}} = \frac{1}{4\pi} \left( F^{\mu\alpha} F^\nu_{\ \alpha} - \frac{1}{4} \eta^{\mu\nu} F^{\alpha\beta} F_{\alpha\beta} \right) $$

4-์ž๊ธฐ์žฅ (๊ณต๋™ ์ขŒํ‘œ๊ณ„): $$ b^\mu = \frac{1}{c} F^{*\mu\nu} u_\nu = W(\mathbf{v} \cdot \mathbf{B}/c, \mathbf{B}/W + W(\mathbf{v} \cdot \mathbf{B})\mathbf{v}/c^2) $$

$b^\mu u_\mu = 0$ (์ง๊ต์„ฑ)์„ ๋งŒ์กฑํ•˜๋ฉฐ, $b^2 = b^\mu b_\mu = (B^2 + (v \times B)^2/c^2)/W^2$์ž…๋‹ˆ๋‹ค.

2.4 ๋ณด์กด ๋ฒ•์น™

์—๋„ˆ์ง€-์šด๋™๋Ÿ‰ ๋ณด์กด: $$ \partial_\mu T^{\mu\nu} = 0 $$

๋‹ค์Œ์œผ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค: - $\nu = 0$: ์—๋„ˆ์ง€ ๋ณด์กด - $\nu = i$: ์šด๋™๋Ÿ‰ ๋ณด์กด

์งˆ๋Ÿ‰ ๋ณด์กด: $$ \partial_\mu (\rho u^\mu) = 0 $$


3. ์ด์ƒ SRMHD

3.1 ์ด์ƒ ์กฐ๊ฑด

์ด์ƒ SRMHD์—์„œ ์ „๊ธฐ์žฅ์€ ๊ณต๋™ ์ขŒํ‘œ๊ณ„์—์„œ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค: $$ F^{\mu\nu} u_\nu = 0 $$

์ด๋Š” ๋‹ค์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค: $$ \mathbf{E} = -\frac{\mathbf{v} \times \mathbf{B}}{c} \frac{1}{1 - v^2/c^2} $$

์ž๊ธฐ์žฅ์€ ํ”Œ๋ผ์ฆˆ๋งˆ์— ๋™๊ฒฐ๋ฉ๋‹ˆ๋‹ค (์ƒ๋Œ€๋ก ์  ๋ฒ„์ „).

3.2 3+1 ๋ถ„ํ•ด

์ˆ˜์น˜ ๊ตฌํ˜„์„ ์œ„ํ•ด ์‹คํ—˜์‹ค ์ขŒํ‘œ๊ณ„ (3+1) ๋ณ€์ˆ˜๋กœ ๋ถ„ํ•ดํ•ฉ๋‹ˆ๋‹ค.

๋ณด์กด ๋ณ€์ˆ˜: $$ \mathbf{U} = \begin{pmatrix} D \\ \mathbf{S} \\ \tau \\ \mathbf{B} \end{pmatrix} $$ ์—ฌ๊ธฐ์„œ: - $D = \rho W$ (๋ณด์กด ๋ฐ€๋„) - $\mathbf{S} = (\rho h + b^2) W^2 \mathbf{v} - (\mathbf{v} \cdot \mathbf{B})\mathbf{B}/(4\pi)$ (์šด๋™๋Ÿ‰ ๋ฐ€๋„) - $\tau = (\rho h + b^2) W^2 - p - b^2/2 - D c^2$ (์—๋„ˆ์ง€ ๋ฐ€๋„) - $\mathbf{B}$ (์ž๊ธฐ์žฅ)

ํ”Œ๋Ÿญ์Šค ํ•จ์ˆ˜: $$ \mathbf{F}(\mathbf{U}) = \begin{pmatrix} D v_x \\ S_x v_x + p_{\text{tot}} - B_x^2/(4\pi) \\ S_y v_x - B_x B_y/(4\pi) \\ S_z v_x - B_x B_z/(4\pi) \\ \tau v_x + p_{\text{tot}} v_x - (\mathbf{v} \cdot \mathbf{B}) B_x/(4\pi) \\ 0 \\ B_y v_x - B_x v_y \\ B_z v_x - B_x v_z \end{pmatrix} $$ ์—ฌ๊ธฐ์„œ $p_{\text{tot}} = p + B^2/(8\pi)$์ž…๋‹ˆ๋‹ค.

๋ณด์กด ํ˜•ํƒœ: $$ \frac{\partial \mathbf{U}}{\partial t} + \nabla \cdot \mathbf{F}(\mathbf{U}) = 0 $$

3.3 ์›์‹œ ๋ณ€์ˆ˜ ๋ณต์›

๋ฌธ์ œ: ๋ณด์กด ๋ณ€์ˆ˜ $(\mathbf{U})$๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์›์‹œ ๋ณ€์ˆ˜ $(\rho, \mathbf{v}, p, \mathbf{B})$๋ฅผ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์ˆ˜์  ์ œ์•ฝ: $$ \begin{aligned} D &= \rho W \\ \mathbf{B} &= \text{(์•Œ๋ ค์ง)} \\ \mathbf{S} &= (\rho h + b^2) W^2 \mathbf{v} - (\mathbf{v} \cdot \mathbf{B})\mathbf{B}/(4\pi) \\ \tau &= (\rho h + b^2) W^2 - p - b^2/2 - D c^2 \end{aligned} $$

๋ฌธ์ œ: $W$, $p$, $\rho$, $\mathbf{v}$๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ๋น„์„ ํ˜• ์‹œ์Šคํ…œ.

ํ‘œ์ค€ ์ ‘๊ทผ๋ฒ• (2D Newton-Raphson):

  1. ๋ฏธ์ง€์ˆ˜ ์„ ํƒ: $z = W$, $w = p$
  2. ์—ญ๋ณ€ํ™˜: $$ v^2 = 1 - \frac{1}{z^2} $$
  3. $\mathbf{S}$์™€ ์šด๋™๋Ÿ‰ ๋ฐฉ์ •์‹์œผ๋กœ๋ถ€ํ„ฐ $\rho$, $h$ ํ•ด๊ฒฐ
  4. EOS ์‚ฌ์šฉ: $p = p(\rho, \epsilon)$
  5. ์ˆ˜๋ ดํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

๋Œ€์•ˆ (1D ๊ทผ์ฐพ๊ธฐ):

์••๋ ฅ $p$๋ฅผ ๋…๋ฆฝ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ: $$ f(p) = \tau + p - \frac{(\mathbf{S} \cdot \mathbf{B})^2}{(\tau + p + D c^2 + B^2/(4\pi))^2 - (\mathbf{S}^2 + (\mathbf{S} \cdot \mathbf{B})^2/(B^2))} - D c^2 = 0 $$

๋„์ „ ๊ณผ์ œ: - ์—ฌ๋Ÿฌ ๊ทผ์ด ๊ฐ€๋Šฅ - $W \gg 1$์— ๋Œ€ํ•œ ์ˆ˜์น˜์  stiffness - ์ง„๊ณต ๊ทผ์ฒ˜์—์„œ ๋ถ•๊ดด ($\rho \to 0$)

๋ชจ๋ฒ” ์‚ฌ๋ก€: - ๊ฒฌ๊ณ ํ•œ ๊ทผ์ฐพ๊ธฐ ์‚ฌ์šฉ (Brent ๋ฐฉ๋ฒ•) - ์ข‹์€ ์ดˆ๊ธฐ ์ถ”์ธก (์ด์ „ ํƒ€์ž„์Šคํ…์œผ๋กœ๋ถ€ํ„ฐ) - $\rho$, $p$์— ๋Œ€ํ•œ ํ”Œ๋กœ์–ด ๊ฐ’


4. SRMHD์˜ ํŒŒ๋™ ๊ตฌ์กฐ

4.1 ๊ณ ์œ ๊ตฌ์กฐ

SRMHD ์‹œ์Šคํ…œ์€ 7๊ฐœ์˜ ํŒŒ๋™์„ ๊ฐ–์Šต๋‹ˆ๋‹ค (1D): $$ \lambda_{1,7} = \alpha_{\pm}^{\text{fast}}, \quad \lambda_{2,6} = \alpha_{\pm}^{\text{slow}}, \quad \lambda_{3,5} = \alpha_{\pm}^{\text{Alf}}, \quad \lambda_4 = v_x $$

์ƒ๋Œ€๋ก ์  ํŒŒ๋™ ์†๋„:

์ •์˜: $$ c_s^2 = \frac{\partial p}{\partial \rho h} \quad \text{(์ƒ๋Œ€๋ก ์  ์Œ์†)} $$ $$ v_A^2 = \frac{B^2/(4\pi)}{\rho h + B^2/(4\pi)} \quad \text{(์ƒ๋Œ€๋ก ์  Alfvรฉn ์†๋„)} $$

Fast magnetosonic ์†๋„: $$ \alpha_{\pm}^{\text{fast}} = \frac{v_x \pm c_{\text{fast}}}{1 \pm v_x c_{\text{fast}}/c^2} $$ ์—ฌ๊ธฐ์„œ: $$ c_{\text{fast}}^2 = \frac{c_s^2 + v_A^2 - c_s^2 v_A^2}{1 - c_s^2 v_A^2} $$

Slow magnetosonic ๋ฐ Alfvรฉn ์†๋„๋„ ์ˆ˜์ •๋œ ๋ถ„์‚ฐ ๊ด€๊ณ„๋กœ ์œ ์‚ฌํ•˜๊ฒŒ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

๋น„์ƒ๋Œ€๋ก ์ ๊ณผ์˜ ์ฃผ์š” ์ฐจ์ด์ : - ๋ชจ๋“  ํŒŒ๋™ ์†๋„ < $c$ (์ธ๊ณผ์„ฑ) - Lorentz ์ธ์ž $W$๊ฐ€ ๋ถ„์‚ฐ ๊ด€๊ณ„์— ํฌํ•จ - $v \to c$์ผ ๋•Œ, ํŒŒ๋™์ด ์œ ๋™์„ ๋”ฐ๋ผ์žก์„ ์ˆ˜ ์—†์Œ (bunching)

4.2 ์ƒ๋Œ€๋ก ์  Riemann ๋ฌธ์ œ

SRMHD์šฉ HLLC ์†”๋ฒ„:

ํŒŒ๋™ ์†๋„ ์ถ”์ •: $$ \lambda_L = \min(\lambda_L^{\text{fast}}, \lambda_R^{\text{fast}}), \quad \lambda_R = \max(\lambda_L^{\text{fast}}, \lambda_R^{\text{fast}}) $$

์ ‘์ด‰ํŒŒ ์†๋„ $\lambda_*$๋Š” ์šด๋™๋Ÿ‰ ์ ํ”„ ์กฐ๊ฑด์œผ๋กœ๋ถ€ํ„ฐ.

HLLD ์†”๋ฒ„:

5๊ฐœ์˜ ๋ชจ๋“  ํŒŒ๋™ ํฌํ•จ (fast, Alfvรฉn, contact). ๋” ์ •ํ™•ํ•˜์ง€๋งŒ ๋ณต์žกํ•จ.

์ƒ๋Œ€๋ก ์  Brio-Wu ์ถฉ๊ฒฉํŒŒ ํŠœ๋ธŒ:

์ดˆ๊ธฐ ์กฐ๊ฑด: $$ (\rho, v_x, v_y, v_z, p, B_y) = \begin{cases} (1, 0, 0, 0, 1, 1) & x < 0.5 \\ (0.125, 0, 0, 0, 0.1, -1) & x > 0.5 \end{cases} $$ $B_x = 0.5$ ์ƒ์ˆ˜.

์˜ˆ์ƒ ๊ตฌ์กฐ: left fast โ†’ compound โ†’ contact โ†’ slow โ†’ right fast.


5. SRMHD์˜ ์‘์šฉ

5.1 ์ƒ๋Œ€๋ก ์  ์ œํŠธ

์ฒœ์ฒด๋ฌผ๋ฆฌํ•™์  ๋งฅ๋ฝ: - Active Galactic Nuclei (AGN): ์ดˆ๋Œ€์งˆ๋Ÿ‰ ๋ธ”๋ž™ํ™€์˜ ์ œํŠธ (Lorentz ์ธ์ž $\Gamma \sim 10-30$) - Gamma-Ray Bursts (GRB): ํ•ญ์„ฑ ์งˆ๋Ÿ‰ ๋ธ”๋ž™ํ™€์˜ ์ œํŠธ ($\Gamma \sim 100-1000$) - Microquasar: X์„  ์Œ์„ฑ๊ณ„์˜ ์ œํŠธ ($\Gamma \sim 2-10$)

๋ฌผ๋ฆฌํ•™: - ๊ฐ€์†: ์ž๊ธฐ ์••๋ ฅ์ด ์šด๋™ ์—๋„ˆ์ง€๋กœ ๋ณ€ํ™˜ ($\sigma \to 0$) - ์ค€์ง: ์ž๊ธฐ hoop stress๊ฐ€ ์ œํŠธ ์ œํ•œ - ๋ถˆ์•ˆ์ •์„ฑ: Kelvin-Helmholtz (์ œํŠธ-์ฃผ๋ณ€ ๊ฒฝ๊ณ„๋ฉด), ์ „๋ฅ˜ ๊ตฌ๋™ kink

Light cylinder:

๊ฐ์†๋„ $\Omega$๋กœ ํšŒ์ „ํ•˜๋Š” ์ž๊ธฐ๊ถŒ์˜ ๊ฒฝ์šฐ: $$ R_L = \frac{c}{\Omega} $$

$R_L$ ๋‚ด๋ถ€: corotation ๊ฐ€๋Šฅ. ์™ธ๋ถ€: ์ž๊ธฐ์žฅ์ด ์—ด๋ฆฌ๊ณ , ๋ฐ”๋žŒ ๋ฐœ์‚ฌ.

์ˆ˜์น˜์  ๋„์ „ ๊ณผ์ œ: - ํฐ Lorentz ์ธ์ž: $W \sim 100$ โ†’ stiff ์›์‹œ๋ณ€์ˆ˜ ๋ณต์› - ์žํ™” ๋งค๊ฐœ๋ณ€์ˆ˜ $\sigma = B^2/(4\pi \rho h W^2)$๊ฐ€ ์ˆ˜์‹ญ ๋…„์— ๊ฑธ์ณ ๋ณ€ํ™” - $\sigma \gg 1$์ผ ๋•Œ ๊ทธ๋ฆฌ๋“œ ์Šค์ผ€์ผ ๋ถˆ์•ˆ์ •์„ฑ

5.2 ํŽ„์„œ ์ž๊ธฐ๊ถŒ

๊ฒฝ์‚ฌ ํšŒ์ „์ž: - ํšŒ์ „ ์ž๊ธฐ ์Œ๊ทน์ž: $\mathbf{m}$์ด $\boldsymbol{\Omega}$์— ๊ฐ๋„ $\alpha$๋กœ ๊ธฐ์šธ์–ด์ง - ์—ด๋ฆฐ ์žฅ ์„ : $\theta < \theta_{\text{pc}}$ (๊ทน๊ด€ ๊ฐ๋„) - ๋‹ซํžŒ ์žฅ ์„ : corotating ํ”Œ๋ผ์ฆˆ๋งˆ

Force-free electrodynamics (FFE):

$\sigma \gg 1$์ผ ๋•Œ, ํ”Œ๋ผ์ฆˆ๋งˆ ๊ด€์„ฑ ๋ฌด์‹œ ๊ฐ€๋Šฅ: $$ \rho_e \mathbf{E} + \frac{\mathbf{J} \times \mathbf{B}}{c} = 0, \quad \mathbf{E} \cdot \mathbf{B} = 0 $$

๊ฒฝ๊ณ„ ์กฐ๊ฑด์ด ์ฃผ์–ด์ง„ $\mathbf{E}$, $\mathbf{B}$ ํ•ด๊ฒฐ (์ค‘์„ฑ์ž๋ณ„ ํ‘œ๋ฉด, ๋ฌดํ•œ๋Œ€).

ํŽ„์„œ ๋ฐ”๋žŒ: - ์—ด๋ฆฐ ์žฅ ์„ ์„ ๋”ฐ๋ผ ์ž…์ž ๊ฐ€์† - light cylinder์—์„œ ์žํ™” $\sigma \sim 10^4$ - ์ข…๊ฒฐ ์ถฉ๊ฒฉํŒŒ์—์„œ ์†Œ์‚ฐ (ํŽ„์„œ ๋ฐ”๋žŒ ์„ฑ์šด)

SRMHD vs FFE: - FFE: $\sigma \gg 1$์— ๋Œ€ํ•ด ์œ ํšจ, ์†Œ์‚ฐ ์—†์Œ - SRMHD: ๊ด€์„ฑ, ์žฌ๊ฒฐํ•ฉ, ์ž…์ž ๊ฐ€์—ด ํฌํ•จ

5.3 ๋ธ”๋ž™ํ™€ ๊ฐ•์ฐฉ

Innermost Stable Circular Orbit (ISCO): - Schwarzschild: $r_{\text{ISCO}} = 6 GM/c^2$ - Kerr (๊ทน๋‹จ์ ): $r_{\text{ISCO}} = GM/c^2$ (์ˆœํ–‰)

ISCO์—์„œ์˜ ๊ถค๋„ ์†๋„: $$ v_{\text{ISCO}} \sim 0.5c \quad \text{(Schwarzschild)} \quad \text{to} \quad 0.7c \quad \text{(Kerr, ์ˆœํ–‰)} $$

์ œํŠธ ๋ฐœ์‚ฌ:

Blandford-Znajek ๋ฉ”์ปค๋‹ˆ์ฆ˜ (ํšŒ์ „ ๋ธ”๋ž™ํ™€): - ์ž๊ธฐ์žฅ์ด ์ง€ํ‰์„ ์„ ๊ด€ํ†ต - Frame dragging: $\Omega_H$ (์ง€ํ‰์„  ๊ฐ์†๋„) - Poynting ํ”Œ๋Ÿญ์Šค ์ถ”์ถœ: $L_{\text{BZ}} \sim \Omega_H^2 B_H^2 r_H^4 / c$

์ผ๋ฐ˜ ์ƒ๋Œ€๋ก ์  MHD (GRMHD) ํ•„์š”.

Magnetically Arrested Disk (MAD):

์ž๊ธฐ ํ”Œ๋Ÿญ์Šค๊ฐ€ ์ถ•์ ๋  ๋•Œ: $$ \phi \sim \sqrt{\dot{M} r_g c} \quad \Rightarrow \quad \text{์ž๊ธฐ์ ์œผ๋กœ ์ง€๋ฐฐ๋จ} $$

๊ฒฐ๊ณผ: - ์–ต์ œ๋œ ๊ฐ•์ฐฉ (ํ”Œ๋Ÿญ์Šค ์žฅ๋ฒฝ) - ํ–ฅ์ƒ๋œ ์ œํŠธ ํŒŒ์›Œ - ์‹œ๊ฐ„ ๋ณ€๋™ ์œ ๋™


6. ์ผ๋ฐ˜ ์ƒ๋Œ€๋ก ์  MHD (GRMHD)

6.1 ๊ณก์„  ์‹œ๊ณต๊ฐ„ ์ •์‹ํ™”

Kerr ๊ณ„๋Ÿ‰ (Boyer-Lindquist ์ขŒํ‘œ): $$ ds^2 = -\alpha^2 dt^2 + \gamma_{ij} (dx^i + \beta^i dt)(dx^j + \beta^j dt) $$ ์—ฌ๊ธฐ์„œ: - $\alpha$ = lapse ํ•จ์ˆ˜ - $\beta^i$ = shift ๋ฒกํ„ฐ - $\gamma_{ij}$ = ๊ณต๊ฐ„ ๊ณ„๋Ÿ‰

์‘๋ ฅ-์—๋„ˆ์ง€ ํ…์„œ: $$ \nabla_\mu T^{\mu\nu} = 0 $$ ์—ฌ๊ธฐ์„œ $\nabla_\mu$๋Š” ๊ณต๋ณ€ ๋ฏธ๋ถ„ (Christoffel ๊ธฐํ˜ธ ํฌํ•จ).

3+1 ADM ํ˜•ํƒœ:

$$ \frac{\partial \mathbf{U}}{\partial t} + \frac{\partial \mathbf{F}^i}{\partial x^i} = \mathbf{S} $$

์—ฌ๊ธฐ์„œ $\mathbf{S}$๋Š” ๊ณ„๋Ÿ‰ ์†Œ์Šค ํ•ญ (์‹œ๊ณต๊ฐ„ ๊ณก๋ฅ ) ํฌํ•จ.

6.2 HARM ์ฝ”๋“œ ์ •์‹ํ™”

HARM (High Accuracy Relativistic Magnetohydrodynamics) ์ฝ”๋“œ๋Š” ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

  • ๋ณด์กด ๋ณ€์ˆ˜: $\sqrt{-g} (\rho u^t, T^t_{\ i}, \sqrt{-g} B^i)$
  • Flux-conservative ๋ฐฉ์‹
  • ๋ฐœ์‚ฐ ์—†๋Š” $\mathbf{B}$๋ฅผ ์œ„ํ•œ Flux-CT
  • ๊ณก์„  ์‹œ๊ณต๊ฐ„์—์„œ ์›์‹œ๋ณ€์ˆ˜ ๋ณต์›

๊ณ„๋Ÿ‰: ์ˆ˜์ •๋œ Kerr-Schild ์ขŒํ‘œ (์ง€ํ‰์„  ๊ด€ํ†ต).

์‘์šฉ: - ๋ธ”๋ž™ํ™€ ๊ฐ•์ฐฉ ๋””์Šคํฌ (Sgr A*, M87) - ์ค‘์„ฑ์ž๋ณ„ ๋ณ‘ํ•ฉ - ์ œํŠธ ๋ฐœ์‚ฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

6.3 ์ง€ํ‰์„  ๊ฒฝ๊ณ„ ์กฐ๊ฑด

Excision: - ์ง€ํ‰์„  ๋‚ด๋ถ€ ์  ์ œ๊ฑฐ (์ธ๊ณผ์ ์œผ๋กœ ๋‹จ์ ˆ๋จ) - ์œ ์ถœ ๊ฒฝ๊ณ„ ์กฐ๊ฑด

์œ ์ž… ํ‰ํ˜•: - ๋ฌผ์งˆ์ด ์œ ์ž… ์†๋„๋กœ ์•ˆ์ชฝ์œผ๋กœ ๋–จ์–ด์ง€๋„๋ก ๊ฐ•์ œ - ์ •์ƒ ๋””์Šคํฌ ํ”„๋กœํŒŒ์ผ ์œ ์ง€


7. SRMHD์˜ ์ˆ˜์น˜ ๋ฐฉ๋ฒ•

7.1 Godunovํ˜• ๋ฐฉ์‹

HLLC ํ”Œ๋Ÿญ์Šค:

$$ \mathbf{F}_{\text{HLLC}} = \begin{cases} \mathbf{F}_L & \lambda_L \geq 0 \\ \mathbf{F}_L^* & \lambda_L < 0 \leq \lambda_* \\ \mathbf{F}_R^* & \lambda_* < 0 \leq \lambda_R \\ \mathbf{F}_R & \lambda_R < 0 \end{cases} $$

Star ์ƒํƒœ $\mathbf{U}_L^*$, $\mathbf{U}_R^*$๋Š” Rankine-Hugoniot ์ ํ”„ ์กฐ๊ฑด์œผ๋กœ๋ถ€ํ„ฐ.

์‹œ๊ฐ„ ๋‹จ๊ณ„:

  • RK2 ๋˜๋Š” RK3 (TVD)
  • CFL ์กฐ๊ฑด: $$ \Delta t \leq C \min_i \frac{\Delta x_i}{c_{\text{fast}, i} + |v_i|} $$ ์—ฌ๊ธฐ์„œ $C \sim 0.4-0.5$ (๋น„์ƒ๋Œ€๋ก ์ ๋ณด๋‹ค ๋” ์ œํ•œ์ ).

7.2 ์ ์‘ํ˜• ํƒ€์ž„์Šคํ…

๋†’์€ Lorentz ์ธ์ž ($W \gg 1$)์— ๋Œ€ํ•ด ๋กœ์ปฌ ํƒ€์ž„์Šคํ…์ด ์•„์ฃผ ์ž‘์„ ์ˆ˜ ์žˆ์Œ. ์‚ฌ์šฉ:

  • ๊ณ„์ธต์  ํƒ€์ž„์Šคํ…ํ•‘ (AMR ์ฝ”๋“œ)
  • Implicit-explicit (IMEX) ๋ฐฉ์‹ (stiff ํ•ญ ์•”๋ฌต์ )

7.3 ํ”Œ๋กœ์–ด์™€ ์ƒํ•œ

๋ฐ€๋„ ํ”Œ๋กœ์–ด: $$ \rho \geq \rho_{\min} = 10^{-6} \rho_{\text{max}} $$

์˜จ๋„ ์ƒํ•œ: $$ T \leq T_{\max} = 10^{13} \, \text{K} \quad \text{(์Œ์ƒ์„ฑ ๋ฐฉ์ง€)} $$

์žํ™” ์ƒํ•œ: $$ \sigma \leq \sigma_{\max} \sim 100 \quad \text{(์ˆ˜์น˜์  ๋ถˆ์•ˆ์ •์„ฑ ๋ฐฉ์ง€)} $$


8. Python ๊ตฌํ˜„: 1D SRMHD ์ถฉ๊ฒฉํŒŒ ํŠœ๋ธŒ

8.1 ๋ฌธ์ œ ์„ค์ •

์ƒ๋Œ€๋ก ์  Brio-Wu ํ…Œ์ŠคํŠธ: $$ (\rho, v_x, p, B_y) = \begin{cases} (1.0, 0.0, 1.0, 1.0) & x < 0.5 \\ (0.125, 0.0, 0.1, -1.0) & x \geq 0.5 \end{cases} $$ $B_x = 0.5$ (์ƒ์ˆ˜), $\Gamma = 5/3$ (์ด์ƒ ๊ธฐ์ฒด).

์˜์—ญ: $x \in [0, 1]$, $t \in [0, 0.4]$.

8.2 ์ฝ”๋“œ ๊ตฌ์กฐ

import numpy as np
import matplotlib.pyplot as plt

# Constants
C = 1.0  # Speed of light
GAMMA = 5.0/3.0  # Adiabatic index

# Grid
NX = 400
XL, XR = 0.0, 1.0
dx = (XR - XL) / NX
x = np.linspace(XL + dx/2, XR - dx/2, NX)

# Primitive variables: [rho, vx, vy, vz, p, Bx, By, Bz]
def initial_conditions():
    prim = np.zeros((NX, 8))
    Bx_const = 0.5

    for i in range(NX):
        if x[i] < 0.5:
            prim[i] = [1.0, 0.0, 0.0, 0.0, 1.0, Bx_const, 1.0, 0.0]
        else:
            prim[i] = [0.125, 0.0, 0.0, 0.0, 0.1, Bx_const, -1.0, 0.0]

    return prim

# Lorentz factor
def lorentz_factor(vx, vy, vz):
    v2 = vx**2 + vy**2 + vz**2
    return 1.0 / np.sqrt(1.0 - v2 / C**2)

# Primitive to conserved
def prim2cons(prim):
    rho, vx, vy, vz, p = prim[:5]
    Bx, By, Bz = prim[5:]

    W = lorentz_factor(vx, vy, vz)
    v2 = vx**2 + vy**2 + vz**2
    B2 = Bx**2 + By**2 + Bz**2
    vdotB = vx*Bx + vy*By + vz*Bz

    # Specific enthalpy
    h = 1.0 + GAMMA/(GAMMA-1.0) * p/rho

    # Comoving magnetic field
    b0 = W * vdotB / C
    bx = Bx/W + W*vx*vdotB/C**2
    by = By/W + W*vy*vdotB/C**2
    bz = Bz/W + W*vz*vdotB/C**2
    b2 = (B2 + (vdotB)**2/C**2) / W**2

    # Conserved variables
    D = rho * W
    Sx = (rho*h + b2)*W**2*vx - (vdotB)*Bx/(4.0*np.pi)
    Sy = (rho*h + b2)*W**2*vy - (vdotB)*By/(4.0*np.pi)
    Sz = (rho*h + b2)*W**2*vz - (vdotB)*Bz/(4.0*np.pi)
    tau = (rho*h + b2)*W**2 - p - b2/2.0 - D*C**2

    return np.array([D, Sx, Sy, Sz, tau, Bx, By, Bz])

# Conserved to primitive (simplified 1D Newton-Raphson)
def cons2prim(cons, prim_guess):
    D, Sx, Sy, Sz, tau = cons[:5]
    Bx, By, Bz = cons[5:]

    # Initial guess
    rho, vx, vy, vz, p = prim_guess[:5]

    # Newton-Raphson iteration (simplified)
    max_iter = 50
    tol = 1e-10

    for iteration in range(max_iter):
        W = lorentz_factor(vx, vy, vz)
        h = 1.0 + GAMMA/(GAMMA-1.0) * p/rho

        vdotB = vx*Bx + vy*By + vz*Bz
        b2 = (Bx**2 + By**2 + Bz**2 + (vdotB)**2/C**2) / W**2

        # Residuals
        f1 = D - rho*W
        f2 = Sx - ((rho*h + b2)*W**2*vx - (vdotB)*Bx/(4.0*np.pi))
        f3 = tau - ((rho*h + b2)*W**2 - p - b2/2.0 - D*C**2)

        if abs(f1) + abs(f2) + abs(f3) < tol:
            break

        # Simple update (damped)
        rho = D / W
        p_new = (tau + D*C**2 + p + b2/2.0) / (W**2) - rho*h - b2
        p = 0.5 * p + 0.5 * max(p_new, 1e-10)

        # Update velocity (simplified)
        S2 = Sx**2 + Sy**2 + Sz**2
        S = np.sqrt(S2)
        if S > 1e-12:
            vx = Sx / (rho*h*W**2)
            vy = Sy / (rho*h*W**2)
            vz = Sz / (rho*h*W**2)

        # Limit velocity
        v = np.sqrt(vx**2 + vy**2 + vz**2)
        if v >= C:
            scale = 0.99 * C / v
            vx *= scale
            vy *= scale
            vz *= scale

    # Apply floors
    rho = max(rho, 1e-10)
    p = max(p, 1e-10)

    return np.array([rho, vx, vy, vz, p, Bx, By, Bz])

# Flux function
def flux(prim):
    rho, vx, vy, vz, p = prim[:5]
    Bx, By, Bz = prim[5:]

    W = lorentz_factor(vx, vy, vz)
    vdotB = vx*Bx + vy*By + vz*Bz
    B2 = Bx**2 + By**2 + Bz**2
    b2 = (B2 + (vdotB)**2/C**2) / W**2
    h = 1.0 + GAMMA/(GAMMA-1.0) * p/rho

    ptot = p + B2/(8.0*np.pi)

    F = np.zeros(8)
    F[0] = rho * W * vx
    F[1] = (rho*h + b2)*W**2*vx*vx + ptot - Bx**2/(4.0*np.pi) - (vdotB)*Bx*vx/(4.0*np.pi)
    F[2] = (rho*h + b2)*W**2*vx*vy - Bx*By/(4.0*np.pi) - (vdotB)*Bx*vy/(4.0*np.pi)
    F[3] = (rho*h + b2)*W**2*vx*vz - Bx*Bz/(4.0*np.pi) - (vdotB)*Bx*vz/(4.0*np.pi)
    F[4] = ((rho*h + b2)*W**2 - p - b2/2.0)*vx + ptot*vx - (vdotB)*Bx/(4.0*np.pi)
    F[5] = 0.0  # Bx constant
    F[6] = By*vx - Bx*vy
    F[7] = Bz*vx - Bx*vz

    return F

# HLLC Riemann solver (simplified HLL for SRMHD)
def hll_flux(pL, pR):
    # Estimate wave speeds (very simplified)
    rhoL, vxL, pL_val = pL[0], pL[1], pL[4]
    rhoR, vxR, pR_val = pR[0], pR[1], pR[4]

    # Sound speed
    csL = np.sqrt(GAMMA * pL_val / (rhoL * (1.0 + GAMMA/(GAMMA-1.0)*pL_val/rhoL)))
    csR = np.sqrt(GAMMA * pR_val / (rhoR * (1.0 + GAMMA/(GAMMA-1.0)*pR_val/rhoR)))

    WL = lorentz_factor(pL[1], pL[2], pL[3])
    WR = lorentz_factor(pR[1], pR[2], pR[3])

    # Fast magnetosonic speed estimate (crude)
    BxL, ByL, BzL = pL[5:]
    BxR, ByR, BzR = pR[5:]
    B2L = BxL**2 + ByL**2 + BzL**2
    B2R = BxR**2 + ByR**2 + BzR**2

    hL = 1.0 + GAMMA/(GAMMA-1.0)*pL_val/rhoL
    hR = 1.0 + GAMMA/(GAMMA-1.0)*pR_val/rhoR

    vAL = np.sqrt(B2L/(4.0*np.pi*(rhoL*hL + B2L/(4.0*np.pi))))
    vAR = np.sqrt(B2R/(4.0*np.pi*(rhoR*hR + B2R/(4.0*np.pi))))

    cfL = np.sqrt((csL**2 + vAL**2 - csL**2*vAL**2)/(1.0 - csL**2*vAL**2))
    cfR = np.sqrt((csR**2 + vAR**2 - csR**2*vAR**2)/(1.0 - csR**2*vAR**2))

    # Wave speeds (relativistic addition)
    lamL = (vxL - cfL) / (1.0 - vxL*cfL/C**2)
    lamR = (vxR + cfR) / (1.0 + vxR*cfR/C**2)

    # HLL flux
    consL = prim2cons(pL)
    consR = prim2cons(pR)
    FL = flux(pL)
    FR = flux(pR)

    if lamL >= 0:
        return FL
    elif lamR <= 0:
        return FR
    else:
        F_hll = (lamR*FL - lamL*FR + lamL*lamR*(consR - consL)) / (lamR - lamL)
        return F_hll

# Main evolution
def evolve_srmhd():
    prim = initial_conditions()
    cons = np.array([prim2cons(p) for p in prim])

    t = 0.0
    t_end = 0.4
    CFL = 0.4

    snapshots = []

    while t < t_end:
        # Compute dt
        v_max = 0.0
        for i in range(NX):
            rho, vx, vy, vz, p = prim[i, :5]
            Bx, By, Bz = prim[i, 5:]

            cs = np.sqrt(GAMMA * p / (rho * (1.0 + GAMMA/(GAMMA-1.0)*p/rho)))
            B2 = Bx**2 + By**2 + Bz**2
            h = 1.0 + GAMMA/(GAMMA-1.0)*p/rho
            vA = np.sqrt(B2/(4.0*np.pi*(rho*h + B2/(4.0*np.pi))))
            cf = np.sqrt((cs**2 + vA**2)/(1.0 + cs**2*vA**2))

            W = lorentz_factor(vx, vy, vz)
            v_signal = max(abs((vx + cf)/(1.0 + vx*cf/C**2)),
                          abs((vx - cf)/(1.0 - vx*cf/C**2)))
            v_max = max(v_max, v_signal)

        dt = CFL * dx / v_max
        if t + dt > t_end:
            dt = t_end - t

        # RK2 time integration
        # Stage 1
        flux_arr = np.zeros((NX+1, 8))
        for i in range(NX+1):
            if i == 0:
                flux_arr[i] = flux(prim[0])
            elif i == NX:
                flux_arr[i] = flux(prim[-1])
            else:
                flux_arr[i] = hll_flux(prim[i-1], prim[i])

        cons_1 = cons.copy()
        for i in range(NX):
            cons_1[i] -= dt/dx * (flux_arr[i+1] - flux_arr[i])

        # Recover primitives
        prim_1 = np.array([cons2prim(cons_1[i], prim[i]) for i in range(NX)])

        # Stage 2
        for i in range(NX+1):
            if i == 0:
                flux_arr[i] = flux(prim_1[0])
            elif i == NX:
                flux_arr[i] = flux(prim_1[-1])
            else:
                flux_arr[i] = hll_flux(prim_1[i-1], prim_1[i])

        cons_2 = cons_1.copy()
        for i in range(NX):
            cons_2[i] -= dt/dx * (flux_arr[i+1] - flux_arr[i])

        cons = 0.5 * (cons + cons_2)
        prim = np.array([cons2prim(cons[i], prim_1[i]) for i in range(NX)])

        t += dt

        if len(snapshots) < 5:
            if t >= len(snapshots) * t_end / 4:
                snapshots.append((t, prim.copy()))

    return prim, snapshots

# Run simulation
print("Running SRMHD shock tube...")
prim_final, snapshots = evolve_srmhd()

# Plot results
fig, axes = plt.subplots(3, 2, figsize=(12, 10))

vars_to_plot = [
    ('Density', 0),
    ('Velocity vx', 1),
    ('Pressure', 4),
    ('By', 6),
    ('Lorentz Factor', None),
    ('Energy Density', None)
]

for idx, (var_name, var_idx) in enumerate(vars_to_plot):
    ax = axes[idx // 2, idx % 2]

    if var_idx is not None:
        ax.plot(x, prim_final[:, var_idx], 'b-', linewidth=1.5, label='t=0.4')
    else:
        if 'Lorentz' in var_name:
            W = np.array([lorentz_factor(p[1], p[2], p[3]) for p in prim_final])
            ax.plot(x, W, 'b-', linewidth=1.5)
        elif 'Energy' in var_name:
            energy = prim_final[:, 4] / (GAMMA - 1.0)
            ax.plot(x, energy, 'b-', linewidth=1.5)

    ax.set_xlabel('x')
    ax.set_ylabel(var_name)
    ax.grid(True, alpha=0.3)
    ax.set_title(f'{var_name} at t=0.4')

plt.tight_layout()
plt.savefig('srmhd_shock_tube.png', dpi=150, bbox_inches='tight')
print("Plot saved: srmhd_shock_tube.png")
plt.close()

# Plot wave structure
fig, ax = plt.subplots(figsize=(10, 6))
colors = ['red', 'orange', 'green', 'blue']
for i, (t, prim_snap) in enumerate(snapshots):
    ax.plot(x, prim_snap[:, 0], color=colors[i], label=f't={t:.2f}', alpha=0.7)

ax.set_xlabel('x')
ax.set_ylabel('Density')
ax.set_title('SRMHD Shock Tube: Density Evolution')
ax.legend()
ax.grid(True, alpha=0.3)
plt.savefig('srmhd_evolution.png', dpi=150, bbox_inches='tight')
print("Plot saved: srmhd_evolution.png")
plt.close()

8.3 ์˜ˆ์ƒ ์ถœ๋ ฅ

์ฝ”๋“œ๋Š” ๋‹ค์Œ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค: - ์ถฉ๊ฒฉํŒŒ์—์„œ์˜ ๋ฐ€๋„ ์ ํ”„ - ํฌ๋ฐ•ํ™” ํŒฌ - ์ ‘์ด‰ ๋ถˆ์—ฐ์† - ์ž๊ธฐ์žฅ ๋ฐ˜์ „ - ์ œํŠธํ˜• ํŠน์ง•์—์„œ Lorentz ์ธ์ž ํ”ผํฌ

๋„์ „ ๊ณผ์ œ: - ์ดˆ๊ธฐ ์ถ”์ธก์ด ์ข‹์ง€ ์•Š์œผ๋ฉด ์›์‹œ๋ณ€์ˆ˜ ๋ณต์› ์‹คํŒจ ๊ฐ€๋Šฅ - Newton ๋ฐ˜๋ณต์—์„œ ๊ฐ์‡  ํ•„์š” - ํ”Œ๋กœ์–ด๊ฐ€ ๋น„๋ฌผ๋ฆฌ์  ์ƒํƒœ ๋ฐฉ์ง€


9. ์ƒ๋Œ€๋ก ์  Alfvรฉn ์†๋„

9.1 ๋น„๊ต: ๋น„์ƒ๋Œ€๋ก ์  vs ์ƒ๋Œ€๋ก ์ 

import numpy as np
import matplotlib.pyplot as plt

# Parameters
rho = 1.0
p = 1.0
B_range = np.logspace(-2, 2, 100)
GAMMA = 5.0/3.0

# Non-relativistic Alfven speed
vA_nr = B_range / np.sqrt(4.0 * np.pi * rho)

# Relativistic Alfven speed
h = 1.0 + GAMMA/(GAMMA-1.0) * p/rho
vA_r = B_range / np.sqrt(4.0*np.pi*(rho*h + B_range**2/(4.0*np.pi)))

# Plot
fig, ax = plt.subplots(figsize=(10, 6))
ax.loglog(B_range, vA_nr, 'b-', linewidth=2, label='Non-relativistic')
ax.loglog(B_range, vA_r, 'r--', linewidth=2, label='Relativistic')
ax.axhline(1.0, color='k', linestyle=':', label='Speed of light c=1')
ax.set_xlabel('Magnetic Field B')
ax.set_ylabel('Alfvรฉn Speed $v_A$')
ax.set_title('Alfvรฉn Speed: Non-Relativistic vs Relativistic')
ax.legend()
ax.grid(True, alpha=0.3)
plt.savefig('alfven_speed_comparison.png', dpi=150, bbox_inches='tight')
print("Plot saved: alfven_speed_comparison.png")
plt.close()

ํ•ต์‹ฌ ๊ด€์ฐฐ: - ๋น„์ƒ๋Œ€๋ก ์  $v_A$๋Š” ํฐ $B$์— ๋Œ€ํ•ด $c$๋ฅผ ์ดˆ๊ณผ ๊ฐ€๋Šฅ (๋น„๋ฌผ๋ฆฌ์ ) - ์ƒ๋Œ€๋ก ์  $v_A < c$ ํ•ญ์ƒ ($B \to \infty$์ผ ๋•Œ ํฌํ™”)


10. Light Cylinder ์‹œ๊ฐํ™”

import numpy as np
import matplotlib.pyplot as plt

# Pulsar parameters
R_NS = 1.0  # Neutron star radius
Omega = 1.0  # Angular velocity
c = 1.0
R_L = c / Omega  # Light cylinder radius

# Grid
theta = np.linspace(0, 2*np.pi, 100)
r = np.linspace(0.5*R_NS, 3*R_L, 100)
R, Theta = np.meshgrid(r, theta)

# Corotation velocity
v_corot = Omega * R

# Plot
fig, ax = plt.subplots(subplot_kw={'projection': 'polar'}, figsize=(8, 8))

# Velocity field (normalized)
v_norm = np.clip(v_corot / c, 0, 1.5)
cf = ax.contourf(Theta, R, v_norm, levels=20, cmap='RdYlBu_r')

# Light cylinder
ax.plot(theta, R_L * np.ones_like(theta), 'k--', linewidth=2, label='Light Cylinder')

# Neutron star
ax.fill_between(theta, 0, R_NS, color='gray', alpha=0.5, label='Neutron Star')

ax.set_ylim(0, 3*R_L)
ax.set_title('Pulsar Magnetosphere: Corotation Velocity\n(Dashed = Light Cylinder)', pad=20)
plt.colorbar(cf, ax=ax, label='$v_{corot}/c$')
ax.legend(loc='upper right')
plt.savefig('light_cylinder.png', dpi=150, bbox_inches='tight')
print("Plot saved: light_cylinder.png")
plt.close()

$R_L$ ๋‚ด๋ถ€: corotation ๊ฐ€๋Šฅ ($v < c$). $R_L$ ์™ธ๋ถ€: ์žฅ ์„ ์ด ์—ด๋ฆฌ๊ณ , ์ž…์ž ํƒˆ์ถœ (ํŽ„์„œ ๋ฐ”๋žŒ).


์š”์•ฝ

์ƒ๋Œ€๋ก ์  MHD๋Š” ๊ณ ์ „ MHD๋ฅผ $v \sim c$ ์˜์—ญ์œผ๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค:

  1. SRMHD ์ •์‹ํ™”: ๊ณต๋ณ€ 4-ํ…์„œ ์ ‘๊ทผ๋ฒ•, ์‘๋ ฅ-์—๋„ˆ์ง€ ํ…์„œ, ๋™๊ฒฐ ์กฐ๊ฑด
  2. 3+1 ๋ถ„ํ•ด: ์ˆ˜์น˜ ๊ตฌํ˜„์„ ์œ„ํ•œ ์‹คํ—˜์‹ค ์ขŒํ‘œ๊ณ„ ๋ณด์กด ๋ณ€์ˆ˜
  3. ์›์‹œ๋ณ€์ˆ˜ ๋ณต์›: ๋น„์„ ํ˜• ์•”๋ฌต์  ํ•ด๊ฒฐ (์ฃผ์š” ์ˆ˜์น˜์  ๋„์ „)
  4. ํŒŒ๋™ ๊ตฌ์กฐ: 7๊ฐœ์˜ ํŒŒ๋™, ์ƒ๋Œ€๋ก ์  ๋ถ„์‚ฐ (๋ชจ๋“  ์†๋„ < $c$)
  5. ์‘์šฉ: ์ƒ๋Œ€๋ก ์  ์ œํŠธ, ํŽ„์„œ ์ž๊ธฐ๊ถŒ, ๋ธ”๋ž™ํ™€ ๊ฐ•์ฐฉ
  6. GRMHD: ๊ณก์„  ์‹œ๊ณต๊ฐ„, Kerr ๊ณ„๋Ÿ‰, ์ง€ํ‰์„  ๊ด€ํ†ต ์ขŒํ‘œ
  7. ์ˆ˜์น˜ ๋ฐฉ๋ฒ•: HLLC/HLLD Riemann ์†”๋ฒ„, ์ ์‘ํ˜• ํƒ€์ž„์Šคํ…ํ•‘, ํ”Œ๋กœ์–ด

์ฃผ์š” ๋„์ „ ๊ณผ์ œ: - ์›์‹œ๋ณ€์ˆ˜ ๋ณต์› ๊ฒฌ๊ณ ์„ฑ - ๋†’์€ Lorentz ์ธ์ž ์ฒ˜๋ฆฌ ($W \gg 1$) - ์ˆ˜์‹ญ ๋…„์— ๊ฑธ์ณ ๋ณ€ํ™”ํ•˜๋Š” ์žํ™” ๋งค๊ฐœ๋ณ€์ˆ˜ $\sigma$ - ๋ณต์‚ฌ, ์Œ์ƒ์„ฑ๊ณผ์˜ ๊ฒฐํ•ฉ (์ด์ƒ MHD๋ฅผ ๋„˜์–ด์„œ)

์ƒ๋Œ€๋ก ์  MHD๋Š” ์šฐ์ฃผ์—์„œ ๊ฐ€์žฅ ์—๋„ˆ์ง€๊ฐ€ ๋†’์€ ํ˜„์ƒ ์ดํ•ด์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค: ์ œํŠธ, ํŽ„์„œ, ๋ธ”๋ž™ํ™€, ์ค‘์„ฑ์ž๋ณ„ ๋ณ‘ํ•ฉ.


์—ฐ์Šต ๋ฌธ์ œ

  1. Lorentz ๋ณ€ํ™˜: ์‹คํ—˜์‹ค ์ขŒํ‘œ๊ณ„์—์„œ $\mathbf{E} = (1, 0, 0)$, $\mathbf{B} = (0, 1, 0)$๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, $\mathbf{v} = (0.5c, 0, 0)$๋กœ ์›€์ง์ด๋Š” ์ขŒํ‘œ๊ณ„์—์„œ $\mathbf{E}'$์™€ $\mathbf{B}'$๋ฅผ ๊ณ„์‚ฐํ•˜์„ธ์š”. $\mathbf{E}' \cdot \mathbf{B}' = \mathbf{E} \cdot \mathbf{B}$ (Lorentz ๋ถˆ๋ณ€๋Ÿ‰) ํ™•์ธํ•˜์„ธ์š”.

  2. ์›์‹œ๋ณ€์ˆ˜ ๋ณต์›: 1D Newton-Raphson ์›์‹œ๋ณ€์ˆ˜ ๋ณต์› ๋ฃจํ‹ด์„ ๊ตฌํ˜„ํ•˜์„ธ์š”. ํ…Œ์ŠคํŠธ: $D = 2.0$, $S_x = 1.0$, $\tau = 3.0$, $B_x = 0.5$, $B_y = 1.0$. ์ดˆ๊ธฐ ์ถ”์ธก: $\rho = 1.0$, $v_x = 0.3$, $p = 1.0$. ์ˆ˜๋ ดํ•ฉ๋‹ˆ๊นŒ? ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๊นŒ?

  3. ์ƒ๋Œ€๋ก ์  Brio-Wu: ์ถฉ๊ฒฉํŒŒ ํŠœ๋ธŒ ์ฝ”๋“œ๋ฅผ $B_x = 0$ (์ˆœ์ˆ˜ ํšก๋ฐฉํ–ฅ ์žฅ)์œผ๋กœ ์ˆ˜์ •ํ•˜์„ธ์š”. ํŒŒ๋™ ์†๋„์™€ ๊ตฌ์กฐ๋ฅผ $B_x = 0.5$ ๊ฒฝ์šฐ์™€ ๋น„๊ตํ•˜์„ธ์š”. ์™œ ํ•ด๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๊นŒ?

  4. ์žํ™” ๋งค๊ฐœ๋ณ€์ˆ˜: $B = 10^{12}$ G, $\rho = 10^7$ g/cmยณ, $\Gamma = 10$์ธ ํŽ„์„œ์— ๋Œ€ํ•ด $\sigma = B^2/(4\pi \rho h W^2 c^2)$๋ฅผ ๊ณ„์‚ฐํ•˜์„ธ์š”. $h \approx 1$๋กœ ๊ฐ€์ •ํ•˜์„ธ์š”. ์ด๊ฒƒ์€ force-free ($\sigma \gg 1$)์ž…๋‹ˆ๊นŒ, ์œ ์ฒด ์ง€๋ฐฐ์ž…๋‹ˆ๊นŒ?

  5. Light Cylinder: Crab ํŽ„์„œ ($P = 33$ ms)์— ๋Œ€ํ•ด $R_L$์„ ๊ณ„์‚ฐํ•˜์„ธ์š”. ์–ด๋А ๋ฐ˜๊ฒฝ์—์„œ corotation ์†๋„๊ฐ€ $c$์™€ ๊ฐ™์Šต๋‹ˆ๊นŒ? ํŽ„์„œ ๋ฐ˜๊ฒฝ $R_{NS} \sim 10$ km์™€ ๋น„๊ตํ•˜์„ธ์š”.

  6. ISCO ์†๋„: Schwarzschild ๋ธ”๋ž™ํ™€์— ๋Œ€ํ•ด ISCO ($r = 6GM/c^2$)์—์„œ ๊ถค๋„ ์†๋„๋ฅผ ๊ณ„์‚ฐํ•˜์„ธ์š”. Lorentz ์ธ์ž $W$๋Š” ์–ผ๋งˆ์ž…๋‹ˆ๊นŒ? $a = 0.998$ (๊ฑฐ์˜ ๊ทน๋‹จ์ )์ธ Kerr ๋ธ”๋ž™ํ™€์˜ ์ˆœํ–‰ ISCO์—์„œ ๋ฐ˜๋ณตํ•˜์„ธ์š”.

  7. Alfvรฉn ์†๋„ ํฌํ™”: ๊ณ ์ •๋œ $\rho = 1$, $p = 0.1$, $\Gamma = 4/3$์— ๋Œ€ํ•ด ์ƒ๋Œ€๋ก ์  Alfvรฉn ์†๋„ $v_A = B/\sqrt{4\pi(\rho h + B^2/(4\pi))}$ vs $B$๋ฅผ ๊ทธ๋ฆฌ์„ธ์š”. $B \to \infty$์ผ ๋•Œ $v_A \to c$์ด์ง€๋งŒ $c$๋ฅผ ์ ˆ๋Œ€ ์ดˆ๊ณผํ•˜์ง€ ์•Š์Œ์„ ๋ณด์ด์„ธ์š”.

  8. HARM ํƒ€์ž„์Šคํ…: ๋ธ”๋ž™ํ™€ ์ง€ํ‰์„  ๊ทผ์ฒ˜์˜ GRMHD์—์„œ lapse ํ•จ์ˆ˜ $\alpha \to 0$์ž…๋‹ˆ๋‹ค. ์™œ ๋” ์ž‘์€ ํƒ€์ž„์Šคํ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? $\Delta r = 0.01 GM/c^2$์ธ ๋ฐฉ์‚ฌํ˜• ๊ทธ๋ฆฌ๋“œ์— ๋Œ€ํ•ด $r = 2.01 GM/c^2$ ๊ทผ์ฒ˜์˜ CFL ํƒ€์ž„์Šคํ…์„ ์ถ”์ •ํ•˜์„ธ์š”.


์ด์ „: 2D MHD ์†”๋ฒ„ | ๋‹ค์Œ: ์ŠคํŽ™ํŠธ๋Ÿด ๋ฐ ๊ณ ๊ธ‰ ๋ฐฉ๋ฒ•

to navigate between lessons