pomerol  2.1
Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes | Friends
Pomerol::ThreePointSusceptibilityContainer Class Reference

Container for instances of ThreePointSusceptibility. More...

#include <ThreePointSusceptibilityContainer.hpp>

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

Public Member Functions

template<typename... IndexTypes>
 ThreePointSusceptibilityContainer (Channel channel, IndexClassification< IndexTypes... > const &IndexInfo, StatesClassification const &S, Hamiltonian const &H, DensityMatrix const &DM, FieldOperatorContainer const &Ops)
 
void prepareAll (std::set< IndexCombination4 > const &Indices={})
 
std::map< IndexCombination4, std::vector< ComplexType > > computeAll (bool clearTerms=false, FreqVec2 const &freqs={}, MPI_Comm const &comm=MPI_COMM_WORLD)
 
- Public Member Functions inherited from Pomerol::IndexContainer4< ThreePointSusceptibility, ThreePointSusceptibilityContainer >
 IndexContainer4 (ThreePointSusceptibilityContainer const &Source, IndexClassification< IndexTypes... > const &IndexInfo)
 
void fill (std::set< IndexCombination4 > Indices=std::set< IndexCombination4 >())
 
ElementWithPermFreq< ThreePointSusceptibility > & create (IndexCombination4 const &Indices)
 
bool isInContainer (IndexCombination4 const &Indices) const
 
bool isInContainer (ParticleIndex Index1, ParticleIndex Index2, ParticleIndex Index3, ParticleIndex Index4) const
 
ElementWithPermFreq< ThreePointSusceptibility > & operator() (IndexCombination4 const &Indices)
 
ElementWithPermFreq< ThreePointSusceptibility > & operator() (ParticleIndex Index1, ParticleIndex Index2, ParticleIndex Index3, ParticleIndex Index4)
 
- Public Member Functions inherited from Pomerol::Thermal
 Thermal (RealType beta)
 

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...
 
- 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< ThreePointSusceptibilitycreateElement (IndexCombination4 const &Indices) const
 
- Protected Member Functions inherited from Pomerol::IndexContainer4< ThreePointSusceptibility, ThreePointSusceptibilityContainer >
std::set< IndexCombination4enumerateIndices () const
 

Protected Attributes

Channel channel
 Channel of \(\chi^{(3)}\). More...
 
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< ThreePointSusceptibility, ThreePointSusceptibilityContainer >
ParticleIndex NumIndices
 Each of the four indices can change in the range [0; NumIndices[. More...
 
ThreePointSusceptibilityContainer const & Source
 Stored elements are created by calling Source.createElement(Indices). More...
 
std::map< IndexCombination4, ElementWithPermFreq< ThreePointSusceptibility > > ElementsMap
 Sparse storage for the decorated elements. More...
 
std::map< IndexCombination4, std::shared_ptr< ThreePointSusceptibility > > NonTrivialElements
 Sparse storage for the plain (non-decorated) elements. More...
 

Friends

class IndexContainer4< ThreePointSusceptibility, ThreePointSusceptibilityContainer >
 

Detailed Description

Container for instances of ThreePointSusceptibility.

This class stores multiple \((i, j, k, l)\)-elements of a 3-point susceptibility.

Definition at line 44 of file ThreePointSusceptibilityContainer.hpp.

Constructor & Destructor Documentation

◆ ThreePointSusceptibilityContainer()

template<typename... IndexTypes>
Pomerol::ThreePointSusceptibilityContainer::ThreePointSusceptibilityContainer ( Channel  channel,
IndexClassification< IndexTypes... > const &  IndexInfo,
StatesClassification const &  S,
Hamiltonian const &  H,
DensityMatrix const &  DM,
FieldOperatorContainer const &  Ops 
)
inline

Constructor.

Template Parameters
IndexTypesTypes of indices carried by the creation and annihilation operators.
Parameters
[in]channelChannel of the 3-point susceptibility.
[in]IndexInfoMap for fermionic operator index tuples.
[in]SInformation about invariant subspaces of the Hamiltonian.
[in]HThe Hamiltonian.
[in]DMMany-body density matrix \(\hat\rho\).
[in]OpsA set of creation/annihilation operators \(c^\dagger\)/ \(c\).

Definition at line 62 of file ThreePointSusceptibilityContainer.hpp.

Member Function Documentation

◆ computeAll()

std::map<IndexCombination4, std::vector<ComplexType> > Pomerol::ThreePointSusceptibilityContainer::computeAll ( bool  clearTerms = false,
FreqVec2 const &  freqs = {},
MPI_Comm const &  comm = MPI_COMM_WORLD 
)

Compute all prepared elements \(\chi^{(3)}_{ijkl}\).

Parameters
[in]clearTermsIf true, computed ThreePointSusceptibilityPart's of all elements will be destroyed immediately after filling the precomputed value cache.
[in]freqsList of frequency duplets \((\omega_{n_1},\omega_{n_2})\) for value pre-computation.
[in]commMPI communicator used to parallelize the computation.
Precondition
prepareAll() has been called.

◆ createElement()

std::shared_ptr<ThreePointSusceptibility> Pomerol::ThreePointSusceptibilityContainer::createElement ( IndexCombination4 const &  Indices) const
protected

Create a single element \(\chi^{(3)}_{ijkl}\).

Parameters
[in]IndicesIndex combination \((i,j,k,l)\).

◆ prepareAll()

void Pomerol::ThreePointSusceptibilityContainer::prepareAll ( std::set< IndexCombination4 > const &  Indices = {})

Prepare a set of elements \(\chi^{(3)}_{ijkl}\).

Parameters
[in]IndicesSet of index combinations of the elements \(\chi^{(3)}_{ijkl}\) to be prepared. An empty set results in creation of elements for all possible index combinations \((i,j,k,l)\).

Friends And Related Function Documentation

◆ IndexContainer4< ThreePointSusceptibility, ThreePointSusceptibilityContainer >

Definition at line 90 of file ThreePointSusceptibilityContainer.hpp.

Field Documentation

◆ channel

Channel Pomerol::ThreePointSusceptibilityContainer::channel
protected

Channel of \(\chi^{(3)}\).

Definition at line 97 of file ThreePointSusceptibilityContainer.hpp.

◆ CoefficientTolerance

RealType Pomerol::ThreePointSusceptibilityContainer::CoefficientTolerance = 1e-16

Minimal magnitude of the coefficient of a term for it to be taken into account.

Definition at line 51 of file ThreePointSusceptibilityContainer.hpp.

◆ DM

DensityMatrix const& Pomerol::ThreePointSusceptibilityContainer::DM
protected

Many-body density matrix \(\hat\rho\).

Definition at line 104 of file ThreePointSusceptibilityContainer.hpp.

◆ H

Hamiltonian const& Pomerol::ThreePointSusceptibilityContainer::H
protected

The Hamiltonian.

Definition at line 102 of file ThreePointSusceptibilityContainer.hpp.

◆ Operators

FieldOperatorContainer const& Pomerol::ThreePointSusceptibilityContainer::Operators
protected

A set of creation/annihilation operators \(c^\dagger\)/ \(c\).

Definition at line 106 of file ThreePointSusceptibilityContainer.hpp.

◆ ReduceResonanceTolerance

RealType Pomerol::ThreePointSusceptibilityContainer::ReduceResonanceTolerance = 1e-8

A difference in energies with magnitude below this value is treated as zero.

Definition at line 49 of file ThreePointSusceptibilityContainer.hpp.

◆ S

StatesClassification const& Pomerol::ThreePointSusceptibilityContainer::S
protected

Information about invariant subspaces of the Hamiltonian.

Definition at line 100 of file ThreePointSusceptibilityContainer.hpp.


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