TBTK
TBTK::Solver::Susceptibility Class Referenceabstract
Inheritance diagram for TBTK::Solver::Susceptibility:
TBTK::Solver::Solver TBTK::Solver::LindhardSusceptibility

Public Types

enum  Algorithm { Lindhard = 0, Matsubara = 1, RPA = 2 }
 

Public Member Functions

 Susceptibility (Algorithm algorithm, const RPA::MomentumSpaceContext &momentumSpaceContext)
 
virtual ~Susceptibility ()
 
virtual std::vector< std::complex< double > > calculateSusceptibility (const Index &index, const std::vector< std::complex< double >> &energies)=0
 
const RPA::MomentumSpaceContextgetMomentumSpaceContext () const
 
Algorithm getAlgorithm () const
 
void setEnergiesAreInversionSymmetric (bool energiesAreInversionSymmetric)
 
bool getEnergiesAreInversionSymmetric () const
 
- Public Member Functions inherited from TBTK::Solver::Solver
 Solver ()
 
virtual ~Solver ()
 
virtual void setModel (Model &model)
 
ModelgetModel ()
 
const ModelgetModel () const
 

Member Enumeration Documentation

◆ Algorithm

List of algorithm identifiers. Officilly supported algorithms are given unique identifiers. Algorithms not (yet) supported should make sure they use an identifier that does not clash with the officially supported ones. [ideally a large random looking number (magic number) to also minimize accidental clashes with other algorithms that are not (yet) supported.

Constructor & Destructor Documentation

◆ Susceptibility()

TBTK::Solver::Susceptibility::Susceptibility ( Algorithm  algorithm,
const RPA::MomentumSpaceContext momentumSpaceContext 
)

Constructor.

◆ ~Susceptibility()

virtual TBTK::Solver::Susceptibility::~Susceptibility ( )
virtual

Destructor.

Member Function Documentation

◆ calculateSusceptibility()

virtual std::vector<std::complex<double> > TBTK::Solver::Susceptibility::calculateSusceptibility ( const Index index,
const std::vector< std::complex< double >> &  energies 
)
pure virtual

Calculate the susceptibility.

Implemented in TBTK::Solver::LindhardSusceptibility.

◆ getAlgorithm()

Susceptibility::Algorithm TBTK::Solver::Susceptibility::getAlgorithm ( ) const
inline

Get the algorithm used to calculate the susceptibility.

◆ getEnergiesAreInversionSymmetric()

bool TBTK::Solver::Susceptibility::getEnergiesAreInversionSymmetric ( ) const
inline

Get whether the susceptibility energies are inversion symmetric.

◆ setEnergiesAreInversionSymmetric()

void TBTK::Solver::Susceptibility::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.


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