#include <occupy.h>
|
| static void | decision (const std::string &name, const std::string &smearing_method, const double &smearing_sigma) |
| |
| static const bool & | gauss (void) |
| |
| static const bool & | fix (void) |
| |
| static void | iweights (const int nks, const std::vector< double > &wk, const int nband, const double &nelec, const ModuleBase::matrix &ekb, double &ef, ModuleBase::matrix &wg, const int &is, const std::vector< int > &isk) |
| | calculates weights and fermi energy for semiconductors and insulators
|
| |
| static void | gweights (const int nks, const std::vector< double > &wk, const int nband, const double &nelec, const double &smearing_sigma, const int ngauss, const ModuleBase::matrix &ekb, double &ef, double &demet, ModuleBase::matrix &wg, const int &is, const std::vector< int > &isk) |
| | calculates weights with the gaussian spreading technique
|
| |
| static void | tweights (const int nks, const int nspin, const int nband, const double &nelec, const int ntetra, const ModuleBase::matrix &tetra, double **ekb, double &ef, ModuleBase::matrix &wg) |
| |
| static double | wsweight (const ModuleBase::Vector3< double > &r, ModuleBase::Vector3< double > *rws, const int nrws) |
| |
|
| static void | efermig (const ModuleBase::matrix &ekb, const int nbnd, const int nks, const double &nelec, const std::vector< double > &wk, const double &smearing_sigma, const int ngauss, double &ef, const int &is, const std::vector< int > &isk) |
| | Finds the Fermi energy.
|
| |
| static double | sumkg (const ModuleBase::matrix &ekb, const int nband, const int nks, const std::vector< double > &wk, const double &smearing_sigma, const int ngauss, const double &e, const int &is, const std::vector< int > &isk) |
| | This function computes the number of states under a given energy e.
|
| |
| static double | wgauss (const double &x, const int n) |
| |
| static double | w1gauss (const double &x, const int n) |
| |
| static void | efermit (double **ekb, const int nband, const int nks, const double &nelec, const int nspin, const int ntetra, const ModuleBase::matrix &tetra, double &ef) |
| |
| static double | sumkt (double **ekb, const int nband, const int nks, const int nspin, const int ntetra, const ModuleBase::matrix &tetra, const double &eup) |
| |
| static void | piksort (const int n, double *a) |
| |
◆ Occupy()
◆ ~Occupy()
◆ decision()
| void Occupy::decision |
( |
const std::string & |
name, |
|
|
const std::string & |
smearing_method, |
|
|
const double & |
smearing_sigma |
|
) |
| |
|
static |
◆ efermig()
| void Occupy::efermig |
( |
const ModuleBase::matrix & |
ekb, |
|
|
const int |
nband, |
|
|
const int |
nks, |
|
|
const double & |
nelec, |
|
|
const std::vector< double > & |
wk, |
|
|
const double & |
smearing_sigma, |
|
|
const int |
ngauss, |
|
|
double & |
ef, |
|
|
const int & |
is, |
|
|
const std::vector< int > & |
isk |
|
) |
| |
|
staticprivate |
Finds the Fermi energy.
- Parameters
-
| ekb | band energy. |
| nband | number of bands. |
| nks | nks number of k points. |
| nelec | number of electrons. |
| wk | wk weight of each k point(symmetry considered). |
| smearing_sigma | parameter input by user. |
| ngauss | which type of smearing. |
| ef | output: fermi level |
| is | spin |
| isk | array to point out each k belong to which spin |
◆ efermit()
| static void Occupy::efermit |
( |
double ** |
ekb, |
|
|
const int |
nband, |
|
|
const int |
nks, |
|
|
const double & |
nelec, |
|
|
const int |
nspin, |
|
|
const int |
ntetra, |
|
|
const ModuleBase::matrix & |
tetra, |
|
|
double & |
ef |
|
) |
| |
|
staticprivate |
◆ fix()
| static const bool & Occupy::fix |
( |
void |
| ) |
|
|
inlinestatic |
◆ gauss()
| static const bool & Occupy::gauss |
( |
void |
| ) |
|
|
inlinestatic |
◆ gweights()
| void Occupy::gweights |
( |
const int |
nks, |
|
|
const std::vector< double > & |
wk, |
|
|
const int |
nband, |
|
|
const double & |
nelec, |
|
|
const double & |
smearing_sigma, |
|
|
const int |
ngauss, |
|
|
const ModuleBase::matrix & |
ekb, |
|
|
double & |
ef, |
|
|
double & |
demet, |
|
|
ModuleBase::matrix & |
wg, |
|
|
const int & |
is, |
|
|
const std::vector< int > & |
isk |
|
) |
| |
|
static |
calculates weights with the gaussian spreading technique
- Parameters
-
| nks | number of k points. |
| wk | weight of each k point(symmetry considered). |
| nband | number of bands. |
| nelec | number of electrons. |
| smearing_sigma | parameter input by user. |
| ngauss | which type of smearing. |
| ekb | band energy. |
| ef | output: fermi level |
| demet | output: energy correction for metal |
| wg | output: weight of each band at each k point |
| is | spin |
| isk | array to point out each k belong to which spin |
◆ iweights()
| void Occupy::iweights |
( |
const int |
nks, |
|
|
const std::vector< double > & |
wk, |
|
|
const int |
nbands, |
|
|
const double & |
nelec, |
|
|
const ModuleBase::matrix & |
ekb, |
|
|
double & |
ef, |
|
|
ModuleBase::matrix & |
wg, |
|
|
const int & |
is, |
|
|
const std::vector< int > & |
isk |
|
) |
| |
|
static |
calculates weights and fermi energy for semiconductors and insulators
- Note
- It is only applicable to semiconductors and insulators that have an energy gap. Here, bands are either empty or filled, and there is no electronic transfer among different k-points.
- Parameters
-
| nks | number of k points. |
| wk | weight of each k point (consider symmetry). |
| nbands | number of bands. |
| nelec | number of electrons for this spin direction. |
| ekb | the array save the band energy. |
| ef | output: the highest occupied Kohn-Sham level. |
| wg | output: weight for each k, each band. |
| is | the spin index now. |
| isk | distinguish k point belong to which spin. |
◆ piksort()
| static void Occupy::piksort |
( |
const int |
n, |
|
|
double * |
a |
|
) |
| |
|
staticprivate |
◆ sumkg()
| double Occupy::sumkg |
( |
const ModuleBase::matrix & |
ekb, |
|
|
const int |
nband, |
|
|
const int |
nks, |
|
|
const std::vector< double > & |
wk, |
|
|
const double & |
smearing_sigma, |
|
|
const int |
ngauss, |
|
|
const double & |
e, |
|
|
const int & |
is, |
|
|
const std::vector< int > & |
isk |
|
) |
| |
|
staticprivate |
This function computes the number of states under a given energy e.
- Parameters
-
| ekb | band energy. |
| nband | number of bands. |
| nks | number of k points. |
| wk | weight of each k point(symmetry considered). |
| smearing_sigma | parameter input by user |
| ngauss | which type of smearing. |
| e | a givern energy |
| is | spin |
| isk | array to point out each k belong to which spin |
- Returns
- (double) the number of states
◆ sumkt()
| static double Occupy::sumkt |
( |
double ** |
ekb, |
|
|
const int |
nband, |
|
|
const int |
nks, |
|
|
const int |
nspin, |
|
|
const int |
ntetra, |
|
|
const ModuleBase::matrix & |
tetra, |
|
|
const double & |
eup |
|
) |
| |
|
staticprivate |
◆ tweights()
| static void Occupy::tweights |
( |
const int |
nks, |
|
|
const int |
nspin, |
|
|
const int |
nband, |
|
|
const double & |
nelec, |
|
|
const int |
ntetra, |
|
|
const ModuleBase::matrix & |
tetra, |
|
|
double ** |
ekb, |
|
|
double & |
ef, |
|
|
ModuleBase::matrix & |
wg |
|
) |
| |
|
static |
◆ w1gauss()
| double Occupy::w1gauss |
( |
const double & |
x, |
|
|
const int |
n |
|
) |
| |
|
staticprivate |
◆ wgauss()
| double Occupy::wgauss |
( |
const double & |
x, |
|
|
const int |
n |
|
) |
| |
|
staticprivate |
◆ wsweight()
◆ fixed_occupations
| bool Occupy::fixed_occupations = false |
|
static |
◆ gaussian_parameter
| double Occupy::gaussian_parameter = 0.01 |
|
static |
◆ gaussian_type
| int Occupy::gaussian_type = 0 |
|
static |
◆ use_gaussian_broadening
| bool Occupy::use_gaussian_broadening = false |
|
static |
The documentation for this class was generated from the following files:
- /home/runner/work/abacus-develop/abacus-develop/source/source_estate/occupy.h
- /home/runner/work/abacus-develop/abacus-develop/source/source_estate/occupy.cpp
- /home/runner/work/abacus-develop/abacus-develop/source/source_io/test/for_testing_input_conv.h