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.