TBTK
Public Member Functions | List of all members
TBTK::DiagonalizationSolver Class Reference

#include <DiagonalizationSolver.h>

Public Member Functions

 DiagonalizationSolver ()
 
 ~DiagonalizationSolver ()
 
void setModel (Model *model)
 
void setSCCallback (bool(*scCallback)(DiagonalizationSolver *diagonalizationSolver))
 
void setMaxIterations (int maxIterations)
 
void run ()
 
const double * getEigenValues ()
 
double * getEigenValuesRW ()
 
const std::complex< double > * getEigenVectors ()
 
std::complex< double > * getEigenVectorsRW ()
 
const double getEigenValue (int state)
 
const std::complex< double > getAmplitude (int state, const Index &index)
 
ModelgetModel ()
 

Detailed Description

Solves a given model by Diagonalizing the Hamiltonian. The eigenvalues and eigenvectors can then either be directly extracted and used to calculate custom physical quantities, or the PropertyExtractor can be used to extract common properties. Scales as $O(n^3)$ with the dimension of the Hilbert space.

Constructor & Destructor Documentation

TBTK::DiagonalizationSolver::DiagonalizationSolver ( )

Constructor

TBTK::DiagonalizationSolver::~DiagonalizationSolver ( )

Destructor.

Member Function Documentation

const std::complex< double > TBTK::DiagonalizationSolver::getAmplitude ( int  state,
const Index index 
)
inline

Get amplitude for given eigenvector $n$ and physical index $x$: $\Psi_{n}(x)$.

Parameters
stateEigenstate number $n$.
indexPhysical index $x$.
const double TBTK::DiagonalizationSolver::getEigenValue ( int  state)
inline

Get eigenvalue.

const double * TBTK::DiagonalizationSolver::getEigenValues ( )
inline

Get eigenvalues.

double * TBTK::DiagonalizationSolver::getEigenValuesRW ( )
inline

Get eigenvalues. Same as getEigenValues(), but with write access. Use with causion.

const std::complex< double > * TBTK::DiagonalizationSolver::getEigenVectors ( )
inline

Get eigenvectors.

std::complex< double > * TBTK::DiagonalizationSolver::getEigenVectorsRW ( )
inline

Get eigenvectors. Same as getEigenVectors(), but with write access. Use with causion.

Model * TBTK::DiagonalizationSolver::getModel ( )
inline

Get model.

void TBTK::DiagonalizationSolver::run ( )

Run calculations. Diagonalizes ones if no self-consistency callback have been set, or otherwise multiple times until slef-consistencey or maximum number of iterations has been reached.

void TBTK::DiagonalizationSolver::setMaxIterations ( int  maxIterations)
inline

Set maximum number of iterations for the self-consistency loop.

void TBTK::DiagonalizationSolver::setModel ( Model model)
inline

Set model to work on.

void TBTK::DiagonalizationSolver::setSCCallback ( bool(*)(DiagonalizationSolver *diagonalizationSolver)  scCallback)
inline

Set self-consistency callback. If set to NULL or never called, the self-consistency loop will not be run.


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