Краткий физический бэкграунд¶
Этот раздел — не учебник по теории сверхпроводимости, а минимум контекста, чтобы дальнейшие странички (Физическая модель (Core/Model), Шаг 2. Все настройки конфигурации) читались осмысленно, даже если вы открыли проект не как специалист по квазиклассической теории. За строгим изложением — к учебникам и статьям, здесь только «что и зачем считается».
Что за задача¶
Рассматривается контакт сверхпроводника (S) с ферромагнитным изолятором (FI) — тонкий слой сверхпроводника толщиной от единиц до тысяч нанометров, на границе которого сидит ферромагнетик. Из-за эффекта близости свойства сверхпроводника вблизи границы меняются: параметр порядка Δ(z) подавляется, в сверхпроводнике наводится ненулевая намагниченность M(z), плотность состояний N(z, ε) перестаёт быть БКШ-симметричной. Проект считает эти величины как функции координаты z (расстояние от границы) для заданной геометрии, материала и параметров границы.
Уравнение Узаделя и параметризация Риккати¶
Точное описание сверхпроводника в терминах функций Грина Горькова слишком сложно решать численно напрямую. Квазиклассическое приближение (Эйленбергер) плюс диффузионный предел (сильное рассеяние на примесях) даёт уравнение Узаделя — нелинейное дифференциальное уравнение на квазиклассическую функцию Грина как функцию координаты и энергии (или мацубаровской частоты). Это и есть то единственное уравнение, которое в конечном счёте решает солвер проекта (Численное ядро).
Сама функция Грина — матрица 4×4 (пространство Намбу ⊗ спин) с нелинейными уравнениями на компоненты и нормировочным условием \(g^2 = 1\), что неудобно интегрировать напрямую. Параметризация Риккати заменяет функцию Грина на набор вспомогательных функций γ, γ̃ (и их производные — итого 16 компонент), для которых уравнение становится обычным (не матричным, без нормировочного условия) дифференциальным уравнением первого порядка — то, что уже можно интегрировать стандартными ОДУ-солверами. Обратное преобразование Риккати → функция Грина делается один раз, когда γ, γ̃ уже найдены.
Два представления: EnergyBased и Matsubara¶
Уравнение Узаделя можно писать по двум разным «вторым осям»:
EnergyBased — по действительным энергиям ε. Даёт напрямую физически наблюдаемые спектральные величины (плотность состояний как функция энергии), но само уравнение на запаздывающую функцию Грина имеет особые точки (аналитическое продолжение на вещественную ось), что требует аккуратной численной схемы.
Matsubara — по мнимым мацубаровским частотам \(\omega_n = \pi T (2n+1)\). Уравнение получается более гладким и устойчивым численно (это стандартный способ считать термодинамику — параметр порядка, свободную энергию), но спектральные величины (DoS) в этом представлении напрямую не считаются — нужно аналитическое продолжение обратно на реальную ось, которое проект не делает.
На практике: если нужна плотность состояний или спин-разрешённые величины —
берите EnergyBased. Если нужна только термодинамика (Δ(z), возможно —
свободная энергия) и важна численная устойчивость — Matsubara (сегодня
для него реализован сам солвер и самосогласованный цикл, но набор готовых
физических процедур меньше, см. Шаг 3. Какие величины считать).
Самосогласованный цикл¶
Уравнение Узаделя решается при фиксированном профиле параметра порядка
Δ(z), а Δ(z) сам зависит от решения (формула щели, интеграл по функции
Грина). Поэтому решение ищется итеративно: посчитать функцию Грина при
текущем Δ(z) → пересчитать Δ(z) → повторить, пока относительное изменение
Δ(z) между шагами не станет меньше OrderParameterTolerance, либо пока
не исчерпано SelfConsistencySteps шагов. История Δ(z) по итерациям
сохраняется в OrderParameterHistory — полезно проверить перед тем, как
доверять результату, что цикл действительно сошёлся, а не просто кончились
шаги.
Что дальше¶
Как это устроено в коде — Физическая модель (Core/Model) (модель) и Численное ядро (солверы, пайплайны, процедуры). Определения терминов из этого раздела — в Глоссарий.
Как это запустить — Шаг 1. Первый скрипт.