Поток данных

Раздел архитектурной документации 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 ─────┘ (разворачивание макросов перед расчётом)

Этапы:

  1. Подготовка входных данных. Описание планарной структуры и режима расчёта. Тестовые наборы лежат в samples/SAMPLE_R. Макросы во входных файлах разворачивает библиотека PREPR.
  2. Расчёт. Счётное ядро (PlanarRT_H или PlanarRT_X) выполняет электродинамический расчёт. Топологию/наведённые токи обслуживает TMCIndan, ошибки — TMCLibError, выражения — exprint.
  3. Сохранение результатов. Ядро пишет выходные файлы: матрицы рассеяния (S-файлы через SFILE95), распределения поля и ε, топологию, временны́е сигналы.
  4. Визуализация. Вьюверы и 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:

  1. 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.
  2. 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.
  3. Saving the results. The kernel writes output files: scattering matrices (S-files via SFILE95), field and ε distributions, topology, time signals.
  4. 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).