The window class contains the logic to decide whether to keep or discard a Bloch state. More...
#include <window.h>
Public Member Functions | |
| Window (Context &context, Particle &particle_, const double &temperatureMin=0., const double &temperatureMax=0., const double &chemicalPotentialMin=0., const double &chemicalPotentialMax=0.) | |
| Class constructor. More... | |
| std::tuple< std::vector< double >, std::vector< int > > | apply (Eigen::VectorXd &energies) |
| public interface to use the window, used by activeBandStructure. More... | |
| int | getMethodUsed () const |
| Returns the kind of energy filter used. More... | |
Static Public Attributes | |
| static const int | nothing = 0 |
| nothing=0 identifies the do-nothing window | |
| static const int | population = 1 |
| population labels the window type looking for partially occupied states | |
| static const int | energy = 2 |
| energy labels the window type looking for states within two energy values | |
| static const int | muEnergy = 3 |
| the window type is provided by the user as an energy range, where the values are a +/- range around mu | |
Mainly used by ActiveBandStructure, it contains some criteria by which we decide to discard some points from the calculation. Only three filters are implemented: 1- no filter is applied 2- population: we discard states that are scarcely (or fully) populated. 3- energy: the user provides a lower an upper bound to the energies to be considered.
| Window::Window | ( | Context & | context, |
| Particle & | particle_, | ||
| const double & | temperatureMin = 0., |
||
| const double & | temperatureMax = 0., |
||
| const double & | chemicalPotentialMin = 0., |
||
| const double & | chemicalPotentialMax = 0. |
||
| ) |
| context | object with user input |
| particle | object describing whether we have electrons or phonons. |
| temperatureMin | smallest value of temperature used in the calculation. |
| temperatureMax | largest value of temperature used. |
| chemicalPotentialMin | smallest value of chemical potential used in the calculation. |
| chemicalPotentialMax | largest value of chemical potential used in the calculation. |
Note: temperatures and chemical potentials are used only if we are using a filter on populations.

| std::tuple< std::vector< double >, std::vector< int > > Window::apply | ( | Eigen::VectorXd & | energies | ) |
| energies: a list of energies, in absolute units. They should be using the same offset of the chemical potential. Nota Bene: the energies should be sorted! This is typically true if we are looping over the energies of a single wavevector. |


| int Window::getMethodUsed | ( | ) | const |
