pomerol
2.1
|
Container for instances of TwoParticleGF. More...
#include <TwoParticleGFContainer.hpp>
Data Fields | |
RealType | ReduceResonanceTolerance = 1e-8 |
A difference in energies with magnitude below this value is treated as zero. More... | |
RealType | CoefficientTolerance = 1e-16 |
Minimal magnitude of the coefficient of a term for it to be taken into account. More... | |
RealType | MultiTermCoefficientTolerance = 1e-5 |
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 Member Functions | |
std::shared_ptr< TwoParticleGF > | createElement (IndexCombination4 const &Indices) const |
Protected Member Functions inherited from Pomerol::IndexContainer4< TwoParticleGF, TwoParticleGFContainer > | |
std::set< IndexCombination4 > | enumerateIndices () const |
Protected Attributes | |
StatesClassification const & | S |
Information about invariant subspaces of the Hamiltonian. More... | |
Hamiltonian const & | H |
The Hamiltonian. More... | |
DensityMatrix const & | DM |
Many-body density matrix \(\hat\rho\). More... | |
FieldOperatorContainer const & | Operators |
A set of creation/annihilation operators \(c^\dagger\)/ \(c\). More... | |
Protected Attributes inherited from Pomerol::IndexContainer4< TwoParticleGF, TwoParticleGFContainer > | |
ParticleIndex | NumIndices |
Each of the four indices can change in the range [0; NumIndices[. More... | |
TwoParticleGFContainer const & | Source |
Stored elements are created by calling Source.createElement(Indices). More... | |
std::map< IndexCombination4, ElementWithPermFreq< TwoParticleGF > > | ElementsMap |
Sparse storage for the decorated elements. More... | |
std::map< IndexCombination4, std::shared_ptr< TwoParticleGF > > | NonTrivialElements |
Sparse storage for the plain (non-decorated) elements. More... | |
Friends | |
class | IndexContainer4< TwoParticleGF, TwoParticleGFContainer > |
Container for instances of TwoParticleGF.
This class stores multiple \((i,j,k,l)\)-elements of a fermionic two-particle Matsubara Green's function
\[ \chi_{ijkl}(\omega_{n_1},\omega_{n_2};\omega_{n_3},\omega_{n_1}+\omega_{n_2}-\omega_{n_3}) = \int_0^\beta Tr[\mathcal{T}_\tau \hat\rho c_i(\tau_1)c_j(\tau_2)c^\dagger_k(\tau_3)c^\dagger_l(0)] e^{i\omega_{n_1}\tau_1+i\omega_{n_2}\tau_2-i\omega_{n_3}\tau_3} d\tau_1 d\tau_2 d\tau_3. \]
Definition at line 51 of file TwoParticleGFContainer.hpp.
|
inline |
Constructor.
IndexTypes | Types of indices carried by the creation and annihilation operators. |
[in] | IndexInfo | Map for fermionic operator index tuples. |
[in] | S | Information about invariant subspaces of the Hamiltonian. |
[in] | H | The Hamiltonian. |
[in] | DM | Many-body density matrix \(\hat\rho\). |
[in] | Ops | A set of creation/annihilation operators \(c^\dagger\)/ \(c\). |
Definition at line 69 of file TwoParticleGFContainer.hpp.
std::map<IndexCombination4, std::vector<ComplexType> > Pomerol::TwoParticleGFContainer::computeAll | ( | bool | clearTerms = false , |
FreqVec3 const & | freqs = {} , |
||
MPI_Comm const & | comm = MPI_COMM_WORLD , |
||
bool | split = true |
||
) |
Compute all prepared elements \(\chi_{ijkl}\).
[in] | clearTerms | If true, computed TwoParticleGFPart's of all elements will be destroyed immediately after filling the precomputed value cache. |
[in] | freqs | List of frequency triplets \((\omega_{n_1},\omega_{n_2},\omega_{n_3})\) for value pre-computation. |
[in] | comm | MPI communicator used to parallelize the computation. |
[in] | split | Enable MPI parallelization. |
|
protected |
Create a single element \(\chi_{ijkl}\).
[in] | Indices | Index combination \((i,j,k,l)\). |
void Pomerol::TwoParticleGFContainer::prepareAll | ( | std::set< IndexCombination4 > const & | Indices = {} | ) |
Prepare a set of elements \(\chi_{ijkl}\).
[in] | Indices | Set of index combinations of the elements \(\chi_{ijkl}\) to be prepared. An empty set results in creation of elements for all possible index combinations \((i,j,k,l)\). |
|
friend |
Definition at line 99 of file TwoParticleGFContainer.hpp.
RealType Pomerol::TwoParticleGFContainer::CoefficientTolerance = 1e-16 |
Minimal magnitude of the coefficient of a term for it to be taken into account.
Definition at line 56 of file TwoParticleGFContainer.hpp.
|
protected |
Many-body density matrix \(\hat\rho\).
Definition at line 111 of file TwoParticleGFContainer.hpp.
|
protected |
The Hamiltonian.
Definition at line 109 of file TwoParticleGFContainer.hpp.
RealType Pomerol::TwoParticleGFContainer::MultiTermCoefficientTolerance = 1e-5 |
Minimal magnitude of the coefficient of a term for it to be taken into account with respect to the amount of terms.
Definition at line 59 of file TwoParticleGFContainer.hpp.
|
protected |
A set of creation/annihilation operators \(c^\dagger\)/ \(c\).
Definition at line 113 of file TwoParticleGFContainer.hpp.
RealType Pomerol::TwoParticleGFContainer::ReduceResonanceTolerance = 1e-8 |
A difference in energies with magnitude below this value is treated as zero.
Definition at line 54 of file TwoParticleGFContainer.hpp.
|
protected |
Information about invariant subspaces of the Hamiltonian.
Definition at line 106 of file TwoParticleGFContainer.hpp.