TBTK
TBTK::MatsubaraSusceptibilityCalculator Class Reference
Inheritance diagram for TBTK::MatsubaraSusceptibilityCalculator:
TBTK::SusceptibilityCalculator

Public Member Functions

 MatsubaraSusceptibilityCalculator (const RPA::MomentumSpaceContext &momentumSpaceContext)
 
 ~MatsubaraSusceptibilityCalculator ()
 
MatsubaraSusceptibilityCalculatorcreateSlave ()
 
std::complex< double > calculateSusceptibility (const std::vector< double > &k, const std::vector< int > &orbitalIndices, std::complex< double > energy)
 
std::vector< std::complex< double > > calculateSusceptibility (const DualIndex &kDual, const std::vector< int > &orbitalIndices)
 
void setNumSummationEnergies (unsigned int numSummationEnergies)
 
- Public Member Functions inherited from TBTK::SusceptibilityCalculator
 SusceptibilityCalculator (Algorithm algorithm, const RPA::MomentumSpaceContext &momentumSpaceContext)
 
virtual ~SusceptibilityCalculator ()
 
std::vector< std::complex< double > > calculateSusceptibility (const std::vector< double > &k, const std::vector< int > &orbitalIndices)
 
const RPA::MomentumSpaceContextgetMomentumSpaceContext () const
 
void generateKPlusQLookupTable ()
 
Algorithm getAlgorithm () const
 
void setEnergyType (EnergyType energyType)
 
EnergyType getEnergyType () const
 
void setEnergies (const std::vector< std::complex< double >> &energies)
 
const std::vector< std::complex< double > > & getEnergies () const
 
void setEnergiesAreInversionSymmetric (bool energiesAreInversionSymmetric)
 
bool getEnergiesAreInversionSymmetric () const
 
void saveSusceptibilities (const std::string &filename) const
 
void loadSusceptibilities (const std::string &filename)
 

Additional Inherited Members

- Public Types inherited from TBTK::SusceptibilityCalculator
enum  Algorithm { Lindhard = 0, Matsubara = 1 }
 
enum  EnergyType { Real, Imaginary, Complex }
 
- Protected Member Functions inherited from TBTK::SusceptibilityCalculator
 SusceptibilityCalculator (Algorithm algorithm, const RPA::MomentumSpaceContext &momentumSpaceContext, int *kPlusQLookupTable)
 
bool getIsMaster () const
 
int * getKPlusQLookupTable ()
 
const int * getKPlusQLookupTable () const
 
Index getSusceptibilityResultIndex (const Index &kIndex, const std::vector< int > &orbitalIndices) const
 
const IndexedDataTree< SerializableVector< std::complex< double > > > & getSusceptibilityTree () const
 
template<bool useKPlusQLookupTable>
int getKPlusQLinearIndex (unsigned int meshIndex, const std::vector< double > &k, int kLinearIndex) const
 
void cacheSusceptibility (const std::vector< std::complex< double >> &result, const std::vector< double > &k, const std::vector< int > &orbitalIndices, const Index &kIndex, const Index &resultIndex)
 
void clearCache ()
 
template<>
int getKPlusQLinearIndex (unsigned int meshIndex, const std::vector< double > &k, int kLinearIndex) const
 
template<>
int getKPlusQLinearIndex (unsigned int meshIndex, const std::vector< double > &k, int kLinearIndex) const
 

Constructor & Destructor Documentation

◆ MatsubaraSusceptibilityCalculator()

TBTK::MatsubaraSusceptibilityCalculator::MatsubaraSusceptibilityCalculator ( const RPA::MomentumSpaceContext momentumSpaceContext)

Constructor.

◆ ~MatsubaraSusceptibilityCalculator()

TBTK::MatsubaraSusceptibilityCalculator::~MatsubaraSusceptibilityCalculator ( )

Destructor.

Member Function Documentation

◆ calculateSusceptibility() [1/2]

std::complex<double> TBTK::MatsubaraSusceptibilityCalculator::calculateSusceptibility ( const std::vector< double > &  k,
const std::vector< int > &  orbitalIndices,
std::complex< double >  energy 
)
virtual

Calculate the susceptibility.

Implements TBTK::SusceptibilityCalculator.

◆ calculateSusceptibility() [2/2]

std::vector<std::complex<double> > TBTK::MatsubaraSusceptibilityCalculator::calculateSusceptibility ( const DualIndex kDual,
const std::vector< int > &  orbitalIndices 
)
virtual

Calculate the susceptibility.

Implements TBTK::SusceptibilityCalculator.

◆ createSlave()

MatsubaraSusceptibilityCalculator* TBTK::MatsubaraSusceptibilityCalculator::createSlave ( )
virtual

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

Implements TBTK::SusceptibilityCalculator.

◆ setNumSummationEnergies()

void TBTK::MatsubaraSusceptibilityCalculator::setNumSummationEnergies ( unsigned int  numSummationEnergies)
inline

Set the number of summation energies.


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