pomerol  2.1
Public Member Functions

Part of a many-body Gibbs density matrix. More...

#include <DensityMatrixPart.hpp>

Inheritance diagram for Pomerol::DensityMatrixPart:
Inheritance graph
[legend]
Collaboration diagram for Pomerol::DensityMatrixPart:
Collaboration graph
[legend]

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...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ DensityMatrixPart()

Pomerol::DensityMatrixPart::DensityMatrixPart ( HamiltonianPart const &  H,
RealType  beta,
RealType  GroundEnergy 
)

Constructor.

Parameters
[in]HThe respective diagonal block of the Hamiltonian.
[in]betaInverse temperature \(\beta\).
[in]GroundEnergyThe ground state energy of the Hamiltonian.

Member Function Documentation

◆ computeUnnormalized()

RealType Pomerol::DensityMatrixPart::computeUnnormalized ( )

Compute and store the unnormalized statistical weights \(Z w_s\).

◆ getAverageEnergy()

RealType Pomerol::DensityMatrixPart::getAverageEnergy ( ) const

Compute the energy averaged over this block, \( \langle E\rangle = \sum_{s\in B} E_s w_s\).

◆ getPartialZ()

RealType Pomerol::DensityMatrixPart::getPartialZ ( ) const
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.

◆ getWeight()

RealType Pomerol::DensityMatrixPart::getWeight ( InnerQuantumState  s) const

Return a statistical weight \(w_s\).

Parameters
[in]sIndex of the weight within this block.

◆ isRetained()

bool Pomerol::DensityMatrixPart::isRetained ( ) const
inline

Does this block contain any non-negligible statistical weights?

Definition at line 89 of file DensityMatrixPart.hpp.

◆ normalize()

void Pomerol::DensityMatrixPart::normalize ( RealType  Z)

Normalize the stored statistical weights by the partition function \(Z\).

Parameters
[in]ZThe partition function.

◆ truncate()

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).

Parameters
[in]ToleranceStatistical weights smaller or equal to this value are considered negligible.

The documentation for this class was generated from the following file: