(git:3add494)
fermi_utils Module Reference

deal with the Fermi distribution, compute it, fix mu, get derivs More...

Functions/Subroutines

subroutine, public fermi (f, N, kTS, e, mu, T, maxocc, estate, festate)
 returns occupations according to Fermi-Dirac statistics for a given set of energies and fermi level. Note that singly occupied orbitals are assumed More...
 
subroutine, public fermifixed (f, mu, kTS, e, N, T, maxocc, estate, festate)
 returns occupations according to Fermi-Dirac statistics for a given set of energies and number of electrons. Note that singly occupied orbitals are assumed. could fail if the fermi level lies out of the range of eigenvalues (to be fixed) More...
 
subroutine, public fermikp (f, mu, kTS, e, nel, wk, t, maxocc)
 Bisection search to find mu for a given nel (kpoint case) More...
 
subroutine, public fermikp2 (f, mu, kTS, e, nel, wk, t)
 Bisection search to find mu for a given nel (kpoint case) More...
 
subroutine, public fermifixedderiv (dfde, f, mu, kTS, e, N, T, maxocc, l, estate, festate)
 returns f and dfde for a given set of energies and number of electrons it is a numerical derivative, trying to use a reasonable step length it ought to yield an accuracy of approximately EPSILON()^(2/3) (~10^-11) l ~ 10*T yields best accuracy Note that singly occupied orbitals are assumed. To be fixed: this could be parallellized for better efficiency More...
 

Detailed Description

deal with the Fermi distribution, compute it, fix mu, get derivs

Author
Joost VandeVondele
Date
09.2008

Function/Subroutine Documentation

◆ fermi()

subroutine, public fermi_utils::fermi ( real(kind=dp), dimension(:), intent(out)  f,
real(kind=dp), intent(out)  N,
real(kind=dp), intent(out)  kTS,
real(kind=dp), dimension(:), intent(in)  e,
real(kind=dp), intent(in)  mu,
real(kind=dp), intent(in)  T,
real(kind=dp), intent(in)  maxocc,
integer, intent(in), optional  estate,
real(kind=dp), intent(in), optional  festate 
)

returns occupations according to Fermi-Dirac statistics for a given set of energies and fermi level. Note that singly occupied orbitals are assumed

Parameters
foccupations
Ntotal number of electrons (output)
kTS...
eeigenvalues
muFermi level (input)
Telectronic temperature
maxoccmaximum occupation of an orbital
estateexcited state in core level spectroscopy
festateoccupation of the excited state in core level spectroscopy
Date
09.2008
History
  • Made estate and festate optional (LT, 2014/02/26)
Author
Joost VandeVondele

Definition at line 47 of file fermi_utils.F.

Here is the caller graph for this function:

◆ fermifixed()

subroutine, public fermi_utils::fermifixed ( real(kind=dp), dimension(:), intent(out)  f,
real(kind=dp), intent(out)  mu,
real(kind=dp), intent(out)  kTS,
real(kind=dp), dimension(:), intent(in)  e,
real(kind=dp), intent(in)  N,
real(kind=dp), intent(in)  T,
real(kind=dp), intent(in)  maxocc,
integer, intent(in), optional  estate,
real(kind=dp), intent(in), optional  festate 
)

returns occupations according to Fermi-Dirac statistics for a given set of energies and number of electrons. Note that singly occupied orbitals are assumed. could fail if the fermi level lies out of the range of eigenvalues (to be fixed)

Parameters
foccupations
muFermi level (output)
kTS...
eeigenvalues
Ntotal number of electrons (input)
Telectronic temperature
maxoccmaximum occupation of an orbital
estateexcited state in core level spectroscopy
festateoccupation of the excited state in core level spectroscopy
Date
09.2008
History
  • Made estate and festate optional (LT, 2014/02/26)
Author
Joost VandeVondele

Definition at line 201 of file fermi_utils.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fermikp()

subroutine, public fermi_utils::fermikp ( real(kind=dp), dimension(:, :), intent(out)  f,
real(kind=dp), intent(out)  mu,
real(kind=dp), intent(out)  kTS,
real(kind=dp), dimension(:, :), intent(in)  e,
real(kind=dp), intent(in)  nel,
real(kind=dp), dimension(:), intent(in)  wk,
real(kind=dp), intent(in)  t,
real(kind=dp), intent(in)  maxocc 
)

Bisection search to find mu for a given nel (kpoint case)

Parameters
fOccupation numbers
muchemical potential
kTSEntropic energy contribution
eorbital (band) energies
nelNumber of electrons (total)
wkkpoint weights
tTemperature
maxoccMaximum occupation

Definition at line 282 of file fermi_utils.F.

Here is the caller graph for this function:

◆ fermikp2()

subroutine, public fermi_utils::fermikp2 ( real(kind=dp), dimension(:, :, :), intent(out)  f,
real(kind=dp), intent(out)  mu,
real(kind=dp), intent(out)  kTS,
real(kind=dp), dimension(:, :, :), intent(in)  e,
real(kind=dp), intent(in)  nel,
real(kind=dp), dimension(:), intent(in)  wk,
real(kind=dp), intent(in)  t 
)

Bisection search to find mu for a given nel (kpoint case)

Parameters
fOccupation numbers
muchemical potential
kTSEntropic energy contribution
eorbital (band) energies
nelNumber of electrons (total)
wkkpoint weights
tTemperature

Definition at line 335 of file fermi_utils.F.

Here is the caller graph for this function:

◆ fermifixedderiv()

subroutine, public fermi_utils::fermifixedderiv ( real(kind=dp), dimension(:, :), intent(out)  dfde,
real(kind=dp), dimension(:), intent(out)  f,
real(kind=dp), intent(out)  mu,
real(kind=dp), intent(out)  kTS,
real(kind=dp), dimension(:), intent(in)  e,
real(kind=dp), intent(in)  N,
real(kind=dp), intent(in)  T,
real(kind=dp), intent(in)  maxocc,
real(kind=dp), intent(in)  l,
integer, intent(in), optional  estate,
real(kind=dp), intent(in), optional  festate 
)

returns f and dfde for a given set of energies and number of electrons it is a numerical derivative, trying to use a reasonable step length it ought to yield an accuracy of approximately EPSILON()^(2/3) (~10^-11) l ~ 10*T yields best accuracy Note that singly occupied orbitals are assumed. To be fixed: this could be parallellized for better efficiency

Parameters
dfdederivatives of the occupation numbers with respect to the eigenvalues the ith column is the derivative of f wrt to e_i
foccupations
muFermi level (input)
kTS...
eeigenvalues
Ntotal number of electrons (output)
Telectronic temperature
maxocc...
ltypical length scale (~ 10 * T)
estate...
festate...
Date
09.2008
History
  • Made estate and festate optional (LT, 2014/02/26)
  • Changed order of input, so l is before the two optional variables (LT, 2014/02/26)
Author
Joost VandeVondele

Definition at line 412 of file fermi_utils.F.

Here is the call graph for this function: