Source code for dgamore.gap_function

# SPDX-FileCopyrightText: 2025-2026 Julian Peil <julian.peil@tuwien.ac.at>
# SPDX-License-Identifier: MIT
#
# DGAmore — Multi-Orbital Ladder Dynamical Vertex Approximation (LDGA) &
#           Eliashberg Equation Solver for Strongly Correlated Electron Systems
r"""
The superconducting gap function :math:`\Delta`, i.e. the eigenvector of the linearized Eliashberg equation.
"""

import numpy as np

from dgamore.n_point_base import IHaveChannel, SpinChannel, FrequencyNotation
from dgamore.two_point import TwoPoint


[docs] class GapFunction(TwoPoint, IHaveChannel): """ Represents the superconducting gap function. Has one momentum dimension, two orbital dimensions and one fermionic frequency dimension. Inherits the two-point orbital bookkeeping and the irreducible-to-full-BZ unfold from :class:`TwoPoint` and adds the pairing (singlet/triplet) channel. """ def __init__( self, mat: np.ndarray, channel: SpinChannel = SpinChannel.NONE, nk: tuple[int, int, int] = (1, 1, 1), full_niv_range: bool = True, has_compressed_q_dimension: bool = False, ): r""" Initializes the gap function in the given pairing channel and momentum layout. :param mat: Gap-function array with one momentum dimension, two orbital axes and one fermionic frequency axis. :param channel: Pairing channel, i.e. singlet or triplet (see :class:`SpinChannel`). :param nk: Number of momenta per spatial direction ``(nkx, nky, nkz)``. :param full_niv_range: Whether the object spans the full (signed) fermionic range or only :math:`\nu \geq 0`. :param has_compressed_q_dimension: Whether the momentum is stored as a single compressed axis ``[q, ...]`` (True) or as three separate axes ``[kx, ky, kz, ...]`` (False). """ TwoPoint.__init__(self, mat, nk, full_niv_range, has_compressed_q_dimension) IHaveChannel.__init__(self, channel, FrequencyNotation.PP)