Прокуренная каморка на третьем этаже НИИ Радиофизики пропахла канифолью, дешевым растворимым кофе и застарелым отчаянием. Мерцающий свет диодов на самопальном вычислительном кластере бил по воспаленным глазам. Александр до хруста втер ладони в виски. На мониторе издевательски висел пустой файл текстового редактора. Тема статьи для завтрашнего отчета по гранту до сих пор не была сформулирована. А без гранта не будет квоты. Без квоты не будет экспериментальных препаратов для матери. Времени — до восьми утра.
Он хлебнул остывшую, подернутую бензиновой пленкой бурду из кружки. В груди что-то противно екнуло. «Соберись, тряпка, — пробормотал он, возвращаясь к консоли. — Просто досчитай эту чертову модель».
На экране ползли бесконечные строки логов. Прогон модели рассеяния электромагнитных волн на многослойных метаматериалах подходил к концу. Интегральные уравнения Максвелла, переведенные в матрицы методом моментов, должны были выдать классическую картину дифракции. Александр ждал привычный «лепесток» обратного рассеяния, пик эффективной площади рассеяния (ЭПР) там, где электромагнитная волна встречается с проводящим контуром.
Вдруг компилятор выплюнул график. Александр моргнул. Увеличил масштаб.
В точке ожидаемого максимума, на частоте 12 Гигагерц, график проваливался в ущелье. В ноль. Идеальный, математически стерильный ноль.
— Что за бред? — вырвалось у него.
Он ударил по клавиатуре, вытягивая сырые данные. Значения амплитуды рассеянного поля обращались в нуль. Никакого отражения. Никакого преломления. Волна словно огибала объект, не замечая его присутствия, оставляя за собой невозмущенный фазовый фронт.
Паника липкой волной прокатилась по спине, заставив забыть про сон. Ошибка в расчетах! Баг! Полетела матрица импедансов? Деление на ноль, которое компилятор молча сожрал, выдав кривой массив? Если он принесет научному руководителю эту чушь, его вышвырнут не то, что из лаборатории — из университета. И Тема статьи, какой бы она ни была, будет волновать его меньше всего. Мама... Господи, только не сейчас.
Дрожащими, непослушными пальцами он открыл исходный код.
for (int n = 1; n <= N_max; ++n) { ... }
Коэффициенты ряда Ми. ana_nan и bnb_nbn. Он пробегал глазами по строкам, проверяя граничные условия: непрерывность тангенциальных компонент электрического и магнитного полей на каждой границе слоев. Всё было верно. Код был девственно чист и логичен. Математика не врала.
Александр схватил карандаш и огрызок бумажной салфетки. Начал набрасывать аналитическое решение для сферической гармоники первого порядка.