Bath
The construction and the handling of the bath is a crucial part of the description of the generic single impurity Anderson problem. The bath is described by two set of parameters: the local hamiltonian \(\hat{h}^p\) and the hybridization \(\hat{V}^p\), for \(p=1,\dots,N_{bath}\). The first describes the local properties of each bath element (be that a single electronic level or a more complex structure made of few levels), the second describes the coupling with the impurity.
The user accesses the bath as a double precision rank-1 array
containing in a given order all the parameters. This array is passed
as input to the library procedures and dumped into an internal data
structure effective_bath
, implemented in ED_BATH_DMFT
.
We implemented different bath topologies, which can be
selected using the variable bath_type
=
normal, hybrid, replica, general
.
For bath_type
= normal
(hybrid
) a number nbath
of electronic
levels are coupled to each orbital level (to any orbital level) of the
impurity site. The bath local Hamiltonian is diagonal
\(\hat{h}^p\equiv\epsilon^p_a\delta_{ab}\) while the
hybridizations are: \(\hat{V}^p=V^p_{a}\delta_{ab}\)
(\(\hat{V}^p=V^p_{ab}\)).
If ed_mode
= superc
the bath includes a set of parameters
\(\Delta_p\) describing the superconductive amplitude on each bath
level.
For bath_type
= replica
(general
) a number nbath
of copies of the
impurity structure are coupled to the impurity itself. Each bath
element is made of a number \(N_{orb}\) of electronic levels,
i.e. the number of orbitals in the impurity site.
The hybridization to the impurity site is
\(\hat{V}^p=V^p_{a}\delta_{ab}\) (\(\hat{V}^p=V^p_{ab}\)).
The local bath Hamiltonian is \(\hat{h}^p = \sum_{m=1}^{M} \lambda^p_m O_m\).
The set \(\{O\}_m\) is a user defined matrix basis for the impurity
Hamiltonian or, equally, for the local Hamiltonian of the lattice
problem. The numbers \(\lambda^p_m\in{\mathbb R}\) are
variational parameters.
Note
The enumeration of the total bath electronic levels is different
among the different cases. This number is automatically evaluated
upon calling get_bath_dimension()
, see
ED_BATH_DIM
.
Note
The replica, general
bath topologies are available also for
the superconductive case ed_mode
= superc
. In this case the
structure of the matrix basis should be set to the proper
multi-orbital Nambu basis, so that off-diagonal blocks corresponds
to anomalous components.
Bath Auxiliary
In this set of modules we implement a number of auxiliary procedures which are required to enumerate the bath levels, performs all the relevant checks on the user input bath or apply given symmetry operations.
Bath Replica
The ED_BATH_REPLICA
module hosts the definition of a
dedicated data structure storing the matrix basis and the initial parameters
for the replica
bath. This, alongside the effective_bath
,
enables to reconstruct the discrete bath on-the-fly, to perform
different sanity checks or to apply symmetry operations on the user side.
Bath DMFT
In ED_BATH_DMFT
we implement operations on the effective_bath
data
structure: a suitable representation of the effective bath used
internally in the code. We refer to the generic shared instance of this bath
as dmft_bath
. Depending on the value bath_type
this quantity collect
different bath parameters which can be directly accessed in the
construction of symmetry sectors Hamiltonian.
Bath Functions
In ED_BATH_FUNCTIONS
we implement on-the-fly construction of
the hybridization functions \(\Delta(z) = \sum_p
\hat{V}^p\left[z-\hat{h}^p \right]^{-1}\hat{V}^p\), as well as of the
non-interacting Anderson Green's functions
\(G_0(z) = \left[z +\mu - H_{loc} - \Delta(z) \right]^{-1}\) for
all different cases selected by ed_mode
and bath_type
.