#include <DPropertyExtractor.h>
|
| | DPropertyExtractor (DiagonalizationSolver *dSolver) |
| |
| | ~DPropertyExtractor () |
| |
| void | saveEigenValues (std::string path="./", std::string filename="EV.dat") |
| |
| void | getTabulatedAmplitudeSet (std::complex< double > **amplitudes, int **indices, int *numHoppingAmplitudes, int *maxIndexSize) |
| |
| Property::EigenValues * | getEigenValues () |
| |
| double | getEigenValue (int state) |
| |
| const std::complex< double > | getAmplitude (int state, const Index &index) |
| |
| Property::DOS * | calculateDOS (double l_lim, double u_lim, int resolution) |
| |
| Property::Density * | calculateDensity (Index pattern, Index ranges) |
| |
| Property::Magnetization * | calculateMagnetization (Index pattern, Index ranges) |
| |
| Property::SpinPolarizedLDOS * | calculateSpinPolarizedLDOS (Index pattern, Index ranges, double l_lim, double u_lim, int resolution) |
| |
The DPropertyExtractor extracts common physical properties such as DOS, Density, LDOS, etc. from a DiagonalizationSolver. These can then be written to file using the FileWriter.
| TBTK::DPropertyExtractor::~DPropertyExtractor |
( |
| ) |
|
Calculate density.
- Parameters
-
| pattern | Specifies the index pattern for which to calculate the density. For example, assume that the index scheme is {x, y, z, spin}. {ID_X, 5, 10, IDX_SUM_ALL} will calculate the density for each x along (y,z)=(5,10) by summing over spin. Similarly {ID_X, 5, IDX_Y, IDX_SUM_ALL} will return a two dimensional density for all x and z and y = 5. Note that IDX_X IDX_Y, and IDX_Z refers to the first, second, and third index used by the routine to create a one-, two-, or three-dimensional output, rather than being tied to the x, y, and z used as physical subindices. |
| ranges | Speifies the number of elements for each subindex. Is ignored for indices specified with positive integer in the pattern, but is used to loop from 0 to the value in ranges for IDX_X, IDX_Y, IDX_Z, and IDX_SUM_ALL. Appropriate ranges corresponding to the two pattern examples above are {SIZE_X, 1, 1, NUM_SPINS} and {SIZE_X, 1, SIZE_Z, NUM_SPINS}, respectively. |
- Returns
- A density array with size equal to the number of points included by specified patter-range combination.
| Property::DOS * TBTK::DPropertyExtractor::calculateDOS |
( |
double |
l_lim, |
|
|
double |
u_lim, |
|
|
int |
resolution |
|
) |
| |
Calculate density of states.
- Parameters
-
| l_lim | Lower limit for energy interval. |
| u_lim | Upper limit for energy interval. |
| resolution | Number of points used between l_lim and u_lim. |
- Returns
- An array with size resolution.
Calculate magnetization.
- Parameters
-
| pattern | Specifies the index pattern for which to calculate the magnetization. For example, assume that the index scheme is {x, y, z, spin}. {ID_X, 5, 10, IDX_SPIN} will calculate the magnetization for each x along (y,z)=(5,10). Similarly {ID_X, 5, IDX_Y, IDX_SPIN} will return a two dimensional magnetiation for all x and z and y = 5. Note that IDX_X, IDX_Y, and IDX_Z refers to the first, second, and third index used by the routine to create a one-, two-, or three-dimensional output, rather than being tied to the x, y, and z used as physical subindices. |
| ranges | Speifies the number of elements for each subindex. Is ignored for indices specified with positive integers in the pattern, but is used to loop from 0 to the value in ranges for IDX_X, IDX_Y, IDX_Z, and IDX_SUM_ALL. Appropriate ranges corresponding to the two pattern examples above are {SIZE_X, 1, 1, NUM_SPINS} and {SIZE_X, 1, SIZE_Z, NUM_SPINS}, respectively. |
- Returns
- A magnetization array with size equal to four times the number of points included by specified patter-range combination. The four entries are
Calculate spin-polarized local density of states.
- Parameters
-
| pattern | Specifies the index pattern for which to calculate the spin-polarized LDOS. For example, assume that the index scheme is {x, y, z, spin}. {ID_X, 5, 10, IDX_SPIN} will calculate the spin-polarized LDOS for each x along (y,z)=(5,10). Similarly {ID_X, 5, IDX_Y, IDX_SPIN} will return a two dimensional spin-polarized LDOS for all x and z and y = 5. Note that IDX_X, IDX_Y, and IDX_Z refers to the first, second, and third index used by the routine to create a one-, two-, or three-dimensional output, rather than being tied to the x, y, and z used as physical subindices. |
| ranges | Speifies the number of elements for each subindex. Is ignored for indices specified with positive integers in the pattern, but is used to loop from 0 to the value in ranges for IDX_X, IDX_Y, IDX_Z, and IDX_SUM_ALL. Appropriate ranges corresponding to the two pattern examples above are {SIZE_X, 1, 1, NUM_SPINS} and {SIZE_X, 1, SIZE_Z, NUM_SPINS}, respectively. |
- Returns
- A spin-polarized LDOS array with size equal to four times the number of points included by specified patter-range combination. The four entries are
where
| const std::complex< double > TBTK::DPropertyExtractor::getAmplitude |
( |
int |
state, |
|
|
const Index & |
index |
|
) |
| |
|
inline |
| double TBTK::DPropertyExtractor::getEigenValue |
( |
int |
state | ) |
|
|
inline |
| void TBTK::DPropertyExtractor::getTabulatedAmplitudeSet |
( |
std::complex< double > ** |
amplitudes, |
|
|
int ** |
indices, |
|
|
int * |
numHoppingAmplitudes, |
|
|
int * |
maxIndexSize |
|
) |
| |
Experimental. Extracts a tabulated version of the AmplitudeSet.
| void TBTK::DPropertyExtractor::saveEigenValues |
( |
std::string |
path = "./", |
|
|
std::string |
filename = "EV.dat" |
|
) |
| |
The documentation for this class was generated from the following files: