Плазма та магнітогідродинаміка
Плазма — четвертий стан речовини, що становить 99.9% видимої матерії у Всесвіті. Магнітогідродинаміка (МГД) описує плазму як провідну рідину в магнітному полі, поєднуючи рівняння Навʼє-Стокса з рівняннями Максвелла in one elegant framework. Саме МГД пояснює сонячний вітер, полярне сяяво та роботу термоядерних реакторів.
1. Що таке плазма: іонізований газ
Плазма виникає, коли газ нагрівається настільки, що електрони відриваються від атомів: виникає суміш вільних електронів та іонів. Ключові параметри:
Ступінь іонізації: α = n_e / (n_e + n_n) (від 0 до 1)
Дебаєвська довжина: λ_D = √(ε₀·k_B·T_e / (n_e·e²))
Плазмова частота: ω_pe = √(n_e·e² / (ε₀·m_e))
Умова плазми: L ≫ λ_D (розмір >> дебаєвська довжина)
Дебаєвська довжина — відстань, на якій електричні поля екрануються. За межами цього радіуса плазма квазінейтральна: n_e ≈ n_i. У сонячній короні λ_D ~ 10⁻² м, у лабораторній плазмі ~ 10⁻⁴ м.
Сонячна корона
T ~ 10⁶ K, n_e ~ 10¹⁴ м⁻³. Насичена магнітними структурами. Чому корона гарячіша поверхні? — відкрите питання.
Токамак
T ~ 10⁸ K (10 разів гарячіше Сонця), n ~ 10²⁰ м⁻³. Утримання — торієподібне магнітне поле 5–15 Тл.
Міжзоряна середа
T ~ 10⁴ K, n ~ 10⁶ м⁻³. Дуже розріджена, але провідна. Магнітне поле ~ 3 нТл пронизує всю Галактику.
Блискавка
T ~ 30 000 K, α ≈ 1 у каналі. Короткочасна атмосферна плазма із струмами > 10 кА.
2. Сила Лоренца та рух заряджених частинок
На заряд q у електричному та магнітному полі діє сила Лоренца:
F = q(E + v × B)
Рівняння руху: m·dv/dt = q(E + v × B)
Ларморівський оберт
У однорідному магнітному полі B = B_zẑ частинка рухається по кола (у площині xy) і прямолінійно вздовж z. Ціклотронна (ларморівська) частота та радіус:
ω_c = |q|B / m (ціклотронна частота)
r_L = mv⊥ / (|q|B) (ларморівський радіус)
Для електрона: r_Le = m_e·v⊥ / (e·B) ≈ 10⁻³ м при B = 1 Тл, v = 10⁶ м/с
E×B дрейф
При наявності обох полів частинка дрейфує перпендикулярно до E і B:
v_{E×B} = (E × B) / B²
Незалежно від знаку заряду та маси — колективний дрейф усієї плазми
3. Рівняння МГД
МГД описує плазму як ідеальну або резистивну провідну рідину. Одна рідина (single-fluid MHD) — спрощена модель де нема розрізнення електронів та іонів. Рівняння:
Нерозривність: ∂ρ/∂t + ∇·(ρv) = 0
Імпульс (з силою Лоренца): ρ(∂v/∂t + v·∇v) = −∇p + J×B + ρg
Закон Ома: E + v×B = η·J (η — резистивність)
Рівняння Фарадея: ∂B/∂t = −∇×E = ∇×(v×B) − ∇×(ηJ)
Ампера: J = ∇×B / μ₀ (у МГД ігноруємо ∂E/∂t)
∇·B = 0 (немає магнітних монополів)
Для ідеальної МГД η = 0: поле вморожене у рідину ("frozen-in flux theorem"). Магнітні силові лінії рухаються разом з плазмою — це фундаментальна властивість.
Рівняння тиску/енергії
∂p/∂t + v·∇p + γp·∇·v = 0 (адіабатичне умова)
γ = 5/3 — адіабатичний показник (одноатомний газ)
Магнітний тиск: p_B = B²/(2μ₀)
Повний тиск: p_tot = p + p_B
Параметр β = p/p_B = 2μ₀p/B² визначає режим: β ≪ 1 — магнітно домінований (корона, тонкий диск); β ~ 1 — MHD; β ≫ 1 — гідродинамічний.
4. Пінч-ефект та магнітне обмеження
Пінч (Z-pinch) — мабуть найпростіша МГД конфігурація. Через плазму тече струм J_z, що породжує азимутальне поле B_φ. Сила Амперa J × B спрямована до осі — плазма стискається. Рівновага:
dp/dr = −J_z · B_φ = −μ₀ J² r / 2 (для однорідного j)
⟹ p(r) = p₀ − μ₀ J² r² / 4
Bennett relation: p₀ = μ₀ I² / (8π²a²), I — повний струм, a — радіус
Нестабільності пінча
Kink (m=1)
Вигин струмового шнура. Зовнішня частина вигину стискується додатково — нестабільність. Критерій Крускала-Шафранова: q > 1.
Sausage (m=0)
Модуляція радіуса. Конфігурація звужується потім розширюється — нестабільна без стабілізуючого поля B_z.
Theta-pinch
Зовнішнє поле B_z компресуємо швидко — індукований струм дає J×B всередину. Стабільніший, але відкритий з торців.
Токамак
Тороїдальна камера: B_toroidal + B_poloidal. Поєднує переваги theta- та z-pinch, мінімізуючи дрейфи.
5. Нестабільність Рейлі-Тейлора у плазмі
Нестабільність Рейлі-Тейлора (RT) виникає коли важча рідина знаходиться над легшою в полі гравітації — або в МГД коли щільна плазма тримається над розрідженою з допомогою магнітного поля.
Дисперсійне співвідношення
ω² = k·g·(ρ₂ − ρ₁)/(ρ₂ + ρ₁) − k²·v_A² (для моди k ⊥ B)
v_A = B/√(μ₀ρ) — альфвенівська швидкість
Нестабільність (ω² < 0) при k < k_c = g(ρ₂−ρ₁) / (v_A²(ρ₁+ρ₂))
Магнітне поле стабілізує короткохвильові збурення, але довгохвильові (k < k_c) залишаються нестабільними. У лазерно-індукованому синтезі RT-нестабільність — головна перешкода рівномірного стиснення мішені.
Магнітне перез'єднання (reconnection)
Якщо дві антипаралельні конфігурації поля зближуються, тонкий шар де B ≈ 0 (current sheet) може розірватися — поле перебудовується ("перез'єднується"), виділяючи колосальну кінетичну та теплову енергію. Сонячні спалахи — саме це явище в масштабі ~10⁹ м.
6. Альфвенові хвилі
Альфвенова хвиля — МГД-аналог хвилі на натягнутому шнурі. Магнітна сила натягу B²/μ₀ виступає "пружиною", ρ — "масою" одиниці довжини. Швидкість хвилі:
v_A = B / √(μ₀ρ) (альфвенівська швидкість)
Для сонячного вітру: B ≈ 5 нТл, ρ ≈ 10⁻²⁰ кг/м³ → v_A ≈ 30 км/с
Для токамака: B = 5 Тл, ρ = 10⁻⁷ кг/м³ → v_A ≈ 10⁷ м/с
Типи МГД хвиль
| Тип | Швидкість | Поляризація | Стискаємість |
|---|---|---|---|
| Альфвенова | v_A | ⊥ B та k | Ні |
| Швидка магнітозвукова | √(c_s² + v_A²) | ∥ k | Так |
| Повільна магнітозвукова | c_s·v_A/√(c_s²+v_A²) | ∥ k | Так |
Альфвенові хвилі нагрівають сонячну корону, переносять енергію від конвективної зони до корони, беруть участь у прискоренні сонячного вітру.
7. Сонячний вітер та магнітосфера Землі
Паркер (1958) показав: гаряча сонячна корона не може перебувати в рівновазі з міжзоряним простором — вона повинна розширюватись. Розв'язок рівнянь МГД через критичну точку r_c = GM_⊙/(2c_s²):
v(r) — трансонічний потік від корони до ≫ Землі
Звукова точка переходу: r_c ≈ 4 AU·(10⁶ K / T_corona)
Швидкість у Землі: v_sw ≈ 300–800 км/с
Щільність: n ~ 5–10 см⁻³, B ~ 5 нТл, T ~ 10⁵ K
Взаємодія з магнітосферою
Сонячний вітер натикається на геомагнітне поле і утворює: bow shock на відстані ~14 R_⊕, де вітер гальмується; magnetopause — межу магнітосфери де тиск вітру = тиск поля; magnetotail — хвіст у нічному боці довжиною ~100 R_⊕.
Bow Shock
МГД удар: швидкість вітру (надальфвенівська) переходить у підальфвенівську. Plasma heating через нестаціонарні збурення.
Полярне сяяво
Прискорені частинки вздовж силових ліній B врізаються в іоносферу. N₂ → синьо-фіолет, O → зелений (557.7 нм) та червоний.
Геомагнітна буря
Потужний КМВ (корональний викид) тисне на магнітосферу, порушує роботу GPS, електромережі, радіозв'язок.
Пояси Ван-Алена
Заряджені частинки захоплені у дзеркальні пастки завдяки градієнтному дрейфу. Два пояси: E > 1 MeV.
8. Проста МГД симуляція: JS реалізація
Реалізуємо 2D ідеальну МГД на явній FD-схемі (Lax-Friedrichs). Стан системи: (ρ, v_x, v_y, B_x, B_y, p) у кожному вузлі сітки.
class MHD2D {
constructor(Nx, Ny, dx = 1, dy = 1) {
this.Nx = Nx; this.Ny = Ny;
this.dx = dx; this.dy = dy;
this.gamma = 5 / 3;
const N = Nx * Ny;
this.rho = new Float64Array(N).fill(1); // щільність
this.vx = new Float64Array(N);
this.vy = new Float64Array(N);
this.Bx = new Float64Array(N);
this.By = new Float64Array(N);
this.p = new Float64Array(N).fill(1); // тиск
}
alfvenSpeed(i, j) {
const k = i * this.Ny + j;
const B2 = this.Bx[k]**2 + this.By[k]**2;
return Math.sqrt(B2 / this.rho[k]); // μ₀ = 1 in code units
}
cflTimestep() {
let maxSpeed = 0;
for (let i = 0; i < this.Nx; i++) {
for (let j = 0; j < this.Ny; j++) {
const k = i * this.Ny + j;
const cs = Math.sqrt(this.gamma * this.p[k] / this.rho[k]);
const va = this.alfvenSpeed(i, j);
const v = Math.hypot(this.vx[k], this.vy[k]);
maxSpeed = Math.max(maxSpeed, v + cs + va);
}
}
return 0.4 * Math.min(this.dx, this.dy) / maxSpeed; // CFL = 0.4
}
initOrzagTang() {
// Класичний тест: Orszag-Tang vortex
const { Nx, Ny } = this;
for (let i = 0; i < Nx; i++) {
for (let j = 0; j < Ny; j++) {
const k = i * Ny + j;
const x = 2 * Math.PI * i / Nx;
const y = 2 * Math.PI * j / Ny;
this.rho[k] = 25 / (36 * Math.PI);
this.vx[k] = -Math.sin(y);
this.vy[k] = Math.sin(x);
this.Bx[k] = -Math.sin(y) / (4 * Math.PI);
this.By[k] = Math.sin(2 * x) / (4 * Math.PI);
this.p[k] = 5 / (12 * Math.PI);
}
}
}
}
Візуалізація: колірна карта щільності + стрілки B
function renderMHD(canvas, mhd) {
const ctx = canvas.getContext('2d');
const img = ctx.createImageData(mhd.Nx, mhd.Ny);
const maxRho = Math.max(...mhd.rho);
const minRho = Math.min(...mhd.rho);
for (let i = 0; i < mhd.Nx; i++) {
for (let j = 0; j < mhd.Ny; j++) {
const k = i * mhd.Ny + j;
const t = (mhd.rho[k] - minRho) / (maxRho - minRho);
const px = (j * mhd.Nx + i) * 4;
img.data[px] = lerp(10, 255, t); // R: синій→гарячий
img.data[px+1] = lerp(10, 80, t);
img.data[px+2] = lerp(180, 10, t);
img.data[px+3] = 255;
}
}
ctx.putImageData(img, 0, 0);
}