Примеры использования

В этом разделе собраны примеры использования основных компонентов проекта 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);

См. также