triqs.gfs.backwd_compat.gf_retime.GfReTime.is_gf_hermitian
- GfReTime.is_gf_hermitian(*args, **kw)
Dispatched C++ function(s).
[1] (g: Gf[MeshImFreq, 0], tolerance: float = 1e-12) -> bool [2] (g: Gf[MeshImFreq, 2], tolerance: float = 1e-12) -> bool [3] (g: Gf[MeshImFreq, 4], tolerance: float = 1e-12) -> bool [4] (g: BlockGf[MeshImFreq, 0], tolerance: float = 1e-12) -> bool [5] (g: BlockGf[MeshImFreq, 2], tolerance: float = 1e-12) -> bool [6] (g: BlockGf[MeshImFreq, 4], tolerance: float = 1e-12) -> bool [7] (g: Block2Gf[MeshImFreq, 0], tolerance: float = 1e-12) -> bool [8] (g: Block2Gf[MeshImFreq, 2], tolerance: float = 1e-12) -> bool [9] (g: Block2Gf[MeshImFreq, 4], tolerance: float = 1e-12) -> bool [10] (g: Gf[MeshImTime, 0], tolerance: float = 1e-12) -> bool [11] (g: Gf[MeshImTime, 2], tolerance: float = 1e-12) -> bool [12] (g: Gf[MeshImTime, 4], tolerance: float = 1e-12) -> bool [13] (g: BlockGf[MeshImTime, 0], tolerance: float = 1e-12) -> bool [14] (g: BlockGf[MeshImTime, 2], tolerance: float = 1e-12) -> bool [15] (g: BlockGf[MeshImTime, 4], tolerance: float = 1e-12) -> bool [16] (g: Block2Gf[MeshImTime, 0], tolerance: float = 1e-12) -> bool [17] (g: Block2Gf[MeshImTime, 2], tolerance: float = 1e-12) -> bool [18] (g: Block2Gf[MeshImTime, 4], tolerance: float = 1e-12) -> bool
Test whether a Green’s function satisfies the hermitian symmetry up to a tolerance \(\epsilon\).
Depending on the mesh and target rank, one of the following relations is checked:
\(G(i\omega) \approx \frac{1}{2} [ G(i\omega) + G^*(-i\omega) ]\)
\(G(\tau) \approx \frac{1}{2} [ G(\tau) + G^*(\tau) ]\)
\(G_{i,j}(i\omega) \approx \frac{1}{2} [ G_{i,j}(i\omega) + G_{j,i}^*(i\omega) ]\)
\(G_{i,j}(\tau) \approx \frac{1}{2} [ G_{i,j}(\tau) + G_{j,i}^*(\tau) ]\)
\(G_{i,j,k,l}(i\omega) \approx \frac{1}{2} [ G_{i,j,k,l}(i\omega)] + G_{k,l,i,j}^*(i\omega) ]\)
\(G_{i,j,k,l}(\tau) \approx \frac{1}{2} [ G_{i,j,k,l}(\tau) + G_{k,l,i,j}(\tau) ]\)
For block Green’s functions, the check is applied block-wise.
- Parameters:
- gGf[MeshImFreq, 0], Gf[MeshImFreq, 2], Gf[MeshImFreq, 4], BlockGf[MeshImFreq, 0], BlockGf[MeshImFreq, 2], BlockGf[MeshImFreq, 4], Block2Gf[MeshImFreq, 0], Block2Gf[MeshImFreq, 2], Block2Gf[MeshImFreq, 4], Gf[MeshImTime, 0], Gf[MeshImTime, 2], Gf[MeshImTime, 4], BlockGf[MeshImTime, 0], BlockGf[MeshImTime, 2], BlockGf[MeshImTime, 4], Block2Gf[MeshImTime, 0], Block2Gf[MeshImTime, 2], Block2Gf[MeshImTime, 4]
The Green’s function to check.
- tolerancefloat
Tolerance \(\epsilon\) for the check (default \(10^{-12}\)).
- Returns:
- bool
True if the property holds at every point of the mesh.