3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-23 04:43:42 +01:00

[doc] block_structure: small fixes

This commit is contained in:
Gernot J. Kraberger 2018-09-11 14:30:17 +02:00 committed by Hermann Schnait
parent e9bfb3ed2c
commit ff40e8e0f0
2 changed files with 45 additions and 9 deletions

View File

@ -19,4 +19,3 @@ The block structure can also be written to and read from HDF files.
.. autoclass:: triqs_dft_tools.block_structure.BlockStructure
:members:
:show-inheritance:

View File

@ -84,6 +84,9 @@ class BlockStructure(object):
where the :math:`G_i` are the Green's functions of the block,
and the functions :math:`C_i` conjugate their argument if the bool
``conj_i`` is ``True``.
corr_to_inequiv : list
a list where, for each correlated shell, the index of the corresponding
inequivalent correlated shell is given
transformation : list of numpy.array or list of dict
a list with entries for each ``ish`` giving transformation matrices
that are used on the Green's function in ``sumk`` space when before
@ -191,6 +194,9 @@ class BlockStructure(object):
@property
def inequiv_to_corr(self):
""" A list mapping an inequivalent correlated shell to a correlated shell
"""
if self.corr_to_inequiv is None:
return None
N_solver = len(np.unique(self.corr_to_inequiv))
@ -209,6 +215,12 @@ class BlockStructure(object):
@property
def effective_transformation_sumk(self):
""" Return the effective transformation matrix
A list of dicts, one for every correlated shell. In the dict,
there is a transformation matrix (as numpy array) for each
block in sumk space, that is used to transform the block.
"""
trans = copy.deepcopy(self.transformation)
if self.gf_struct_sumk is None:
raise Exception('gf_struct_sumk not set.')
@ -253,6 +265,31 @@ class BlockStructure(object):
@property
def effective_transformation_solver(self):
""" Return the effective transformation matrix
A list of dicts, one for every inequivalent correlated shell.
In the dict, there is a transformation matrix (as numpy array)
for each block in solver space, that is used to transform from
the sumk block (see :py:meth:`.solver_to_sumk_block`) to the
solver block.
For a solver block ``b`` for inequivalent correlated shell ``ish``,
the corresponding block of the solver Green's function is::
# the effective transformation matrix for the block
T = block_structure.effective_transformation_solver[ish][b]
# the index of the correlated shell
icrsh = block_structure.inequiv_to_corr[ish]
# the name of the corresponding sumk block
block_sumk = block_structure.solver_to_sumk_block[icrsh][b]
# transform the Green's function
G_solver[ish][b].from_L_G_R(T, G_sumk[icrsh][block_sumk], T.conjugate().transpose())
The functionality of that code block is implemented in
:py:meth:`.convert_gf` (i.e., you don't need to use this directly).
"""
eff_trans_sumk = self.effective_transformation_sumk
ets = []
@ -512,8 +549,8 @@ class BlockStructure(object):
----------
ish : int
shell index
If ``space='solver', the index of the of the inequivalent correlated shell,
if ``space='sumk'`, the index of the correlated shell
If ``space='solver'``, the index of the of the inequivalent correlated shell,
if ``space='sumk'``, the index of the correlated shell
gf_function : constructor
function used to construct the Gf objects constituting the
individual blocks; default: GfImFreq