Примеры использования¶
В этом разделе собраны примеры использования основных компонентов проекта Metatron.
Базовый расчёт SFI Energy Based¶
Настройка и запуск
%% Инициализация расчёта SFI Energy Based
Namespaces();
clear; clc;
% Параметры
T = 0.9; % температура (K)
L = 2000; % длина (нм)
fi = 0.1; % угол спинового смешивания
zN = 40; % число узлов по координате
eN = 750; % число узлов по энергии
% Создание объекта материала
Al = AluminumPhysicalConstants();
% Создание слоя сверхпроводника
S_layer = SuperconductorLayer(Al, L, T);
% Настройка начальных условий
initCond = SCFIEnergyBasedInitialConditions(L);
initCond.SpinMixingAngle = fi;
initCond.SelfConsistencySteps = 1;
initCond.IsTripleLayer = true;
% Создание расчёта
calculation = Calculation("SFI Energy Demo", S_layer, initCond);
% Запуск расчёта
results = RunSFIEnergyBasedPipeline(calculation, true);
% Визуализация результата
figure;
plot(results.Split.Zmas, results.CalculatedPhysicalProperties.OrderParameter);
xlabel('Координата z (нм)');
ylabel('Параметр порядка Δ(z)');
title('Самосогласованная щель');
Сохранение результатов¶
Использование SaverCalculation
% Создание сервиса сохранения
saver = SaverCalculation('OutputDir', './my_results', ...
'SaveGreenMatrix', false, ...
'SaveRiccatiTensor', false, ...
'SaveGapHistory', true);
% Сохранение результатов
saver.saveOnly(results);
% Простое сохранение основных данных
saver.saveSimple('./my_results/gap.mat', struct('gap', results.CalculatedPhysicalProperties.OrderParameter));
Работа с логгером¶
Логирование расчётов
% Настройка логгера
Config.LogsFolder = './MetatronTemporaryFiles';
Logger.Setup('MyCalculation');
% Логирование сообщений
Logger.Info('Начало расчёта');
Logger.Error('Не удалось открыть файл');
% Закрытие лога
Logger.Close();
Параллельные расчёты¶
Использование параллельной версии
% Запуск с параллелизацией (parfor)
results = RunSFIEnergyBasedPipeline(calculation, true);
% Последовательная версия
results = RunSFIEnergyBasedPipeline(calculation, false);
Получение физических свойств¶
Вычисление плотности состояний и проводимости
model = SFIEnergyBasedFindDensityofStates(calculation);
conductivity = SFIEnergyBasedFindConductivity(calculation);
magnetization = SFIEnergyBasedFindMagnetization(calculation);