Metatron-Research

gitverse.ru/SeleznyovDV/Metatron-Research

Личные скрипты запуска расчётов, серии, визуализации и результаты — то, что не является ядром и не должно жить в Metatron.

Установка

Первый раз (сразу с обоими submodule):

git clone --recurse-submodules https://gitverse.ru/SeleznyovDV/Metatron-Research

Если репозиторий уже склонирован без --recurse-submodules:

git submodule update --init --recursive

Структура

Metatron-Research/
├── Metatron/            # submodule ядра - не редактируется отсюда
├── Metatron-Docs/       # submodule документации
├── Namespaces.m         # единая точка входа этого репозитория
├── Examples/
│   ├── GettingStarted.m             # минимальный bootstrap-пример
│   ├── SingleRun/
│   │   └── BasicConfigReference.m   # все настройки CalculationConfig
│   └── Series/
│       └── ParameterSeriesExample.m # серии и очереди расчётов
└── README.md

Metatron/ и Metatron-Docs/ — полноценные git-клоны (не копии). Если внутри Metatron/ что-то изменить и закоммитить+запушить оттуда, это изменит настоящий репозиторий Metatron, а не какую-то локальную ветку. Обычно так и разрабатывается ядро на практике — из submodule-копии внутри Metatron-Research, без отдельного клона Metatron «для порядка».

Bootstrap: подключение путей из скрипта

Каждый скрипт в Examples/ (на любой глубине вложенности, например Examples/2026_MyPaper/script.m) начинается с поиска корневого Namespaces.m вверх по дереву папок:

dir_ = fileparts(mfilename('fullpath'));
while ~isfile(fullfile(dir_, 'Namespaces.m'))
    parent = fileparts(dir_);
    if strcmp(parent, dir_)
        error('Namespaces.m репозитория не найден выше %s', fileparts(mfilename('fullpath')));
    end
    dir_ = parent;
end
run(fullfile(dir_, 'Namespaces.m'));

Это подключает и пути ядра (через Metatron/Namespaces.m), и пути этого репозитория, и настраивает папку логов внутрь Metatron-Research (а не внутрь submodule). Работает независимо от того, откуда и с какой глубины запущен скрипт — писать этот блок вручную в каждом новом скрипте не нужно, проще скопировать готовый из Examples/GettingStarted.m.

Организация своих скриптов

Заведите подпапку в Examples/ под конкретную задачу или статью (например Examples/2026_MyPaper/), чтобы не смешивать разные исследования в одной куче файлов. SingleRun/ и Series/ — это эталонные примеры от ядра, ваши рабочие скрипты — рядом, в своих папках.

Пошаговое руководство по написанию скриптов расчёта — Как писать скрипты расчёта.