TBTK
TBTK::RPASusceptibilityCalculator Class Reference

Public Types

enum  EnergyType { Real, Imaginary, Complex }
 

Public Member Functions

 RPASusceptibilityCalculator (const MomentumSpaceContext &momentumSpaceContext, SusceptibilityCalculator::Algorithm algorithm=SusceptibilityCalculator::Algorithm::Lindhard)
 
 ~RPASusceptibilityCalculator ()
 
RPASusceptibilityCalculatorcreateSlave ()
 
void precompute (unsigned int numWorkers=129)
 
const MomentumSpaceContextgetMomentumSpaceContext () const
 
void setInteractionAmplitudes (const std::vector< InteractionAmplitude > &interactionAmplitudes)
 
void setEnergyType (EnergyType energyType)
 
EnergyType getEnergyType () const
 
void setEnergies (const std::vector< std::complex< double >> &energies)
 
void setEnergiesAreInversionSymmetric (bool energiesAreInversionSymmetric)
 
bool getEnergiesAreInversionSymmetric () const
 
void setSusceptibilityIsSafeFromPoles (bool susceptibilityIsSafeFromPoles)
 
bool getSusceptibilityIsSafeFromPoles () const
 
void saveSusceptibilities (const std::string &filename) const
 
void loadSusceptibilities (const std::string &filename)
 
std::vector< std::complex< double > > calculateRPASusceptibility (const DualIndex &kDual, const std::vector< int > &orbitalIndices)
 
std::vector< std::complex< double > > calculateRPASusceptibility (const std::vector< double > &k, const std::vector< int > &orbitalIndices)
 
std::vector< std::complex< double > > calculateChargeRPASusceptibility (const DualIndex &kDual, const std::vector< int > &orbitalIndices)
 
std::vector< std::complex< double > > calculateChargeRPASusceptibility (const std::vector< double > &k, const std::vector< int > &orbitalIndices)
 
std::vector< std::complex< double > > calculateSpinRPASusceptibility (const DualIndex &kDual, const std::vector< int > &orbitalIndices)
 
std::vector< std::complex< double > > calculateSpinRPASusceptibility (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)
 

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::RPASusceptibilityCalculator::RPASusceptibilityCalculator ( const MomentumSpaceContext momentumSpaceContext,
SusceptibilityCalculator::Algorithm  algorithm = SusceptibilityCalculator::Algorithm::Lindhard 
)

Constructor.

TBTK::RPASusceptibilityCalculator::~RPASusceptibilityCalculator ( )

Destructor.

Member Function Documentation

std::vector<std::complex<double> > TBTK::RPASusceptibilityCalculator::calculateChargeRPASusceptibility ( const DualIndex kDual,
const std::vector< int > &  orbitalIndices 
)

Calculate charge RPA Susceptibility.

std::vector< std::complex< double > > TBTK::RPASusceptibilityCalculator::calculateChargeRPASusceptibility ( const std::vector< double > &  k,
const std::vector< int > &  orbitalIndices 
)
inline

Calculate charge RPA Susceptibility.

std::vector<std::complex<double> > TBTK::RPASusceptibilityCalculator::calculateRPASusceptibility ( const DualIndex kDual,
const std::vector< int > &  orbitalIndices 
)

Calculate RPA Susceptibility.

std::vector< std::complex< double > > TBTK::RPASusceptibilityCalculator::calculateRPASusceptibility ( const std::vector< double > &  k,
const std::vector< int > &  orbitalIndices 
)
inline

Calculate RPA Susceptibility.

std::vector<std::complex<double> > TBTK::RPASusceptibilityCalculator::calculateSpinRPASusceptibility ( const DualIndex kDual,
const std::vector< int > &  orbitalIndices 
)

Calculate spin RPA Susceptibility.

std::vector< std::complex< double > > TBTK::RPASusceptibilityCalculator::calculateSpinRPASusceptibility ( const std::vector< double > &  k,
const std::vector< int > &  orbitalIndices 
)
inline

Calculate spin RPA Susceptibility.

RPASusceptibilityCalculator* TBTK::RPASusceptibilityCalculator::createSlave ( )

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

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

Get whether the susceptibility energies are inversion symmetric.

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

Get energy type.

bool TBTK::RPASusceptibilityCalculator::getSusceptibilityIsSafeFromPoles ( ) const
inline

Get whether the susceptibility is known to only be evaluated at points away from poles.

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

Load susceptibilities.

void TBTK::RPASusceptibilityCalculator::precompute ( unsigned int  numWorkers = 129)

Precompute susceptibilities. Will calculate the susceptibility for all values using a parallel algorithm. Can speed up calculations if most of the susceptibilities are needed.

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

Set the number of summation energies to use in Mode::Matsubara. Save susceptibilities.

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

Set the energies for which the susceptibility should be calculated.

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

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

Important note: Only set this to true if the energies passed to setSusceptibilityEnergies() 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::RPASusceptibilityCalculator::setEnergyType ( EnergyType  energyType)
inline

Set the mode used to calculate the susceptibility. Get the mode used to calculate the susceptibility. Set energy type.

void TBTK::RPASusceptibilityCalculator::setInteractionAmplitudes ( const std::vector< InteractionAmplitude > &  interactionAmplitudes)
inline

Set interaction amplitudes.

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

Set J.

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

Set Jp.

void TBTK::RPASusceptibilityCalculator::setSusceptibilityIsSafeFromPoles ( bool  susceptibilityIsSafeFromPoles)
inline

Set to true if the susceptibility is known to only be evaluated at points away from poles.

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

Set U.

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

Set Up.


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