Сверху - туча, снизу - земля с мачтой (молниеотвод) и защищаемым объектом. От тучи растёт нисходящий лидер; от мачты и объекта, когда он приблизится, срываются встречные. Кто первым встретится с нисходящим - тот и принимает удар.
Слева - настройки мачты и объекта, справа - тучи и самой молнии. Панели можно свернуть стрелкой по краю, оставив только карту. Сверху - главные фильтры и кнопка запуска.
Все величины безразмерные (относительные единицы) - это демонстрация механизма, не сертификационный расчёт.
Все величины безразмерные: ε₀ = 1, шаг сетки h = 1. Ниже - ровно то, что считает код (model.py), включая зашитые константы. Это демонстрация механизма, не сертификационный расчёт.
Расчёт идёт в две стадии. Стадия 1 - рост лидеров (медленная, шаг Δt = 0.5): нисходящий лидер от тучи и встречные восходящие от мачты и объекта растут по случайному закону, пока два конца не сойдутся или нисходящий не дойдёт до земли. Стадия 2 - разряд (возвратный удар): геометрия замораживается, и по готовой сети каналов решается быстрая задача релаксации зарядов со своим адаптивным шагом Δτ. Времена стадий не сопоставимы по масштабу, поэтому на анимации стадия 2 занимает фиксированную долю шкалы (35 %), а её физическое время хранится отдельно.
Область - прямоугольная коробка \(N_x\times N_y\times N_z\) узлов. Поле находится из уравнения Пуассона для заряда на узлах канала плюс линейный фон облако-земля:
Здесь \(s_c=\pm1\) - знак тучи, \(E_0\) - фоновое поле облако-земля (ползунок), \(L_z=(N_z-1)h\) - высота коробки. На всех гранях коробки \(\varphi_\rho=0\) (условие Дирихле), поэтому плоскость \(z=0\) - заземлённая. Уравнение решается быстрым синус-преобразованием (DST-I) по всем трём осям:
Заряд узла распределяется по 8 ближайшим ячейкам трилинейно, поле и потенциал в произвольной точке берутся трилинейной интерполяцией.
| Константа | Значение | Роль |
|---|---|---|
| \(N_x=N_y\) | 26 | горизонтальный размер сетки |
| \(N_z\) | box_h (44 по умолч., не менее 16) | число узлов по высоте; \(L_z=N_z-1\) |
| \(h,\ \varepsilon_0\) | 1, 1 | шаг сетки и диэлектрическая постоянная (безразмерные) |
| \(E_0\) | 0.42 (ползунок 0.30-0.48) | фоновое поле; задаёт \(V_{\rm cloud}\approx\mp18\) при \(L_z=43\) |
| margin \(m_g\) | 2.5 | запретная полоса у стенок коробки: кандидаты ближе к стенке отбрасываются |
Каждый сегмент - резистор. Ток по ребру «родитель \(p\) → потомок \(c\)» считается с неявной поправкой на собственную ёмкость узлов, иначе явная схема неустойчива:
\(d\) - число дочерних связей узла, \(G\) - собственный потенциал единичного заряда в центре коробки (≈ 0.25, вычисляется один раз; почти не зависит от положения, кроме 2-3 ячеек у стенок). Корень нисходящего дерева (узел 0) питается от тучи через фиксированное сопротивление:
Проводимость каждого ребра релаксирует к равновесному значению, зависящему от протекающего тока: ток держит канал горячим, а при большом токе (возвратный удар) проводимость скачком растёт до \(\sigma_{rs}\):
| Константа | Значение | Роль |
|---|---|---|
| \(A\) | 1 | сечение канала |
| \(\sigma_{\rm hot}\) | 5 | проводимость свежего сегмента и связи с тучей |
| \(\sigma_c\) (cold) | 0.05 | проводимость остывшего канала без тока |
| \(\tau_\sigma\) | 30 | время остывания на стадии роста |
| \(I_{\rm hold}\) | 0.5 | ток, при котором сегмент наполовину «горячий» |
| \(\sigma_{rs},\ I_{rs}\) | 60, 6 | проводимость фронта возвратного удара и ток, при котором она включается |
| \(\Delta t\) | 0.5 | шаг стадии роста |
У каждого активного конца пробуется \(n_c\) кандидатов: первый - прямо по текущему направлению \(\mathbf d\), остальные - случайные внутри конуса с равномерным по \(\cos\theta\) распределением. Кандидат - точка на расстоянии \(\ell\) от конца:
Продольное поле на кандидате учитывает полярность лидера \(s=\pm1\) (отрицательный лидер растёт против поля), вес и вероятность выбора:
Скорость и накопленный «пробег» конца определяются продольным полем \(E_\parallel\) на прямом кандидате; новый узел появляется, когда пробег достигает длины сегмента:
Закон роста у положительных и отрицательных лидеров разный: положительный растёт при меньшем поле, быстрее (больше \(v_0\)) и прямее (меньше \(\sigma_\theta\)):
| Параметр | Положительный (+) | Отрицательный (−) | Смысл |
|---|---|---|---|
| \(E_*\) | 0.50 | 1.00 | порог роста (ползунок «порог пробоя») |
| \(m\) | 1 | 2 | резкость предпочтения сильного поля |
| \(\sigma_\theta\) | 0.45 рад | 0.90 рад | угловой разброс; у отрицательного шире, он «виляет» сильнее |
| \(v_0,\ \gamma\) | 0.9, 1 | 0.6, 1 | масштаб и показатель скорости |
| Константа | Значение | Роль |
|---|---|---|
| \(\ell\) (seg_len) | 1 | длина сегмента |
| \(n_c\) | 20 | число кандидатов на конец за шаг |
| \(\theta_{\max}\) | 70° | полуугол конуса поиска |
| старт лидера | 6 сегментов вниз от \(z=L_z-3.5\) | затравка нисходящего лидера у верха коробки |
| CAP | 6000 узлов | предел числа узлов (защита памяти) |
Для каждого конца считается вероятность «альтернативных» направлений - тех, что отклоняются от выбранного больше, чем на \(\theta_{\rm sep}\). Эта вероятность накапливается в счётчике \(B\); когда он превысит порог, конец раздваивается и \(B\) обнуляется:
| Константа | Значение | Роль |
|---|---|---|
| \(\theta_{\rm sep}\) | 35° | минимальный угол между ветвями |
| \(\tau_B\) | 3.0 (ползунок 0.8-10) | чем меньше, тем чаще ветвление |
| \(B_*\) | 1 | порог счётчика |
| max_tips | 160 | предел одновременно растущих концов |
Встречные восходящие лидеры «спят» на вершинах мачты и объекта (это заземлённые цепочки узлов с шагом \(\ell\)) и стартуют, когда нисходящий конец оказывается ближе \(r_{\rm trig}\). Удар регистрируется при выполнении любого из условий:
Концы, дошедшие до стенок коробки или потолка, останавливаются: маска запретной полосы не даёт им уйти наружу, и без остановки они бы ползли вдоль стенки.
| Константа | Значение | Роль |
|---|---|---|
| \(r_c\) (connect_r) | 1.6 | расстояние захвата двух концов |
| \(r_{\rm trig}\) | 13 | поражающее расстояние: на нём восходящий лидер «срывается» |
| полоса земли | \((m_g+1)h=3.5\) | ниже этой высоты нисходящий конец считается касанием земли |
| высота мачты/объекта | не выше \(L_z-(m_g+1.5)h\) | ограничение, чтобы вершина не упиралась в запретную полосу потолка |
После первого удара геометрия и заряды узлов \(\mathbf q\) фиксируются. Потенциалы узлов линейны по зарядам: матрица ёмкостей \(G_m\) строится один раз (по одному решению Пуассона на узел), \((G_m)_{ij}\) - потенциал в узле \(i\) от единичного заряда в узле \(j\):
\(\mathbf L_g\) - взвешенный лапласиан графа каналов, \(g_c\) - проводимости контактов (земля, облако), \(\mathbf s\) - источник от тучи. Шаг по времени - неявный Эйлер, безусловно устойчивый:
Проводимости рёбер обновляются по тому же закону, что в п. 2, но с коротким временем \(\tau'_\sigma\): отсюда сама собой возникает фронт возвратного удара - ток раскрывает проводимость соседнего участка, и фронт ползёт вверх по каналу. Ток в землю - суммарный приток по рёбрам в узлы-контакты: \(I_g=\sum_{k\in\text{земля}}\bigl|\sum_e I_{e\to k}\bigr|\) (узлы оснований лежат на \(z=0\), где \(V\equiv0\), поэтому \(g\cdot V\) там измерять нельзя).
Вторичные контакты. На каждом шаге замороженный нисходящий конец у земли присоединяется, если средняя напряжённость промежутка выше порога роста; два встречных конца в пределах \(r_c\) смыкаются, если выше порога поле между ними. Конец, потенциал которого успел упасть, уже не присоединится - так «второй» лидер отключается сам:
Адаптивный шаг. \(\Delta\tau\) уменьшается вдвое при резких изменениях (\(\max|\Delta\sigma|/\sigma\gt0.5\) или \(\max|\Delta V|/\max|V|\gt0.2\) или при появлении нового контакта) и растёт в 1.15 раза на спокойных участках (оба изменения меньше 0.15 и 0.05).
| Константа | Значение | Роль |
|---|---|---|
| \(\tau'_\sigma\) (dis_tau_sigma) | 0.5 | релаксация \(\sigma\) на стадии 2 (в 60 раз короче, чем на росте) |
| \(g_{\rm att}\) | \(\sigma_{rs}A=60\) | проводимость контакта канала с землёй |
| \(g_{\rm src}\) | \(0.05\,\sigma_{\rm hot}A=0.25\) | связь с тучей: конечный источник, ток после разряда падает до «продолжающегося» |
| \(\Delta\tau\) | 0.01 … 0.5 | начальный и максимальный адаптивный шаг |
| \(T\) (dis_T) | 40 | максимальная длительность стадии 2 |
| критерий остановки | \(I_g\lt0.03\,I_{\max}\) | ток упал до 3 % пика (после пика) |
| масштаб анимации | 35 % шкалы | доля шкалы времени, отведённая стадии 2 в плеере |
Мгновенный геометрический расчёт, независимый от стохастической модели. Для уровня защиты I-IV радиус сферы \(R=20,\,30,\,45,\,60\) м. Защищённый радиус на земле для мачты высотой \(h\):
Для объекта высотой \(h_b\) используется упрощение: радиус оценивается той же формулой от разности высот \(h-h_b\). Это приближение, а не нормативная формула, поэтому защищённость объекта по этой оценке нужно воспринимать как ориентир.