| 
    pomerol
    2.2
    
   | 
 
3-point fermion-boson susceptibility in the Matsubara representation. More...
#include <ThreePointSusceptibility.hpp>


Public Member Functions | |
| ThreePointSusceptibility (Channel channel, StatesClassification const &S, Hamiltonian const &H, CreationOperator const &CX1, AnnihilationOperator const &C2, CreationOperator const &CX3, AnnihilationOperator const &C4, DensityMatrix const &DM) | |
| void | prepare () | 
| Select relevant parts of \(c^\dagger_1, c_2, c^\dagger_3, c_4\) and allocate resources for the parts.  More... | |
| std::vector< ComplexType > | compute (bool clear=false, FreqVec2 const &freqs={}, MPI_Comm const &comm=MPI_COMM_WORLD) | 
| ParticleIndex | getIndex (std::size_t Position) const | 
| ComplexType | operator() (ComplexType z1, ComplexType z2) const | 
| ComplexType | operator() (long MatsubaraNumber1, long MatsubaraNumber2) 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) | 
Data Fields | |
| RealType | PoleResolution = 1e-8 | 
| Lehmann representation: Maximal distance between energy poles to be consider coinciding.  More... | |
| RealType | CoefficientTolerance = 1e-16 | 
| Lehmann representation: Maximal magnitude of a term coefficient to be considered negligible.  More... | |
  Data Fields inherited from Pomerol::Thermal | |
| RealType const | beta | 
| Inverse temperature \(\beta\).  More... | |
| ComplexType const | MatsubaraSpacing | 
| Spacing between (imaginary) Matsubara frequencies, \(i\pi/\beta\).  More... | |
Protected Attributes | |
| bool | Vanishing = true | 
| A flag that marks an identically vanishing susceptibility.  More... | |
  Protected Attributes inherited from Pomerol::ComputableObject | |
| StatusEnum | Status = Constructed | 
| Current computation status.  More... | |
Friends | |
| class | ThreePointSusceptibilityContainer | 
Additional Inherited Members | |
  Public Types inherited from Pomerol::ComputableObject | |
| enum | StatusEnum { Constructed , Prepared , Computed } | 
| Computation status of the object.  More... | |
3-point fermion-boson susceptibility in the Matsubara representation.
The susceptibility can be defined in one of the following three channels.
\[\chi^{(3)}_{pp}(\omega_{n_1},\omega_{n_2}) = \int_0^\beta d\tau_1 d\tau_2 e^{-i\omega_{n_1}\tau_1} e^{-i\omega_{n_2}\tau_2} Tr[\mathcal{T}_\tau \hat\rho c^\dagger_1(\tau_1) c_2(0^+) c^\dagger_3(\tau_2) c_4(0)]\]
\[\chi^{(3)}_{ph}(\omega_{n_1},\omega_{n_2}) = \int_0^\beta d\tau_1 d\tau_2 e^{-i\omega_{n_1}\tau_1} e^{i\omega_{n_2}\tau_2} Tr[\mathcal{T}_\tau \hat\rho c^\dagger_1(\tau_1) c_2(\tau_2) c^\dagger_3(0^+) c_4(0)]\]
\[\chi^{(3)}_{\bar{ph}}(\omega_{n_1},\omega_{n_2}) = \int_0^\beta d\tau_1 d\tau_2 e^{-i\omega_{n_1}\tau_1} e^{i\omega_{n_2}\tau_2} Tr[\mathcal{T}_\tau \hat\rho c^\dagger_1(\tau_1) c_2(0) c^\dagger_3(0^+) c_4(\tau_2)]\]
These susceptibilities can be interpreted as 3-point correlators of two fermionic operators \(\hat F_1(\omega_{n_1}), \hat F_2(\omega_{n_2})\) and one quadratic operator \(\hat B\).
It is actually a container class for a collection of ThreePointSusceptibilityPart's (most of the real calculations take place in the parts).
Definition at line 67 of file ThreePointSusceptibility.hpp.
| Pomerol::ThreePointSusceptibility::ThreePointSusceptibility | ( | Channel | channel, | 
| StatesClassification const & | S, | ||
| Hamiltonian const & | H, | ||
| CreationOperator const & | CX1, | ||
| AnnihilationOperator const & | C2, | ||
| CreationOperator const & | CX3, | ||
| AnnihilationOperator const & | C4, | ||
| DensityMatrix const & | DM | ||
| ) | 
Constructor
| [in] | channel | Channel of the 3-point susceptibility. | 
| [in] | S | Information about invariant subspaces of the Hamiltonian. | 
| [in] | H | The Hamiltonian. | 
| [in] | CX1 | The creation operator \(c^\dagger_1\). | 
| [in] | C2 | The annihilation operator \(c_2\). | 
| [in] | CX3 | The creation operator \(c^\dagger_3\). | 
| [in] | C4 | The annihilation operator \(c_4\). | 
| [in] | DM | Many-body density matrix \(\hat\rho\). | 
| std::vector<ComplexType> Pomerol::ThreePointSusceptibility::compute | ( | bool | clear = false,  | 
        
| FreqVec2 const & | freqs = {},  | 
        ||
| MPI_Comm const & | comm = MPI_COMM_WORLD  | 
        ||
| ) | 
Compute the parts in parallel and fill the internal cache of precomputed values.
| [in] | clear | If true, computed ThreePointSusceptibilityPart's will be destroyed immediately after filling the precomputed value cache. | 
| [in] | freqs | List of frequency duplets \((\omega_{n_1},\omega_{n_2})\). | 
| [in] | comm | MPI communicator used to parallelize the computation. | 
| ParticleIndex Pomerol::ThreePointSusceptibility::getIndex | ( | std::size_t | Position | ) | const | 
Returns the single particle index of one of the operators \(c^\dagger_1, c_2, c^\dagger_3, c_4\).
| [in] | Position | Position of the requested operator, 0–3. | 
      
  | 
  inline | 
Is this susceptibility identically zero?
Definition at line 150 of file ThreePointSusceptibility.hpp.
      
  | 
  inline | 
Return the value of the 3-point susceptibility calculated at a given complex frequency duplet. This method ignores the precomputed value cache.
| [in] | z1 | First frequency \(z_1\). | 
| [in] | z2 | Second frequency \(z_2\). | 
Definition at line 162 of file ThreePointSusceptibility.hpp.
      
  | 
  inline | 
Return the value of the 3-point susceptibility calculated a given Matsubara frequency duplet.
| [in] | MatsubaraNumber1 | Index of the first Matsubara frequency \(n_1\) ( \(\omega_{n_1}=\pi(2n_1+1)/\beta\)). | 
| [in] | MatsubaraNumber2 | Index of the second Matsubara frequency \(n_2\) ( \(\omega_{n_2}=\pi(2n_2+1)/\beta\)). | 
Definition at line 174 of file ThreePointSusceptibility.hpp.
| void Pomerol::ThreePointSusceptibility::prepare | ( | ) | 
Select relevant parts of \(c^\dagger_1, c_2, c^\dagger_3, c_4\) and allocate resources for the parts.
      
  | 
  friend | 
Definition at line 69 of file ThreePointSusceptibility.hpp.
| RealType Pomerol::ThreePointSusceptibility::CoefficientTolerance = 1e-16 | 
Lehmann representation: Maximal magnitude of a term coefficient to be considered negligible.
Definition at line 100 of file ThreePointSusceptibility.hpp.
| RealType Pomerol::ThreePointSusceptibility::PoleResolution = 1e-8 | 
Lehmann representation: Maximal distance between energy poles to be consider coinciding.
Definition at line 98 of file ThreePointSusceptibility.hpp.
      
  | 
  protected | 
A flag that marks an identically vanishing susceptibility.
Definition at line 94 of file ThreePointSusceptibility.hpp.