postprocessing.maxent_sigma
Analytic continuation of the self-energy using maxent on an auxiliary Green’s function.
Reads Sigma(i omega) from the h5 archive and writes Sigma(omega) back. See the docstring of main() for more information.
mpi parallelized for the maxent routine over all blocks and for the continuator extraction over omega points.
Author: Maximilian Merkel, Materials Theory Group, ETH Zurich, 2020 - 2022
- Warnings:
When using this on self-energies with SOC, please check that the formalism is correct, in particular the Kramers-Kronig relation.
- postprocessing.maxent_sigma.main(external_path, iteration=None, continuator_type='inversion_sigmainf', mu_zero=None, maxent_error=0.02, omega_min=-12.0, omega_max=12.0, n_points_maxent=400, n_points_alpha=50, analyzer='LineFitAnalyzer', n_points_interp=2000, n_points_final=1000)[source]
Main function that reads the Matsubara self-energy from h5, analytically continues it, writes the results back to the h5 archive and also returns the results.
Function parallelizes using MPI over impurities and blocks.
- Parameters:
- external_pathstring
Path to the h5 archive to read from and write to
- iterationint/string
Iteration to read from and write to. Default to last_iter
- continuator_typestring
Type of continuator to use, one of ‘inversion_sigmainf’, ‘inversion_dc’, ‘direct’
- maxent_errorfloat
The error that is used for the analyzers.
- mu_zerofloat, default=None
chemical potential at the single particle level, if not given read from h5 archive
- omega_minfloat
Lower end of range where Sigma is being continued. Range has to comprise all features of the self-energy because the real part of it comes from the Kramers-Kronig relation applied to the auxiliary spectral function. For example, if the real-frequency self-energy bends at omega_min or omega_max, there are neglegcted features and the range should be extended.
- omega_maxfloat
Upper end of range where Sigma is being continued. See omega_min.
- n_points_maxentint
Number of omega points on the hyperbolic mesh used in analytically continuing the auxiliary GF
- n_points_alphaint
Number of points that the MaxEnt alpha parameter is varied on logarithmically
- analyzerstring
Analyzer used int MaxEnt, one of ‘LineFitAnalyzer’, ‘Chi2CurvatureAnalyzer’, ‘ClassicAnalyzer’, ‘EntropyAnalyzer’, ‘BryanAnalyzer’
- n_points_interpint
Number of points where auxiliary GF is interpolated to integrate over it for the Kramers-Kronig relation
- n_points_finalint
Number of omega points the complex auxiliary GF and therefore the continued self-energy has on a linear grid between omega_min and omega_max
- Returns:
- sigma_wlist of triqs.gf.BlockGf
Sigma(omega) per inequivalent shell
- g_aux_wlist of triqs.gf.BlockGf
G_aux(omega) per inequivalent shell
- Raises:
- NotImplementedError
– When a wrong continuator type or maxent analyzer is chosen – For direct continuator: when the self energy contains blocks larger than 1x1 (no off-diagonal continuation possible) – For inversion_dc continuator: when the DC is not a diagonal matrix with the same entry for all blocks of an impurity. Otherwise, issues like the global frame violating the block structure would come up.