|
| LDOS () |
|
| LDOS (const std::vector< int > &ranges, double lowerBound, double upperBound, int resolution) |
|
| LDOS (const std::vector< int > &ranges, double lowerBound, double upperBound, int resolution, const double *data) |
|
| LDOS (const IndexTree &indexTree, double lowerBound, double upperBound, int resolution) |
|
| LDOS (const IndexTree &indexTree, double lowerBound, double upperBound, int resolution, const double *data) |
|
| LDOS (const std::string &serialization, Mode mode) |
|
LDOS & | operator+= (const LDOS &rhs) |
|
LDOS | operator+ (const LDOS &rhs) const |
|
LDOS & | operator-= (const LDOS &rhs) |
|
LDOS | operator- (const LDOS &rhs) const |
|
LDOS & | operator*= (const double &rhs) |
|
LDOS | operator* (const double &rhs) const |
|
LDOS & | operator/= (const double &rhs) |
|
LDOS | operator/ (const double &rhs) const |
|
virtual std::string | toString () const |
|
virtual std::string | serialize (Mode mode) const |
|
| EnergyResolvedProperty () |
|
| EnergyResolvedProperty (double lowerBound, double upperBound, unsigned int resolution) |
|
| EnergyResolvedProperty (double lowerBound, double upperBound, unsigned int resolution, const double *data) |
|
| EnergyResolvedProperty (const std::vector< int > &ranges, double lowerBound, double upperBound, unsigned int resolution) |
|
| EnergyResolvedProperty (const std::vector< int > &ranges, double lowerBound, double upperBound, unsigned int resolution, const double *data) |
|
| EnergyResolvedProperty (const IndexTree &indexTree, double lowerBound, double upperBound, unsigned int resolution) |
|
| EnergyResolvedProperty (const IndexTree &indexTree, double lowerBound, double upperBound, unsigned int resolution, const double *data) |
|
| EnergyResolvedProperty (EnergyType energyType, const IndexTree &indexTree, int lowerMatsubaraEnergyIndex, int upperMatsubaraEnergtIndex, double fundamentalMatsubaraEnergy) |
|
| EnergyResolvedProperty (EnergyType energyType, const IndexTree &indexTree, int lowerMatsubaraEnergyIndex, int upperMatsubaraEnergtIndex, double fundamentalMatsubaraEnergy, const double *data) |
|
| EnergyResolvedProperty (const std::string &serialization, Serializable::Mode mode) |
|
EnergyType | getEnergyType () const |
|
double | getLowerBound () const |
|
double | getUpperBound () const |
|
unsigned int | getResolution () const |
|
double | getDeltaE () const |
|
double | getEnergy (unsigned int n) const |
|
int | getLowerMatsubaraEnergyIndex () const |
|
int | getUpperMatsubaraEnergyIndex () const |
|
unsigned int | getNumMatsubaraEnergies () const |
|
double | getFundamentalMatsubaraEnergy () const |
|
double | getLowerMatsubaraEnergy () const |
|
double | getUpperMatsubaraEnergy () const |
|
std::complex< double > | getMatsubaraEnergy (unsigned int n) const |
|
unsigned int | getNumEnergies () const |
|
bool | energyWindowsAreEqual (const EnergyResolvedProperty &energyResolvedProperty, double precision=1e-1) const |
|
unsigned int | getBlockSize () const |
|
unsigned int | getSize () const |
|
const std::vector< double > & | getData () const |
|
std::vector< double > & | getDataRW () |
|
unsigned int | getDimensions () const |
|
std::vector< int > | getRanges () const |
|
int | getOffset (const Index &index) const |
|
const IndexDescriptor & | getIndexDescriptor () const |
|
bool | contains (const Index &index) const |
|
void | reduce (const std::vector< Index > &targetPatterns, const std::vector< Index > &newPatterns) |
|
void | hermitianConjugate () |
|
std::vector< SparseMatrix< double > > | toSparseMatrices (const Model &model) const |
|
virtual const double & | operator() (const Index &index, unsigned int offset=0) const |
|
virtual double & | operator() (const Index &index, unsigned int offset=0) |
|
double & | operator() (const std::initializer_list< Subindex > &index) |
|
const double & | operator() (const std::initializer_list< Subindex > &index) const |
|
virtual const double & | operator() (unsigned int offset) const |
|
virtual double & | operator() (unsigned int offset) |
|
void | setAllowIndexOutOfBoundsAccess (bool allowIndexOutOfBoundsAccess) |
|
void | setDefaultValue (const double &defaultValue) |
|
void | replaceValues (const double &targetValue, const double &replacementValue) |
|
virtual std::string | toString () const |
|
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) |
|
|
enum | EnergyType |
|
enum | Mode { Debug,
Binary,
XML,
JSON
} |
|
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) |
|
EnergyResolvedProperty & | operator+= (const EnergyResolvedProperty &rhs) |
|
EnergyResolvedProperty & | operator-= (const EnergyResolvedProperty &rhs) |
|
EnergyResolvedProperty & | operator*= (const double &rhs) |
|
EnergyResolvedProperty & | operator/= (const double &rhs) |
|
| AbstractProperty () |
|
| AbstractProperty (unsigned int blockSize) |
|
| AbstractProperty (unsigned int blockSize, const double *data) |
|
| AbstractProperty (const std::vector< int > &ranges, unsigned int blockSize) |
|
| AbstractProperty (const std::vector< int > &ranges, unsigned int blockSize, const double *data) |
|
| AbstractProperty (const IndexTree &indexTree, unsigned int blockSize) |
|
| AbstractProperty (const IndexTree &indexTree, unsigned int blockSize, const double *data) |
|
| AbstractProperty (const AbstractProperty &abstractProperty) |
|
| AbstractProperty (AbstractProperty &&abstractProperty) |
|
| AbstractProperty (const std::string &serialization, Mode mode) |
|
virtual | ~AbstractProperty () |
|
AbstractProperty & | operator= (const AbstractProperty &abstractProperty) |
|
AbstractProperty & | operator= (AbstractProperty &&abstractProperty) |
|
AbstractProperty & | operator+= (const AbstractProperty &rhs) |
|
AbstractProperty & | operator-= (const AbstractProperty &rhs) |
|
AbstractProperty & | operator*= (const double &rhs) |
|
AbstractProperty & | operator/= (const double &rhs) |
|
| Property () |
|
virtual | ~Property () |
|
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) |
|
Property container for the local density of states (LDOS).
The LDOS is an EnergyResolvedProperty with DataType double.
Convention
LDOS extracted by native PropertyExtractors satisfies the following convention.
- The LDOS is normalized such that, if it covers the full energy range, it integrates to one for any given Index. \(\sum_n LDOS(n)\Delta E = 1\).
Example
#include "TBTK/PropertyExtractor/Diagonalizer.h"
using namespace TBTK;
using namespace Visualization::MatPlotLib;
int main(){
const unsigned int SIZE_X = 40;
const unsigned int SIZE_Y = 40;
double t = 1;
const double LOWER_BOUND = -5;
const double UPPER_BOUND = 5;
const unsigned int RESOLUTION = 100;
propertyExtractor.setEnergyWindow(
LOWER_BOUND,
UPPER_BOUND,
RESOLUTION
);
Streams::out <<
"ldos({20, 20}, 50) = " << ldos({20, 20}, 50) <<
"\n";
double integratedLDOS = 0;
double dE = ldos.getDeltaE();
for(unsigned int n = 0; n < ldos.getResolution(); n++)
integratedLDOS += ldos({20, 20}, n)*dE;
Streams::out <<
"Integrated LDOS: " << integratedLDOS <<
"\n";
const double SMOOTHING_SIGMA = 0.2;
const unsigned int SMOOTHING_WINDOW = 51;
Plotter plotter;
plotter.plot({_a_, 20}, ldos);
plotter.save("figures/LDOS0.png");
plotter.clear();
plotter.plot({20, 20}, ldos);
plotter.save("figures/LDOS1.png");
}
Output
Number of sites: 1600
Lower bound: -5 eV (-5 n.u.)
Upper bound: 5 eV (5 n.u.)
Resolution: 100
ldos({20, 20}, 50) = 0.338382