์•ˆ๋ณด๋ฉด ๋‹น์‹ ๋งŒ ์†ํ•ด ํ•ต์œตํ•ฉ ์—๋„ˆ์ง€ ๋ฐœ์ „ ํ•ผํผ ํ”„๋กœ๊ทธ๋žจUltimate Fusion Energy Development Helper – See or Regret!"

ํ•ต์œตํ•ฉ ์—๋„ˆ์ง€ ๋ฐœ์ „ ํ—ฌํผ | Fusion Energy Helper
D-T ๋ฐ˜์‘ ์—๋„ˆ์ง€ ๊ณ„์‚ฐ๊ธฐ
²H + ³H → ⁴He (3.5 MeV) + n (14.1 MeV)
ํ”Œ๋ผ์ฆˆ๋งˆ ์˜จ๋„ (keV) 10 keV
์—ฐ๋ฃŒ ๋ฐ€๋„ (×10²⁰ /m³) 1.0
์—๋„ˆ์ง€ ๊ตฌ์† ์‹œ๊ฐ„ ฯ„ (ms) 100 ms
๊ณ„์‚ฐ ๊ฒฐ๊ณผ (Lawson ๊ธฐ์ค€)
Q = 1.84
๋ฐ˜์‘๋ฅ : 2.3×10⁻²² m³/s · ์ค‘์„ฑ์ž ์ถœ๋ ฅ: 14.1 MeV
Lawson ๊ธฐ์ค€ nฯ„: ๋ฏธ๋‹ฌ
์—๋„ˆ์ง€ ๋ฐ˜์‘๋ฅ  ๊ณก์„  (ฯƒv)
ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’๋‹จ์œ„
์ž„๊ณ„ ์ ํ™” ์˜จ๋„5.5keV
์ตœ์  ๋ฐ˜์‘๋ฅ  ์˜จ๋„65keV
์ค‘์„ฑ์ž ์—๋„ˆ์ง€14.1MeV
์•ŒํŒŒ ์ž…์ž ์—๋„ˆ์ง€3.5MeV
Triple Product (nTฯ„)1.03×10²¹m⁻³·keV·s
Python ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ฝ”๋“œ (TRANSP ์ฐธ์กฐ ๊ตฌํ˜„)
""" ํ•ต์œตํ•ฉ D-T ๋ฐ˜์‘ ์—๋„ˆ์ง€ ์ถœ๋ ฅ ๊ณ„์‚ฐ - TRANSP ์ฝ”๋“œ ์ฐธ์กฐ ๊ตฌํ˜„ ์ฐธ์กฐ: ITER Physics Expert Group, Nucl. Fusion 39 (1999) ํ•œ๊ตญ ๊ตญ๊ฐ€ํ•ต์œตํ•ฉ์—ฐ๊ตฌ์†Œ (KFE) KSTAR ํŒŒ๋ผ๋ฏธํ„ฐ ๊ธฐ๋ฐ˜ """ import numpy as np from scipy import integrate # ๋ฌผ๋ฆฌ ์ƒ์ˆ˜ E_ALPHA = 3.52e6 # eV (์•ŒํŒŒ ์ž…์ž ์—๋„ˆ์ง€) E_NEUTRON = 14.06e6 # eV (์ค‘์„ฑ์ž ์—๋„ˆ์ง€) E_TOTAL = E_ALPHA + E_NEUTRON # 17.58 MeV ์ด ๋ฐฉ์ถœ ์—๋„ˆ์ง€ def dt_reactivity(T_keV): """D-T ๋ฐ˜์‘๋ฅ  <ฯƒv> [m³/s] - Bosch-Hale ํŒŒ๋ผ๋ฏธํ„ฐํ™”""" T = T_keV # Bosch-Hale ๊ณ„์ˆ˜ (1992) C = [6.6610e-12, 643.41e-3, 15.136e-3, 75.189e-3, 4.6064e-3, 13.500e-3, -0.10675e-3, 0.01366e-3] theta = T / (1 - T * (0.01e-3)/(C[1] + T*(C[2]+T*(C[3]+T*C[4])))) xi = (C[5] / theta) ** (1/3) sigma_v = C[0] * theta * np.sqrt(xi/(T**3)) * np.exp(-3*xi) * 1e-6 return max(sigma_v, 1e-30) class FusionReactor: def __init__(self, n=1e20, T_keV=10, tau_E=0.1): self.n = n # ์ž…์ž ๋ฐ€๋„ [m⁻³] self.T = T_keV # ์˜จ๋„ [keV] self.tau_E = tau_E # ์—๋„ˆ์ง€ ๊ตฌ์† ์‹œ๊ฐ„ [s] self.eV = 1.602e-19 # J/eV def fusion_power_density(self): """๋‹จ์œ„ ๋ถ€ํ”ผ๋‹น ํ•ต์œตํ•ฉ ์ถœ๋ ฅ [W/m³]""" sigma_v = dt_reactivity(self.T) P = (0.25 * self.n**2 * sigma_v * E_TOTAL * self.eV) return P def q_factor(self, P_heat): """Q = P_fusion / P_heat (์—๋„ˆ์ง€ ์ด๋“ ๊ณ„์ˆ˜)""" P_fusion = self.fusion_power_density() * 840 # ITER ํ”Œ๋ผ์ฆˆ๋งˆ ๋ถ€ํ”ผ 840m³ return P_fusion / P_heat def lawson_criterion(self): """Lawson ๊ธฐ์ค€: nฯ„ [m⁻³·s]""" return self.n * self.tau_E # === ๋ฉ”์ธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ === reactor = FusionReactor(n=1e20, T_keV=10, tau_E=0.1) P_density = reactor.fusion_power_density() Q = reactor.q_factor(P_heat=50e6) nTau = reactor.lawson_criterion() triple = reactor.n * reactor.T * reactor.tau_E print(f"ํ•ต์œตํ•ฉ ์ถœ๋ ฅ ๋ฐ€๋„: {P_density:.2e} W/m³") print(f"์—๋„ˆ์ง€ ์ด๋“ Q: {Q:.2f}") print(f"Lawson nฯ„: {nTau:.2e} m⁻³·s") print(f"Triple Product nTฯ„: {triple:.2e} m⁻³·keV·s")
ํ† ์นด๋ง‰ ํ”Œ๋ผ์ฆˆ๋งˆ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ
H-mode ๊ตฌ์† ํ™œ์„ฑ
ํ† ๋กœ์ด๋‹ฌ ์ž๊ธฐ์žฅ BT 5.3 T
ํ”Œ๋ผ์ฆˆ๋งˆ ์ „๋ฅ˜ Ip 15 MA
๊ฐ€์—ด ์ถœ๋ ฅ Paux 50 MW
์•ˆ์ „ ์ธ์ž q
3.2
ฮฒ (์••๋ ฅ๋น„)
2.1%
H ์ธ์ž
1.0
ฯ„_E (ms)
385
๊ณ ์ฒด์•ก์ฒด๊ธฐ์ฒดํ”Œ๋ผ์ฆˆ๋งˆํ•ต์œตํ•ฉ์ ํ™”
ํ˜„์žฌ: ํ•ต์œตํ•ฉ ํ”Œ๋ผ์ฆˆ๋งˆ ์˜์—ญ (150 MK)
ํ† ์นด๋ง‰ ๋‹จ๋ฉด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ
DIVERTOR NBI PF COIL PF COIL TF COIL TF COIL PLASMA 150 MK ๋ƒ‰๊ฐ ์˜จ๋„ ๋ถ„ํฌ ๊ณ ์˜จ R = 6.2m | a = 2.0m ฮบ = 1.85 | ฮด = 0.33
โ„น ITER ํ‘œ์ค€ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ธฐ๋ฐ˜ D์žํ˜• ํ† ์นด๋ง‰ ๋‹จ๋ฉด. ์Šฌ๋ผ์ด๋”๋กœ ์ž๊ธฐ์žฅ·์ „๋ฅ˜ ์กฐ์ ˆ ์‹œ ํ”Œ๋ผ์ฆˆ๋งˆ ํฌ๊ธฐ๊ฐ€ ๋ฐ˜์‘ํ•ฉ๋‹ˆ๋‹ค. NBI: ์ค‘์„ฑ ๋น” ์ฃผ์ž… ๊ฐ€์—ด์žฅ์น˜.
NUBEAM ๊ณ ์† ์ด์˜จ Python ํฌํŒ… ์ฝ”๋“œ
""" NUBEAM ๋ชจ๋“ˆ Python ๋ฒ„์ „ - ๊ณ ์† ์ด์˜จ ์ž…์ž & ํ•ต์œตํ•ฉ ์ค‘์„ฑ์ž ๋ฐฉ์ถœ ์˜ˆ์ธก ์ฐธ์กฐ: Pankin et al., CPC 159 (2004) | TRANSP/NUBEAM ๋ชจ๋“ˆ KSTAR NBI ํŒŒ๋ผ๋ฏธํ„ฐ (์—๋„ˆ์ง€: 120 keV, ์ „๋ฅ˜: 6 MW × 4 ๋น”) """ import numpy as np from scipy.stats import maxwell class NubeamModule: """์ค‘์„ฑ ๋น” ์ฃผ์ž… (NBI) ๊ณ ์† ์ด์˜จ ์Šฌ๋กœ์ž‰๋‹ค์šด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ""" def __init__(self, E_beam_keV=120, P_nbi_MW=6, n_e=7e19, T_e_keV=8): self.E_b = E_beam_keV # ๋น” ์—๋„ˆ์ง€ [keV] self.P_nbi = P_nbi_MW * 1e6 # ๋น” ์ถœ๋ ฅ [W] self.n_e = n_e # ์ „์ž ๋ฐ€๋„ [m⁻³] self.T_e = T_e_keV # ์ „์ž ์˜จ๋„ [keV] self.lnLambda = 18.0 # ์ฟจ๋กฑ ๋กœ๊ทธ self.eV = 1.602e-19 def slowing_down_time(self): """๊ณ ์† ์ด์˜จ ์Šฌ๋กœ์ž‰๋‹ค์šด ์‹œ๊ฐ„ ฯ„_s [s]""" m_D = 3.34e-27 # ์ค‘์ˆ˜์†Œ ์งˆ๋Ÿ‰ [kg] m_e = 9.11e-31 E_keV_to_J = self.E_b * 1e3 * self.eV v_b = np.sqrt(2 * E_keV_to_J / m_D) tau_s = (3 * (np.pi)1.5 * m_D * self.T_e**1.5) / \ (2 * np.sqrt(2) * self.n_e * self.lnLambda * 2.8e-30) return tau_s def neutron_emission_rate(self, n_i=5e19, sigma_v=2.3e-22): """NBI ์œ ๋„ ์ค‘์„ฑ์ž ๋ฐฉ์ถœ๋ฅ  [์ค‘์„ฑ์ž/s]""" n_fast = self.P_nbi / (self.E_b * 1e3 * self.eV) * self.slowing_down_time() R_neutron = n_fast * n_i * sigma_v # ๋น”-ํ‘œ์  ๋ฐ˜์‘ return R_neutron def fast_ion_profile(self, r_grid, a=2.0): """๊ณ ์† ์ด์˜จ ๋ฐ€๋„ ๋ฐ˜๊ฒฝ ๋ถ„ํฌ (๊ฐ€์šฐ์‹œ์•ˆ ํ”ผํ‚น)""" r_norm = r_grid / a n_fast_center = self.neutron_emission_rate() / (np.pi * a**2) profile = n_fast_center * np.exp(-2.5 * r_norm**2) return profile # === KSTAR NBI ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (4 ๋น” × 6 MW = 24 MW) === nbi = NubeamModule(E_beam_keV=120, P_nbi_MW=6, n_e=7e19, T_e_keV=8) tau = nbi.slowing_down_time() R_n = nbi.neutron_emission_rate() * 4 # 4๊ฐœ ๋น” r = np.linspace(0, 2.0, 100) profile = nbi.fast_ion_profile(r) print(f"์Šฌ๋กœ์ž‰๋‹ค์šด ์‹œ๊ฐ„: {tau*1000:.1f} ms") print(f"์ด ์ค‘์„ฑ์ž ๋ฐฉ์ถœ๋ฅ : {R_n:.2e} n/s") print(f"์ค‘์‹ฌ ๊ณ ์† ์ด์˜จ ๋ฐ€๋„: {profile[0]:.2e} m⁻³")
์ค‘์„ฑ์ž ์ˆ˜์†ก ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ
Geant4 & OpenMC ๊ธฐ๋ฐ˜ Monte Carlo ์ค‘์„ฑ์ž ์ˆ˜์†ก Python ์ธํ„ฐํŽ˜์ด์Šค. ITER ๋ธ”๋žญํ‚ท ์„ค๊ณ„ ์ตœ์ ํ™”์— ํ™œ์šฉ.
ํ•ต์œตํ•ฉ ์ถœ๋ ฅ Pfusion 500 MW
๋ธ”๋žญํ‚ท ๋‘๊ป˜ 0.8 m
Li-6 ๋†์ถ•๋„ (%) 60%
์ค‘์„ฑ์ž ํ”Œ๋Ÿญ์Šค
4.1×10¹⁴
/cm²·s
์‚ผ์ค‘์ˆ˜์†Œ ์ฆ์‹๋น„
1.15
TBR (>1.0 ํ•„์š”)
์—๋„ˆ์ง€ ์ฆํญ M
1.28
๋ฐฉ์‚ฌ์„  ์ฐจํ์œจ
99.8%
์žฌ๋ฃŒ๋ณ„ ์ค‘์„ฑ์ž ์ฐจํ ์„ฑ๋Šฅ
""" ITER ๋ธ”๋žญํ‚ท ์ค‘์„ฑ์ž ์ˆ˜์†ก ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ฐธ์กฐ: Geant4 / OpenMC Python API HCPB (ํ—ฌ๋ฅจ ๋ƒ‰๊ฐ ํŽ˜๋ธ” ๋ฒ ๋“œ) ๋ธ”๋žญํ‚ท ๋ชจ๋ธ """ import openmc import numpy as np # ์žฌ๋ฃŒ ์ •์˜ def create_hcpb_blanket(li6_enrich=0.60): li4sio4 = openmc.Material(name='Li4SiO4_pebbles') li4sio4.add_element('Li', 4, enrichment=li6_enrich*100, enrichment_target='Li6', enrichment_type='ao') li4sio4.add_element('Si', 1) li4sio4.add_element('O', 4) li4sio4.set_density('g/cm3', 2.32) eurofer = openmc.Material(name='EUROFER_steel') eurofer.add_element('Fe', 88.8, 'wo') eurofer.add_element('Cr', 9.0, 'wo') eurofer.add_element('W', 1.1, 'wo') eurofer.set_density('g/cm3', 7.87) return [li4sio4, eurofer] # ๊ธฐํ•˜ํ•™ ์„ค์ • (์‹ค๋ฆฐ๋” ๋ชจ๋ธ) plasma_surf = openmc.Sphere(r=620) # ํ”Œ๋ผ์ฆˆ๋งˆ ๋ฐ˜๊ฒฝ 620 cm blanket_surf = openmc.Sphere(r=700) # ๋ธ”๋žญํ‚ท ์™ธ๋ถ€ 780 cm shield_surf = openmc.Sphere(r=780) outer_surf = openmc.Sphere(r=900, boundary_type='vacuum') # ์…€ ์ •์˜ plasma_cell = openmc.Cell(region=-plasma_surf, name='plasma') blanket_cell = openmc.Cell(region=+plasma_surf & -blanket_surf, name='blanket') shield_cell = openmc.Cell(region=+blanket_surf & -shield_surf, name='shield') # 14.1 MeV ์ค‘์„ฑ์ž ์†Œ์Šค source = openmc.Source() source.energy = openmc.stats.Discrete([14.1e6], [1.0]) source.space = openmc.stats.Point((0,0,0)) # ํƒˆ๋ฆฌ (์‚ผ์ค‘์ˆ˜์†Œ ์ฆ์‹๋น„) tbr_tally = openmc.Tally(name='TBR') tbr_tally.filters = [openmc.CellFilter(blanket_cell)] tbr_tally.scores = ['(n,Xt)'] # ์‚ผ์ค‘์ˆ˜์†Œ ๋ฐ˜์‘ settings = openmc.Settings() settings.particles = 100000 settings.batches = 50 settings.run_mode = 'fixed source'
ํ”Œ๋ผ์ฆˆ๋งˆ MHD ๋ถˆ์•ˆ์ •์„ฑ ์˜ˆ์ธก
์‹œ๊ฐ„ ์ง„ํ™” & ๋ฐฉ์ „ ๋ถ„์„
""" ํ•ต์œตํ•ฉ ํ”Œ๋ผ์ฆˆ๋งˆ MHD ๋ถˆ์•ˆ์ •์„ฑ ๋ถ„์„ ์ฐธ์กฐ: KFE (ํ•œ๊ตญ ๊ตญ๊ฐ€ํ•ต์œตํ•ฉ์—ฐ๊ตฌ์†Œ) KSTAR ์ฝ”๋“œ๋ฒ ์ด์Šค """ import numpy as np from scipy.linalg import eig class MHDStabilityAnalyzer: def kink_stability(self, q0, q_edge, m=1): """Kink ๋ถˆ์•ˆ์ •์„ฑ: q < 1์ด๋ฉด ์œ„ํ—˜""" return {'safe': q0 > m, 'q_min': q0} def ballooning_stability(self, beta, alpha_MHD): """Ballooning: ฮฑ_MHD < ฮฑ_crit""" alpha_crit = 0.5 # ์ด์ƒํ™”๋œ ์ž„๊ณ„๊ฐ’ return {'safe': alpha_MHD < alpha_crit} def neoclassical_tearing(self, q_surface, beta_p): """NTM: ๊ณต๋ช…๋ฉด q=2/1, 3/2 ์œ„ํ—˜""" q_res = [2/1, 3/2, 4/3] risk = any(abs(q_surface - q) < 0.05 for q in q_res) return {'ntm_risk': risk, 'beta_p': beta_p} analyzer = MHDStabilityAnalyzer() result = analyzer.kink_stability(q0=1.1, q_edge=5.0) print(f"Kink ์•ˆ์ „: {result['safe']} (q_min={result['q_min']:.2f})")
๊ธ€๋กœ๋ฒŒ ํ•ต์œตํ•ฉ ๊ฐœ๋ฐœ ๋กœ๋“œ๋งต
1990s
TFTR·JET ์„ธ๊ณ„ ๊ธฐ๋ก ๋‹ฌ์„ฑ
Princeton TFTR 10.7 MW, JET 16 MW ํ•ต์œตํ•ฉ ์ถœ๋ ฅ. D-T ์‹คํ—˜ ์‹œ๋Œ€ ๊ฐœ๋ง‰. Q≈0.67 ๋‹ฌ์„ฑ.
์™„๋ฃŒ
2010
KSTAR H-mode ์ตœ์žฅ ๊ธฐ๋ก
ํ•œ๊ตญ KSTAR, H-mode 102์ดˆ ์„ธ๊ณ„ ์ตœ์žฅ ๊ธฐ๋ก ๋‹ฌ์„ฑ(2024). ์ด์˜จ ์˜จ๋„ 1์–ต๋„ ์ดˆ๊ณผ.
์™„๋ฃŒ
2022
NIF ์ ํ™” ์„ฑ๊ณต (Q>1)
๋ฏธ๊ตญ NIF ๊ด€์„ฑ๊ตฌ์† ํ•ต์œตํ•ฉ Q=1.5 ๋‹ฌ์„ฑ. ๋ ˆ์ด์ € ์ž…๋ ฅ๋ณด๋‹ค ๋งŽ์€ ์—๋„ˆ์ง€ ๋ฐฉ์ถœ ์„ธ๊ณ„ ์ตœ์ดˆ.
๋‹ฌ์„ฑ
2025~
ITER ์ฒซ ํ”Œ๋ผ์ฆˆ๋งˆ ์šด์ „
35๊ฐœ๊ตญ ๊ณต๋™ ๊ฑด์„ค. Q=10 ๋ชฉํ‘œ, 500 MW ํ•ต์œตํ•ฉ ์ถœ๋ ฅ. ์ˆ˜์†Œ·์ค‘์ˆ˜์†Œ ๋‹จ๊ณ„ ์‹œ์ž‘.
์ง„ํ–‰์ค‘
2027
SPARC (Commonwealth Fusion)
HTS ๊ณ ์˜จ ์ดˆ์ „๋„ ์ž์„ ํ™œ์šฉ ์†Œํ˜• ํ† ์นด๋ง‰. Q>2 ๋ชฉํ‘œ. ๋ฏผ๊ฐ„ ํ•ต์œตํ•ฉ ํ˜์‹  ์„ ๋„.
์˜ˆ์ •
2030s
DEMO·K-DEMO ์„ค๊ณ„ ์™„๋ฃŒ
ITER ์„ฑ๊ณผ ๊ธฐ๋ฐ˜ ์‹ค์ฆ๋กœ. ํ•œ๊ตญ K-DEMO 2035๋…„ ์ฐฉ๊ณต ๋ชฉํ‘œ. ์ „๊ธฐ ์ƒ์‚ฐ ์‹œ์ž‘.
๊ณ„ํš
2040s
์ƒ์—…์šฉ ํ•ต์œตํ•ฉ ๋ฐœ์ „์†Œ (ARC)
CommonFusion ARC, TAE Technologies ๋“ฑ ๋ฏผ๊ฐ„๋ฒค์ฒ˜ ์ƒ์—…ํ™”. 1 GW๊ธ‰ ํ•ต์œตํ•ฉ ๋ฐœ์ „์†Œ ๊ฐ€๋™.
๋ฏธ๋ž˜
Q-factor ๋ฐœ์ „ ์ถ”์ด
์žฅ์น˜๊ตญ๊ฐ€๋ฐฉ์‹Q ๋ชฉํ‘œ
ITER๊ตญ์ œ๊ณต๋™ํ† ์นด๋ง‰10
KSTAR๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์ดˆ์ „๋„ ํ† ์นด๋ง‰์—ฐ๊ตฌ์šฉ
SPARC๐Ÿ‡บ๐Ÿ‡ธ ๋ฏธ๊ตญHTS ํ† ์นด๋ง‰>2
W7-X๐Ÿ‡ฉ๐Ÿ‡ช ๋…์ผ์Šคํ…”๋ผ๋ ˆ์ดํ„ฐ์—ฐ๊ตฌ์šฉ
NIF๐Ÿ‡บ๐Ÿ‡ธ ๋ฏธ๊ตญ๊ด€์„ฑ๊ตฌ์†>1✓
K-DEMO๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญํ† ์นด๋ง‰ ์‹ค์ฆ๋กœ>5
์˜คํ”ˆ์†Œ์Šค ํ†ตํ•ฉ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ฝ”๋“œ (ITER Kepler ํ”Œ๋žซํผ ๊ธฐ๋ฐ˜)
""" ๋ฏผ๊ฐ„ ํ•ต์œตํ•ฉ ๋ฒค์ฒ˜·ITER ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋ณ‘๋ ฌ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ฐธ์กฐ: IMAS (ITER Integrated Modelling & Analysis Suite) Kepler ์›Œํฌํ”Œ๋กœ์šฐ ํ”Œ๋žซํผ | OMAS Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ """ import numpy as np from concurrent.futures import ProcessPoolExecutor import omas # pip install omas (ITER ๋ฐ์ดํ„ฐ ํ‘œ์ค€) class IntegratedFusionSimulator: """ ITER Kepler ํ”Œ๋žซํผ ๋ณ‘๋ ฌ ํ•ต์œตํ•ฉ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ชจ๋“ˆ: MHDํ‰ํ˜• → ์ˆ˜์†ก → NBI → ์ค‘์„ฑ์ž์ˆ˜์†ก → ๊ฒฝ์ œ์„ฑ ๋ถ„์„ """ def __init__(self, device='ITER', n_workers=8): self.device = device self.n_workers = n_workers self.params = self._load_device_params(device) def _load_device_params(self, device): db = { 'ITER': {'R':6.2, 'a':2.0, 'Bt':5.3, 'Ip':15, 'Pfus_target':500}, 'KSTAR':{'R':1.8, 'a':0.5, 'Bt':3.5, 'Ip':2, 'Pfus_target':0}, 'SPARC':{'R':1.85,'a':0.57,'Bt':12.2,'Ip':8.7,'Pfus_target':140}, } return db.get(device, db['ITER']) def run_workflow(self, T_keV_range=(5,50)): """๋ณ‘๋ ฌ ํŒŒ๋ผ๋ฏธํ„ฐ ์Šค์บ”: ์˜จ๋„ ๋ฒ”์œ„๋ณ„ Q-factor ๊ณ„์‚ฐ""" temps = np.linspace(*T_keV_range, 50) with ProcessPoolExecutor(max_workers=self.n_workers) as ex: results = list(ex.map(self._single_run, temps)) return np.array(results) def _single_run(self, T_keV): sigma_v = 3.7e-18 * np.exp(-4.0/T_keV**0.5) / T_keV**0.5 P_fus = 0.25 * (1e20)**2 * sigma_v * 17.6e6 * 1.6e-19 * 840 Q = P_fus / (50e6) return Q # === ๋ณ‘๋ ฌ ์‹คํ–‰ === sim = IntegratedFusionSimulator(device='ITER', n_workers=8) Q_array = sim.run_workflow(T_keV_range=(5, 80)) print(f"์ตœ๋Œ€ Q = {Q_array.max():.2f} at T = {5+Q_array.argmax()*75/49:.0f} keV")
ํ•œ๊ตญ·๊ตญ์ œ ์—ฐ๊ตฌ๊ธฐ๊ด€
๐Ÿ‡ฐ๐Ÿ‡ท
ํ•œ๊ตญ ๊ตญ๊ฐ€ํ•ต์œตํ•ฉ์—ฐ๊ตฌ์†Œ (KFE)
KSTAR ์šด์˜๊ธฐ๊ด€. H-mode ์ตœ์žฅ ๊ธฐ๋ก ๋ณด์œ . K-DEMO ์„ค๊ณ„ ์ฃผ๋„. ๊ตญ์‚ฐ ํ•ต์œตํ•ฉ ๋ถˆ์•ˆ์ •์„ฑ ์ฝ”๋“œ ๊ฐœ๋ฐœ.
kfe.re.kr
๐ŸŒ
ITER Organization
35๊ฐœ๊ตญ ๊ณต๋™ ๊ฑด์„ค ์ค‘. IMAS ํ†ตํ•ฉ ๋ชจ๋ธ๋ง ํ”Œ๋žซํผ. ๊ณต๊ฐœ ๊ธฐ์ˆ  ๋ณด๊ณ ์„œ ๋ฐ ๋ฐ์ดํ„ฐ ์ œ๊ณต.
iter.org
NIF (๋ฏธ๊ตญ ๋กœ๋ Œ์Šค๋ฆฌ๋ฒ„๋ชจ์–ด)
๊ด€์„ฑ๊ตฌ์† ํ•ต์œตํ•ฉ Q>1 ๋‹ฌ์„ฑ. ๋ ˆ์ด์ € ํ•ต์œตํ•ฉ ICF ๊ธ€๋กœ๋ฒŒ ์„ ๋„. ์˜คํ”ˆ ๋ฐ์ดํ„ฐ ์ œ๊ณต.
llnl.gov
๐Ÿš€
Commonwealth Fusion (CFS)
HTS REBCO 20T ์ดˆ์ „๋„ ์ž์„. SPARC 2027 ๋ชฉํ‘œ. MIT ์Šคํ•€์˜คํ”„. ๋ฏผ๊ฐ„ ํ•ต์œตํ•ฉ ํ˜์‹ .
cfs.energy · ๋ฏผ๊ฐ„
๐Ÿ‡ฉ๐Ÿ‡ช
IPP (๋…์ผ ๋ง‰์Šคํ”Œ๋ž‘ํฌ)
Wendelstein 7-X ์Šคํ…”๋ผ๋ ˆ์ดํ„ฐ. TRANSP ์ˆ˜์†ก ์ฝ”๋“œ ๊ณต๋™ ๊ฐœ๋ฐœ. ํ•ต์œตํ•ฉ ์ˆ˜์†ก ์ด๋ก  ์„ ๋„.
ipp.mpg.de
ํ•ต์‹ฌ ๋ฌผ๋ฆฌ ๊ณต์‹ & ์ˆ˜์น˜ ๊ธฐ์ค€
D + T → 4He (3.52 MeV) + n (14.06 MeV)
์ด ๋ฐฉ์ถœ ์—๋„ˆ์ง€ = 17.58 MeV/๋ฐ˜์‘
Q = Pfus / Pheat ─ ์—๋„ˆ์ง€ ์ด๋“ ๊ณ„์ˆ˜
Q=1: ์†์ต๋ถ„๊ธฐ | Q=10: ITER ๋ชฉํ‘œ | Q∞: ์ด์ƒ ์ ํ™”
nTฯ„E ≥ 5×10²¹ m⁻³·keV·s ─ Lawson ๊ธฐ์ค€
n: ๋ฐ€๋„, T: ์˜จ๋„, ฯ„_E: ์—๋„ˆ์ง€ ๊ตฌ์† ์‹œ๊ฐ„
ฯ„E = H · ฯ„E,ITER89P ─ H-mode ๊ตฌ์†
H์ธ์ž: L→H ์ „์ด ์‹œ ~2๋ฐฐ ๊ตฌ์† ํ–ฅ์ƒ
PLH ≈ 2.84 M-1 ne0.58 B0.82 S0.81 [MW]
L→H ์ „์ด ์ž„๊ณ„ ๊ฐ€์—ด ์ถœ๋ ฅ (Martin ์Šค์ผ€์ผ๋ง)
ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’๋‹จ์œ„
๋Œ€๋ฐ˜๊ฒฝ R6.2m
์†Œ๋ฐ˜๊ฒฝ a2.0m
ํ† ๋กœ์ด๋‹ฌ ์ž๊ธฐ์žฅ5.3T
ํ”Œ๋ผ์ฆˆ๋งˆ ์ „๋ฅ˜15MA
๊ฐ€์—ด ์ถœ๋ ฅ (๋ณด์กฐ)73MW
ํ•ต์œตํ•ฉ ์ถœ๋ ฅ ๋ชฉํ‘œ500MW
Q ๋ชฉํ‘œ10
ํ”Œ๋ผ์ฆˆ๋งˆ ๋ถ€ํ”ผ840
์ค‘์„ฑ์ž ๋ฒฝ ํ•˜์ค‘0.57MW/m²
ํ•ต์œตํ•ฉ ์—๋„ˆ์ง€ ๋ฐœ์ „ ํ—ฌํผ ํ”„๋กœ๊ทธ๋žจ
์ฐธ์กฐ: ITER Organization · KFE ํ•œ๊ตญ๊ตญ๊ฐ€ํ•ต์œตํ•ฉ์—ฐ๊ตฌ์†Œ · Princeton PPPL · IPP Greifswald
์ฝ”๋“œ ๊ธฐ๋ฐ˜: TRANSP · NUBEAM · OpenMC · FreeGS · Geant4 · OMAS/IMAS
iter.org · kfe.re.kr · openmc GitHub
๊ต์œก·์—ฐ๊ตฌ ๋ชฉ์  ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ. ์‹ค์ œ ๋ฐ˜์‘๋กœ ์„ค๊ณ„ ์‹œ ๊ณต์‹ ์ฝ”๋“œ ๋ฐ ์ „๋ฌธ๊ฐ€ ๊ฒ€์ฆ ํ•„์ˆ˜.

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

๋ชจ๋ฅด๋ฉด ๋‹น์‹ ๋งŒ ์†ํ•ด! "์•ˆ ๊ฐš์•„๋„ ๋ฉ๋‹ˆ๋‹ค" 2026๋…„ ์—ญ๋Œ€๊ธ‰ ์ •๋ถ€์ง€์›๊ธˆ ๋ชจ๋ฅด๋ฉด ๋‚˜๋งŒ ์†ํ•ด ๋ณด๋Š” 1์–ต ์›์˜ ๊ธฐํšŒ!

์›๊ธˆ์˜ 5%๋งŒ ๊ฐš์•„๋„ ๋‚˜๋จธ์ง€ ์ฑ„๋ฌด ๋ฉด์ œ! ์ฒญ์‚ฐํ˜• ์ฑ„๋ฌด์กฐ์ • ์™„๋ฒฝ ๊ฐ€์ด๋“œ ์–ด๋–ค ๋ถ„๋“ค์ด ๋ฐ›์„์ˆ˜์žˆ๋‚˜?

๋Œ€ํ•œ๋ฏผ๊ตญ ๋†์–ด๋ฏผ ์ˆ˜๋‹น ์‹ ์ฒญ ์ ˆ์ฐจ ๋ฐ ์ง€๊ธ‰ ๋ฐฉ์‹ (์ง๋ถˆ๊ธˆ)์™„๋ฒฝ ์ •๋ฆฌ