FAQ и типичные ошибки¶
Расчёт не сходится / результат выглядит неправильно¶
Проверьте SelfConsistencySteps. Значение по умолчанию — 1: это
один проход без реальной самосогласованности, годится только для быстрой
отладки скрипта (проверить, что конфигурация вообще собирается и считается),
не для физического результата. Для настоящего расчёта нужно и увеличить
SelfConsistencySteps (10-20 обычно достаточно), и посмотреть на
props.OrderParameterHistory — если Δ(z) на последних шагах ещё заметно
меняется, цикл не сошёлся: увеличивайте SelfConsistencySteps либо
ослабляйте OrderParameterTolerance. См. Краткий физический бэкграунд
(раздел «Самосогласованный цикл»).
Изменил GridConfig, а сетка не поменялась¶
GridConfig — value-класс: все методы (SetZRefinement,
SetERefinement, SetOmegaGrid) возвращают новый объект и не
меняют исходный. Забытое присваивание — самая частая ошибка:
grid.SetERefinement(-3, 3, 60); % ничего не изменит — результат отброшен
grid = grid.SetERefinement(-3, 3, 60); % правильно
То же самое верно для CalculationConfig при работе с ParameterSeries
— и это осознанный выбор, а не недосмотр: см.
Скриптовый слой (Core/Scripting) про то, зачем конфиги — value-классы.
Проводимость не считается, хотя запрошена в Procedures¶
Проводимости (Conductivity) в EnergyBased нужна отдельная сетка
частот ω — без вызова grid.SetOmegaGrid(start, end, n) эта процедура
молча пропускается пайплайном (не бросает ошибку, чтобы не ломать расчёты,
где она не нужна). См. Шаг 3. Какие величины считать.
Запросил процедуру, а функции Грина не запрошены явно — не ошибка ли это?¶
Нет: RepresentationRegistry.ResolveProcedureList сама молча добавляет
GreenFunctions первой в список, если любая из запрошенных процедур от
неё зависит. Явно указывать "GreenFunctions" в Procedures нужно,
только если хотите получить именно функцию Грина как отдельный результат,
а не как промежуточный шаг для чего-то другого.
Для Matsubara нет плотности состояний / части процедур¶
Это сегодняшнее состояние проекта, не баг: в представлении Matsubara
считается только термодинамика (Δ(z), самосогласованный цикл), а
спектральные величины требуют аналитического продолжения с мнимой оси на
реальную, которое не реализовано. Если нужна плотность состояний —
используйте EnergyBased. См. Краткий физический бэкграунд.
Задал угол в радианах, результат неправильный¶
MisorientationAngle_Degrees в CalculationConfig/InitialConditions
задаётся в градусах — несмотря на то, что внутри солверов и в
MisorientationAngle_Rad используются радианы. SpinMixingAngle
(fi), наоборот, всегда в радианах. Это единственная пара полей с разными
единицами — см. таблицу в Шаг 2. Все настройки конфигурации.
Хочу два независимых расчёта из одной базовой конфигурации — второй портит первый¶
Если конфигурация лежит в handle-объекте (например, вложена в свою
структуру-обёртку) и вы вручную мутируете общий базовый объект между
запусками — оба расчёта будут ссылаться на одно и то же изменяемое
состояние. CalculationConfig/GridConfig/LayerSpec сами по себе
value-классы и не аляйсятся; используйте ParameterSeries.Expand для
генерации набора независимых конфигураций вместо ручной мутации одной
переменной в цикле. См. Шаг 4. Серии и очереди расчётов.
При сохранении результата поля gap/lastStep пустые¶
Если вы видите это в собственном коде поверх CalculatedPhysicalProperties
— проверьте, что читаете свойства именно через объект (isprop-подобная
логика), а не как обычный struct (isfield). Аналогичная ошибка ранее
была в самом SaverCalculation (перепутаны isfield/isprop для
классового объекта) и исправлена в ядре — если используете версию до этого
исправления, обновите коммит Metatron (см. Ветки и обновление ядра).
Изменения в Metatron (submodule) не видны после git pull в Metatron-Research¶
Submodule обновляется не автоматически при git pull родительского
репозитория — нужен отдельный шаг. См. Ветки и обновление ядра
(раздел «Как обновить ядро в Metatron-Research»).
Хочу добавить свой материал/представление — обязательно править ядро?¶
Нет — для этого есть MaterialRegistry.Register(...) /
RepresentationRegistry.Register(...), вызываемые из вашего
Metatron-Research без единой правки файлов Metatron. См.
Варианты расширения и Шаг 7. Расширение без правки ядра.