TBTK
TBTK::ElectronFluctuationVertexCalculator Class Reference

Public Types

enum  EnergyType { Real, Imaginary, Complex }
 

Public Member Functions

 ElectronFluctuationVertexCalculator (const MomentumSpaceContext &momentumSpaceContext)
 
 ~ElectronFluctuationVertexCalculator ()
 
ElectronFluctuationVertexCalculatorcreateSlave ()
 
const MomentumSpaceContextgetMomentumSpaceContext () const
 
void setEnergyType (EnergyType energyType)
 
EnergyType getEnergyType () const
 
void setEnergies (const std::vector< std::complex< double >> &energies)
 
void setEnergiesAreInversionSymmetric (bool energiesAreInversionSymmetric)
 
bool getEnergiesAreInversionSymmetric () const
 
std::vector< std::complex< double > > calculateSelfEnergyVertex (const std::vector< double > &k, const std::vector< int > &orbitalIndices)
 
void setU (std::complex< double > U)
 
void setUp (std::complex< double > Up)
 
void setJ (std::complex< double > J)
 
void setJp (std::complex< double > Jp)
 
void generateInteractionAmplitudes ()
 
void saveSusceptibilities (const std::string &filename) const
 
void loadSusceptibilities (const std::string &filename)
 

Member Enumeration Documentation

Enum class for indicating whether the energy is an arbitrary comlex number, or if it is restricted to the real or imaginary axis.

Constructor & Destructor Documentation

TBTK::ElectronFluctuationVertexCalculator::ElectronFluctuationVertexCalculator ( const MomentumSpaceContext momentumSpaceContext)

Constructor.

TBTK::ElectronFluctuationVertexCalculator::~ElectronFluctuationVertexCalculator ( )

Destructor.

Member Function Documentation

std::vector<std::complex<double> > TBTK::ElectronFluctuationVertexCalculator::calculateSelfEnergyVertex ( const std::vector< double > &  k,
const std::vector< int > &  orbitalIndices 
)

Calculate self-energy vertex.

ElectronFluctuationVertexCalculator* TBTK::ElectronFluctuationVertexCalculator::createSlave ( )

Create slave ElectronFluctuationVertexCalculator. The slave reuses internal lookup tables used to speed up the calculations and should not be used after the generating master have been destructed.

void TBTK::ElectronFluctuationVertexCalculator::generateInteractionAmplitudes ( )

Generate interaction amplitudes. Can be called multiple times and will only regenerate the interaction amplitudes when needed.

bool TBTK::ElectronFluctuationVertexCalculator::getEnergiesAreInversionSymmetric ( ) const
inline

Get wheter the energies are inversion symmetric.

ElectronFluctuationVertexCalculator::EnergyType TBTK::ElectronFluctuationVertexCalculator::getEnergyType ( ) const
inline

Get energy type.

const MomentumSpaceContext & TBTK::ElectronFluctuationVertexCalculator::getMomentumSpaceContext ( ) const
inline

Get momentum cpsace context.

void TBTK::ElectronFluctuationVertexCalculator::loadSusceptibilities ( const std::string &  filename)
inline

Load susceptibilities.

void TBTK::ElectronFluctuationVertexCalculator::saveSusceptibilities ( const std::string &  filename) const
inline

Save susceptibilities.

void TBTK::ElectronFluctuationVertexCalculator::setEnergies ( const std::vector< std::complex< double >> &  energies)
inline

Set the energies for which the self-energy should be calculated.

void TBTK::ElectronFluctuationVertexCalculator::setEnergiesAreInversionSymmetric ( bool  energiesAreInversionSymmetric)
inline

Set to true if the energies can be assumed to be inversion symmetric in the complex plane.

Important note: Only set this to true if the energies passed to setEnergies() are on the form (-E_n, -E_{n-1}, ..., E_{n-1}, E_{n}. Setting this flag to true without fullfilling this condition will result in undefined behavior.

void TBTK::ElectronFluctuationVertexCalculator::setEnergyType ( EnergyType  energyType)
inline

Set self-energy energy type.

void TBTK::ElectronFluctuationVertexCalculator::setJ ( std::complex< double >  J)
inline

Set J.

void TBTK::ElectronFluctuationVertexCalculator::setJp ( std::complex< double >  Jp)
inline

Set Jp.

void TBTK::ElectronFluctuationVertexCalculator::setU ( std::complex< double >  U)
inline

Set U.

void TBTK::ElectronFluctuationVertexCalculator::setUp ( std::complex< double >  Up)
inline

Set Up.


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