3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-21 11:53:41 +01:00

SumkDFT: check the supplied gf for every shell

in analyse_block_structure_from_gf and
analyse_deg_shells
This commit is contained in:
Gernot J. Kraberger 2018-03-01 16:09:24 +01:00
parent 318c5a36e7
commit a63169e45f

View File

@ -884,7 +884,7 @@ class SumkDFT(object):
""" """
# make a GfImTime from the supplied G # make a GfImTime from the supplied G
if isinstance(G[0]._first(), GfImFreq): if all(isinstance(g_sh._first(), GfImFreq) for g_sh in G):
gf = [BlockGf(name_block_generator = [(name, GfImTime(beta=block.mesh.beta, gf = [BlockGf(name_block_generator = [(name, GfImTime(beta=block.mesh.beta,
indices=block.indices,n_points=len(block.mesh)+1)) for name, block in g_sh]) indices=block.indices,n_points=len(block.mesh)+1)) for name, block in g_sh])
for g_sh in G] for g_sh in G]
@ -892,7 +892,7 @@ class SumkDFT(object):
for name, g in gf[ish]: for name, g in gf[ish]:
g.set_from_inverse_fourier(G[ish][name]) g.set_from_inverse_fourier(G[ish][name])
else: else:
assert isinstance(G[0]._first(), GfImTime), "G must be a BlockGf of either GfImFreq or GfImTime" assert all(isinstance(g_sh._first(), GfImTime) for g_sh in G), "G must be a BlockGf of either GfImFreq or GfImTime"
gf = G gf = G
# initialize the variables # initialize the variables
@ -1003,7 +1003,7 @@ class SumkDFT(object):
return null_space.conjugate().transpose() return null_space.conjugate().transpose()
# make a GfImTime from the supplied G # make a GfImTime from the supplied G
if isinstance(G[0]._first(), GfImFreq): if all(isinstance(g_sh._first(), GfImFreq) for g_sh in G):
gf = [BlockGf(name_block_generator = [(name, GfImTime(beta=block.mesh.beta, gf = [BlockGf(name_block_generator = [(name, GfImTime(beta=block.mesh.beta,
indices=block.indices,n_points=len(block.mesh)+1)) for name, block in g_sh]) indices=block.indices,n_points=len(block.mesh)+1)) for name, block in g_sh])
for g_sh in G] for g_sh in G]
@ -1011,7 +1011,7 @@ class SumkDFT(object):
for name, g in gf[ish]: for name, g in gf[ish]:
g.set_from_inverse_fourier(G[ish][name]) g.set_from_inverse_fourier(G[ish][name])
else: else:
assert isinstance(G[0]._first(), GfImTime), "G must be a BlockGf of either GfImFreq or GfImTime" assert all(isinstance(g_sh._first(), GfImTime) for g_sh in G), "G must be a BlockGf of either GfImFreq or GfImTime"
gf = G gf = G
if include_shells is None: if include_shells is None: