TBTK
TBTK::AbstractState Class Referenceabstract
Inheritance diagram for TBTK::AbstractState:
TBTK::Serializable TBTK::ArrayState TBTK::BasicState TBTK::GaussianState TBTK::Sto3g TBTK::ParallelepipedArrayState

Public Types

enum  StateID { Basic = 0, STO3G = 1, Gaussian = 2 }
 
- Public Types inherited from TBTK::Serializable
enum  Mode { Debug, Binary, XML, JSON }
 

Public Member Functions

 AbstractState (StateID stateID)
 
virtual ~AbstractState ()
 
virtual AbstractStateclone () const =0
 
virtual std::complex< double > getOverlap (const AbstractState &ket) const =0
 
virtual std::complex< double > getMatrixElement (const AbstractState &ket, const AbstractOperator &o=DefaultOperator()) const =0
 
StateID getStateID () const
 
void setCoordinates (std::initializer_list< double > coordinates)
 
void setCoordinates (const std::vector< double > &coordinates)
 
void setSpecifiers (std::initializer_list< int > specifiers)
 
void setSpecifiers (const std::vector< int > &specifiers)
 
void setIndex (const Index &index)
 
void setContainer (const Index &container)
 
void setExtent (double extent)
 
const std::vector< double > & getCoordinates () const
 
const std::vector< int > & getSpecifiers () const
 
const IndexgetIndex () const
 
const IndexgetContainer () const
 
double getExtent () const
 
bool hasFiniteExtent () const
 
std::string serialize (Mode mode) const
 
- Public Member Functions inherited from TBTK::Serializable
template<>
std::string serialize (const bool &data, Mode mode)
 
template<>
std::string serialize (const double &data, Mode mode)
 
template<>
std::string serialize (const std::complex< double > &data, Mode mode)
 
template<>
std::string serialize (const int &data, Mode mode)
 
template<>
std::string serialize (const unsigned int &data, Mode mode)
 
template<>
std::string serialize (const SpinMatrix &data, Mode mode)
 
template<>
std::string serialize (const Statistics &data, Mode mode)
 
template<>
std::string serialize (const std::vector< std::complex< double >> &data, Mode mode)
 
template<>
int deserialize (const std::string &serialization, Mode mode)
 
template<>
unsigned int deserialize (const std::string &serialization, Mode mode)
 
template<>
double deserialize (const std::string &serialization, Mode mode)
 
template<>
std::complex< double > deserialize (const std::string &serialization, Mode mode)
 
template<>
SpinMatrix deserialize (const std::string &serialization, Mode mode)
 
template<>
Statistics deserialize (const std::string &serialization, Mode mode)
 
template<>
std::vector< std::complex< double > > deserialize (const std::string &serialization, Mode mode)
 

Additional Inherited Members

- Static Public Member Functions inherited from TBTK::Serializable
static bool hasID (const std::string &serialization, Mode mode)
 
static std::string getID (const std::string &serialization, Mode mode)
 
static std::string extractComponent (const std::string &serialization, const std::string &containerID, const std::string &componentID, const std::string &componentName, Mode mode)
 
- Static Protected Member Functions inherited from TBTK::Serializable
static bool validate (const std::string &serialization, const std::string &id, Mode mode)
 
static std::string getContent (const std::string &serialization, Mode mode)
 
static std::vector< std::string > split (const std::string &content, Mode mode)
 
template<typename DataType >
static std::enable_if<!std::is_pointer< DataType >::value, std::string >::type serialize (const DataType &data, Mode mode)
 
template<typename DataType >
static std::enable_if< std::is_pointer< DataType >::value, std::string >::type serialize (const DataType &data, Mode mode)
 
template<typename DataType >
static DataType deserialize (const std::string &serialization, Mode mode)
 
static std::string extract (const std::string &serialization, Mode mode, std::string component)
 

Member Enumeration Documentation

◆ StateID

List of state identifiers. Officially supported operators are given unique identifiers. Operators 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 operators that are not (yet) supported].

Constructor & Destructor Documentation

◆ AbstractState()

TBTK::AbstractState::AbstractState ( StateID  stateID)

Constructor.

◆ ~AbstractState()

virtual TBTK::AbstractState::~AbstractState ( )
virtual

Destructor.

Member Function Documentation

◆ clone()

virtual AbstractState* TBTK::AbstractState::clone ( ) const
pure virtual

Returns a pointer to a clone of the State.

Implemented in TBTK::Sto3g, TBTK::ArrayState, TBTK::BasicState, TBTK::ParallelepipedArrayState, and TBTK::GaussianState.

◆ getContainer()

const Index & TBTK::AbstractState::getContainer ( ) const
inline

Get container.

◆ getCoordinates()

const std::vector< double > & TBTK::AbstractState::getCoordinates ( ) const
inline

Get coordinates.

◆ getExtent()

double TBTK::AbstractState::getExtent ( ) const
inline

Get radial extent.

◆ getIndex()

const Index & TBTK::AbstractState::getIndex ( ) const
inline

Get index.

◆ getMatrixElement()

virtual std::complex<double> TBTK::AbstractState::getMatrixElement ( const AbstractState ket,
const AbstractOperator o = DefaultOperator() 
) const
pure virtual

Pure virtual matrix element function. Returns the value of the11 operation

\[\langle\Psi_1|o|\Psi_2\rangle\]

, where

\[\Psi_1\]

and

\[\Psi_2\]

are the argument bra and the object itself, respectively, and o is an operator.

Implemented in TBTK::BasicState, TBTK::Sto3g, TBTK::ArrayState, TBTK::ParallelepipedArrayState, and TBTK::GaussianState.

◆ getOverlap()

virtual std::complex<double> TBTK::AbstractState::getOverlap ( const AbstractState ket) const
pure virtual

Pure virtual overlap function. Returns the value of the operation

\[\langle\Psi_1|\Psi_2\rangle\]

, where

\[\Psi_1\]

and

\[\Psi_2\]

are the argument bra and the object itself, respectively.

Implemented in TBTK::BasicState, TBTK::Sto3g, TBTK::ArrayState, TBTK::ParallelepipedArrayState, and TBTK::GaussianState.

◆ getSpecifiers()

const std::vector< int > & TBTK::AbstractState::getSpecifiers ( ) const
inline

Get specifiers.

◆ getStateID()

AbstractState::StateID TBTK::AbstractState::getStateID ( ) const
inline

Get state identifier.

◆ hasFiniteExtent()

bool TBTK::AbstractState::hasFiniteExtent ( ) const
inline

Returns true if the state has finite extent.

◆ serialize()

std::string TBTK::AbstractState::serialize ( Mode  mode) const
virtual

◆ setContainer()

void TBTK::AbstractState::setContainer ( const Index container)
inline

Set container. (For example a unit cell index.)

◆ setCoordinates() [1/2]

void TBTK::AbstractState::setCoordinates ( std::initializer_list< double >  coordinates)

Set coordinates.

◆ setCoordinates() [2/2]

void TBTK::AbstractState::setCoordinates ( const std::vector< double > &  coordinates)

Set coordinates.

◆ setExtent()

void TBTK::AbstractState::setExtent ( double  extent)
inline

Set radial extent.

◆ setIndex()

void TBTK::AbstractState::setIndex ( const Index index)
inline

Set index.

◆ setSpecifiers() [1/2]

void TBTK::AbstractState::setSpecifiers ( std::initializer_list< int >  specifiers)

Set specifiers.

◆ setSpecifiers() [2/2]

void TBTK::AbstractState::setSpecifiers ( const std::vector< int > &  specifiers)

Set specifiers.


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