4-слойная линза Люнеберга — главная плоскость
Бистатическая диаграмма рассеяния в E-плоскости. Аналитическая кривая GreenTensor (оранжевая) совпадает с full-wave Ansys HFSS (синий пунктир) на главном лепестке и ближних боковых до уровня −40 дБ.
Open-source Python-библиотека для быстрого расчёта рассеяния, ЭПР и диаграмм направленности линз Люнеберга и сферических структур методом тензорных функций Грина. В 10³–10⁴ раз быстрее, чем full-wave решатели на МКЭ.
Универсальный аппарат электромагнитного анализа, реализованный в виде open-source пакета и пригодный для интеграции в среды моделирования.
GreenTensor решает задачи рассеяния, дифракции и излучения электромагнитных волн на сферически-симметричных структурах с произвольным количеством диэлектрических и магнитных слоёв.
В основе лежит разложение поля по сферическим гармоникам и
рекуррентный пересчёт направленных импедансов
Z̄ₙ(rₗ) и Ȳₙ(rₗ) от центра сферы наружу через все слои —
это позволяет получить аналитически замкнутое решение без объёмной 3D-сетки.
Метод исторически развит школой Б.А. Панченко (плоский → цилиндрический → сферический случай) и в этой реализации обобщает триадный подход в едином TGF-фреймворке. Хорошо подходит для проектирования антенн, верификации full-wave решателей и параметрических исследований.
Gᵢⱼᴱ, Gᵢⱼᴴ — электрический и магнитный
тензорные компоненты;
gᵢⱼ, fᵢⱼ — характеристические части
(радиальные решения через сферические функции Бесселя и Ханкеля).
Произвольное число слоёв с независимыми ε и μ, включая комплексные значения для потерь.
Полные диаграммы рассеяния по углам θ и φ для VV- и HH-поляризаций. Расчёт за секунды.
Перебор по электрическому размеру k₀a, толщинам и проницаемостям — для оптимизации.
Полярные диаграммы, кросс-сечения, сравнение с эталонами (HFSS, аналитика) на matplotlib.
Каждый шаг — формула, не «чёрный ящик». Удобно для верификации и научных публикаций.
Свободно использовать, форкать, встраивать в коммерческие пайплайны. Без лицензионных ограничений.
От проектирования антенн до бионаучных приложений — везде, где есть слоистая сфера.
Расчёт антенных характеристик: усиление, КНД, фокусировка, апертурное распределение для классической и модифицированных линз.
Моностатическая и бистатическая ЭПР сферических объектов и пассивных отражателей в широком диапазоне частот.
Многослойные сферические антенны для СВЧ-диапазона, расчёт поляризационных характеристик и кросс-поляризации.
Сферы с диэлектрическими и поглощающими покрытиями, проводящие ядра, оценка маскировочных свойств.
Широкополосные пассивные отражатели на базе линз Люнеберга для малых беспилотных платформ.
Рассеяние на модели головы человека (многослойная сферическая аппроксимация) — публикация USBEREIT 2024.
Эталонные расчёты для валидации full-wave решателей на канонических задачах с известным решением.
Использование как быстрого модуля внутри пайплайнов системного проектирования антенных решёток.
Все зависимости (numpy, scipy, matplotlib) подтянутся автоматически.
pip install GreenTensorГотовые скрипты в каталоге examples/.
Бистатическая ЭПР 4-слойной линзы Люнеберга (k₀a = 5).
python "Luneburg Lens Bistatic RCS.py"Без локальной установки — нажать «Open in Colab» в README репозитория.
Открыть GitHub →# Установка через PyPI
pip install GreenTensor
# Или из исходников с примерами
git clone https://github.com/Den1sovDm1triy/GreenTensor.git
cd GreenTensor
# Зависимости: numpy ≥1.24, scipy ≥1.10, matplotlib ≥3.5
pip install -r requirements.txt
# Запуск примера №1 — бистатическая ЭПР линзы Люнеберга
cd "examples/Example 1 - Luneburg Lens Bistatic RCS"
python "Luneburg Lens Bistatic RCS.py"
Сравнение с результатами Greenwood & Jin (1999) — точное соответствие на бистатической ЭПР.
Дискретизованная линза Люнеберга — сфера, разбитая на 4 концентрических слоя
с убывающей диэлектрической проницаемостью наружу.
Закон n(r/a) = √(2 − (r/a)²)
обеспечивает идеальную фокусировку плоской волны в точку на противоположной стороне.
Результат: две полярные диаграммы (VV-pol и HH-pol) бистатической ЭПР в дБ, расчёт занимает менее секунды на ноутбуке.
import math
import numpy as np
import scipy.special
import matplotlib.pyplot as plt
# --- Геометрия и материалы ---
k0 = 5 # электрический размер k₀·a
toch = 10 # порядок ряда сферических гармоник
n = 4 # число слоёв (последний — воздух)
a = [0.53, 0.75, 0.93, 1.0]
eps = [1.86, 1.57, 1.28, 1.0]
miy = [1, 1, 1, 1]
# --- Запуск расчёта ---
# Рекуррентно считаются Z̄ₙ(rₗ), Ȳₙ(rₗ) изнутри наружу,
# затем коэффициенты Mₙ, Nₙ и финальные θ/φ-компоненты поля.
teta = np.linspace(0.01, 2*math.pi, 720)
sigma_t = compute_bistatic_rcs(k0, a, eps, miy, toch, teta, pol='VV')
sigma_p = compute_bistatic_rcs(k0, a, eps, miy, toch, teta, pol='HH')
# --- Полярные диаграммы рассеяния ---
fig, axs = plt.subplots(1, 2, figsize=(10, 5),
subplot_kw={'projection': 'polar'})
axs[0].plot(teta, 10*np.log10(sigma_t), color='#00ff9c')
axs[0].set_title('Bistatic RCS, dB · VV-pol')
axs[1].plot(teta, 10*np.log10(sigma_p), color='#21d68a')
axs[1].set_title('Bistatic RCS, dB · HH-pol')
plt.show()
Открытые тесты на 4-слойной линзе Люнеберга. GreenTensor сходится
с full-wave решателем Ansys HFSS на главных лепестках до долей
децибела и воспроизводит классические результаты Greenwood & Jin (1999).
Все скрипты и CSV-данные — в каталоге examples/ репозитория.
Бистатическая диаграмма рассеяния в E-плоскости. Аналитическая кривая GreenTensor (оранжевая) совпадает с full-wave Ansys HFSS (синий пунктир) на главном лепестке и ближних боковых до уровня −40 дБ.
Чистый вывод библиотеки: бистатическая ЭПР для двух поляризаций
одновременно. Расчёт всей пары — менее секунды на ноутбуке для
toch = 10
(порядок сферических гармоник).
Кардиоидная диаграмма рассеяния линзы Люнеберга при k₀a = 5. Сплошная кривая — GreenTensor, кружки — эталон из статьи «A novel efficient algorithm for scattering from a multilayer sphere» (Greenwood & Jin, IEEE TAP 1999).
Выберите тип градиентной линзы, задайте число слоёв L — и получите оптимизированное минимаксное приближение профиля ε(r), радиусы концентрических оболочек и долю воздуха для 3D-печати по модели Максвелла–Гарнетта.
| k | r_вн, мм | r_нар, мм | r_нар / R | ε_k | V_air (МГ) | Δε |
|---|
ε_m = 2.67
(PLA / ABS), tan δ = 0.009. Радиус линзы фиксирован на R = 36.5 мм
(типичный размер для X-диапазона). Полученные параметры — стартовая геометрия для
full-wave-расчёта в GreenTensor: вектор a = [r₁/R … rₗ/R] и eps = [ε₁ … εₗ]
напрямую подставляются в compute_bistatic_rcs(...).
Полный RCSCalculator и ScatteringCalculator в отдельном окне с 3D-редактором задачи: задаёте слои сферы — структура отрисовывается в реальном времени, расчёт идёт локально через Pyodide (CPython + numpy + scipy в WebAssembly).
Метод и библиотека описаны в рецензируемых изданиях. Цитируйте при использовании.
Denisov D.V., Skumatenko I.O., Fadeev V.O., Shesterov M.A. · IEEE EDM 2024 · DOI: 10.1109/EDM61683.2024.10615009
Denisov D.V., Skumatenko I.O., Shesterov M.A. · IEEE USBEREIT 2024 · DOI: 10.1109/USBEREIT61901.2024.10584060
Panchenko B.A., Ponomarev O.P., Denisov D.V. · EuRAD / EuMC 2015 · DOI: 10.1109/EuRAD.2015.7346364
Денисов Д.В. · Монография · LAP Lambert · 200 стр. · ISBN 978-3-330-02152-5
GreenTensor — результат работы школы радиофизики УрФУ и преемственности от трёх поколений исследователей. Здесь — основные участники, упомянутые в коммитах и научных публикациях.
Автор библиотеки и постановки задачи. Кандидатская диссертация (НГТУ, 2015) по антенным характеристикам линз Люнеберга при круговой поляризации; готовится докторская по специальности 2.2.14. Реализовал TGF-аппарат от скриптов 2015 г. до open-source-пакета.
Соразработчик библиотеки. Соавтор обеих ключевых IEEE-публикаций 2024: EDM (multilayer scattering) и USBEREIT (human head model). Также участник работы 2016 г. «Тензорные функции Грина для слоистых сферических структур» (Вестник СибГУТИ).
Соавтор первой публикации о библиотеке — IEEE EDM 2024: «GreenTensor Electromagnetic Library for Calculate Scattering on Multilayer Spherical Structures», DOI 10.1109/EDM61683.2024.10615009. Участник тестирования и валидации.
Соавтор обеих публикаций по библиотеке (IEEE EDM 2024 и IEEE USBEREIT 2024). Внёс вклад в применение GreenTensor к биоэлектромагнитной задаче — расчёт диаграмм рассеяния на многослойной сферической модели головы человека.
Соавтор свидетельства № 2023688035 об интеграции с Ansys HFSS и серии работ по 5G MIMO-OFDM с многолучевыми линзовыми антеннами. Совместно ведёт направление 3D-печати линз Люнеберга (обзор IEEE 2024, Изв. ВУЗов. Радиоэлектроника).
Основоположник применения тензорных функций Грина для слоистых сферических структур. Научный руководитель кандидатской Денисова. Соавтор монографии 2017 г., публикаций EuRAD/EuMC 2015 и свидетельства № 2017616708 — фундамент, на котором построена библиотека.
Метод тензорных функций Грина для сферически-слоистых структур развит школой Б. А. Панченко (Екатеринбург) на базе кафедры ВЧСРТ УрФУ. Современная open-source-реализация продолжает линию плоский → цилиндрический → сферический случай, обобщая триадный подход в едином TGF-фреймворке.
Контакты для научного сотрудничества: dv.denisov@urfu.ru. Pull-request'ы и issues — через GitHub-репозиторий.