|
| SpinPolarizedLDOS (const std::vector< int > &ranges, double lowerBound, double upperBound, int resolution) |
|
| SpinPolarizedLDOS (const std::vector< int > &ranges, double lowerBound, double upperBound, int resolution, const SpinMatrix *data) |
|
| SpinPolarizedLDOS (const IndexTree &indexTree, double lowerBound, double upperBound, int resolution) |
|
| SpinPolarizedLDOS (const IndexTree &indexTree, double lowerBound, double upperBound, int resolution, const SpinMatrix *data) |
|
| SpinPolarizedLDOS (const std::string &serialization, Mode mode) |
|
virtual std::string | toString () const |
|
std::string | serialize (Mode mode) const |
|
| EnergyResolvedProperty () |
|
| EnergyResolvedProperty (double lowerBound, double upperBound, unsigned int resolution) |
|
| EnergyResolvedProperty (double lowerBound, double upperBound, unsigned int resolution, const SpinMatrix *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 SpinMatrix *data) |
|
| EnergyResolvedProperty (const IndexTree &indexTree, double lowerBound, double upperBound, unsigned int resolution) |
|
| EnergyResolvedProperty (const IndexTree &indexTree, double lowerBound, double upperBound, unsigned int resolution, const SpinMatrix *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 SpinMatrix *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< SpinMatrix > & | getData () const |
|
std::vector< SpinMatrix > & | 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< SpinMatrix > > | toSparseMatrices (const Model &model) const |
|
virtual const SpinMatrix & | operator() (const Index &index, unsigned int offset=0) const |
|
virtual SpinMatrix & | operator() (const Index &index, unsigned int offset=0) |
|
SpinMatrix & | operator() (const std::initializer_list< Subindex > &index) |
|
const SpinMatrix & | operator() (const std::initializer_list< Subindex > &index) const |
|
virtual const SpinMatrix & | operator() (unsigned int offset) const |
|
virtual SpinMatrix & | operator() (unsigned int offset) |
|
void | setAllowIndexOutOfBoundsAccess (bool allowIndexOutOfBoundsAccess) |
|
void | setDefaultValue (const SpinMatrix &defaultValue) |
|
void | replaceValues (const SpinMatrix &targetValue, const SpinMatrix &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 SpinMatrix &rhs) |
|
EnergyResolvedProperty & | operator/= (const SpinMatrix &rhs) |
|
| AbstractProperty () |
|
| AbstractProperty (unsigned int blockSize) |
|
| AbstractProperty (unsigned int blockSize, const SpinMatrix *data) |
|
| AbstractProperty (const std::vector< int > &ranges, unsigned int blockSize) |
|
| AbstractProperty (const std::vector< int > &ranges, unsigned int blockSize, const SpinMatrix *data) |
|
| AbstractProperty (const IndexTree &indexTree, unsigned int blockSize) |
|
| AbstractProperty (const IndexTree &indexTree, unsigned int blockSize, const SpinMatrix *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 SpinMatrix &rhs) |
|
AbstractProperty & | operator/= (const SpinMatrix &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 spin-polarized local density of states (spin-polarized LDOS).
The SpinPolarizedLDOS is an EnergyResolvedProperty with DataType SpinMatrix.
Example
#include "TBTK/PropertyExtractor/Diagonalizer.h"
using namespace TBTK;
using namespace Visualization::MatPlotLib;
int main(){
const unsigned int SIZE_X = 21;
const unsigned int SIZE_Y = 21;
double t = 1;
double J = 1;
{SIZE_X, SIZE_Y, IDX_SPIN},
{0, t}
);
J,
{SIZE_X/2, SIZE_Y/2, 0},
{SIZE_X/2, SIZE_Y/2, 0}
);
-J,
{SIZE_X/2, SIZE_Y/2, 1},
{SIZE_X/2, SIZE_Y/2, 1}
);
const double LOWER_BOUND = -5;
const double UPPER_BOUND = 5;
const unsigned int RESOLUTION = 100;
propertyExtractor.setEnergyWindow(
LOWER_BOUND,
UPPER_BOUND,
RESOLUTION
);
= propertyExtractor.calculateSpinPolarizedLDOS({
{_a_, _a_, IDX_SPIN}
});
Streams::out << spinPolarizedLDOS({10, 10, IDX_SPIN}, 49) <<
"\n";
const double SMOOTHING_SIGMA = 0.2;
const unsigned int SMOOTHING_WINDOW = 51;
spinPolarizedLDOS,
SMOOTHING_SIGMA,
SMOOTHING_WINDOW
);
Plotter plotter;
plotter.setNumContours(100);
plotter.plot({_a_, 10, IDX_SPIN}, {0, 0, 1}, spinPolarizedLDOS);
#else //TBTK_DOCUMENTATION_NICE
plotter.plot({_a_, 5, IDX_SPIN}, {0, 0, 1}, spinPolarizedLDOS);
#endif
plotter.save("figures/SpinPolarizedLDOS.png");
}
Output
Number of sites: 441
Lower bound: -5 eV (-5 n.u.)
Upper bound: 5 eV (5 n.u.)
Resolution: 100
SpinMatrix
(8.8539e-29,0) (5.28525e-30,0)
(5.28525e-30,0) (4.41506e-29,0)