Bath Auxiliary routines

Description

Implements a number of auxiliary procedures used to construct replica/general bath

Quick access

Routines:

is_identity(), is_diagonal(), hreplica_build(), hgeneral_build()

Used modules

  • sf_constants

  • sf_iotools

  • sf_linalg

  • sf_arrays

  • sf_misc

  • ed_input_vars: Contains all global input variables which can be set by the user through the input file. A specific preocedure ed_read_input() should be called to read the input file using parse_input_variable() procedure from SciFortran. All variables are automatically set to a default, looked for and updated by reading into the file and, sequentially looked for and updated from command line (std.input) using the notation variable_name=variable_value(s) (case independent).

  • ed_vars_global: Contains all variables, arrays and derived types instances shared throughout the code. Specifically, it contains definitions of the effective_bath, the gfmatrix and the sector data structures.

  • ed_aux_funx: Hosts a number of auxiliary procedures required in different parts of the code. Specifically, it implements: creation/annihilation fermionic operators, binary decomposition of integer representation of Fock states and setup the local impurity Hamiltonian

Subroutines and functions

interface  ed_bath_aux/is_identity(mlso, mnnn)

This subroutine checks if a matrix \(\hat{O}\) in the basis of the replica or general baths is the identity.

The input matrix can have different shapes:
Parameters:
interface  ed_bath_aux/is_diagonal(mlso, mnnn)

This subroutine checks if a matrix \(\hat{O}\) in the basis of the replica or general baths is diagonal.

The input matrix can have different shapes:
Parameters:
function  ed_bath_aux/hreplica_build([lambdavec])

This function is used to reconstruct the local bath Hamiltonian from basis expansion given the vector of \(\vec{\lambda}\) parameters \(h^p=\sum_i \lambda^p_i O_i\). The resulting Hamiltonian has dimensions [ nspin , nspin , norb , norb ]

Options:

lambdavec (•) [real] – the input vector of bath parameters

Return:

h (nnambu · nspin, nnambu · nspin, norb, norb) [complex]

function  ed_bath_aux/hgeneral_build([lambdavec])

This function is used to reconstruct the local bath Hamiltonian from basis expansion given the vector of \(\vec{\lambda}\) parameters \(h^p=\sum_i \lambda^p_i O_i\). The resulting Hamiltonian has dimensions [ nspin , nspin , norb , norb ]

Options:

lambdavec (•) [real] – the input vector of bath parameters

Return:

h (nnambu · nspin, nnambu · nspin, norb, norb) [complex]