TBTK
TBTK::PropertyExtractor::BlockDiagonalizer Class Reference

#include <BlockDiagonalizer.h>

Inheritance diagram for TBTK::PropertyExtractor::BlockDiagonalizer:
TBTK::PropertyExtractor::PropertyExtractor

Public Member Functions

 BlockDiagonalizer (Solver::BlockDiagonalizer &solver)
 
virtual ~BlockDiagonalizer ()
 
virtual void setEnergyWindow (double lowerBound, double upperBound, int resolution)
 
virtual void setEnergyWindow (int lowerFermionicMatsubaraEnergyIndex, int upperFermionicMatsubaraEnergyIndex, int lowerBosonicMatsubaraEnergyIndex, int upperBosonicMatsubaraEnergyIndex)
 
Property::EigenValues getEigenValues ()
 
double getEigenValue (int state) const
 
double getEigenValue (const Index &blockIndex, int state) const
 
const std::complex< double > getAmplitude (int state, const Index &index)
 
const std::complex< double > getAmplitude (const Index &blockIndex, int state, const Index &intraBlockIndex) const
 
Property::WaveFunctions calculateWaveFunctions (std::vector< Index > patterns, std::vector< int > states)
 
Property::GreensFunction calculateGreensFunction (std::vector< Index > patterns, Property::GreensFunction::Type type=Property::GreensFunction::Type::Retarded)
 
virtual Property::DOS calculateDOS ()
 
virtual std::complex< double > calculateExpectationValue (Index to, Index from)
 
virtual Property::Density calculateDensity (std::vector< Index > patterns)
 
virtual Property::Magnetization calculateMagnetization (std::vector< Index > patterns)
 
virtual Property::LDOS calculateLDOS (std::vector< Index > patterns)
 
virtual Property::SpinPolarizedLDOS calculateSpinPolarizedLDOS (std::vector< Index > patterns)
 
virtual double calculateEntropy ()
 
- Public Member Functions inherited from TBTK::PropertyExtractor::PropertyExtractor
 PropertyExtractor ()
 
virtual ~PropertyExtractor ()
 
virtual void setEnergyInfinitesimal (double energyInfinitesimal)
 
virtual Property::Density calculateDensity (Index pattern, Index ranges)
 
virtual Property::Magnetization calculateMagnetization (Index pattern, Index ranges)
 
virtual Property::LDOS calculateLDOS (Index pattern, Index ranges)
 
virtual Property::SpinPolarizedLDOS calculateSpinPolarizedLDOS (Index pattern, Index ranges)
 

Additional Inherited Members

- Protected Member Functions inherited from TBTK::PropertyExtractor::PropertyExtractor
int getEnergyResolution () const
 
double getLowerBound () const
 
double getUpperBound () const
 
double getEnergyInfinitesimal () const
 
void calculate (void(*callback)(PropertyExtractor *cb_this, void *memory, const Index &index, int offset), void *memory, Index pattern, const Index &ranges, int currentOffset, int offsetMultiplier)
 
template<typename DataType >
void calculate (void(*callback)(PropertyExtractor *cb_this, void *memory, const Index &index, int offset), const IndexTree &allIndices, const IndexTree &memoryLayout, Property::AbstractProperty< DataType > &abstractProperty, int *spinIndexHint=nullptr)
 
void ensureCompliantRanges (const Index &pattern, Index &ranges)
 
void getLoopRanges (const Index &pattern, const Index &ranges, int *loopDimensions, int **loopRanges)
 
IndexTree generateIndexTree (std::vector< Index > patterns, const HoppingAmplitudeSet &hoppingAmplitudeSet, bool keepSummationWildcards, bool keepSpinWildcards)
 
void validatePatternsNumComponents (const std::vector< Index > &patterns, unsigned int expectedNumComponentIndices, const std::string &functionName) const
 
void validatePatternsSpecifiers (const std::vector< Index > &patterns, const std::vector< int > specifiers, const std::string &functionName) const
 
- Protected Attributes inherited from TBTK::PropertyExtractor::PropertyExtractor
void * hint
 

Detailed Description

The PropertyExtractor extracts common physical properties such as DOS, Density, LDOS, etc. from a BlockDiagonalizer. These can then be written to file using the FileWriter.

Constructor & Destructor Documentation

TBTK::PropertyExtractor::BlockDiagonalizer::BlockDiagonalizer ( Solver::BlockDiagonalizer solver)

Constructs a PropertyExtractor::BlockDiagonalizer.

Parameters
solverThe Solver to use.
virtual TBTK::PropertyExtractor::BlockDiagonalizer::~BlockDiagonalizer ( )
virtual

Destructor.

Member Function Documentation

virtual Property::Density TBTK::PropertyExtractor::BlockDiagonalizer::calculateDensity ( std::vector< Index patterns)
virtual
virtual Property::DOS TBTK::PropertyExtractor::BlockDiagonalizer::calculateDOS ( )
virtual
virtual double TBTK::PropertyExtractor::BlockDiagonalizer::calculateEntropy ( )
virtual
virtual std::complex<double> TBTK::PropertyExtractor::BlockDiagonalizer::calculateExpectationValue ( Index  to,
Index  from 
)
virtual

Calculate expectation value.

Reimplemented from TBTK::PropertyExtractor::PropertyExtractor.

Property::GreensFunction TBTK::PropertyExtractor::BlockDiagonalizer::calculateGreensFunction ( std::vector< Index patterns,
Property::GreensFunction::Type  type = Property::GreensFunction::Type::Retarded 
)

Calculate Green's function. Calculate the Green's function on the Custom format. [See AbstractProperty for detailed information about the Custom format. See PropertyExtractor for detailed information about the patterns argument.]

Parameters
patternsThe pattern to use.
typeThe Green's function type.
Returns
A GreensFunction for the given patterns.
virtual Property::LDOS TBTK::PropertyExtractor::BlockDiagonalizer::calculateLDOS ( std::vector< Index patterns)
virtual
virtual Property::Magnetization TBTK::PropertyExtractor::BlockDiagonalizer::calculateMagnetization ( std::vector< Index patterns)
virtual
virtual Property::SpinPolarizedLDOS TBTK::PropertyExtractor::BlockDiagonalizer::calculateSpinPolarizedLDOS ( std::vector< Index patterns)
virtual
Property::WaveFunctions TBTK::PropertyExtractor::BlockDiagonalizer::calculateWaveFunctions ( std::vector< Index patterns,
std::vector< int >  states 
)

Calculate the wave function on the Custom format. [See AbstractProperty for detailed information about the Custom format. See PropertyExtractor for detailed information about the patterns argument.]

Parameters
patternsThe pattern to use
statesThe states to extract the wave function for. Can be set to {IDX_ALL} to get all states.
Returns
A WaveFunctions object containing the wave functions values for the Indices that satisfies the given patterns and state numbers.
const std::complex< double > TBTK::PropertyExtractor::BlockDiagonalizer::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\).
Returns
The amplitude \(\Psi_{n}(\mathbf{x})\).
const std::complex< double > TBTK::PropertyExtractor::BlockDiagonalizer::getAmplitude ( const Index blockIndex,
int  state,
const Index intraBlockIndex 
) const
inline

Get amplitude for given eigenvector \(n\), block index \(b\), and physical Index \(x\): \(\Psi_{nb}(\mathbf{x})\).

Parameters
blockIndexBlock Index \(b\).
stateEigenstate number \(n\) relative to the given block.
indexPhysical Index \(x\).
Returns
The amplitude \(\Psi_{nb}(\mathbf{x})\).
double TBTK::PropertyExtractor::BlockDiagonalizer::getEigenValue ( int  state) const
inline

Get eigenvalue. The eigenvalues are ordered first by block, and then in accending order. This means that eigenvalues for blocks with smaller Indices comes before eigenvalues for blocks with larger Indices , while inside each block the eigenvalues are in accending order.

Parameters
stateThe state number.
Returns
The eigenvalue for the given state.
double TBTK::PropertyExtractor::BlockDiagonalizer::getEigenValue ( const Index blockIndex,
int  state 
) const
inline

Get eigenvalue. The eigenvalues are ordered in accending order.

Parameters
blockIndexThe block Index to get the eigenvalue for.
stateThe intra block state index starting from zero for the lowest eigenvalue in the block.
Returns
The eigenvalue for the given block and state.
Property::EigenValues TBTK::PropertyExtractor::BlockDiagonalizer::getEigenValues ( )

Get eigenvalues. The eigenvalues are ordered first by block, and then in accending order. This means that eigenvalues for blocks with smaller Indices comes before eigenvalues for blocks with larger Indices , while inside each block the eigenvalues are in accending order.

Returns
A Property::EigenValues containing all the eigenvalues.
virtual void TBTK::PropertyExtractor::BlockDiagonalizer::setEnergyWindow ( double  lowerBound,
double  upperBound,
int  resolution 
)
virtual

Legacy. Experimental. Extracts a tabulated version of the HoppingAmplitudeSet. Overrides PropertyExtractor::setEnergyWindow().

Identical to the overriden function, except that it also sets the energy type to EnergyType::Real.

Reimplemented from TBTK::PropertyExtractor::PropertyExtractor.


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