Octopus
simplex_oct_m Module Reference

Data Types

interface  simplex_t
 

Functions/Subroutines

type(simplex_t) function, pointer, public simplex_init (dim, naxis, nshifts, shift, kpoints, equiv)
 Constructor for linear simplex methods. More...
 
subroutine, public simplex_end (this)
 Destructor for linear simplex methods. More...
 
subroutine, public simplex_weights_2d (etriangle, eF, weights, dos)
 Get the weights and DOS contribution of a single tetrahedron. More...
 
subroutine, public simplex_dos_2d (etriangle, eF, dos)
 Get only the DOS contribution of a single triangle. More...
 
subroutine, public simplex_weights_3d (etetra, eF, weights, dos)
 Get the weights and DOS contribution of a single tetrahedron. More...
 
subroutine, public simplex_dos_3d (etetra, eF, dos)
 Get only the DOS contribution of a single tetrahedron. More...
 

Function/Subroutine Documentation

◆ simplex_init()

type(simplex_t) function, pointer, public simplex_oct_m::simplex_init ( integer, intent(in)  dim,
integer, dimension(1:dim), intent(in)  naxis,
integer, intent(in)  nshifts,
real(real64), dimension(:,:), intent(in)  shift,
real(real64), dimension(:,:), intent(in)  kpoints,
integer, dimension(:), intent(in)  equiv 
)

Constructor for linear simplex methods.

At the moment this performs a dumb tetrahedrization of the BZ by converting the coordinates of k-points back into integer triples. This only works for a two- and three-dimensional BZ and if there is only a single shift. Both of these conditions are ASSERTed.

Parameters
[in]dimDimension of the system
[in]naxisNumber of k-points along each dimension
[in]nshiftNumber of shifts
[in]shiftShifts along each dimension
[in]kpointsGrid of k-points in the unreduced BZ
[in]equivMapping of k-point indices in the full BZ to the reduced BZ
Returns
New linear simplex method instance

Definition at line 170 of file simplex.F90.

◆ simplex_end()

subroutine, public simplex_oct_m::simplex_end ( type(simplex_t), intent(inout)  this)

Destructor for linear simplex methods.

Parameters
[in,out]thisLinear simplex method instance

Definition at line 310 of file simplex.F90.

◆ simplex_weights_2d()

subroutine, public simplex_oct_m::simplex_weights_2d ( real(real64), dimension(3), intent(in)  etriangle,
real(real64), intent(in)  eF,
real(real64), dimension(3), intent(out)  weights,
real(real64), intent(out)  dos 
)

Get the weights and DOS contribution of a single tetrahedron.

The expressions for the Bl\U000000f6chl-type correction is given in Eq. 4 of J.-H. Lee, et al., Phys. Rev. B 66, 233102 (2002).

Parameters
[in]etriangleEigenenergies on the corner points of a triangle
[in]eFReference energy
[out]weightsIntegration weights for each corner of the tetrahedron (including Bloechl correction)
[out]dosContribution to the DOS by the tetrahedron

Definition at line 326 of file simplex.F90.

◆ simplex_dos_2d()

subroutine, public simplex_oct_m::simplex_dos_2d ( real(real64), dimension(3), intent(in)  etriangle,
real(real64), intent(in)  eF,
real(real64), intent(out)  dos 
)

Get only the DOS contribution of a single triangle.

Parameters
[in]etriangleEigenenergies on the corner points of a triangle
[in]eFReference energy
[out]dosContribution to the DOS by the triangle

Definition at line 395 of file simplex.F90.

◆ simplex_weights_3d()

subroutine, public simplex_oct_m::simplex_weights_3d ( real(real64), dimension(4), intent(in)  etetra,
real(real64), intent(in)  eF,
real(real64), dimension(4), intent(out)  weights,
real(real64), intent(out)  dos 
)

Get the weights and DOS contribution of a single tetrahedron.

The expressions for are given in Appendix B and C of P. E. Bloechl, et al., Phys. Rev. B 49, 16223 (1994).

Parameters
[in]etetraEigenenergies on the corner points of a tetrahedron
[in]eFReference energy
[out]weightsIntegration weights for each corner of the tetrahedron (including Bloechl correction)
[out]dosContribution to the DOS by the tetrahedron

Definition at line 442 of file simplex.F90.

◆ simplex_dos_3d()

subroutine, public simplex_oct_m::simplex_dos_3d ( real(real64), dimension(4), intent(in)  etetra,
real(real64), intent(in)  eF,
real(real64), intent(out)  dos 
)

Get only the DOS contribution of a single tetrahedron.

The expressions for are given in Appendix C of P. E. Bloechl, et al., Phys. Rev. B 49, 16223 (1994).

Parameters
[in]etetraEigenenergies on the corner points of a tetrahedron
[in]eFReference energy
[out]dosContribution to the DOS by the tetrahedron

Definition at line 539 of file simplex.F90.