13. ํต์ตํฉ MHD
13. ํต์ตํฉ MHD¶
ํ์ต ๋ชฉํ¶
- ์๊ธฐ confinement ๊ฐ๋ ์ดํด: tokamak, stellarator, reversed field pinch (RFP)
- Tokamak ํํ ๋ถ์: aspect ratio, elongation, triangularity, Shafranov shift
- Beta ํ๊ณ ์ ๋ ๋ฐ Troyon limit ์ดํด
- Tokamak์ ์ฃผ์ MHD ๋ถ์์ ์ฑ ํ์ : sawteeth, ELMs, disruptions, NTMs, RWMs
- Disruption ์ํ ์ ๋ต ์ ์ฉ ๋ฐ ๋ฌผ๋ฆฌ์ ๊ธฐ๋ฐ ์ดํด
- ์ ์ ์ํ ํต์ตํฉ์ ์ํ stellarator ์ฅ์ ๋น๊ต
- Beta limits, sawtooth periods, disruption forces๋ฅผ ์ํ Python ๋ชจ๋ธ ๊ตฌํ
1. ์๊ธฐ Confinement ํต์ตํฉ ์๊ฐ¶
์๊ธฐ confinement ํต์ตํฉ์ ์๊ธฐ์ฅ์ ์ฌ์ฉํ์ฌ ๊ณ ์จ ํ๋ผ์ฆ๋ง(T ~ 10-20 keV)๋ฅผ ๊ฐ๋์ด ์ ์ด๋ ์ดํต์ตํฉ์ ๋ฌ์ฑํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ฃผ์ ๊ณผ์ ๋ MHD ๋ถ์์ ์ฑ์ ๋ํ ํ๋ผ์ฆ๋ง ์์ ์ฑ์ ์ ์งํ๋ฉด์ Lawson criterion์ ๋ง์กฑํ๊ธฐ์ ์ถฉ๋ถํ confinement time๊ณผ ์๋ ฅ์ ๋ฌ์ฑํ๋ ๊ฒ์ ๋๋ค.
1.1 ํต์ตํฉ ๋ฐ์ ๋ฐ ์๊ตฌ์ฌํญ¶
Deuterium-tritium (D-T) ํต์ตํฉ ๋ฐ์์ด ๊ฐ์ฅ ์ ๊ทผ ๊ฐ๋ฅํฉ๋๋ค:
D + T โ He-4 (3.5 MeV) + n (14.1 MeV)
ํต์ตํฉ triple product ์๊ตฌ์ฌํญ:
n T ฯ_E โฅ 3 ร 10ยฒยน mโปยณ keV s
์ฌ๊ธฐ์: - $n$์ ํ๋ผ์ฆ๋ง ๋ฐ๋ - $T$๋ ์จ๋ - $\tau_E$๋ ์๋์ง confinement time
1.2 ์๊ธฐ Confinement ์๋ฆฌ¶
ํ์ ์ ์๋ Larmor ๋ฐ๊ฒฝ์ผ๋ก ์๊ธฐ์ฅ์ ์ฃผ์๋ฅผ ํ์ ํฉ๋๋ค:
r_L = (m v_โฅ)/(q B)
B = 5 T์์ T = 10 keV์ธ ์ด์ ์ ์์ ๊ฒฝ์ฐ: - ์ ์: $r_{Le} \sim 0.1$ mm - ์ด์จ: $r_{Li} \sim 4$ mm
์ฅ์น ํฌ๊ธฐ์ ๋นํด ์์ Larmor ๋ฐ๊ฒฝ์ confinement๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ํ ๊ธฐํํ์ drift ์ด๋์ ๋์ ํ๊ณ ์ ์คํ ์๊ธฐ์ฅ ๊ตฌ์ฑ์ ํ์๋ก ํฉ๋๋ค.
2. Tokamak ๊ตฌ์ฑ¶
Tokamak์ ํ๋ผ์ฆ๋ง๋ฅผ ์ํ์ ๊ฐ๋๊ธฐ ์ํด toroidal ๋ฐ poloidal ์๊ธฐ์ฅ์ ์กฐํฉ์ ์ฌ์ฉํ๋ ์ ๋์ ์ธ ์๊ธฐ confinement ๊ฐ๋ ์ ๋๋ค.
2.1 Tokamak ์๊ธฐ์ฅ ๊ตฌ์กฐ¶
Tokamak์ ์ด ์๊ธฐ์ฅ์ ๋ค์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- Toroidal field $B_ฯ$: ์ธ๋ถ toroidal field coils์ ์ํด ์์ฑ๋๋ ๊ฐํ ์ฅ
- Poloidal field $B_ฮธ$: ํ๋ผ์ฆ๋ง ์ ๋ฅ $I_p$ ๋ฐ ์ธ๋ถ poloidal field coils์ ์ํด ์์ฑ๋๋ ์ฝํ ์ฅ
- Vertical field $B_z$: ํ๋ผ์ฆ๋ง ์์น ๋ฐ ํ์ ์ ์ด
์ด ์ฅ:
B = B_ฯ e_ฯ + B_ฮธ e_ฮธ
์๊ธฐ์ฅ์ ์ ์ค์ฒฉ๋ flux surfaces (์๊ธฐ ํ๋ฉด) ์์์ ์ํ ์ฃผ์๋ฅผ ๊ฐ์ต๋๋ค.
2.2 Safety Factor¶
Safety factor $q$๋ ์๊ธฐ์ฅ์ ์ pitch๋ฅผ ์ธก์ ํฉ๋๋ค:
q = (r B_ฯ)/(R B_ฮธ)
์ฌ๊ธฐ์ $R$์ major ๋ฐ๊ฒฝ์ด๊ณ $r$์ minor ๋ฐ๊ฒฝ์ ๋๋ค.
์ํ ๋จ๋ฉด์ ๊ฐ์ง ํฐ aspect ratio tokamak์ ๊ฒฝ์ฐ:
q(r) = (r B_0)/(R B_ฮธ(r)) โ (2ฯ rยฒ B_0)/(ฮผโ R I_p(r))
์ฌ๊ธฐ์ $I_p(r)$์ ๋ฐ๊ฒฝ $r$ ๋ด๋ถ์ ํ๋ผ์ฆ๋ง ์ ๋ฅ์ ๋๋ค.
Safety factor ํ๋กํ์ผ $q(r)$์ MHD ์์ ์ฑ์ ์ค์ํฉ๋๋ค: - ์ถ์์ $q < 1$์ด๋ฉด sawtooth oscillations ํ์ฉ - $q_{edge} < 2$๋ disruptions๋ก ์ด์ด์ง - $q = m/n$์ธ rational surfaces๋ tearing modes์ ์ทจ์ฝ
2.3 ํ๋ผ์ฆ๋ง ์ ๋ฅ ํ๋กํ์ผ¶
ํ๋ผ์ฆ๋ง ์ ๋ฅ ๋ฐ๋๋ Ampรจre's law๋ก๋ถํฐ ๋ฐ๋ฆ ๋๋ค:
โ ร B = ฮผโ j
Tokamak์์ toroidal ์ ๋ฅ ๋ฐ๋:
j_ฯ = (1/ฮผโ r) โ(r B_ฮธ)/โr
์ผ๋ฐ์ ์ธ ์ ๋ฅ ํ๋กํ์ผ: - Peaked: $j(r) = j_0 (1 - rยฒ/aยฒ)^ฮฝ$, $ฮฝ > 0$ - Flat: $ฮฝ \approx 1$ - Hollow: ์ ๋ฅ ๋ฐ๋ ์ต๋๊ฐ์ด ์ถ ๋ฐ์ ์์น
์ ๋ฅ ํ๋กํ์ผ์ $q$-ํ๋กํ์ผ์ ๊ฒฐ์ ํ๊ณ ์์ ์ฑ์ ์ํฅ์ ์ค๋๋ค.
2.4 Aspect Ratio ๋ฐ ํ๋ผ์ฆ๋ง ํ์¶
์ฃผ์ ๊ธฐํํ์ ๋งค๊ฐ๋ณ์:
- Aspect ratio: $A = R/a$ (์ผ๋ฐ์ ์ผ๋ก 2.5-4)
- Elongation: $ฮบ = b/a$ (์์ง/์ํ minor ๋ฐ๊ฒฝ, ์ผ๋ฐ์ ์ผ๋ก 1.5-2)
- Triangularity: $ฮด$ (D์ ํํ ๋จ๋ฉด ํน์ฑ)
๋์ elongation์ ํ๋ผ์ฆ๋ง ๋ถํผ๋ฅผ ์ฆ๊ฐ์ํค๊ณ confinement๋ฅผ ๊ฐ์ ํ์ง๋ง vertical displacement events (VDEs)์ ๋ํ ์ทจ์ฝ์ฑ์ ์ฆ๊ฐ์ํต๋๋ค.
3. Tokamak ํํ¶
3.1 Grad-Shafranov ๋ฐฉ์ ์¶
Tokamak ํํ์ ์ถ๋์นญ ๊ธฐํํ์์ ํ ๊ท ํ $j ร B = โp$๋ก๋ถํฐ ์ ๋๋ Grad-Shafranov (GS) ๋ฐฉ์ ์์ ์ํด ์ง๋ฐฐ๋ฉ๋๋ค.
Poloidal flux ํจ์ $\psi(R, Z)$ ๋์ :
B_R = -(1/R) โฯ/โZ
B_Z = (1/R) โฯ/โR
GS ๋ฐฉ์ ์:
ฮ* ฯ = -ฮผโ Rยฒ dp/dฯ - F dF/dฯ
์ฌ๊ธฐ์ ํ์ ์ฐ์ฐ์:
ฮ* ฯ = R โ/โR (1/R โฯ/โR) + โยฒฯ/โZยฒ
๊ทธ๋ฆฌ๊ณ $F(ฯ) = R B_ฯ$๋ toroidal field ํจ์์ ๋๋ค.
3.2 Shafranov Shift¶
์ ํ ์๋ ฅ ํ๋ผ์ฆ๋ง์์ ์๊ธฐ ์ถ์ toroidal ํจ๊ณผ๋ก ์ธํด ๊ธฐํํ์ ์ค์ฌ์์ ๋ฐ๊นฅ์ชฝ์ผ๋ก ์ด๋ํฉ๋๋ค. ์ด Shafranov shift $\Delta$๋ ๋๋ต:
ฮ/a โ ฮฒ_p + l_i/2
์ฌ๊ธฐ์: - $\beta_p = 2 ฮผโ \langle p \rangle / \langle B_ฮธยฒ \rangle$๋ poloidal beta - $l_i$๋ ๋ด๋ถ inductance (์ ๋ฅ ํ๋กํ์ผ์ ์์กด)
์ผ๋ฐ์ ์ธ tokamak ๋งค๊ฐ๋ณ์ ($\beta_p \sim 0.5$, $l_i \sim 1$)์ ๊ฒฝ์ฐ, $\Delta/a \sim 0.5-1$.
Shafranov shift๋ ์๋ ฅ์ ๋ฐ๋ผ ์ฆ๊ฐํ๊ณ ํํ ํ๊ณ์ ์ํฅ์ ์ค๋๋ค.
3.3 Beta ํ๊ณ¶
ํ๋ผ์ฆ๋ง beta๋ ํ๋ผ์ฆ๋ง ์๋ ฅ ๋ ์๊ธฐ ์๋ ฅ์ ๋น์จ์ ๋๋ค:
ฮฒ = 2 ฮผโ p / Bยฒ
์ฌ๋ฌ ์ ์: - Total beta: $\beta = 2 ฮผโ \langle p \rangle / B_0ยฒ$ - Poloidal beta: $\beta_p = 2 ฮผโ \langle p \rangle / \langle B_ฮธยฒ \rangle$ - Toroidal beta: $\beta_t = 2 ฮผโ \langle p \rangle / \langle B_ฯยฒ \rangle$
Troyon limit์ ๋ฌ์ฑ ๊ฐ๋ฅํ ์ต๋ beta์ ๋ํ ๊ฒฝํ์ ์ค์ผ์ผ๋ง์ ๋๋ค:
ฮฒ_N = ฮฒ (%ยทTยทm/MA) = ฮฒ a B_0 / I_p โค ฮฒ_N^max
์ฌ๊ธฐ์: - $a$๋ minor ๋ฐ๊ฒฝ (m) - $B_0$๋ toroidal field (T) - $I_p$๋ ํ๋ผ์ฆ๋ง ์ ๋ฅ (MA) - $\beta_N^{max} \approx 2.8-4$ (ํ์ค ์๋๋ฆฌ์ค)
๋์ beta๋ ํต์ตํฉ ์ ๋ ฅ ๋ฐ๋์ ๋ฐ๋์งํ์ง๋ง, MHD ๋ถ์์ ์ฑ (์๋ ฅ ๊ตฌ๋ ๋ชจ๋, ์ธ๋ถ kinks)์ด ํ๊ณ๋ฅผ ๋ถ๊ณผํฉ๋๋ค.
3.4 ํํ Beta ํ๊ณ¶
ํฐ aspect ratio tokamak์ ๊ฒฝ์ฐ, ์๋ ฅ ๊ธฐ์ธ๊ธฐ์ ์๊ธฐ ์ฅ๋ ฅ์ ๊ท ํ:
ฮฒ_t โค a/(q R) = 1/(A q)
์ด๊ฒ์ ๋๋ต์ ์ธ ์ถ์ ์ ๋๋ค. GS ๋ฐฉ์ ์์ ์ฌ์ฉํ ๋ ์ ๋ฐํ ๊ณ์ฐ์ Troyon limit๋ฅผ ์ ๊ณตํฉ๋๋ค.
4. Tokamak์ ์ฃผ์ MHD ๋ถ์์ ์ฑ¶
4.1 Sawtooth Oscillations¶
Sawteeth๋ $q_0 < 1$์ธ tokamak์์ ์ฝ์ด ์จ๋์ ๋ฐ๋์ ์ฃผ๊ธฐ์ ์ด์์ ๋๋ค.
๋ฉ์ปค๋์ฆ: 1. Ohmic heating์ด ๋พฐ์กฑํ ์จ๋ ํ๋กํ์ผ ์์ฑ 2. $q_0 < 1$์ผ ๋ internal kink mode ($m=1, n=1$)๊ฐ ๋ถ์์ ํด์ง 3. ์๊ธฐ ์ฌ๊ฒฐํฉ์ด ์ฝ์ด ์จ๋ ํ๋กํ์ผ์ ํํํ๊ฒ ํจ (sawtooth crash) 4. Ohmic heating์ด ๋พฐ์กฑํ ํ๋กํ์ผ์ ์ฌ๊ตฌ์ถํ๋ฉด์ ์ฌ์ดํด ๋ฐ๋ณต
Kadomtsev ์ฌ๊ฒฐํฉ ๋ชจ๋ธ:
Internal kink mode๋ $q=1$ ํ๋ฉด์์ ์๊ธฐ์ฅ์ ์ ์ฌ๊ฒฐํฉ์์ผ mixing ๋ฐ๊ฒฝ $r_{mix}$ ๋ด๋ถ์ ์จ๋ ํ๋กํ์ผ์ ํํํ๊ฒ ํฉ๋๋ค.
Sawtooth ์ฃผ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ด ์ค์ผ์ผ๋ง๋ฉ๋๋ค:
ฯ_sawtooth โ aยฒ / (ฮท S^ฮฑ)
์ฌ๊ธฐ์ $S$๋ Lundquist ์์ด๊ณ $ฮฑ \approx 0.6$ (์๋ฎฌ๋ ์ด์ ์ผ๋ก๋ถํฐ).
์ํฅ: - ๊ฐ์ฅ์๋ฆฌ๋ก์ ์ฃผ๊ธฐ์ ์ด ํ์ค - Neoclassical tearing modes (NTMs) ์ ๋ฐ ๊ฐ๋ฅ - ์ ์ต: ๊ณผ๋ํ peaking ๋ฐฉ์ง, ๋ถ์๋ฌผ ๋ฐฐ์ถ
์ ์ด ๋ฐฉ๋ฒ: - $q=1$ ํ๋ฉด ๊ทผ์ฒ์ Electron cyclotron current drive (ECCD) - ์ ์ด๋ crashes๋ฅผ ์ ๋ฐํ๊ธฐ ์ํ pellet ์ฃผ์
4.2 Edge Localized Modes (ELMs)¶
ELMs์ high-confinement mode (H-mode)์์ ํ๋ผ์ฆ๋ง ๊ฐ์ฅ์๋ฆฌ์ ์ฃผ๊ธฐ์ ๋ถ์์ ์ฑ์ ๋๋ค. H-mode๋ ๊ฐ์ฅ์๋ฆฌ ๊ทผ์ฒ์ ๊ธ๊ฒฉํ ์๋ ฅ ๊ธฐ์ธ๊ธฐ (pedestal)๋ฅผ ํน์ง์ผ๋ก ํ๋ฉฐ, ์ด๋ ๋ถ์์ ํด์ง ์ ์์ต๋๋ค.
Peeling-ballooning instability:
๋ ๊ฐ์ง ๊ตฌ๋ ๋ฉ์ปค๋์ฆ: 1. Peeling: ๊ฐ์ฅ์๋ฆฌ ์ ๋ฅ ๋ฐ๋๊ฐ ์ธ๋ถ kink modes ๊ตฌ๋ 2. Ballooning: ๊ธ๊ฒฉํ ์๋ ฅ ๊ธฐ์ธ๊ธฐ๊ฐ interchange-like modes ๊ตฌ๋
$(j_{edge}, \nabla p_{edge})$ ๊ณต๊ฐ์์์ ์์ ์ฑ ๊ฒฝ๊ณ๋ "peeling-ballooning" ๋ค์ด์ด๊ทธ๋จ์ ํ์ฑํฉ๋๋ค.
ELM ์ ํ:
- Type I (giant ELMs): pedestal ์๋์ง์ 5-15%๋ฅผ ๋ฐฐ์ถํ๋ ๋๊ท๋ชจ ์ฃผ๊ธฐ์ crashes
- divertor์ ์๋นํ ์ด ํ๋ญ์ค ์ ๋ฐ ๊ฐ๋ฅ ($> 10$ MW/mยฒ)
-
๋น๋: 10-100 Hz
-
Type III (small ELMs): ๋ ์๊ณ ๋ ๋น๋ฒํจ
- ๋ฎ์ pedestal ์๋ ฅ
-
divertor ์ฐ๋ ค ์ ์
-
QH-mode (ELM-free): edge harmonic oscillation (EHO)์ ๊ฐ์ง Quiescent H-mode
- ๋ํ ELMs ์์ด ์ฐ์์ ์ธ ๊ฐ์ฅ์๋ฆฌ ์ ์/์๋์ง ๋ฐฐ์ถ
- ํ์ shear ํ์, DIII-D์์ ๊ด์ฐฐ๋จ
ELMs๋ก๋ถํฐ์ Divertor ์ด ํ๋ญ์ค:
q_peak โ W_ELM / (A_wet ฯ_ELM)
์ฌ๊ธฐ์: - $W_{ELM}$์ ELM๋น ๋ฐฐ์ถ๋๋ ์๋์ง - $A_{wet}$๋ divertor์ wetted ๋ฉด์ - $\tau_{ELM}$๋ ELM ์๋์ง ์ฆ์ฐฉ ์๊ฐ (0.1-1 ms)
ITER์ ๊ฒฝ์ฐ, ์ํ๋์ง ์์ Type I ELMs์ ์ฌ๋ฃ ํ๊ณ๋ฅผ ์ด๊ณผํ๋ $q_{peak} > 20$ MW/mยฒ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
ELM ์ํ ์ ๋ต:
- Resonant Magnetic Perturbations (RMPs): ์ธ๋ถ 3D ์ฅ์ด stochastic ๊ฐ์ฅ์๋ฆฌ ์ธต ์์ฑ
- DIII-D, ASDEX-U, KSTAR์์ ์ ์ฆ๋จ
-
confinement์ ์ผ๋ถ ๋น์ฉ์ผ๋ก ELMs ๊ฐ์ ๋๋ ์ ๊ฑฐ
-
Pellet pacing: ์์ pellets ์ฃผ์ ์ด ๋ ๋์ ๋น๋๋ก ELMs์ ์ ๋ฐํ์ฌ ํฌ๊ธฐ ๊ฐ์
-
QH-mode ๋๋ I-mode: ELM-free regimes ๋ฌ์ฑ
4.3 Disruptions¶
Disruption์ ๋ฐ๋ฆฌ์ด ์๊ฐ ์ฒ๋์์ ๋ฐ์ํ๋ ํ๋ผ์ฆ๋ง confinement์ ํ๊ตญ์ ์์ค์ ๋๋ค. Disruptions์ ITER์ ๊ฐ์ ๋ํ tokamaks์ ์ฃผ์ ๊ณผ์ ๋ฅผ ์ ๊ธฐํฉ๋๋ค.
์์ธ:
-
๋ฐ๋ ํ๊ณ: Greenwald ๋ฐ๋์ ์ ๊ทผ
n_G = I_p / (ฯ aยฒ) (10ยฒโฐ mโปยณ MAโปยน mโปยฒ)$n_G$๋ฅผ ์ด๊ณผํ๋ฉด ๋ณต์ฌ ๋ถ๊ดด ๋ฐ ์ด์ ๋ถ์์ ์ฑ์ผ๋ก ์ด์ด์ง. -
์ ๋ฅ ํ๊ณ: ๊ฐ์ฅ์๋ฆฌ safety factor $q_{edge} < 2$๋ ์ธ๋ถ kink modes๋ก ์ด์ด์ง
-
Locked modes: ์ค๋ฅ ์ฅ ๋๋ ๋ฎ์ ํ์ ์ผ๋ก ์ธํด ๋ฒฝ์ ๊ณ ์ ๋๋ tearing modes
-
Beta ํ๊ณ: MHD beta limit ์ด๊ณผ๊ฐ ideal modes ์ ๋ฐ
Disruption ๋จ๊ณ:
- ์ด์ quench (TQ): ์ด ์๋์ง ์์ค (0.1-1 ms)
- ์จ๋ ๋ถ๊ดด: $T \rightarrow 0$
- ๋ฒฝ์ผ๋ก์ ์ด ํ๋ญ์ค: ์ฌ๋ฃ ํ๊ณ ์ด๊ณผ ๊ฐ๋ฅ
-
์์ธ: MHD ๋ชจ๋ ์ฑ์ฅ, stochastization
-
์ ๋ฅ quench (CQ): ํ๋ผ์ฆ๋ง ์ ๋ฅ ์์ค (1-100 ms)
- ํ๋ผ์ฆ๋ง ์ ๋ฅ ๊ฐ์ : $I_p \rightarrow 0$
- ์ ๋ ๊ตฌ์กฐ๋ฌผ์ ์ ๋๋ ์ ์ ๋ฐ ํ
-
Runaway electron (RE) ์์ฑ ์ํ
-
Runaway electron beam: ๊ณ ๋๋ก ์๋๋ก ์ ์ธ ์ ์
- CQ ๋์ ์ ๋ ์ ๊ธฐ์ฅ์ ์ํด ๊ฐ์๋จ
- ์๋นํ ์ ๋ฅ ์ด๋ฐ ๊ฐ๋ฅ (MA ์์ค)
- ๋น์ด ๋ฒฝ์ ์ถฉ๋ํ๋ฉด ๊ณ ๋๋ก ๊ตญ์งํ๋ ์ด ์ฆ์ฐฉ
Tokamak ๊ตฌ์กฐ๋ฌผ์ ๋ํ ํ:
CQ ๋์ ๋ณํํ๋ ํ๋ผ์ฆ๋ง ์ ๋ฅ๋ ์ง๊ณต ์ฉ๊ธฐ ๋ฐ ๊ตฌ์กฐ๋ฌผ์ ์์ ๋ฅ๋ฅผ ์ ๋ํ์ฌ ํฐ ์ ์๊ธฐ๋ ฅ์ผ๋ก ์ด์ด์ง๋๋ค.
์์ง ํ:
F_z ~ (dI_p/dt) * (mutual inductance)
ITER disruption์ ๊ฒฝ์ฐ: $F_z$๋ ์ MN์ ๋๋ฌํ ์ ์์ต๋๋ค.
Halo currents:
ํ๋ผ์ฆ๋ง scrape-off layer๋ฅผ ํตํด first wall๋ก, ๊ทธ ๋ค์ ๊ตฌ์กฐ๋ฌผ์ ํตํด ํ๋ผ์ฆ๋ง๋ก ๋ค์ ํ๋ฅด๋ ์ ๋ฅ. ์ด๋ค์ toroidal ๋น๋์นญ ํ์ ์์ฑํฉ๋๋ค.
Disruption ์ํ:
- Massive Gas Injection (MGI): ๋๋์ ํฌ๊ฐ์ค(Ne, Ar) ์ฃผ์
- ์ด ์๋์ง๋ฅผ ๋ ๊ท ์ผํ๊ฒ ๋ณต์ฌ
- runaway ์์ฑ์ ์ต์ ํ๊ธฐ ์ํด ์ ์ ๋ฐ๋ ์ฆ๊ฐ
-
ํ์ ๊ฐ์์ํค๊ธฐ ์ํด ์ ๋ฅ quench๋ฅผ ๋ฆ์ถค
-
Shattered Pellet Injection (SPI): ์กฐ๊ฐ์ผ๋ก ๋ถ์์ง๋ ์ผ์ด๋ถ์ pellet ์ฃผ์
- MGI๋ณด๋ค ๋ ๊น์ ์นจํฌ ๋ฐ ๋ ๋น ๋ฅธ ๋ํ
- ๋ ํจ๊ณผ์ ์ธ ๋ณต์ฌ ๋ถํฌ
-
ITER์ ๊ธฐ๋ณธ ์ํ ์์คํ
-
Disruption ์์ธก ๋ฐ ํํผ: ๊ธฐ๊ณ ํ์ต ๋ชจ๋ธ์ด ์์ญ์์ ์๋ฐฑ ms ์ ์ disruptions ์์ธก
- disruption ์์ญ์ ํผํ๊ธฐ ์ํ ์ค์๊ฐ ์ ์ด
- ํํผ ์คํจ ์ ์ํ ํธ๋ฆฌ๊ฑฐ
4.4 Neoclassical Tearing Modes (NTMs)¶
NTMs๋ ์๊ธฐ ์ฌ ๋ด๋ถ์ bootstrap ์ ๋ฅ์ ๋ํ ์ญ๋์ ์ํด ๊ตฌ๋๋๋ resistive tearing modes์ ๋๋ค.
Bootstrap ์ ๋ฅ:
์๋ ฅ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ฐ์ง toroidal ํ๋ผ์ฆ๋ง์์ trapped ์ ์๋ ์ toroidal ์ ๋ฅ์ ๊ธฐ์ฌํฉ๋๋ค:
j_bs = C(ฮฝ*, ฮต) d p/dr
์ฌ๊ธฐ์ $\nu^*$๋ ์ถฉ๋์ฑ์ด๊ณ $\varepsilon = r/R$์ ์ญ aspect ratio์ ๋๋ค.
์ฌ ์ญํ:
Tearing mode๊ฐ rational surface $q = m/n$์์ ์๊ธฐ ์ฌ์ ์์ฑํ ๋, ์๋ ฅ์ ์ฌ ๋ด๋ถ์์ ํํํด์ง๊ณ ๊ตญ์ bootstrap ์ ๋ฅ๋ฅผ ๊ฐ์์ํต๋๋ค. ์ด ๋๋ฝ๋ ์ ๋ฅ๊ฐ ์ฌ ์ฑ์ฅ์ ๊ตฌ๋ํฉ๋๋ค.
NTM ์ฌ ํญ $w$์ ๋ํ ์์ ๋ Rutherford ๋ฐฉ์ ์:
ฯ_R dw/dt = r_s ฮ'_{classical} + r_s ฮ'_{bs}(w)
์ฌ๊ธฐ์:
ฮ'_{bs} = L_{q,p} / wยฒ
๋ bootstrap ๊ตฌ๋ ํญ (์์, ๋ถ์์ ํ)์ด๊ณ $L_{q,p}$๋ ์๋ ฅ ๋ฐ safety factor ํ๋กํ์ผ์ ์์กดํฉ๋๋ค.
NTM ์ฌ๊ธฐ ์๊ณ๊ฐ:
NTMs๋ ์๊ณ ํญ์ ์ด๊ณผํ๋ seed ์ฌ (์ผ๋ฐ์ ์ผ๋ก sawteeth ๋๋ ELMs๋ก๋ถํฐ)์ ํ์๋ก ํฉ๋๋ค:
w_crit ~ sqrt(L_{q,p} / |ฮ'_{classical}|)
์ ์ด:
Rational surface์ ๊ตญ์งํ๋ Electron Cyclotron Current Drive (ECCD)๋ ๋๋ฝ๋ bootstrap ์ ๋ฅ๋ฅผ ๋์ฒดํ์ฌ NTM ์ฑ์ฅ์ ์ต์ ํ๊ฑฐ๋ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
4.5 Resistive Wall Modes (RWMs)¶
RWMs๋ resistive conducting ๋ฒฝ์ ์ํด ๋ถ๋ถ์ ์ผ๋ก ์์ ํ๋ ์ธ๋ถ kink modes์ ๋๋ค.
์ ๋ ๋ฒฝ์ ๊ฐ์ง Ideal kink:
Ideal ์ธ๋ถ kink mode๋ ํ๋ผ์ฆ๋ง์ ๊ฐ๊น์ด ์์ ์ ๋ ๋ฒฝ์ ์ํด ์์ ํ๋ ์ ์์ต๋๋ค. Resistive ๋ฒฝ์ ๊ฒฝ์ฐ, ์์ ํ๋ ์ผ์์ ์ ๋๋ค: ๋ชจ๋๋ ๋ฒฝ resistive ์๊ฐ ์ฒ๋ $\tau_{wall}$์์ ์ฑ์ฅํฉ๋๋ค.
์ฑ์ฅ๋ฅ :
ฮณ โ ฯ_wall^{-1}
์ฌ๊ธฐ์ $\tau_{wall} \sim ฮผโ \sigma d_{wall} b_{wall}$ ($\sigma$๋ ๋ฒฝ ์ ๋๋, $d_{wall}$ ๋๊ป, $b_{wall}$ ๋ฐ๊ฒฝ).
์ผ๋ฐ์ ์ธ ์๊ฐ ์ฒ๋: $\tau_{wall} \sim 10-100$ ms (ideal MHD๋ณด๋ค ํจ์ฌ ๋๋ฆผ).
์์ ํ:
-
ํ๋ผ์ฆ๋ง ํ์ : ํ๋ผ์ฆ๋ง๊ฐ RWM ์ฑ์ฅ๋ฅ ๋ณด๋ค ๋น ๋ฅด๊ฒ ํ์ ํ๋ฉด ๋ชจ๋๊ฐ ์์ ํ๋จ
ฯ_rot > ฮณ_RWM -
Active feedback control: ์ธ๋ถ coils์ด ๋ชจ๋๋ฅผ ๊ฐ์งํ๊ณ ๋ณด์ ์ฅ ์ ์ฉ
-
Kinetic effects: energetic ์ ์์ precession drift์์ ๊ณต๋ช ์ด damping ์ ๊ณต ๊ฐ๋ฅ
RWMs๋ ํ์ ๋๋ feedback ์์ด advanced tokamak ์๋๋ฆฌ์ค์์ ๋ฌ์ฑ ๊ฐ๋ฅํ beta๋ฅผ ์ ํํฉ๋๋ค.
5. Stellarator ๊ตฌ์ฑ¶
Stellarator๋ ํ๋ผ์ฆ๋ง ์ ๋ฅ์ ์์กดํ์ง ์๊ณ ์ธ๋ถ 3D ์๊ธฐ์ฅ์ ์ฌ์ฉํ์ฌ confinement๋ฅผ ๋ฌ์ฑํ๋ tokamak์ ๋์์ ๋๋ค.
5.1 Stellarator ์๊ธฐ์ฅ¶
Stellarator์์ ๋นํ๋ฆฐ ์๊ธฐ์ฅ์ ์ rotational transform (tokamak์ 1/q์ ๋๋ฑ)์ ์์ฑํ๋ ์ธ๋ถ coils์ ์ํด ์ ์ ์ผ๋ก ์์ฑ๋ฉ๋๋ค.
์ฅ์ : - ์ ์ ์ํ: ์ ๋ฅ ๊ตฌ๋ ํ์ ์์ - disruptions ์์: ํฐ ํ๋ผ์ฆ๋ง ์ ๋ฅ ์์, ์ ๋ฅ ๊ตฌ๋ ๋ถ์์ ์ฑ ์์ - ์ ์ฐํ ์ต์ ํ: ์์ ์ฑ ๋ฐ confinement๋ฅผ ์ํด ์ฅ ํ์ ์ต์ ํ ๊ฐ๋ฅ
๊ณผ์ : - ๋ณต์กํ 3D ๊ธฐํํ: ์ค๊ณ, ๊ตฌ์ถ ๋ฐ ๋ถ์ ์ด๋ ค์ - Neoclassical transport: 3D ์ฅ์์์ drift orbits์ด ํฅ์๋ transport๋ก ์ด์ด์ง ์ ์์ - ์ ํ๋ ์คํ ๋ฐ์ดํฐ๋ฒ ์ด์ค: tokamaks๋ณด๋ค ๋ํ ์ฅ์น๊ฐ ์ ์
5.2 Quasi-Symmetry¶
ํ๋ stellarators๋ quasi-symmetry๋ฅผ ๋ชฉํ๋ก ํฉ๋๋ค: ์๊ธฐ ์ขํ๊ณ์ ํน์ ๋ฐฉํฅ์์ ์ฅ ๊ฐ๋ $|B|$๊ฐ ๋๋ต ๋์นญ์ ๋๋ค (์: quasi-helical, quasi-toroidal, quasi-axisymmetric).
Quasi-symmetry๋ ์ ์ drift surfaces๊ฐ flux surfaces์ ์ผ์นํ๋๋ก ๋ณด์ฅํ์ฌ neoclassical transport๋ฅผ ๊ฐ์์ํต๋๋ค.
์: - W7-X (๋ ์ผ): Quasi-isodynamic, modular coils - HSX (๋ฏธ๊ตญ): Quasi-helically symmetric - NCSX (๋ฏธ๊ตญ, ์ทจ์๋จ): Quasi-axisymmetric
5.3 Stellarators์ MHD ์์ ์ฑ¶
Stellarators๋ ์ ์ฐจ rational surfaces๋ฅผ ํผํ๋๋ก ์ค๊ณ๋ ์ ์์ด tearing modes์ ๋ํ ์ทจ์ฝ์ฑ์ ๊ฐ์์ํต๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ MHD ์์ ์ฑ ๊ณผ์ ์ ์ง๋ฉดํฉ๋๋ค:
- Interchange modes: ๋ถ๋ฆฌํ ๊ณก๋ฅ ์์ญ์ด interchange ๋ถ์์ ์ฑ ๊ตฌ๋ ๊ฐ๋ฅ
- Ballooning modes: tokamaks์ ์ ์ฌํ ์๋ ฅ ๊ตฌ๋ ๋ถ์์ ์ฑ
- External kinks: ํํ์ด ์ต์ ์ด ์๋ ๊ฒฝ์ฐ
์์น ์ต์ ํ ์ฝ๋ (์: ํํ์ ์ํ VMEC, ์์ ์ฑ์ ์ํ TERPSICHORE)๋ stellarator ์ค๊ณ์ ํ์์ ์ ๋๋ค.
5.4 W7-X ๊ฒฐ๊ณผ¶
Wendelstein 7-X (W7-X)๋ 2015๋ ์ first plasma๋ฅผ ๋ฌ์ฑํ๊ณ ๋ค์์ ์ ์ฆํ์ต๋๋ค: - ๊ธด ํ์ค (์ต๋ 101 s) - tokamaks์ ๋น๊ต ๊ฐ๋ฅํ ์ข์ ์๋์ง confinement - ์์ธก๊ณผ ์ผ์นํ๋ ๋ฎ์ neoclassical transport - ์ฌ ๋ฐ ์ค๋ฅ ์ฅ ์ ์ด
Stellarators๋ ํนํ ์ ์ ์ํ ์๋์์ ํต์ตํฉ ๋ฐ์๋ก์ ๋ํ ๊ฐ๋ ฅํ ํ๋ณด๋ก ๋จ์ ์์ต๋๋ค.
6. Reversed Field Pinch (RFP)¶
RFP๋ ํ๋ผ์ฆ๋ง์ ์ธ๋ถ ์์ญ์์ toroidal ์๊ธฐ์ฅ์ด ๋ฐฉํฅ์ ๋ฐ์ ์ํค๋ toroidal confinement ๊ฐ๋ ์ ๋๋ค.
6.1 RFP ์๊ธฐ์ฅ ๊ตฌ์กฐ¶
RFP๋ ๋น๊ต ๊ฐ๋ฅํ toroidal ๋ฐ poloidal ์ฅ์ ๊ฐ์ง๋๋ค:
B_ฯ(r)๋ r = r_reversal์์ ๋ถํธ ๋ณ๊ฒฝ
B_ฮธ(r) ~ ์์
์ฅ ๊ตฌ์ฑ์ ํ๋ผ์ฆ๋ง ์ ๋ฅ ๋ฐ MHD dynamo ์์ฉ์ ์ํด ์ ์ง๋ฉ๋๋ค.
6.2 Taylor Relaxation¶
Taylor์ ๊ฐ์ค: ๋๋ฅ ํ๋ผ์ฆ๋ง๋ ์ ์ญ ์๊ธฐ helicity์ ์ผ์ ํ ์ ์ฝ ์กฐ๊ฑด ํ์์ ์ต์ ์๋์ง ์ํ๋ก ์ด์๋ฉ๋๋ค.
์ด์๋ ์ํ๋ ๋ค์์ ๋ง์กฑํฉ๋๋ค:
โ ร B = ฮผ B
์ฌ๊ธฐ์ $\mu$๋ ์์์ ๋๋ค (force-free ๋ฐฉ์ ์์ eigenvalue).
์ค๋ฆฐ๋์์ ์ด๊ฒ์ Bessel ํจ์ ํ๋กํ์ผ์ ์์ฑํฉ๋๋ค:
B_z(r) = B_0 J_0(ฮผ r)
B_ฮธ(r) = B_0 J_1(ฮผ r)
$\mu a$๊ฐ $J_0(\mu a) < 0$์ด ๋๋๋ก ์ ํ๋๋ฉด ์ฅ์ ๊ฐ์ฅ์๋ฆฌ์์ ๋ฐ์ ๋ฉ๋๋ค.
6.3 RFP MHD ํ๋¶
RFPs๋ ์ ๋ฅ ํ๋กํ์ผ์ ์ด์์ํค๊ณ ๋ฐ์ ๋ ์ฅ์ ์ ์งํ๋ ๊ฐํ MHD ๋ณ๋ (tearing modes)์ ๋ํ๋ ๋๋ค. ์ด "MHD dynamo"๋ RFP ์๋์ ํ์์ ์ด์ง๋ง confinement๋ฅผ ์ ํ์ํต๋๋ค.
์ต๊ทผ ๊ฐ์ : - Pulsed Poloidal Current Drive (PPCD): MHD ๋ณ๋ ๊ฐ์, confinement ๊ฐ์ - Quasi-single-helicity (QSH) states: ํ๋์ ์ง๋ฐฐ์ ์ธ ๋ชจ๋, ๊ฐ์๋ chaos
RFPs๋ $\beta \sim 10-20\%$๋ฅผ ๋ฌ์ฑํ์ฌ tokamaks๋ณด๋ค ๋์ง๋ง confinement time์ ๋ ์งง์ต๋๋ค.
7. Beta ํ๊ณ ๋ฐ ์์ ์ฑ ๊ฒฝ๊ณ¶
7.1 Troyon Beta Limit ์ ๋ (๋ฐ๊ฒฌ์ )¶
ํฐ aspect ratio tokamak์ ๊ณ ๋ คํฉ๋๋ค. ์ธ๋ถ kink mode๋ ํ๋ผ์ฆ๋ง ์๋ ฅ ๋ฐ ์ ๋ฅ์ ์ํด ๊ตฌ๋๋ฉ๋๋ค. ๋ถ์์ ํ ์๋ ฅ ํญ๊ณผ ์์ ํ ์๊ธฐ์ฅ์ ๊ตฝํ์ ๊ท ํ:
ฮฒ ~ 1 / (q a/R)
$q \sim aยฒ B_ฯ / (ฮผโ R I_p)$๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ผ์ฆ๋ง ์ ๋ฅ๋ก ํํ:
ฮฒ ~ ฮผโ I_p / (a B_ฯ)
์ฌ๋ฐฐ์ด:
ฮฒ a B_ฯ / I_p ~ ์์
์ด๊ฒ์ ์ ๊ทํ๋ beta $\beta_N$์ ๋๋ค. ๋ ์์ธํ ๊ณ์ฐ์ ๋ค์์ ์ ๊ณตํฉ๋๋ค:
ฮฒ_N^{max} โ C_T l_i / (A q_cyl)
์ฌ๊ธฐ์ $C_T \approx 2.8$ (Troyon ๊ณ์), $l_i$๋ ๋ด๋ถ inductance, $A$๋ aspect ratio, $q_{cyl}$์ ์ํตํ safety factor์ ๋๋ค.
7.2 Ballooning Mode ํ๊ณ¶
Ballooning modes๋ ๋ถ๋ฆฌํ ๊ณก๋ฅ ์์ญ์ ๊ตญ์งํ๋ ๋์ toroidal mode number ($n \rightarrow \infty$) ์๋ ฅ ๊ตฌ๋ ๋ถ์์ ์ฑ์ ๋๋ค.
Mercier criterion์ ๊ตญ์ ์์ ์ฑ ์กฐ๊ฑด์ ์ ๊ณตํฉ๋๋ค:
D_I > 0
์ฌ๊ธฐ์ $D_I$๋ ์๋ ฅ ๊ธฐ์ธ๊ธฐ, shear ๋ฐ ์๊ธฐ well ๊น์ด๋ฅผ ํฌํจํฉ๋๋ค.
Tokamak์ ๊ฒฝ์ฐ, ballooning ์์ ์ฑ์ ๋๋ต ๋ค์์ ์๊ตฌํฉ๋๋ค:
dp/dr < (์๊ณ ๊ธฐ์ธ๊ธฐ)
Beta์ ๋ํ ballooning ํ๊ณ:
ฮฒ_crit ~ (ฮต/qยฒ) (shear factor)
๋์ shear ($s = r q'/q$) ๋ฐ ํฐ aspect ratio๊ฐ ballooning ์์ ์ฑ์ ๊ฐ์ ํฉ๋๋ค.
7.3 Advanced ์๋๋ฆฌ์ค์ ์ ์ญ Beta ํ๊ณ¶
Advanced tokamak ์๋๋ฆฌ์ค๋ ๋์ beta, ๋์ bootstrap ๋ถ์จ ๋ฐ ์ ์ ์ํ ์๋์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ด๋ฌํ ์๋๋ฆฌ์ค๋ no-wall ideal kink limit ๊ทผ์ฒ ๋๋ ์์์ ์๋ํ์ง๋ง with-wall limit ์๋์์ ์๋ํฉ๋๋ค.
์๋ ๊ณต๊ฐ: - $\beta_N \sim 3-4$ (no-wall limit ~2.5 ์) - Resistive wall mode ์ ์ด ํ์ (ํ์ , feedback) - ๋์ $q$-ํ๋กํ์ผ (์: $q_{min} > 2$)๋ก sawteeth ํํผ ๋ฐ NTM ๊ตฌ๋ ๊ฐ์
8. Python ๊ตฌํ¶
8.1 Troyon Beta Limit¶
import numpy as np
import matplotlib.pyplot as plt
def troyon_beta_limit(I_p, a, B_0, C_Troyon=2.8):
"""
Calculate Troyon beta limit.
Parameters:
I_p : plasma current (MA)
a : minor radius (m)
B_0 : toroidal magnetic field on axis (T)
C_Troyon : Troyon coefficient (dimensionless, typically 2.8)
Returns:
beta_N : normalized beta limit (%)
beta_percent : absolute beta limit (%)
"""
beta_N = C_Troyon # Troyon limit (% T m / MA)
beta_percent = beta_N * I_p / (a * B_0)
return beta_N, beta_percent
# Example: ITER-like parameters
I_p_ITER = 15.0 # MA
a_ITER = 2.0 # m
B_0_ITER = 5.3 # T
beta_N_limit, beta_limit = troyon_beta_limit(I_p_ITER, a_ITER, B_0_ITER)
print(f"ITER parameters: I_p = {I_p_ITER} MA, a = {a_ITER} m, B_0 = {B_0_ITER} T")
print(f"Troyon limit: ฮฒ_N = {beta_N_limit:.2f} % T m / MA")
print(f"Absolute beta limit: ฮฒ = {beta_limit:.2f} %")
# Scan over plasma current
I_p_scan = np.linspace(5, 20, 50)
beta_scan = [troyon_beta_limit(I_p, a_ITER, B_0_ITER)[1] for I_p in I_p_scan]
plt.figure(figsize=(8, 5))
plt.plot(I_p_scan, beta_scan, 'b-', linewidth=2)
plt.xlabel('Plasma Current (MA)', fontsize=12)
plt.ylabel('Beta Limit (%)', fontsize=12)
plt.title('Troyon Beta Limit vs Plasma Current', fontsize=14)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('troyon_beta_limit.png', dpi=150)
plt.show()
8.2 Sawtooth Period Model¶
def sawtooth_period(a, T_e, n_e, B, S_exp=0.6):
"""
Estimate sawtooth period using scaling law.
Parameters:
a : minor radius (m)
T_e : electron temperature (eV)
n_e : electron density (m^-3)
B : magnetic field (T)
S_exp : Lundquist number exponent (typically 0.6)
Returns:
tau_sawtooth : sawtooth period (s)
"""
# Physical constants
e = 1.602e-19 # C
m_e = 9.109e-31 # kg
epsilon_0 = 8.854e-12 # F/m
mu_0 = 4 * np.pi * 1e-7 # H/m
# Spitzer resistivity
ln_Lambda = 15.0 # Coulomb logarithm (approximate)
eta = (e**2 * ln_Lambda * m_e**0.5) / (12 * np.pi**1.5 * epsilon_0**2 * (e * T_e)**1.5)
# Lundquist number
tau_R = mu_0 * a**2 / eta
tau_A = a / (B / np.sqrt(mu_0 * n_e * m_e * 1836)) # Alfven time (approximation)
S = tau_R / tau_A
# Sawtooth period scaling
tau_sawtooth = tau_R / S**S_exp * 50 # Empirical factor
return tau_sawtooth, S, eta
# Example: JET-like parameters
a_JET = 1.0 # m
T_e_JET = 2000 # eV (core temperature)
n_e_JET = 5e19 # m^-3
B_JET = 3.0 # T
tau_saw, S_JET, eta_JET = sawtooth_period(a_JET, T_e_JET, n_e_JET, B_JET)
print(f"\nJET parameters: a = {a_JET} m, T_e = {T_e_JET} eV, n_e = {n_e_JET:.1e} m^-3, B = {B_JET} T")
print(f"Spitzer resistivity: ฮท = {eta_JET:.3e} ฮฉ m")
print(f"Lundquist number: S = {S_JET:.2e}")
print(f"Estimated sawtooth period: ฯ = {tau_saw:.3f} s")
# Scan over temperature
T_e_scan = np.linspace(500, 5000, 50)
tau_scan = [sawtooth_period(a_JET, T_e, n_e_JET, B_JET)[0] for T_e in T_e_scan]
plt.figure(figsize=(8, 5))
plt.plot(T_e_scan, tau_scan, 'r-', linewidth=2)
plt.xlabel('Electron Temperature (eV)', fontsize=12)
plt.ylabel('Sawtooth Period (s)', fontsize=12)
plt.title('Sawtooth Period vs Electron Temperature', fontsize=14)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('sawtooth_period.png', dpi=150)
plt.show()
8.3 Disruption Force Estimation¶
def disruption_forces(I_p, dI_dt, R, a, b_wall):
"""
Estimate electromagnetic forces during disruption.
Parameters:
I_p : initial plasma current (MA)
dI_dt : current quench rate (MA/s)
R : major radius (m)
a : minor radius (m)
b_wall : wall minor radius (m)
Returns:
F_z : vertical force (MN)
V_loop : loop voltage (V)
"""
mu_0 = 4 * np.pi * 1e-7
# Mutual inductance (simple model)
M = mu_0 * R * (np.log(8 * R / a) - 2 + 0.5) # H
# Vertical force (simplified)
F_z = abs(I_p * 1e6 * dI_dt * 1e6 * M / (2 * np.pi * R)) / 1e6 # MN
# Loop voltage
V_loop = abs(M * dI_dt * 1e6) # V
return F_z, V_loop
# Example: ITER disruption
I_p_ITER_disr = 15.0 # MA
dI_dt_ITER = -15.0 / 0.15 # MA/s (15 MA in 150 ms)
R_ITER = 6.2 # m
a_ITER_disr = 2.0 # m
b_wall_ITER = 2.3 # m
F_z_ITER, V_loop_ITER = disruption_forces(I_p_ITER_disr, dI_dt_ITER, R_ITER, a_ITER_disr, b_wall_ITER)
print(f"\nITER disruption: I_p = {I_p_ITER_disr} MA, dI/dt = {dI_dt_ITER:.1f} MA/s")
print(f"Estimated vertical force: F_z ~ {F_z_ITER:.2f} MN")
print(f"Estimated loop voltage: V_loop ~ {V_loop_ITER:.1f} V")
# Current quench timescale scan
tau_CQ_scan = np.linspace(0.01, 0.5, 50) # s
dI_dt_scan = -I_p_ITER_disr / tau_CQ_scan
F_z_scan = [disruption_forces(I_p_ITER_disr, dI_dt, R_ITER, a_ITER_disr, b_wall_ITER)[0] for dI_dt in dI_dt_scan]
plt.figure(figsize=(8, 5))
plt.plot(tau_CQ_scan * 1000, F_z_scan, 'g-', linewidth=2)
plt.xlabel('Current Quench Time (ms)', fontsize=12)
plt.ylabel('Vertical Force (MN)', fontsize=12)
plt.title('Disruption Vertical Force vs Current Quench Time', fontsize=14)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('disruption_forces.png', dpi=150)
plt.show()
8.4 Safety Factor Profile¶
def safety_factor_profile(r, a, R, B_0, I_p, profile='parabolic', nu=1.0):
"""
Calculate safety factor profile.
Parameters:
r : radial coordinate (m) or array
a : minor radius (m)
R : major radius (m)
B_0 : toroidal field on axis (T)
I_p : plasma current (MA)
profile : 'parabolic' or 'flat'
nu : profile parameter (for parabolic)
Returns:
q : safety factor
"""
r = np.atleast_1d(r)
mu_0 = 4 * np.pi * 1e-7
if profile == 'parabolic':
# j(r) = j_0 (1 - (r/a)^2)^nu
# I(r) = 2ฯ โซ j(r') r' dr'
# For simplicity, approximate q(r)
q_edge = (a**2 * B_0) / (mu_0 * R * I_p * 1e6) * 2 * np.pi
q_0 = q_edge / (nu + 1)
q = q_0 + (q_edge - q_0) * (r / a)**2
elif profile == 'flat':
# Flat current profile
q = (r**2 * B_0) / (mu_0 * R * I_p * 1e6 / (np.pi * a**2)) / (2 * np.pi)
q[r == 0] = 0 # Avoid singularity
else:
raise ValueError("Profile must be 'parabolic' or 'flat'")
return q
# Plot q-profile for different current profiles
r_array = np.linspace(0, a_ITER, 100)
q_parabolic_1 = safety_factor_profile(r_array, a_ITER, 6.2, B_0_ITER, I_p_ITER, 'parabolic', nu=1.0)
q_parabolic_2 = safety_factor_profile(r_array, a_ITER, 6.2, B_0_ITER, I_p_ITER, 'parabolic', nu=2.0)
plt.figure(figsize=(10, 6))
plt.plot(r_array, q_parabolic_1, 'b-', linewidth=2, label='Parabolic (ฮฝ=1)')
plt.plot(r_array, q_parabolic_2, 'r-', linewidth=2, label='Parabolic (ฮฝ=2)')
plt.axhline(y=1, color='k', linestyle='--', alpha=0.5, label='q=1 (sawtooth)')
plt.axhline(y=2, color='gray', linestyle='--', alpha=0.5, label='q=2 (disruption)')
plt.xlabel('Minor Radius r (m)', fontsize=12)
plt.ylabel('Safety Factor q', fontsize=12)
plt.title('Safety Factor Profile', fontsize=14)
plt.legend(fontsize=11)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('safety_factor_profile.png', dpi=150)
plt.show()
8.5 Greenwald Density Limit¶
def greenwald_density(I_p, a):
"""
Calculate Greenwald density limit.
Parameters:
I_p : plasma current (MA)
a : minor radius (m)
Returns:
n_G : Greenwald density (10^20 m^-3)
"""
n_G = I_p / (np.pi * a**2) # 10^20 m^-3
return n_G
# ITER Greenwald density
n_G_ITER = greenwald_density(I_p_ITER, a_ITER)
print(f"\nITER Greenwald density limit: n_G = {n_G_ITER:.2f} ร 10^20 m^-3")
# Scan over current
I_p_scan_greenwald = np.linspace(5, 20, 50)
n_G_scan = [greenwald_density(I_p, a_ITER) for I_p in I_p_scan_greenwald]
plt.figure(figsize=(8, 5))
plt.plot(I_p_scan_greenwald, n_G_scan, 'm-', linewidth=2)
plt.xlabel('Plasma Current (MA)', fontsize=12)
plt.ylabel('Greenwald Density Limit (10ยฒโฐ mโปยณ)', fontsize=12)
plt.title('Greenwald Density Limit vs Plasma Current', fontsize=14)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('greenwald_density.png', dpi=150)
plt.show()
8.6 ELM Energy Loss and Divertor Heat Flux¶
def elm_heat_flux(W_ELM, A_wet, tau_ELM):
"""
Estimate peak divertor heat flux from ELM.
Parameters:
W_ELM : energy expelled per ELM (MJ)
A_wet : wetted area on divertor (m^2)
tau_ELM : energy deposition timescale (ms)
Returns:
q_peak : peak heat flux (MW/m^2)
"""
q_peak = W_ELM / (A_wet * tau_ELM * 1e-3) # MW/m^2
return q_peak
# ITER Type I ELM (unmitigated)
W_ELM_ITER = 1.0 # MJ (10% of pedestal energy ~ 10 MJ)
A_wet_ITER = 0.5 # m^2 (narrow wetted area)
tau_ELM_ITER = 0.5 # ms
q_peak_ITER = elm_heat_flux(W_ELM_ITER, A_wet_ITER, tau_ELM_ITER)
print(f"\nITER Type I ELM (unmitigated):")
print(f"W_ELM = {W_ELM_ITER} MJ, A_wet = {A_wet_ITER} m^2, ฯ_ELM = {tau_ELM_ITER} ms")
print(f"Peak heat flux: q_peak ~ {q_peak_ITER:.1f} MW/m^2")
# Mitigation: smaller, more frequent ELMs
W_ELM_mitigated = 0.1 # MJ
n_ELMs = 10 # 10x more frequent
q_peak_mitigated = elm_heat_flux(W_ELM_mitigated, A_wet_ITER, tau_ELM_ITER)
print(f"\nMitigated ELMs:")
print(f"W_ELM = {W_ELM_mitigated} MJ (10x smaller), frequency 10x higher")
print(f"Peak heat flux: q_peak ~ {q_peak_mitigated:.1f} MW/m^2")
# Scan over ELM size
W_ELM_scan = np.linspace(0.05, 2.0, 50)
q_peak_scan = [elm_heat_flux(W, A_wet_ITER, tau_ELM_ITER) for W in W_ELM_scan]
plt.figure(figsize=(8, 5))
plt.plot(W_ELM_scan, q_peak_scan, 'orange', linewidth=2)
plt.axhline(y=10, color='r', linestyle='--', linewidth=2, label='Material limit (~10 MW/mยฒ)')
plt.xlabel('ELM Energy (MJ)', fontsize=12)
plt.ylabel('Peak Heat Flux (MW/mยฒ)', fontsize=12)
plt.title('ELM Divertor Heat Flux vs ELM Energy', fontsize=14)
plt.legend(fontsize=11)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('elm_heat_flux.png', dpi=150)
plt.show()
8.7 Neoclassical Tearing Mode Island Width Evolution¶
def ntm_island_evolution(w0, Delta_prime_bs, Delta_prime_class, r_s, tau_R, t_max, dt):
"""
Evolve NTM island width using modified Rutherford equation.
Parameters:
w0 : initial island width (m)
Delta_prime_bs : bootstrap drive (m^-1)
Delta_prime_class : classical tearing stability parameter (m^-1)
r_s : radius of rational surface (m)
tau_R : resistive timescale (s)
t_max : maximum time (s)
dt : timestep (s)
Returns:
t_array : time array
w_array : island width evolution
"""
N_steps = int(t_max / dt)
t_array = np.zeros(N_steps)
w_array = np.zeros(N_steps)
w = w0
t = 0.0
for i in range(N_steps):
t_array[i] = t
w_array[i] = w
# Modified Rutherford equation: dw/dt = (r_s/ฯ_R) * (ฮ'_class + L_qp/w^2)
# Simplified: ฮ'_bs ~ L_qp / w^2
if w > 1e-6: # Avoid singularity
dw_dt = (r_s / tau_R) * (Delta_prime_class * w + Delta_prime_bs / w)
else:
dw_dt = 0.0
w += dw_dt * dt
t += dt
# Stop if island saturates or decays
if w < 0:
w = 0
break
if w > 0.5: # Cap at half minor radius
break
return t_array[:i+1], w_array[:i+1]
# Example: NTM at q=3/2 surface
r_s_ntm = 0.6 # m (60% of minor radius)
tau_R_ntm = 1.0 # s
Delta_prime_class_ntm = -0.5 # m^-1 (classically stable)
Delta_prime_bs_ntm = 0.001 # m (bootstrap drive parameter)
# Case 1: Small seed island (below threshold)
w0_small = 0.01 # m
t_small, w_small = ntm_island_evolution(w0_small, Delta_prime_bs_ntm, Delta_prime_class_ntm,
r_s_ntm, tau_R_ntm, 10.0, 0.01)
# Case 2: Large seed island (above threshold)
w0_large = 0.05 # m
t_large, w_large = ntm_island_evolution(w0_large, Delta_prime_bs_ntm, Delta_prime_class_ntm,
r_s_ntm, tau_R_ntm, 10.0, 0.01)
plt.figure(figsize=(10, 6))
plt.plot(t_small, w_small * 100, 'b-', linewidth=2, label=f'Small seed (wโ={w0_small*100:.1f} cm)')
plt.plot(t_large, w_large * 100, 'r-', linewidth=2, label=f'Large seed (wโ={w0_large*100:.1f} cm)')
plt.xlabel('Time (s)', fontsize=12)
plt.ylabel('Island Width (cm)', fontsize=12)
plt.title('NTM Island Width Evolution', fontsize=14)
plt.legend(fontsize=11)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('ntm_island_evolution.png', dpi=150)
plt.show()
print(f"\nNTM evolution:")
print(f"Small seed: final width = {w_small[-1]*100:.2f} cm (decays)")
print(f"Large seed: final width = {w_large[-1]*100:.2f} cm (grows)")
8.8 RFP Taylor State¶
def rfp_taylor_state(r, a, mu_a):
"""
Calculate RFP Taylor state magnetic field profiles.
Parameters:
r : radial coordinate (array)
a : minor radius (m)
mu_a : Taylor eigenvalue * a (dimensionless)
Returns:
B_z : toroidal field (normalized)
B_theta : poloidal field (normalized)
"""
from scipy.special import jv # Bessel function
x = mu_a * r / a
B_z = jv(0, x) # J_0
B_theta = jv(1, x) # J_1
return B_z, B_theta
# RFP Taylor state
a_RFP = 0.5 # m
mu_a_RFP = 3.8 # First zero of J_0 is ~2.4, choose higher for reversal
r_RFP = np.linspace(0, a_RFP, 200)
B_z_RFP, B_theta_RFP = rfp_taylor_state(r_RFP, a_RFP, mu_a_RFP)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 5))
ax1.plot(r_RFP, B_z_RFP, 'b-', linewidth=2, label='$B_z$ (toroidal)')
ax1.plot(r_RFP, B_theta_RFP, 'r-', linewidth=2, label='$B_ฮธ$ (poloidal)')
ax1.axhline(y=0, color='k', linestyle='--', alpha=0.3)
ax1.set_xlabel('Radius r (m)', fontsize=12)
ax1.set_ylabel('Magnetic Field (normalized)', fontsize=12)
ax1.set_title('RFP Taylor State: Magnetic Field Profiles', fontsize=13)
ax1.legend(fontsize=11)
ax1.grid(True, alpha=0.3)
# Field line pitch
q_RFP = np.where(np.abs(B_theta_RFP) > 0.01, B_z_RFP / B_theta_RFP * a_RFP / 6.0, np.nan)
ax2.plot(r_RFP, q_RFP, 'g-', linewidth=2)
ax2.axhline(y=0, color='k', linestyle='--', alpha=0.3)
ax2.set_xlabel('Radius r (m)', fontsize=12)
ax2.set_ylabel('Safety Factor q', fontsize=12)
ax2.set_title('RFP Safety Factor (approximate)', fontsize=13)
ax2.grid(True, alpha=0.3)
ax2.set_ylim([-2, 2])
plt.tight_layout()
plt.savefig('rfp_taylor_state.png', dpi=150)
plt.show()
print(f"\nRFP Taylor state: ฮผa = {mu_a_RFP}")
print(f"Field reversal at r/a ~ {r_RFP[B_z_RFP < 0][0] / a_RFP:.2f}")
9. ์์ฝ¶
์ด ๊ฐ์๋ ์๊ธฐ confinement ํต์ตํฉ์ ์ฃผ์ MHD ์ธก๋ฉด์ ๋ค๋ฃจ์์ต๋๋ค:
- Tokamak ๊ตฌ์ฑ: Toroidal + poloidal ์ฅ, safety factor, ํ๋ผ์ฆ๋ง ์ ๋ฅ
- Tokamak ํํ: Grad-Shafranov ๋ฐฉ์ ์, Shafranov shift, beta ํ๊ณ (Troyon limit)
- ์ฃผ์ ๋ถ์์ ์ฑ:
- Sawteeth: $q_0 < 1$, internal kink, Kadomtsev ์ฌ๊ฒฐํฉ
- ELMs: Peeling-ballooning modes, Type I/III, ์ํ (RMP, pellet pacing, QH-mode)
- Disruptions: ์ด์ quench, ์ ๋ฅ quench, runaway electrons, ์ํ (MGI, SPI)
- NTMs: Bootstrap ๊ตฌ๋ ์ฌ ์ฑ์ฅ, ECCD ์์ ํ
- RWMs: Resistive wall modes, ํ์ ๋๋ feedback ์ ์ด ํ์
- Stellarator: 3D ์ธ๋ถ coils, ํ๋ผ์ฆ๋ง ์ ๋ฅ ์์, quasi-symmetry, disruptions ์์
- RFP: ๋ฐ์ ๋ toroidal ์ฅ, Taylor relaxation, MHD dynamo
์ด๋ฌํ MHD ํ์์ ์ดํดํ๊ณ ์ ์ดํ๋ ๊ฒ์ ์ค์ฉ์ ์ธ ํต์ตํฉ ์๋์ง๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ITER๋ ๋ฐ์๋ก ๊ด๋ จ ๊ท๋ชจ์์ ์ด๋ฌํ ๊ฐ๋ ๋ค์ ๋ง์ ๊ฒ์ ํ ์คํธํ ๊ฒ์ ๋๋ค.
์ฐ์ต ๋ฌธ์ ¶
-
Troyon limit: $I_p = 10$ MA, $a = 1.5$ m, $B_0 = 4$ T์ธ tokamak์ ๊ฒฝ์ฐ, Troyon limit ($\beta_N = 3$)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌ์ฑ ๊ฐ๋ฅํ ์ต๋ beta๋ฅผ ๊ณ์ฐํ์ธ์. ํด๋น ํ๋ผ์ฆ๋ง ์๋ ฅ์ ์ผ๋ง์ ๋๊น?
-
Safety factor: tokamak์ด $R = 3$ m, $a = 1$ m, $B_0 = 5$ T, $I_p = 5$ MA๋ฅผ ๊ฐ์ง๋๋ค. ํํํ ์ ๋ฅ ํ๋กํ์ผ์ ๊ฐ์ ํ์ฌ ๊ฐ์ฅ์๋ฆฌ safety factor $q_a$๋ฅผ ๊ณ์ฐํ์ธ์. ์ด tokamak์ disruption ์ํ์ด ์์ต๋๊น ($q_a < 2$)?
-
Sawtooth period: $a = 1$ m, $T_e = 3$ keV, $n_e = 5 \times 10^{19}$ m$^{-3}$, $B = 3$ T์ธ ํ๋ผ์ฆ๋ง์ sawtooth ์ฃผ๊ธฐ๋ฅผ ์ถ์ ํ์ธ์. ์ ๊ณต๋ Python ํจ์๋ฅผ ์ฌ์ฉํ์ธ์. $T_e$๊ฐ ๋ ๋ฐฐ๊ฐ ๋๋ฉด ์ฃผ๊ธฐ๋ ์ด๋ป๊ฒ ๋ณํฉ๋๊น?
-
Greenwald density: ITER ($I_p = 15$ MA, $a = 2$ m)์ ๊ฒฝ์ฐ, Greenwald density limit๋ $n_G = 1.19 \times 10^{20}$ m$^{-3}$์ ๋๋ค. ํ๊ท ๋ฐ๋๊ฐ $n_e = 1.0 \times 10^{20}$ m$^{-3}$์ธ ๊ฒฝ์ฐ, Greenwald ๋ถ์จ ($n_e / n_G$)์ ์ผ๋ง์ ๋๊น? ํ๋ผ์ฆ๋ง๊ฐ ๋ฐ๋ ํ๊ณ์ ๊ฐ๊น์ต๋๊น?
-
ELM heat flux: ELM์ด $\tau_{ELM} = 1$ ms ๋์ $A_{wet} = 1$ m$^2$์ wetted ๋ฉด์ ์ ๊ฑธ์ณ $W_{ELM} = 0.5$ MJ๋ฅผ ๋ฐฐ์ถํฉ๋๋ค. ์ต๋ ์ด ํ๋ญ์ค๋ฅผ ๊ณ์ฐํ์ธ์. ์ด๊ฒ์ ์ผ๋ฐ์ ์ธ ์ฌ๋ฃ ํ๊ณ 10 MW/m$^2$์ ๋น๊ตํ์ธ์. ์ํ๊ฐ ํ์ํฉ๋๊น?
-
Disruption forces: disruption ๋์ ํ๋ผ์ฆ๋ง ์ ๋ฅ๊ฐ $I_p = 5$ MA์์ $\tau_{CQ} = 100$ ms์ 0์ผ๋ก ๊ฐ์ ํฉ๋๋ค. Python ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฅ quench ์๋ $dI_p/dt$ ๋ฐ ์ ๋๋ loop ์ ์์ ์ถ์ ํ์ธ์ ($R = 3$ m, $a = 1$ m ๊ฐ์ ). ์์ง ํ์ ํฌ๊ธฐ๋ ์ผ๋ง์ ๋๊น?
-
NTM threshold: NTM์ด $\Delta'_{bs} = 0.001$ m์ธ bootstrap ์ ๋ฅ์ ์ํด ๊ตฌ๋๋๊ณ $\Delta'_{class} = -1$ m$^{-1}$์ธ classical tearing์ ์ํด ๊ฐ์ ๋ฉ๋๋ค. $w_{crit} \sim \sqrt{L_{qp}/|\Delta'_{class}|}$์ธ ์๊ณ ์ฌ ํญ์ ์ถ์ ํ์ธ์. ์ฌ๊ธฐ์ $L_{qp} = \Delta'_{bs} / r_s$์ด๊ณ $r_s = 0.5$ m์ ๋๋ค. NTM์ ์ ๋ฐํ๋ ๋ฐ ํ์ํ seed ์ฌ ํฌ๊ธฐ๋ ์ผ๋ง์ ๋๊น?
-
RFP field reversal: $\mu a = 4.0$์ธ RFP์ ๊ฒฝ์ฐ, toroidal field $B_z = 0$ (reversal surface)์ธ ๋ฐ๊ฒฝ์ ์ฐพ์ผ์ธ์. Bessel ํจ์ $J_0(x)$๋ฅผ ์ฌ์ฉํ๊ณ ์ฒซ ๋ฒ์งธ ์์ ์ ์ฐพ์ผ์ธ์. ๊ฒฐ๊ณผ๋ฅผ $r/a$๋ก ํํํ์ธ์.
-
Stellarator comparison: ํต์ตํฉ ๋ฐ์๋ก๋ฅผ ์ํ stellarators์ tokamaks ๋๋น ์ธ ๊ฐ์ง ์ฅ์ ๊ณผ ์ธ ๊ฐ์ง ๋จ์ ์ ๋์ดํ์ธ์. ์ด๋ค ์ํฉ์์ stellarator๊ฐ ์ ํธ๋ ์ ์์ต๋๊น?
-
Beta optimization: tokamak์ด $\beta_N = 2.5$ (3.0์ Troyon limit ์๋)์์ ์๋ํฉ๋๋ค. MHD ๋ถ์์ ์ฑ์ ์ ๋ฐํ์ง ์๊ณ ๋ฌ์ฑ ๊ฐ๋ฅํ beta๋ฅผ ์ฆ๊ฐ์ํค๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ์ํ์ธ์. ํํ shaping, ์ ๋ฅ ํ๋กํ์ผ ์ ์ด ๋ฐ kinetic ์์ ํ๋ฅผ ๊ณ ๋ คํ์ธ์.
์ด์ : Accretion Disk MHD | ๋ค์: Space Weather MHD