|
TBTK
|
#include <CPropertyExtractor.h>
Public Member Functions | |
| CPropertyExtractor (ChebyshevSolver *cSolver, int numCoefficients, int energyResolution, bool useGPUToCalculateCoefficients, bool useGPUToGenerateGreensFunctions, bool useLookupTable=true, double lowerBound=-1., double upperBound=1.) | |
| ~CPropertyExtractor () | |
| std::complex< double > * | calculateGreensFunction (Index to, Index from, ChebyshevSolver::GreensFunctionType type=ChebyshevSolver::GreensFunctionType::Retarded) |
| std::complex< double > * | calculateGreensFunctions (std::vector< Index > &to, Index from, ChebyshevSolver::GreensFunctionType type=ChebyshevSolver::GreensFunctionType::Retarded) |
| std::complex< double > | calculateExpectationValue (Index to, Index from) |
| Property::Density * | calculateDensity (Index pattern, Index ranges) |
| Property::Magnetization * | calculateMagnetization (Index pattern, Index ranges) |
| Property::LDOS * | calculateLDOS (Index pattern, Index ranges) |
| Property::SpinPolarizedLDOS * | calculateSpinPolarizedLDOS (Index pattern, Index ranges) |
Experimental class for extracting properties from a ChebyshevSolver.
| TBTK::CPropertyExtractor::CPropertyExtractor | ( | ChebyshevSolver * | cSolver, |
| int | numCoefficients, | ||
| int | energyResolution, | ||
| bool | useGPUToCalculateCoefficients, | ||
| bool | useGPUToGenerateGreensFunctions, | ||
| bool | useLookupTable = true, |
||
| double | lowerBound = -1., |
||
| double | upperBound = 1. |
||
| ) |
Constructor.
| TBTK::CPropertyExtractor::~CPropertyExtractor | ( | ) |
Destructor.
| Property::Density * TBTK::CPropertyExtractor::calculateDensity | ( | Index | pattern, |
| Index | ranges | ||
| ) |
!!!Not tested!!! Calculate density.
| 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 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. |
Calculate expectation value.
| complex< double > * TBTK::CPropertyExtractor::calculateGreensFunction | ( | Index | to, |
| Index | from, | ||
| ChebyshevSolver::GreensFunctionType | type = ChebyshevSolver::GreensFunctionType::Retarded |
||
| ) |
Calculate Green's function.
| complex< double > * TBTK::CPropertyExtractor::calculateGreensFunctions | ( | std::vector< Index > & | to, |
| Index | from, | ||
| ChebyshevSolver::GreensFunctionType | type = ChebyshevSolver::GreensFunctionType::Retarded |
||
| ) |
Calculate Green's function for a range of 'to'-indices.
| Property::LDOS * TBTK::CPropertyExtractor::calculateLDOS | ( | Index | pattern, |
| Index | ranges | ||
| ) |
!!!Not tested!!!. Calculate local density of states.
| pattern | Specifies the index pattern for which to calculate the LDOS. For example, assume that the index scheme is {x, y, z, spin}. {ID_X, 5, 10, IDX_SUM_ALL} will calculate the LDOS 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 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. |
| Property::Magnetization * TBTK::CPropertyExtractor::calculateMagnetization | ( | Index | pattern, |
| Index | ranges | ||
| ) |
!!!Not tested!!! Calculate magnetization.
| 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. |
| Property::SpinPolarizedLDOS * TBTK::CPropertyExtractor::calculateSpinPolarizedLDOS | ( | Index | pattern, |
| Index | ranges | ||
| ) |
!!!Not tested!!!. Calculate spin-polarized local density of states.
| 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. |
1.8.11