|
| | FullBandStructure (int numBands_, Particle &particle_, bool withVelocities, bool withEigenvectors, Points &points_, bool isDistributed_=false) |
| | Constructor of the FullBandStructure. More...
|
| |
|
| FullBandStructure (const FullBandStructure &that) |
| | Copy constructor.
|
| |
|
FullBandStructure & | operator= (const FullBandStructure &that) |
| | Copy assignment operator.
|
| |
|
void | symmetrize () |
| | Symmetrizes the full band structure energies.
|
| |
| Particle | getParticle () override |
| | Get the Particle object associated with this class. More...
|
| |
| Points | getPoints () override |
| | Returns the wavevectors on which the band structure is computed. More...
|
| |
| Point | getPoint (const int &pointIndex) override |
| | Returns a wavevector, given a wavevector index. More...
|
| |
| int | getNumPoints (const bool &useFullGrid=false) override |
| | Returns the total number of k/q-points. More...
|
| |
| int | getNumBands () override |
| | Returns the number of bands. More...
|
| |
|
int | getFullNumBands () override |
| |
| int | getNumBands (WavevectorIndex &ik) override |
| | Returns the number of bands, to provide flexibility in cases where full or activeBandStructure could be used. More...
|
| |
| int | hasWindow () override |
| | Checks whether the bandStructure has been built discarding some Bloch states from those available. More...
|
| |
|
bool | getIsDistributed () override |
| | Returns the boolean determining if this band structure is distributed or not.
|
| |
|
bool | getHasEigenvectors () |
| |
| size_t | getIndex (const WavevectorIndex &ik, const BandIndex &ib) override |
| | Builds a Bloch state index, which runs on both wavevector index and band index. More...
|
| |
| std::tuple< WavevectorIndex, BandIndex > | getIndex (const int &is) override |
| | Given a Bloch state index, finds the corresponding wavevector and band index. More...
|
| |
| std::tuple< WavevectorIndex, BandIndex > | getIndex (StateIndex &is) override |
| | Given a Bloch state index, finds the corresponding wavevector and band index. More...
|
| |
| int | getNumStates () override |
| | Returns the total number of Bloch states, equal to numPoints*numBands. More...
|
| |
| std::vector< int > | getLocalWavevectorIndices () |
| | Returns the indices of all wavevector indices on this process, or in an undistributed case, returns all wavevector indices. More...
|
| |
| std::vector< std::tuple< WavevectorIndex, BandIndex > > | getLocalEnergyStateIndices () |
| | Returns the indices of all n,k indices on this process, or in an undistributed case, returns all state indices. More...
|
| |
| std::vector< int > | getLocalBandIndices () const |
| | Returns the indices of all state indices on this process, or in an undistributed case, returns all state indices. More...
|
| |
| const double & | getEnergy (StateIndex &is) override |
| | Returns the energy of a quasiparticle from its Bloch index. More...
|
| |
| const double & | getEnergy (WavevectorIndex &ik, BandIndex &ib) |
| | Returns the energy of a quasiparticle from its band and wavevector index. More...
|
| |
| Eigen::VectorXd | getEnergies (WavevectorIndex &ik) override |
| | Returns the energies of all quasiparticle computed at a specified wavevector. More...
|
| |
| double | getMaxEnergy () override |
| | Return the maximum energy of a bandstructure. More...
|
| |
| Eigen::Vector3d | getGroupVelocity (StateIndex &is) override |
| | Returns the group velocity of a quasiparticle from its Bloch index. More...
|
| |
| Eigen::MatrixXd | getGroupVelocities (WavevectorIndex &ik) override |
| | Returns the group velocity of a quasiparticle for all bands at a specified wavevector index. More...
|
| |
| Eigen::Tensor< std::complex< double >, 3 > | getVelocities (WavevectorIndex &ik) override |
| | Returns the velocity operator (including off-diagonal matrix elements) of the quasiparticles at the specified wavevector index. More...
|
| |
| Eigen::MatrixXcd | getEigenvectors (WavevectorIndex &ik) override |
| | Obtain the eigenvectors of the quasiparticles at a specified wavevector. More...
|
| |
| Eigen::Tensor< std::complex< double >, 3 > | getPhEigenvectors (WavevectorIndex &ik) override |
| | Obtain the eigenvectors of the quasiparticles at a specified wavevector. More...
|
| |
| Eigen::Vector3d | getWavevector (StateIndex &is) override |
| | Returns the energy of a quasiparticle from its Bloch index. More...
|
| |
| Eigen::Vector3d | getWavevector (WavevectorIndex &ik) override |
| | Returns the energy of a quasiparticle from its Bloch index. More...
|
| |
| void | setEnergies (Point &point, Eigen::VectorXd &energies_) override |
| | Method to save quasiparticle energies inside FullBandStructure(). More...
|
| |
| void | setEigenvectors (Point &point, Eigen::MatrixXcd &eigenvectors_) override |
| | Method to save quasiparticle eigenvectors inside FullBandStructure(). More...
|
| |
| void | setVelocities (Point &point, Eigen::Tensor< std::complex< double >, 3 > &velocities_) override |
| | Saves in the class the velocities computed at a particular point. More...
|
| |
| void | setEnergies (Eigen::Vector3d &point, Eigen::VectorXd &energies_) |
| | Method to save quasiparticle eigenvectors inside FullBandStructure(). More...
|
| |
| Eigen::VectorXd | getBandEnergies (int &bandIndex) |
| | Returns all electronic energies for all wavevectors at fixed band index Used by the Fourier interpolation of the band structure. More...
|
| |
| std::vector< Eigen::Matrix3d > | getRotationsStar (WavevectorIndex &ikIndex) override |
| | Given a irreducible point index, find the list of rotations to reconstruct the equivalent points. More...
|
| |
| std::vector< Eigen::Matrix3d > | getRotationsStar (StateIndex &isIndex) override |
| | Given an irreducible Bloch state (i.e. More...
|
| |
| std::tuple< int, Eigen::Matrix3d > | getRotationToIrreducible (const Eigen::Vector3d &x, const int &basis=Points::crystalCoordinates) override |
| | Given a point in crystal or cartesian coordinates, returns the index of the irreducible point and the rotation such that rotation*irrPoint = redPoint. More...
|
| |
| BteIndex | stateToBte (StateIndex &isIndex) override |
| | Utility method to convert an index over Bloch states in the band structure into a Bloch state index usable by VectorBTE. More...
|
| |
| StateIndex | bteToState (BteIndex &iBteIndex) override |
| | Utility method to convert an index over Bloch states in a VectorBTE into the Bloch state index in the band structure. More...
|
| |
| std::vector< int > | irrStateIterator () override |
| | Iterator over the Bloch states in the band structure, over just the irreducible wavevectors, but isn't distributed over MPI processes. More...
|
| |
| std::vector< int > | parallelIrrStateIterator () override |
| | Iterator over the Bloch states in the band structure, distributed over MPI processes, running only over irreducible wavevectors. More...
|
| |
| std::vector< int > | irrPointsIterator () override |
| | Iterator over the irreducible points indices. More...
|
| |
| std::vector< int > | parallelIrrPointsIterator () override |
| | Iterator over the irreducible points indices. More...
|
| |
|
int | getNumIrrStates () override |
| | Returns the number of irreducible points for this band structure.
|
| |
| int | getPointIndex (const Eigen::Vector3d &crystalCoordinates, const bool &suppressError=false) override |
| | Find the index of a point in the reducible list of points, given its coordinates in the crystal basis. More...
|
| |
| std::vector< int > | getReducibleStarFromIrreducible (const int &ik) override |
| | Method to find the points equivalent to an irreducible point. More...
|
| |
Public Member Functions inherited from BaseBandStructure |
|
virtual | ~BaseBandStructure ()=default |
| | Base destructor for bandstructure class, silences warnings.
|
| |
| virtual std::vector< size_t > | parallelStateIterator () |
| | Returns an iterator to be used for loops over the Bloch state index. More...
|
| |
| void | outputComponentsToJSON (const std::string &outFileName="bandstructure.json") |
| | Outputs the bandstructure information to file, either sym reduced or not. More...
|
| |
| void | printBandStructureStateInfo (const int &fullNumBands) |
| | A function to print information about how many states are in this bandstructure, and how things were reduced by filtering of states. More...
|
| |
By default, each MPI process holds a full copy of the band structure. However, the band structure can be distributed over the wavevectors, if so specified in the constructor.
An important note for developers: When using a distributed band structure, looping over numStates of the band structure will not work – you need to loop over the iterator of indices provided by getStateIndices or getWavevectorIndices. The class will throw errors when nonlocal values are being requested. All functions in band structure are written to take the global wavevector indices associated with the Points object internal to the band structure (because we use the Point class to find wavevector indices in get and set functions of band structure).