TBTK
|
Need a break? Support the development by playing Polarity Puzzles |
Extracts physical properties from the Solver::BlockDiagonalizer. More...
#include <BlockDiagonalizer.h>
Public Member Functions | |
BlockDiagonalizer (Solver::BlockDiagonalizer &solver) | |
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< Subindex > 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 | setEnergyWindow (double lowerBound, double upperBound, int energyResolution) |
virtual void | setEnergyWindow (int lowerFermionicMatsubaraEnergyIndex, int upperFermionicMatsubaraEnergyIndex, int lowerBosonicMatsubaraEnergyIndex, int upperBosonicMatsubaraEnergyIndex) |
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) |
virtual Property::DOS | sampleDOS (unsigned int numSamples, const std::vector< Index > &patterns={}, unsigned int seed=time(nullptr)) |
Additional Inherited Members | |
Protected Types inherited from TBTK::PropertyExtractor::PropertyExtractor | |
enum | EnergyType { Real, Matsubara } |
Protected Member Functions inherited from TBTK::PropertyExtractor::PropertyExtractor | |
EnergyType | getEnergyType () const |
int | getEnergyResolution () const |
double | getLowerBound () const |
double | getUpperBound () const |
int | getLowerFermionicMatsubaraEnergyIndex () const |
int | getUpperFermionicMatsubaraEnergyIndex () const |
int | getLowerBosonicMatsubaraEnergyIndex () const |
int | getUpperBosonicMatsubaraEnergyIndex () const |
double | getEnergyInfinitesimal () const |
template<typename DataType > | |
void | calculate (void(*callback)(PropertyExtractor *cb_this, Property::Property &property, const Index &index, int offset, Information &information), Property::AbstractProperty< DataType > &property, Index pattern, const Index &ranges, int currentOffset, int offsetMultiplier, Information &information) |
template<typename DataType > | |
void | calculate (void(*callback)(PropertyExtractor *cb_this, Property::Property &property, const Index &index, int offset, Information &information), const IndexTree &allIndices, const IndexTree &memoryLayout, Property::AbstractProperty< DataType > &abstractProperty, Information &information) |
void | ensureCompliantRanges (const Index &pattern, Index &ranges) |
std::vector< int > | getLoopRanges (const Index &pattern, const Index &ranges) |
IndexTree | generateIndexTree (std::vector< Index > patterns, const HoppingAmplitudeSet &hoppingAmplitudeSet, bool keepSummationWildcards, bool keepSpinWildcards) |
Extracts physical properties from the Solver::BlockDiagonalizer.
The PropertyExtractor::Diagonalizer extracts Property::AbstractProperty from the Solver::BlockDiagonalizer.
TBTK::PropertyExtractor::BlockDiagonalizer::BlockDiagonalizer | ( | Solver::BlockDiagonalizer & | solver | ) |
Constructs a PropertyExtractor::BlockDiagonalizer.
solver | The Solver to use. |
|
virtual |
Overrides PropertyExtractor::calculateDensity().
Reimplemented from TBTK::PropertyExtractor::PropertyExtractor.
|
virtual |
Overrides PropertyExtractor::calculateDOS().
Reimplemented from TBTK::PropertyExtractor::PropertyExtractor.
|
virtual |
Overrider PropertyExtractor::calculateEntropy().
Reimplemented from TBTK::PropertyExtractor::PropertyExtractor.
|
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 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.]
patterns | The pattern to use. |
type | The Green's function type. |
|
virtual |
Overrides PropertyExtractor::calculateLDOS().
Reimplemented from TBTK::PropertyExtractor::PropertyExtractor.
|
virtual |
Overrides PropertyExtractor::calculateMagnetization().
Reimplemented from TBTK::PropertyExtractor::PropertyExtractor.
|
virtual |
Overrides PropertyExtractor::calculateSpinPolarizedLDOS().
Reimplemented from TBTK::PropertyExtractor::PropertyExtractor.
Property::WaveFunctions TBTK::PropertyExtractor::BlockDiagonalizer::calculateWaveFunctions | ( | std::vector< Index > | patterns, |
std::vector< Subindex > | 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.]
patterns | The pattern to use |
states | The states to extract the wave function for. Can be set to {IDX_ALL} to get all states. |
|
inline |
Get amplitude for given eigenvector \(n\) and physical index \(x\): \(\Psi_{n}(x)\).
state | Eigenstate number \(n\) |
index | Physical index \(x\). |
|
inline |
Get eigenvalue. The eigenvalues are ordered in accending order.
blockIndex | The block Index to get the eigenvalue for. |
state | The intra block state index starting from zero for the lowest eigenvalue in the block. |
|
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.
state | The state number. |
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.