dmft_tools.greens_functions_mixer

dmft_tools.greens_functions_mixer._bgf_to_vec(bgf, deg_shells=None)[source]

flattens a BlockGf to a 1d numpy array if deg_shells is given, only the first block of each degenerate shell is stored

dmft_tools.greens_functions_mixer._broyden_update(broyler, general_params, deg_shells, G0_freq, G0_freq_previous)[source]

calculates the broyden update of G0 using the algorithm presented in: doi.org/10.1103/PhysRevB.80.125125 (Rok Zitko) & doi.org/10.1103/PhysRevB.38.12807 (D.D. Johnson)

optimize function to find roots: F(G0)=dmft_step(G0) - G0 = 0 where dmft_step gives back the normal defined G0=inverse(Gloc^-1 - Sigma)

Parameters:
broyler: dict

dict containing the broyden variables; an empty history starts a new Broyden sequence with a linear mixing step

general_paramters: general params dict
Returns:
dmft_tools.greens_functions_mixer._mixed_blocks(bgf, deg_shells)[source]

groups of block names whose first entry is stored in the Broyden vector; the other entries of a group are copies of the first. Blocks that are in no degenerate shell form a group of their own.