TBTK
Need a break? Support the development by playing Polarity Puzzles
TBTK::Property::SpinPolarizedLDOS Class Reference

Property container for spin-polarized local density of states (spin-polarized LDOS). More...

#include <SpinPolarizedLDOS.h>

Inheritance diagram for TBTK::Property::SpinPolarizedLDOS:
TBTK::Property::EnergyResolvedProperty< SpinMatrix > TBTK::Property::AbstractProperty< SpinMatrix > TBTK::Property::Property TBTK::Serializable TBTK::Streamable

Public Member Functions

 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
 
- Public Member Functions inherited from TBTK::Property::EnergyResolvedProperty< SpinMatrix >
 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
 
- Public Member Functions inherited from TBTK::Property::AbstractProperty< SpinMatrix >
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 IndexDescriptorgetIndexDescriptor () 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 SpinMatrixoperator() (const Index &index, unsigned int offset=0) const
 
virtual SpinMatrixoperator() (const Index &index, unsigned int offset=0)
 
SpinMatrixoperator() (const std::initializer_list< Subindex > &index)
 
const SpinMatrixoperator() (const std::initializer_list< Subindex > &index) const
 
virtual const SpinMatrixoperator() (unsigned int offset) const
 
virtual SpinMatrixoperator() (unsigned int offset)
 
void setAllowIndexOutOfBoundsAccess (bool allowIndexOutOfBoundsAccess)
 
void setDefaultValue (const SpinMatrix &defaultValue)
 
void replaceValues (const SpinMatrix &targetValue, const SpinMatrix &replacementValue)
 
- 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

- Public Types inherited from TBTK::Property::EnergyResolvedProperty< SpinMatrix >
enum  EnergyType
 
- Public Types inherited from TBTK::Serializable
enum  Mode { Debug, Binary, XML, JSON }
 
- 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)
 
- Protected Member Functions inherited from TBTK::Property::EnergyResolvedProperty< SpinMatrix >
EnergyResolvedPropertyoperator+= (const EnergyResolvedProperty &rhs)
 
EnergyResolvedPropertyoperator-= (const EnergyResolvedProperty &rhs)
 
EnergyResolvedPropertyoperator*= (const SpinMatrix &rhs)
 
EnergyResolvedPropertyoperator/= (const SpinMatrix &rhs)
 
- Protected Member Functions inherited from TBTK::Property::AbstractProperty< SpinMatrix >
 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 ()
 
AbstractPropertyoperator= (const AbstractProperty &abstractProperty)
 
AbstractPropertyoperator= (AbstractProperty &&abstractProperty)
 
AbstractPropertyoperator+= (const AbstractProperty &rhs)
 
AbstractPropertyoperator-= (const AbstractProperty &rhs)
 
AbstractPropertyoperator*= (const SpinMatrix &rhs)
 
AbstractPropertyoperator/= (const SpinMatrix &rhs)
 
- Protected Member Functions inherited from TBTK::Property::Property
 Property ()
 
virtual ~Property ()
 
- 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)
 

Detailed Description

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"
#include "TBTK/Smooth.h"
#include "TBTK/Solver/Diagonalizer.h"
#include "TBTK/Streams.h"
#include "TBTK/TBTK.h"
#include "TBTK/Visualization/MatPlotLib/Plotter.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}
);
model << HoppingAmplitude(
J,
{SIZE_X/2, SIZE_Y/2, 0},
{SIZE_X/2, SIZE_Y/2, 0}
);
model << HoppingAmplitude(
-J,
{SIZE_X/2, SIZE_Y/2, 1},
{SIZE_X/2, SIZE_Y/2, 1}
);
model.construct();
solver.setModel(model);
solver.run();
const double LOWER_BOUND = -5;
const double UPPER_BOUND = 5;
const unsigned int RESOLUTION = 100;
PropertyExtractor::Diagonalizer propertyExtractor(solver);
propertyExtractor.setEnergyWindow(
LOWER_BOUND,
UPPER_BOUND,
RESOLUTION
);
Property::SpinPolarizedLDOS spinPolarizedLDOS
= propertyExtractor.calculateSpinPolarizedLDOS({
{_a_, _a_, IDX_SPIN}
});
Streams::out << spinPolarizedLDOS << "\n";
Streams::out << spinPolarizedLDOS({10, 10, IDX_SPIN}, 49) << "\n";
const double SMOOTHING_SIGMA = 0.2;
const unsigned int SMOOTHING_WINDOW = 51;
spinPolarizedLDOS = Smooth::gaussian(
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)
PropertySpinPolarizedLDOSSpinPolarizedLDOS.png

Constructor & Destructor Documentation

◆ SpinPolarizedLDOS() [1/5]

TBTK::Property::SpinPolarizedLDOS::SpinPolarizedLDOS ( const std::vector< int > &  ranges,
double  lowerBound,
double  upperBound,
int  resolution 
)

Constructs a SpinPolarizedDOS on the Ranges format. [See AbstractProperty for detailed information about the Ranges format.]

Parameters
rangesThe upper limits (exclusive) for the corresponding dimensions.
lowerBoundLower bound for the energy.
upperBoundUpper bound for the energy.
resolutionNumber of points to use for the energy.

◆ SpinPolarizedLDOS() [2/5]

TBTK::Property::SpinPolarizedLDOS::SpinPolarizedLDOS ( const std::vector< int > &  ranges,
double  lowerBound,
double  upperBound,
int  resolution,
const SpinMatrix data 
)

Constructs a SpinPolarizedDOS on the Ranges format and initializes it with data. [See AbstractProperty for detailed information about the Ranges format and the raw data format.]

Parameters
rangesThe upper limits (exclusive) for the corresponding dimensions.
lowerBoundLower bound for the energy.
upperBoundUpper bound for the energy.
resolutionNumber of points to use for the energy.
dataRaw data to initialize the SpinPolarizedLDOS with.

◆ SpinPolarizedLDOS() [3/5]

TBTK::Property::SpinPolarizedLDOS::SpinPolarizedLDOS ( const IndexTree indexTree,
double  lowerBound,
double  upperBound,
int  resolution 
)

Constructs a SpinPolarizedDOS on the Custom format. [See AbstractProperty for detailed information about the Custom format.]

Parameters
indexTreeIndexTree containing the Indices for which the SpinPolarizedLDOS is contained.
lowerBoundLower bound for the energy.
upperBoundUpper bound for the energy.
resolutionNumber of points to use for the energy.

◆ SpinPolarizedLDOS() [4/5]

TBTK::Property::SpinPolarizedLDOS::SpinPolarizedLDOS ( const IndexTree indexTree,
double  lowerBound,
double  upperBound,
int  resolution,
const SpinMatrix data 
)

Constructs a SpinPolarizedDOS on the Custom format and initialize it with data. [See AbstractProperty for detailed information about the Custom format and the raw data format.]

Parameters
indexTreeIndexTree containing the Indices for which the SpinPolarizedLDOS is contained.
lowerBoundLower bound for the energy.
upperBoundUpper bound for the energy.
resolutionNumber of points to use for the energy.
dataRaw data to initialize the SpinPolarizedLDOS with.

◆ SpinPolarizedLDOS() [5/5]

TBTK::Property::SpinPolarizedLDOS::SpinPolarizedLDOS ( const std::string &  serialization,
Mode  mode 
)

Constructor. Construct the SpinPolarizedLDOS from a serialization string.

Parameters
serializationSerialization string from which to construct the SpinPolarizedLDOS.
modeMode with which the string has been serialized.

Member Function Documentation

◆ serialize()

std::string TBTK::Property::SpinPolarizedLDOS::serialize ( Mode  mode) const
virtual

◆ toString()

virtual std::string TBTK::Property::SpinPolarizedLDOS::toString ( ) const
virtual

Overrides Serializable::toString().

Reimplemented from TBTK::Property::AbstractProperty< SpinMatrix >.


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