Поток данных
Раздел архитектурной документации TMC Suite. Как данные движутся через пакет: конвейер «счётное ядро → файлы → вьювер», роль S-файлов как формата обмена.
TMC Suite построен как конвейер на основе файлов: программы не взаимодействуют напрямую (без общей памяти и IPC), а обмениваются результатами через файлы на диске. Это делает каждый шаг воспроизводимым и повторно просматриваемым.
1. Общий конвейер
Входные данные Расчёт Результаты Визуализация
(описание структуры, (счётные ядра) (файлы на диске) (вьюверы)
топология, режим)
┌──────────────┐ ┌───────────────┐ ┌──────────────┐ ┌──────────────┐
│ samples/ │ │ PlanarRT_H │ │ S-матрицы │ ───► │ TMCGROUT │
│ SAMPLE_R │ ───────► │ (tmc_rth.exe) │ ──────► │ (S-файлы) │ │ TMCROS │
│ + макросы │ │ │ │ поля, ε │ │ TMC_DN │
│ │ │ PlanarRT_X │ │ топология │ ───► │ FieldView │
│ │ │ (tmc_rtx.exe) │ │ врем. сигналы│ │ │
└──────────────┘ └───────────────┘ └──────────────┘ └──────────────┘
│ ▲
└── препроцессор PREPR ─────┘ (разворачивание макросов перед расчётом)
Этапы:
- Подготовка входных данных. Описание планарной структуры и режима расчёта.
Тестовые наборы лежат в
samples/SAMPLE_R. Макросы во входных файлах разворачивает библиотека PREPR. - Расчёт. Счётное ядро (PlanarRT_H или PlanarRT_X) выполняет электродинамический расчёт. Топологию/наведённые токи обслуживает TMCIndan, ошибки — TMCLibError, выражения — exprint.
- Сохранение результатов. Ядро пишет выходные файлы: матрицы рассеяния (S-файлы через SFILE95), распределения поля и ε, топологию, временны́е сигналы.
- Визуализация. Вьюверы и FieldView читают эти файлы и отображают их.
2. S-файл как центральный формат обмена
Главный формат, связывающий программы, — файл матрицы рассеяния (S-файл). За его чтение и запись отвечает библиотека SFILE95, общая и для ядер, и для вьюверов.
Ядро ──[SFILE95: запись]──► S-файл ──[SFILE95: чтение]──► Вьювер
Благодаря единой библиотеке формат гарантированно согласован между производителем (ядро) и потребителем (вьювер).
3. Маршруты данных по программам-потребителям
| Потребитель | Что читает | Что показывает |
|---|---|---|
| TMCGROUT | S-матрицы (частотная зависимость) | Графики КСВН, потерь, модуля/фазы S-параметров |
| TMCROS | Временны́е сигналы / S-матрицы | Временны́е сигналы; преобразует «время → S-матрица» |
| TMC_DN | Данные антенных решёток | Диаграммы направленности, КНД/КИП, девиации |
| FieldView | Распределения поля, ε, топология | 2D/3D-визуализация поля и структуры (OpenGL) |
TMCROS выделяется тем, что выполняет преобразование данных (время → матрица рассеяния), то есть является не только вьювером, но и шагом обработки в конвейере.
4. Свойства такого подхода
Преимущества:
- Каждый этап воспроизводим: результаты сохранены в файлах, расчёт можно не повторять.
- Программы слабо связаны — их можно разрабатывать и запускать независимо.
- Один результат можно открыть несколькими вьюверами.
Ограничения:
- Согласованность форматов поддерживается дисциплиной (общая библиотека SFILE95 и общие заголовки), а не системой типов между процессами.
- Обмен идёт через файловую систему — нет потоковой передачи «на лету».
5. Где взять тестовые данные
Готовые входные наборы для прогона всего конвейера — в каталоге
samples/SAMPLE_R. Они используются в инструкции по сборке (для проверки
собранных программ).
Data flow
Architecture documentation section of TMC Suite. How data moves through the package: the "compute kernel → files → viewer" pipeline, the role of S-files as the exchange format.
TMC Suite is built as a file-based pipeline: the programs do not interact directly (no shared memory or IPC); instead they exchange results through files on disk. This makes each step reproducible and re-viewable.
1. The overall pipeline
Input data Computation Results Visualization
(structure description, (compute kernels) (files on disk) (viewers)
topology, mode)
┌──────────────┐ ┌───────────────┐ ┌──────────────┐ ┌──────────────┐
│ samples/ │ │ PlanarRT_H │ │ S-matrices │ ───► │ TMCGROUT │
│ SAMPLE_R │ ───────► │ (tmc_rth.exe) │ ──────► │ (S-files) │ │ TMCROS │
│ + macros │ │ │ │ fields, ε │ │ TMC_DN │
│ │ │ PlanarRT_X │ │ topology │ ───► │ FieldView │
│ │ │ (tmc_rtx.exe) │ │ time signals │ │ │
└──────────────┘ └───────────────┘ └──────────────┘ └──────────────┘
│ ▲
└── PREPR preprocessor ─────┘ (macro expansion before computation)
Stages:
- Preparing the input data. A description of the planar structure and the
computation mode. Test sets live in
samples/SAMPLE_R. Macros in the input files are expanded by the PREPR library. - Computation. A compute kernel (PlanarRT_H or PlanarRT_X) performs the electrodynamic computation. Topology/induced currents are handled by TMCIndan, errors by TMCLibError, expressions by exprint.
- Saving the results. The kernel writes output files: scattering matrices (S-files via SFILE95), field and ε distributions, topology, time signals.
- Visualization. The viewers and FieldView read these files and display them.
2. The S-file as the central exchange format
The main format linking the programs is the scattering-matrix file (S-file). Reading and writing it is the responsibility of the SFILE95 library, shared by both the kernels and the viewers.
Kernel ──[SFILE95: write]──► S-file ──[SFILE95: read]──► Viewer
Thanks to the single library, the format is guaranteed to be consistent between the producer (kernel) and the consumer (viewer).
3. Data routes by consuming program
| Consumer | What it reads | What it shows |
|---|---|---|
| TMCGROUT | S-matrices (frequency dependence) | Graphs of VSWR, losses, magnitude/phase of the S-parameters |
| TMCROS | Time signals / S-matrices | Time signals; converts "time → S-matrix" |
| TMC_DN | Antenna-array data | Radiation patterns, directivity/aperture efficiency, deviations |
| FieldView | Field distributions, ε, topology | 2D/3D visualization of the field and the structure (OpenGL) |
TMCROS stands out because it performs a data transform (time → scattering matrix), that is, it is not only a viewer but also a processing step in the pipeline.
4. Properties of this approach
Advantages:
- Each stage is reproducible: results are saved in files, and the computation need not be repeated.
- The programs are loosely coupled — they can be developed and run independently.
- A single result can be opened by several viewers.
Limitations:
- Format consistency is maintained by discipline (the shared SFILE95 library and shared headers), not by a type system between processes.
- Exchange goes through the file system — there is no on-the-fly streaming.
5. Where to get test data
Ready-made input sets for running the whole pipeline are in the samples/SAMPLE_R
directory. They are used in the build guide (to verify the compiled programs).