pomerol
2.1
|
Part of a many-body Gibbs density matrix. More...
#include <DensityMatrixPart.hpp>
Public Member Functions | |
DensityMatrixPart (HamiltonianPart const &H, RealType beta, RealType GroundEnergy) | |
RealType | computeUnnormalized () |
Compute and store the unnormalized statistical weights \(Z w_s\). More... | |
void | normalize (RealType Z) |
RealType | getWeight (InnerQuantumState s) const |
RealType | getAverageEnergy () const |
Compute the energy averaged over this block, \( \langle E\rangle = \sum_{s\in B} E_s w_s\). More... | |
RealType | getPartialZ () const |
Return the contribution of this block to the partition function, \(Z_B = Z\sum_{s\in B} w_s\). More... | |
void | truncate (RealType Tolerance) |
bool | isRetained () const |
Does this block contain any non-negligible statistical weights? More... | |
Public Member Functions inherited from Pomerol::Thermal | |
Thermal (RealType beta) | |
Additional Inherited Members | |
Data Fields inherited from Pomerol::Thermal | |
const RealType | beta |
Inverse temperature \(\beta\). More... | |
const ComplexType | MatsubaraSpacing |
Spacing between (imaginary) Matsubara frequencies, \(i\pi/\beta\). More... | |
Part of a many-body Gibbs density matrix.
This class represents a part (diagonal block \(B\)) of a many-body Gibbs density matrix
\[ \hat\rho = \frac{e^{-\beta\hat H}}{Z}, \quad Z = Tr[e^{-\beta\hat H}]. \]
Since the matrix is always computed in the eigenbasis of \(\hat H\), it is sufficient to store its eigenvalues (statistical weights \(w_s = e^{-\beta E_s} / Z\)).
Definition at line 39 of file DensityMatrixPart.hpp.
Pomerol::DensityMatrixPart::DensityMatrixPart | ( | HamiltonianPart const & | H, |
RealType | beta, | ||
RealType | GroundEnergy | ||
) |
Constructor.
[in] | H | The respective diagonal block of the Hamiltonian. |
[in] | beta | Inverse temperature \(\beta\). |
[in] | GroundEnergy | The ground state energy of the Hamiltonian. |
RealType Pomerol::DensityMatrixPart::computeUnnormalized | ( | ) |
Compute and store the unnormalized statistical weights \(Z w_s\).
RealType Pomerol::DensityMatrixPart::getAverageEnergy | ( | ) | const |
Compute the energy averaged over this block, \( \langle E\rangle = \sum_{s\in B} E_s w_s\).
|
inline |
Return the contribution of this block to the partition function, \(Z_B = Z\sum_{s\in B} w_s\).
Definition at line 81 of file DensityMatrixPart.hpp.
RealType Pomerol::DensityMatrixPart::getWeight | ( | InnerQuantumState | s | ) | const |
Return a statistical weight \(w_s\).
[in] | s | Index of the weight within this block. |
|
inline |
Does this block contain any non-negligible statistical weights?
Definition at line 89 of file DensityMatrixPart.hpp.
void Pomerol::DensityMatrixPart::normalize | ( | RealType | Z | ) |
Normalize the stored statistical weights by the partition function \(Z\).
[in] | Z | The partition function. |
void Pomerol::DensityMatrixPart::truncate | ( | RealType | Tolerance | ) |
Check if any of the statistical weights is above a given tolerance. If not, mark this block as irrelevant (set the Retained flag to false).
[in] | Tolerance | Statistical weights smaller or equal to this value are considered negligible. |