Шаг 1. Первый скрипт¶
Расположение и подключение путей¶
Скрипты живут в Metatron-Research/Examples/ (или в подпапке под свою
задачу/статью). Любой скрипт начинается с одного и того же блока —
он находит корневой 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'));
Копировать этот блок в каждый новый скрипт не обязательно вручную — проще
скопировать целиком файл Examples/GettingStarted.m и менять уже
содержательную часть ниже.
Минимальный расчёт¶
Дальше — три шага: описать сетку, описать расчёт, запустить.
%% 1. Сетка
grid = GridConfig( ...
'zStart', 0, 'zEnd', 50, 'zN', 40, ... % координата, нм
'eStart', -74, 'eEnd', 74, 'eN', 200); % энергия, в единицах Δ0
%% 2. Конфигурация расчёта
cfg = CalculationConfig( ...
'Representation', "EnergyBased", ...
'Material', "Aluminum", ...
'Length_nm', 50, ...
'Temperature', 0.5, ...
'SpinMixingAngle', 0, ... % это "fi"
'SelfConsistencySteps', 15);
cfg.Grid = grid;
%% 3. Запуск
calculation = CalculationRunner.Run(cfg);
props = calculation.CalculatedPhysicalProperties;
fprintf('IsComplete=%d, max|Delta(z)|=%.4g\n', ...
props.IsComplete(), max(abs(props.OrderParameter)));
Что произошло на шаге 3 (коротко — подробнее в Скриптовый слой (Core/Scripting)):
CalculationRunner.Runсобирает изcfgобъектCalculation(материал, слой, начальные условия, сетка) — это делаетCalculationBuilder.Buildвнутри;запускает пайплайн (
RunSFIEnergyBasedPipelineдля"EnergyBased") — самосогласованный цикл, затем физические процедуры (по умолчанию — все, см. Шаг 3. Какие величины считать);если задан
cfg.SaveOptions— сохраняет результат на диск (см. Шаг 5. Сохранение и загрузка результатов); в этом примере не задан, значит результат есть только в памяти, в переменнойcalculation.
Что смотреть в результате¶
calculation.CalculatedPhysicalProperties — объект со всеми посчитанными
величинами (полный список — Физическая модель (Core/Model)):
OrderParameter (Δ(z)), DensityOfStates, SpinResolvedDensityOfStates_Up/Down,
Magnetization, FreeEnergy, ConductivityTensor.
plot(grid.Zmas, props.OrderParameter);
xlabel('z, нм'); ylabel('\Delta(z)');
Дальше¶
Полный список настроек
CalculationConfig/GridConfig— Шаг 2. Все настройки конфигурации.Какие физические величины считать и как узнать список — Шаг 3. Какие величины считать.
Как посчитать не один расчёт, а серию с варьированием параметров — Шаг 4. Серии и очереди расчётов.