pomerol  2.1
Public Member Functions
Pomerol::Susceptibility Class Reference

Dynamical susceptibility. More...

#include <Susceptibility.hpp>

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

Public Member Functions

 Susceptibility (StatesClassification const &S, Hamiltonian const &H, MonomialOperator const &A, MonomialOperator const &B, DensityMatrix const &DM)
 
 Susceptibility (Susceptibility const &Chi)
 
void prepare ()
 
void compute ()
 Actually computes the parts. More...
 
void subtractDisconnected ()
 
void subtractDisconnected (ComplexType ave_A, ComplexType ave_B)
 
void subtractDisconnected (EnsembleAverage &EA_A, EnsembleAverage &EA_B)
 
ComplexType operator() (long MatsubaraNumber) const
 
ComplexType operator() (ComplexType z) const
 
ComplexType of_tau (RealType tau) const
 
bool isVanishing () const
 Is this susceptibility identically zero? More...
 
- Public Member Functions inherited from Pomerol::Thermal
 Thermal (RealType beta)
 
- Public Member Functions inherited from Pomerol::ComputableObject
 ComputableObject ()=default
 
StatusEnum getStatus () const
 Return the current computation status. More...
 
void setStatus (StatusEnum Status_in)
 

Additional Inherited Members

- Public Types inherited from Pomerol::ComputableObject
enum  StatusEnum { Constructed, Prepared, Computed }
 Computation status of the object. More...
 
- 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...
 
- Protected Attributes inherited from Pomerol::ComputableObject
StatusEnum Status = Constructed
 Current computation status. More...
 

Detailed Description

Dynamical susceptibility.

This class represents a dynamical susceptibility in the Matsubara space,

\[ \chi(i\omega_n) = \int_0^\beta Tr[\mathcal{T}_\tau \hat\rho A(\tau) B(0)] e^{i\omega_n\tau} d\tau \]

and its connected part,

\[ \tilde{\chi}(i\omega_n) = \chi(i\omega_n) - \beta \langle\hat A \rangle \langle\hat B \rangle. \]

Here, \(\beta\) is inverse temperature and \(\langle\hat A\rangle, \langle\hat B\rangle\) are EnsembleAverage's of boson-like monomial operators \(\hat A, \hat B\).

It is actually a container class for a collection of SusceptibilityPart's (most of the real calculations take place in the parts).

Definition at line 54 of file Susceptibility.hpp.

Constructor & Destructor Documentation

◆ Susceptibility() [1/2]

Pomerol::Susceptibility::Susceptibility ( StatesClassification const &  S,
Hamiltonian const &  H,
MonomialOperator const &  A,
MonomialOperator const &  B,
DensityMatrix const &  DM 
)

Constructor.

Parameters
[in]SInformation about invariant subspaces of the Hamiltonian.
[in]HThe Hamiltonian.
[in]AMonomial operator \(\hat A\).
[in]BMonomial operator \(\hat B\).
[in]DMMany-body density matrix \(\hat\rho\).

◆ Susceptibility() [2/2]

Pomerol::Susceptibility::Susceptibility ( Susceptibility const &  Chi)

Copy-constructor.

Parameters
[in]ChiSusceptibility object to be copied.

Member Function Documentation

◆ compute()

void Pomerol::Susceptibility::compute ( )

Actually computes the parts.

◆ isVanishing()

bool Pomerol::Susceptibility::isVanishing ( ) const
inline

Is this susceptibility identically zero?

Definition at line 132 of file Susceptibility.hpp.

◆ of_tau()

ComplexType Pomerol::Susceptibility::of_tau ( RealType  tau) const
inline

Return the susceptibility value calculated at a given imaginary time \(\tau\).

Parameters
[in]tauImaginary time point.

Definition at line 154 of file Susceptibility.hpp.

◆ operator()() [1/2]

ComplexType Pomerol::Susceptibility::operator() ( ComplexType  z) const
inline

Return the susceptibility value calculated at a given complex frequency \(z\).

Parameters
[in]zThe complex frequency.

Definition at line 141 of file Susceptibility.hpp.

◆ operator()() [2/2]

ComplexType Pomerol::Susceptibility::operator() ( long  MatsubaraNumber) const
inline

Return the susceptibility value calculated at a given Matsubara frequency.

Parameters
[in]MatsubaraNumberIndex of the Matsubara frequency \(n\) ( \(\omega_n=2\pi n/\beta\)).

Definition at line 137 of file Susceptibility.hpp.

◆ prepare()

void Pomerol::Susceptibility::prepare ( )

Select all relevant parts of \(\hat A\) and \(\hat B\) and allocate resources for the SusceptibilityPart's.

◆ subtractDisconnected() [1/3]

void Pomerol::Susceptibility::subtractDisconnected ( )

Activate subtraction of the disconnected part \(\langle\hat A \rangle \langle\hat B \rangle\). \(\langle\hat A \rangle\) and \(\langle\hat B \rangle\) are computed by this class.

◆ subtractDisconnected() [2/3]

void Pomerol::Susceptibility::subtractDisconnected ( ComplexType  ave_A,
ComplexType  ave_B 
)

Activate subtraction of the disconnected part \(\langle\hat A \rangle \langle\hat B \rangle\). Precomputed ensemble averages must be provided by the caller.

Parameters
[in]ave_APrecomputed value of \(\langle\hat A \rangle\).
[in]ave_BPrecomputed value of \(\langle\hat B \rangle\).

◆ subtractDisconnected() [3/3]

void Pomerol::Susceptibility::subtractDisconnected ( EnsembleAverage EA_A,
EnsembleAverage EA_B 
)

Activate subtraction of the disconnected part \(\langle\hat A \rangle \langle\hat B \rangle\). EnsembleAverage objects must must be provided by the caller.

Parameters
[in]EA_APredefined EnsembleAverage class for the operator \(\hat A\).
[in]EA_BPredefined EnsembleAverage class for the operator \(\hat B\).

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