Impurity and bath Operators#
-
class qOperator
qOperator is a class to store the oprator sub-blocks only where this has a finite value. It does not store any thing if the sub-blocks don’t have any finite element. Remember that the
get
function is an std::optional.Public Functions
-
inline auto getMap()
Get the internal Storage object of the
qmatrix
- Returns:
std::map<std::array<size_t, 2>, qmatrix<>>
-
inline void set(const qmatrix<double> &opr, size_t i, size_t j)
Set the
qOperator
for thei
th andj
th symmetry basis.- Parameters:
opr – : Matrix object
i – :
i
th symmetry blockj – :
j
th symmetry block
-
inline std::optional<qmatrix<double>*> get(size_t i, size_t j)
This function returns the
qmatrix
pointer for the sub-blocki
andj
. If the sub-block is not found, it returns an emptystd::optional
.- Parameters:
i – The index of the block to be returned.
j – The index of the block to be returned.
- Returns:
std::optional<qmatrix>
-
inline void unitaryTransform(qOperator &U)
This function unitary transform the
qOperator
by theU
matrix. TheU
matrix is a block-diagonal matrix ofqmatrix
type. TheqOperator
is transformed as \f U^\dagger \cdot qOperator \cdot U \f- Parameters:
U – The unitary matrix to transform the
qOperator
. Usually we get this matrix after diagonalization of the Hamiltonian.
-
inline void clear()
Clear the storage for the operator.
-
inline auto getMap()