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_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...
 

Variables

integer, dimension(6, 4), parameter submesh_tetras = reshape([ 1, 2, 3, 6, 1, 3, 5, 6, 3, 5, 6, 7, 3, 6, 7, 8, 3, 4, 6, 8, 2, 3, 4, 6], shape(submesh_tetras), order=[2, 1])
 

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 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 176 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 259 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 275 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 372 of file simplex.F90.

Variable Documentation

◆ submesh_tetras

integer, dimension(6,4), parameter simplex_oct_m::submesh_tetras = reshape([ 1, 2, 3, 6, 1, 3, 5, 6, 3, 5, 6, 7, 3, 6, 7, 8, 3, 4, 6, 8, 2, 3, 4, 6], shape(submesh_tetras), order=[2, 1])
private

Definition at line 152 of file simplex.F90.