User Bath symmetry operations
Description
Implements functions the user can use to enforce specific symmetry operations on the bath array.
Quick access
- Routines:
break_symmetry_bath()
,spin_symmetrize_bath()
,orb_symmetrize_bath()
,orb_equality_bath()
,ph_symmetrize_bath()
,ph_trans_bath()
,enforce_normal_bath()
,save_array_as_bath()
,impose_equal_lambda()
Used modules
-
-
-
-
-
ed_input_vars
: Contains all global input variables which can be set by the user through the input file. A specific preocedureed_read_input()
should be called to read the input file usingparse_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 theeffective_bath
, thegfmatrix
and thesector
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 Hamiltonianed_bath_aux
: Implements a number of auxiliary procedures used to construct replica/general bathed_bath_dim
: Returns or check the dimensions to which the user should allocate the bath array.ed_bath_dmft
: A class for the theeffective_bath
data structure describing the effective bath in the code.
Subroutines and functions
- interface ed_bath_user/break_symmetry_bath(bath_, field, sign[, save])
Function to impose a specific symmetry breaking pattern into the energy levels of the bath. A common case is to find magnetic solution by breaking spin degeneracy of the levels.
bath
is rank-1 [:] or rank-2 [:,Nlat
] array type: double precision with assumed size
- Parameters:
bath_ (various shapes) [real] – user bath array
field [real] – tiny symmetry breaking field
sign [real] – sign of the field
- Options:
save [logical] – optional flag to save the output bath
- interface ed_bath_user/spin_symmetrize_bath(bath_[, save])
Function to impose a spin symmetry to the parameters of the bath. Enforces a non-magnetic solution
bath
is rank-1 [:] or rank-2 [:,Nlat
] array type: double precision with assumed size
- Parameters:
bath_ (various shapes) [real]
- Options:
save [logical]
- interface ed_bath_user/orb_symmetrize_bath(bath_, orb1, orb2[, save])
Function to impose a orbital symmetry to the parameters of the bath. Enforces an orbital non-polarized solution. If two orbital indices
orb1
andorb2
are passed symmetry is imposed only among such two orbitalsWarning
This operation requires the orbital to be degenerate.
bath
is rank-1 [:] or rank-2 [:,Nlat
] array type: double precision with assumed size
- Parameters:
bath_ (various shapes) [real]
orb1 [integer]
orb2 [integer]
- Options:
save [logical]
- interface ed_bath_user/orb_equality_bath(bath_[, indx, save])
Function to impose a orbital equality on the parameters of the bath.
bath
is rank-1 [:] or rank-2 [:,Nlat
] array type: double precision with assumed size
- Parameters:
bath_ (various shapes) [real]
- Options:
indx [integer]
save [logical]
- interface ed_bath_user/ph_symmetrize_bath(bath_[, save])
Function to impose particle-hole symmetry to the parameters of the bath.
bath
is rank-1 [:] or rank-2 [:,Nlat
] array type: double precision with assumed size
- Parameters:
bath_ (various shapes) [real]
- Options:
save [logical]
- interface ed_bath_user/ph_trans_bath(bath_[, save])
Function to perform particle-hole transformation to the parameters of the bath.
bath
is rank-1 [:] or rank-2 [:,Nlat
] array type: double precision with assumed size
- Parameters:
bath_ (various shapes) [real]
- Options:
save [logical]
- interface ed_bath_user/enforce_normal_bath(bath_[, save])
Function to impose normal solution to the parameters of the bath, i.e. suppressed superconductivity if any.
bath
is rank-1 [:] or rank-2 [:,Nlat
] array type: double precision with assumed size
- Parameters:
bath_ (various shapes) [real]
- Options:
save [logical]
- interface ed_bath_user/save_array_as_bath(bath_)
Write the bath parameters to a file following the convention of the internal data structure
effective_bath
.bath
is rank-1 [:] or rank-2 [:,Nlat
] array type: double precision with assumed size
- Parameters:
bath_ (various shapes) [real]
- subroutine ed_bath_user/impose_equal_lambda(bath_, ibath, lambdaindex_vec)
Function to impose \(\vec{\lambda}\) parameters to be equal to a given average of a subset of values
lambdaindex_vec
and for a specific bath elementibath
ifbath_type
=replica
,general
.- Parameters:
bath_ (•) [real] – user bath array
ibath [integer] – index of the bath element
lambdaindex_vec (•) [integer] – (sub)set of indices \(i\) of \(\lambda_i\) to be averaged out