Шаг 3. Какие величины считать¶
По умолчанию CalculationRunner считает весь стандартный набор
физических величин для выбранного представления (список — в
Численное ядро). Если нужна только часть — например,
чтобы ускорить серию из сотен расчётов — список можно сузить через
cfg.Procedures.
Узнать, что доступно¶
cfg = CalculationConfig('Representation', "EnergyBased");
cfg.DescribeProcedures();
Выведет что-то вроде:
Доступные физические процедуры для "EnergyBased" (cfg.Procedures):
Conductivity [по умолчанию] - Комплексная проводимость σ(z,ω). Требует сетку частот - GridConfig.SetOmegaGrid(...); без неё расчёт молча пропускается.
DensityOfStates [по умолчанию] - Полная плотность состояний N(z,ε).
FreeEnergy [по умолчанию] - Свободная энергия Гельмгольца (σ-модель).
GreenFunctions [по умолчанию] - Запаздывающая функция Грина - нужна всем остальным процедурам, добавляется автоматически, если не указана явно.
Magnetization [по умолчанию] - Индуцированная намагниченность M(z).
SpinDoS [по умолчанию] - Спин-разрешённая плотность состояний N↑(z,ε)/N↓(z,ε).
Программно, без печати — cfg.AvailableProcedures() возвращает те же
имена string-массивом.
Задать список явно¶
cfg.Procedures = ["DensityOfStates", "Magnetization"];
GreenFunctions можно не указывать — если запрошена любая процедура,
которая от неё зависит (то есть все, кроме неё самой), она добавляется
первой автоматически.
Неизвестное имя — явная ошибка со списком доступных, а не тихий пропуск:
Неизвестная процедура "Density" для представления "EnergyBased". Доступные: Conductivity, DensityOfStates, FreeEnergy, GreenFunctions, Magnetization, SpinDoS
Особый случай: Conductivity¶
Conductivity требует заданной сетки частот
(GridConfig.SetOmegaGrid, см. Шаг 2. Все настройки конфигурации). Если сетка не
задана — расчёт не падает с ошибкой, а тихо пропускается с
информационным сообщением в лог. Если в результатах нет
ConductivityTensor — первое, что стоит проверить, это заданность
grid.SetOmegaGrid(...).
Matsubara: пока пусто¶
Для представления "Matsubara" список процедур сейчас пуст — отдельные
физические процедуры (аналоги SFIEnergyBasedFindMagnetization и
остальных) для этого представления ещё не написаны. Реестр уже готов их
принять (см. Варианты расширения), доступен только
OrderParameter — он вычисляется самим самосогласованным циклом, а не
отдельной процедурой.