Cluster Dynamical Mean Field Theory¶
This submodule provides functions that perform the CDMFT algorithm.
List of functions¶
- pyqcm.cdmft.cdmft(varia=None, beta=50, wc=2.0, maxiter=32, miniter=0, accur=0.001, accur_hybrid=0.0001, accur_dist=1e-10, accur_E0=1e-10, alpha=0.0, displaymin=False, method='Nelder-Mead', file='cdmft.tsv', averages=False, eps_algo=0, initial_step=0.1, hartree=None, check_sectors=None, grid_type='sharp', counterterms=None, SEF=False, observables=None, verb=False, max_function_eval=5000000, compute_potential_energy=False, double_counting_correct=None)¶
Performs the CDMFT procedure
- Parameters
varia ([str]) – list of variational parameters OR tuple of two lists : bath energies and bath hybridizations OR function that returns dicts of bath energies and bath hybridizations given numeric arrays
beta (float) – inverse fictitious temperature (for the frequency grid)
wc (float) – cutoff frequency (for the frequency grid)
maxiter (int) – maximum number of CDMFT iterations
miniter (int) – minimum number of CDMFT iterations
accur (float) – the procedure converges if parameters do not change by more than accur
accur_hybrid (float) – the procedure converges on the hybridization function with this accuracy
accur_dist (float) – convergence criterion when minimizing the distance function.
accur_E0 (float) – convergence criterion on the impurity ground state energy.
alpha (float) – damping parameter (fraction of the previous iteration in the new one) OR (float,int) with number of iterations where damping is used (at the beginning if positive, at the end if negative)
displaymin (boolean) – displays the minimum distance function when minimized
method (str) – method to use, as used in scipy.optimize.minimize()
file (str) – name of the file where the solution is written
averages (boolean) – if True, computes the lattice averages after each iteration. Computes them at the end anyway.
eps_algo (int) – number of elements in the epsilon algorithm convergence accelerator = 2*eps_algo + 1 (0 = no acceleration)
initial_step (float) – initial step in the minimization routine
hartree ([class hartree]) – mean-field hartree couplings to incorportate in the convergence procedure
check_sectors (boolean) – the ground state is checked against the ground states of the sectors contained in target_sectors
grid_type (str) – type of frequency grid along the imaginary axis : ‘sharp’, ‘ifreq’, ‘self’
counterterms ([str]) – list of counterterms names (cluster operators that should strive to have zero average)
SEF (boolean) – if True, computes the Potthoff functional at the end
observable] ([class) – list of observables used to assess convergence
verb (boolean) – If True, prints debugging information
max_function_eval (int) – maximum number of distance function evaluations when minimizing distance
compute_potential_energy (boolean) – If True, computes Tr(Sigma*G) along with the averages
double_counting_correct ([(str,str,str,float,float)]) – list of recipes for double counting corrections: (kinetic operator, interaction operator, density operator, coefficient, value of the kinetic operator without interaction) :returns: None
- pyqcm.cdmft.cdmft_distance_debug(varia=None, vset=None, beta=50, wc=2.0, grid_type='sharp', counterterms=None)¶
Debugs the CDMFT distance function
- Parameters
varia ([str]) – list of variational parameters
vset ([[float]]) – sets of bath parameters
beta (float) – inverse fictitious temperature (for the frequency grid)
wc (float) – cutoff frequency (for the frequency grid)
grid_type (str) – type of frequency grid along the imaginary axis : ‘sharp’, ‘ifreq’, ‘self’
counterterms ([str]) – list of counterterms names (cluster operators that should strive to have zero average)
SEF (boolean) – if True, computes the Potthoff functional at the end
observable ([class]) – list of observables used to assess convergence
- Returns
None
- pyqcm.cdmft.cdmft_forcing(field_name, seq, beta_seq=None, **kwargs)¶
performs a sequence of CDMFT runs with the external field ‘field_name’ takes the successive values in ‘seq’
- pyqcm.cdmft.cdmft_variational_sequence(basic_params, varia_seq, **kwargs)¶
performs a sequence of CDMFT runs with an increasing variational set.
- pyqcm.cdmft.forcing_sequence(f1, f2, beta1, beta2, n=6)¶
generates logarithmic sequences of fields and temperatures, for use with cdmft_forcing
List of classes¶
- class pyqcm.cdmft.general_bath(name, ns, nb, spin_dependent=False, spin_flip=False, singlet=False, triplet=False, complex=False, sites=None)¶
- __init__(name, ns, nb, spin_dependent=False, spin_flip=False, singlet=False, triplet=False, complex=False, sites=None)¶
Defines a general bath (constructor)
- Parameters
name (str) – name of the cluster-bath model to be defined
ns (int) – number of sites in the cluster
nb (int) – number of bath orbitals in the cluster
spin_dependent (boolean) – if True, the parameters are spin dependent
spin_flip (boolean) – if True, spin-flip hybridizations are present
singlet (boolean) – if True, defines anomalous singlet hybridizations
triplet (boolean) – if True, defines anomalous triplet hybridizations
complex (boolean) – if True, defines imaginary parts as well, when appropriate
sites ([[int]]) – 2-level list of sites to couple to the bath orbitals (labels from 1 to ns). Format resembles [[site labels to bind to orbital 1], …] .
- starting_values(c=1, e=(0.5, 1.5), hyb=(0.5, 0.2), shyb=(0.1, 0.05), pr=False)¶
returns an initialization string for the bath parameters
- Parameters
c (int) – cluster label (starts at 1)
e ((float,float)) – bounds of the values for the bath energies (absolute value)
hyb ((float,float)) – average and deviation of the normal hybridization parameters
shyb ((float,float)) – average and deviation of the anomalous hybridization parameters
pr (boolean) – prints the starting values if True
- Return str
initialization string
- starting_values_PH(c=1, e=(1, 0.5), hyb=(0.5, 0.2), phi=None, pr=False)¶
returns an initialization string for the bath parameters, in the particle-hole symmetric case.
- varia(H=None, E=None, c=1, spin_down=False)¶
creates a dict of variational parameters to values taken from the hybridization matrix H and the energies E, for cluster c
- Parameters
H (ndarray) – matrix of hybridization values
E (ndarray) – array of energy values
spin_down (boolean) – True for the spin-down values
- Return {str,float}
dict of variational parameters to values