Quantities¶
Computators in WfBase can be used to store a lot of data. Information about this data can be accessed using the info
function. Below is an example code that computes various data, stores it into a computator comp, and then accesses information about all of this data.
Here you can find more information about the structure of the computator object.
# Copyright under GNU General Public License 2024
# by Sinisa Coh (see gpl-wfbase.txt)
import wfbase as wf
db = wf.load("data/au_fcc.wf")
# create computator with all basic quantities
comp = db.do_mesh(to_compute = ["psi", "A", "S", "dEdk"])
# get some additional quantities
comp.compute_occupation("f")
comp.compute_occupation_derivative("dfdE")
comp.compute_kronecker("d", "E", 1)
comp.compute_identity("one", 3)
comp.compute_photon_energy("hbaromega")
comp.compute_orbital_character("O")
comp.compute_optical_offdiagonal("L", "hbaromega")
comp.compute_optical_offdiagonal_polarization("R", "hbaromega", "x + i y")
comp.compute_hbar_velocity("hbarv")
# evaluate some user-specified quantity
comp.evaluate("sigma_oij <= (j / (numk * volume)) * (f_km - f_kn) * \
Real((E_km - E_kn) / (E_km - E_kn - hbaromega_o - j*eta)) * \
A_knmi * A_kmnj")
# now get all the information about it
comp.info(show_code = True)
Below is the output generated by the python code above.
==============
Quantity *A*
==============
:Shape:
(512, 18, 18, 3)
:Value:
[[[[ 4.244e-16-1.319e-17j -8.514e-17-4.097e-18j -2.467e-16+1.063e-18j]
[-6.511e-17-1.307e-18j 2.178e-17+1.325e-16j 1.562e-16-8.918e-17j]
[-3.424e-16+3.200e-16j -3.840e-16-3.446e-16j 4.196e-17-2.152e-16j]
...
[ 3.834e-03+5.141e-04j 1.108e-03-3.306e-03j 2.775e-03+3.185e-04j]
[ 3.891e-04-4.802e-05j 5.738e-04-5.171e-04j 2.762e-03-7.757e-04j]
[ 1.405e-03+3.526e-04j -4.172e-03-3.285e-04j 2.433e-04+1.968e-03j]]
... cutting long output ... set parameter "full" to True to get complete output.
:Units:
Ang
:Origin story:
This is the Berry connection that can be used to compute the optical matrix
elements and other related quantities.
:Indices:
This quantity has these indices
[k, n, m, a]
Definition of the quantity in terms of the same indices as above
< u_kn | i delk_a | u_km >
#0 index "k" corresponds to the index of a k-point
#1 index "n" corresponds to the electron band index of the bra state
#2 index "m" corresponds to the electron band index of the ket state
#3 index "a" corresponds to the k-derivative in Cartesian axes (0 for x, 1 for y, 2 for z)
================
Quantity *Ang*
================
:Shape:
()
:Value:
1.0
:Units:
Ang
:Origin story:
Constant equal to 1 angstrom.
==============
Quantity *E*
==============
:Shape:
(512, 18)
:Value:
[[-9.411 -9.411 -5.133 ... 24.963 24.963 24.963]
[-8.904 -8.904 -5.131 ... 22.698 24.517 24.517]
[-7.702 -7.702 -5.049 ... 20.445 23.1 23.1 ]
...
[-6.944 -6.944 -5.182 ... 16.089 22.222 22.222]
[-8.122 -8.122 -5.252 ... 19.069 24.047 24.047]
[-8.904 -8.904 -5.131 ... 22.698 24.517 24.517]]
:Units:
eV
:Origin story:
Band energies E computed from Wannier interpolation. The Fermi level was
computed on a DFT coarse mesh and then bands were shifted so that the Fermi
level was set to zero. If you use a very fine k-mesh then the Fermi level
will have to be recomputed for your k-mesh, but it will likely still be
close to zero. Note: due to the nature of the Wannier interpolation, some of
the bands far above the Fermi level do not correspond to the actual bands
computed in the DFT. Typically this is not a problem as one usually cares
about states close to the Fermi level. All electron states around the Fermi
level, as well as in the valence bands should be well reproduced. Quantities
"reliableminenergy" and "reliablemaxenergy" give you an energy window in
which band energies are reliable. Similarly, due to the nature of
pseudopotential calculations, these band structures do not contain deep core
states, but again, these are often not needed.
:Indices:
This quantity has these indices
[k, n]
Definition of the quantity in terms of the same indices as above
H_k u_kn = E_kn u_kn
#0 index "k" corresponds to the index of a k-point
#1 index "n" corresponds to the electron band index
==============
Quantity *L*
==============
:Shape:
(512, 18, 18, 3, 31)
:Value:
[[[[[ 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j ...
0.000e+00+0.000e+00j 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j]
[ 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j ...
0.000e+00+0.000e+00j 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j]
[ 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j ...
0.000e+00+0.000e+00j 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j]]
[[ 2.313e-31+4.643e-33j 1.983e-31+3.980e-33j 1.735e-31+3.482e-33j ...
... cutting long output ... set parameter "full" to True to get complete output.
:Units:
eV
:Origin story:
Off-diagonal matrix element for electron-light interaction. Diagonal
elements of this matrix are set to zero by hand. The maximal electric field
strength of the incoming light is set to 1 V/Ang. The unit of the matrix
element is therefore energy (eV).
:Indices:
This quantity has these indices
[k, n, m, d, o]
Definition of the quantity in terms of the same indices as above
0.5 (E_kn - E_km) < u_kn | i del_k_d | u_km > / hbaromega_o
#0 index "k" corresponds to the index of a k-point
#1 index "n" corresponds to the electron band index of the bra state
#2 index "m" corresponds to the electron band index of the ket state
#3 index "d" corresponds to the direction of the E-field of light in Cartesian (0 for x, 1 for y, 2 for z)
#4 index "o" corresponds to the index for photon energy hbaromega
==============
Quantity *O*
==============
:Shape:
(512, 18, 18)
:Value:
[[[2.202e-04 1.664e-01 2.202e-04 ... 1.231e-32 1.312e-31 6.845e-33]
[1.664e-01 2.202e-04 1.664e-01 ... 2.232e-33 2.039e-32 2.784e-33]
[6.800e-05 2.610e-03 6.800e-05 ... 8.753e-02 3.009e-02 3.374e-02]
...
[3.711e-03 1.554e-01 3.711e-03 ... 3.902e-32 4.087e-32 4.554e-32]
[3.242e-01 3.695e-03 3.242e-01 ... 8.633e-33 3.113e-33 3.584e-33]
[2.999e-03 2.263e-02 2.999e-03 ... 6.998e-31 3.068e-31 1.243e-32]]
... cutting long output ... set parameter "full" to True to get complete output.
:Units:
1
:Origin story:
Approximate orbital character of wavefunction in terms of localized atomic-
like function. The sum over orbitals adds up to 1. The description of
localized orbitals are given by quantity *orbitallabels* (available only if
your database was loaded from the WfBase's database).
:Indices:
This quantity has these indices
[k, n, m, d, o]
Definition of the quantity in terms of the same indices as above
|| < W_m | u_kn > ||^2
#0 index "k" corresponds to the index of a k-point
#1 index "n" corresponds to the electron band index
#2 index "m" corresponds to the localized orbital index
==============
Quantity *R*
==============
:Shape:
(512, 18, 18, 31)
:Value:
[[[[ 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j ...
0.000e+00+0.000e+00j 0.000e+00+0.000e+00j 0.000e+00+0.000e+00j]
[-2.394e-31+8.201e-32j -2.052e-31+7.030e-32j -1.795e-31+6.151e-32j ...
-4.224e-32+1.447e-32j -4.103e-32+1.406e-32j -3.989e-32+1.367e-32j]
[ 2.939e-15-3.012e-15j 2.519e-15-2.582e-15j 2.204e-15-2.259e-15j ...
5.187e-16-5.315e-16j 5.039e-16-5.163e-16j 4.899e-16-5.020e-16j]
...
[-1.813e-02+2.042e-02j -1.554e-02+1.751e-02j -1.360e-02+1.532e-02j ...
... cutting long output ... set parameter "full" to True to get complete output.
:Units:
eV
:Origin story:
Off-diagonal matrix element for electron-light interaction for a circular
x+jy polarization of light. Diagonal elements of this matrix are set to zero
by hand. The maximal electric field strength of the incoming light is set to
1 V/Ang. The unit of the matrix element is therefore energy (eV).
:Indices:
This quantity has these indices
[k, n, m, o]
Definition of the quantity in terms of the same indices as above
0.5 (E_kn - E_km) < u_kn | i delk_x+jy | u_km > / hbaromega_o
#0 index "k" corresponds to the index of a k-point
#1 index "n" corresponds to the electron band index of the bra state
#2 index "m" corresponds to the electron band index of the ket state
#3 index "o" corresponds to the index for photon energy hbaromega
==============
Quantity *S*
==============
:Shape:
(512, 18, 18, 3)
:Value:
[[[[ 7.082e-02-8.669e-19j 1.619e-02+1.516e-18j 9.974e-01-2.789e-17j]
[ 9.723e-01-2.229e-01j 2.223e-01+9.748e-01j -7.264e-02+3.293e-16j]
[ 1.967e-10-4.731e-11j -4.630e-10-1.542e-09j -3.587e-09+1.293e-09j]
...
[ 2.406e-17+5.520e-18j -6.789e-17+2.327e-16j -3.050e-16+7.181e-17j]
[ 3.729e-17+5.032e-17j -4.716e-17+3.486e-17j 1.617e-16-5.337e-17j]
[-1.443e-17+1.786e-16j -3.718e-17+4.263e-17j 1.957e-16-7.266e-17j]]
... cutting long output ... set parameter "full" to True to get complete output.
:Units:
muB
:Origin story:
Matrix elements of the spin magnetic moment operator.
:Indices:
This quantity has these indices
[k, n, m, a]
Definition of the quantity in terms of the same indices as above
< u_kn | Mspin_a | u_km >
#0 index "k" corresponds to the index of a k-point
#1 index "n" corresponds to the electron band index of the bra state
#2 index "m" corresponds to the electron band index of the ket state
#3 index "a" corresponds to the direction of spin in Cartesian axes (0 for x, 1 for y, 2 for z)
=====================
Quantity *atomname*
=====================
:Shape:
(1,)
:Value:
['Au']
:Units:
1
:Origin story:
Array of names of atoms in the computational unit cell.
:Indices:
This quantity has these indices
[j]
#0 index "j" corresponds to the index of the atom in the unit cell
====================
Quantity *atomred*
====================
:Shape:
(1, 3)
:Value:
[[0. 0. 0.]]
:Units:
1
:Origin story:
Reduced coordinates of atom positions.
:Indices:
This quantity has these indices
[j, r]
#0 index "j" corresponds to the index of the atom in the unit cell
#1 index "r" corresponds to the reduced coordinates axis
=================
Quantity *cell*
=================
:Shape:
(3, 3)
:Value:
[[-2.077 -0. 2.077]
[ 0. 2.077 2.077]
[-2.077 2.077 0. ]]
:Units:
Ang
:Origin story:
Computational unit cell vectors.
:Indices:
This quantity has these indices
[i, a]
#0 index "i" corresponds to the index of the cell vector
#1 index "a" corresponds to the Cartesian axis (0 for x, 1 for y, 2 for z)
========================
Quantity *coarsekmesh*
========================
:Shape:
(3,)
:Value:
[8 8 8]
:Units:
1
:Origin story:
The size of the coarse k-mesh used to create Wannier functions
:Indices:
This quantity has these indices
[r]
#0 index "r" corresponds to the reduced reciprocal axis
==============
Quantity *d*
==============
:Shape:
(18, 18)
:Value:
[[1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
... cutting long output ... set parameter "full" to True to get complete output.
:Units:
1
:Origin story:
Kronecker delta. Equals one when two indices are the same (on the diagonal)
and equals zero otherwise.
:Indices:
This quantity has these indices
[x, y]
#0 index "x" corresponds to the same as index #1 of quantity *E
#1 index "y" corresponds to the same as index #1 of quantity *E
=================
Quantity *dEdk*
=================
:Shape:
(512, 18, 3)
:Value:
[[[ 4.685e-15+1.945e-17j 4.875e-15-4.045e-17j 7.085e-16-1.063e-15j]
[-2.007e-16-1.497e-15j 6.088e-15-8.788e-16j 1.825e-16-1.084e-15j]
[ 6.303e-18+1.733e-17j 9.097e-17+4.826e-18j -1.563e-16-9.542e-17j]
...
[-8.513e-15+9.319e-16j 3.652e-15+7.982e-16j -5.413e-15-1.614e-16j]
[ 5.544e-16+1.825e-16j 3.968e-15+9.920e-17j 6.170e-16+2.614e-16j]
[ 1.388e-16+1.260e-16j -4.318e-15+1.796e-16j 5.144e-15-1.061e-15j]]
... cutting long output ... set parameter "full" to True to get complete output.
:Units:
eV Ang
:Origin story:
This is hbar times the Fermi velocity.
:Indices:
This quantity has these indices
[k, n, a]
Definition of the quantity in terms of the same indices as above
d E_kn / d k_a (= hbar Vfermi_kna)
#0 index "k" corresponds to the index of a k-point
#1 index "n" corresponds to the electron band index
#2 index "a" corresponds to the k-derivative in Cartesian axes (0 for x, 1 for y, 2 for z)
=================
Quantity *dfdE*
=================
:Shape:
(512, 18)
:Value:
[[-7.44e-43 -7.44e-43 -7.44e-43 ... -7.44e-43 -7.44e-43 -7.44e-43]
[-7.44e-43 -7.44e-43 -7.44e-43 ... -7.44e-43 -7.44e-43 -7.44e-43]
[-7.44e-43 -7.44e-43 -7.44e-43 ... -7.44e-43 -7.44e-43 -7.44e-43]
...
[-7.44e-43 -7.44e-43 -7.44e-43 ... -7.44e-43 -7.44e-43 -7.44e-43]
[-7.44e-43 -7.44e-43 -7.44e-43 ... -7.44e-43 -7.44e-43 -7.44e-43]
[-7.44e-43 -7.44e-43 -7.44e-43 ... -7.44e-43 -7.44e-43 -7.44e-43]]
:Units:
eV^(-1.0)
:Origin story:
Derivative of the Fermi-Dirac occupation factor.
:Indices:
This quantity has these indices
[k, n]
#0 index "k" corresponds to the index of a k-point
#1 index "n" corresponds to the electron band index
===============
Quantity *eV*
===============
:Shape:
()
:Value:
1.0
:Units:
eV
:Origin story:
Constant equal to 1 eV.
===============
Quantity *ef*
===============
:Shape:
()
:Value:
0.0
:Units:
eV
:Origin story:
This is the Fermi level. It is set to zero as we subtract the DFT-computed
Fermi level on a coarse mesh from the Hamiltonian in the Wannier basis.
Note: if you compute band structure on a very fine mesh, and then recompute
the Fermi level from that band-structure, you will likely get a Fermi level
that is not exactly zero. This is to be expected, as the Fermi level will be
somewhat sensitive on the k-mesh you choose and the smearing you use for the
occupations. However, one can expect that 0.0 is a good approximation of the
Fermi level for any k-mesh you use, but you may need to check this on your
own for a very fine mesh.
================
Quantity *eta*
================
:Shape:
()
:Value:
0.1
:Units:
eV
==============
Quantity *f*
==============
:Shape:
(512, 18)
:Value:
[[1. 1. 1. ... 0. 0. 0.]
[1. 1. 1. ... 0. 0. 0.]
[1. 1. 1. ... 0. 0. 0.]
...
[1. 1. 1. ... 0. 0. 0.]
[1. 1. 1. ... 0. 0. 0.]
[1. 1. 1. ... 0. 0. 0.]]
:Units:
1
:Origin story:
Has an entry equal to 1 for all entries where E < ef otherwise it is 0.
:Indices:
This quantity has these indices
[k, n]
#0 index "k" corresponds to the index of a k-point
#1 index "n" corresponds to the electron band index
======================
Quantity *hbaromega*
======================
:Shape:
(31,)
:Value:
[0.5 0.583 0.667 0.75 0.833 0.917 1. 1.083 1.167 1.25 1.333 1.417 1.5
1.583 1.667 1.75 1.833 1.917 2. 2.083 2.167 2.25 2.333 2.417 2.5 2.583
2.667 2.75 2.833 2.917 3. ]
:Units:
eV
:Origin story:
Photon energies hbar*omega on an equidistant mesh of values.
:Indices:
This quantity has these indices
[o]
#0 index "o" corresponds to the index of the photon energy
==================
Quantity *hbarv*
==================
:Shape:
(512, 18, 18, 3)
:Value:
[[[[ 4.685e-15+1.945e-17j 4.875e-15-4.045e-17j 7.085e-16-1.063e-15j]
[-4.643e-33+2.313e-31j 4.707e-31-7.737e-32j -3.168e-31-5.549e-31j]
[ 1.369e-15+1.465e-15j -1.474e-15+1.643e-15j -9.207e-16-1.795e-16j]
...
[ 1.767e-02-1.318e-01j -1.136e-01-3.810e-02j 1.095e-02-9.539e-02j]
[-1.651e-03-1.337e-02j -1.777e-02-1.973e-02j -2.666e-02-9.492e-02j]
[ 1.212e-02-4.831e-02j -1.129e-02+1.434e-01j 6.766e-02-8.365e-03j]]
... cutting long output ... set parameter "full" to True to get complete output.
:Units:
eV Ang
:Origin story:
Matrix element of hbar*velocity operator. Includes both diagonal elements
(computed from the Fermi velocity) and off-diagonal elements (computed from
the Berry connection).
:Indices:
This quantity has these indices
[k, n, m, d]
Definition of the quantity in terms of the same indices as above
[if n == m] (d E_kn / d k_d) delta_nm
[if n != m] i (E_kn - E_km) < u_kn | i del_k_d | u_km >
#0 index "k" corresponds to the index of a k-point
#1 index "n" corresponds to the electron band index of the bra state
#2 index "m" corresponds to the electron band index of the ket state
#3 index "d" corresponds to the direction of velocity in Cartesian (0 for x, 1 for y, 2 for z)
================
Quantity *muB*
================
:Shape:
()
:Value:
1.0
:Units:
muB
:Origin story:
Constant equal to 1 bohr magneton.
=================
Quantity *numk*
=================
:Shape:
()
:Value:
512
:Units:
1
:Origin story:
Total number of k-points in the mesh.
====================
Quantity *numwann*
====================
:Shape:
()
:Value:
18
:Units:
1
:Origin story:
The number of Wannier bands. Also, the number of electron states that are
computed at each k-point.
================
Quantity *one*
================
:Shape:
(3, 3)
:Value:
[[1.+0.j 0.+0.j 0.+0.j]
[0.+0.j 1.+0.j 0.+0.j]
[0.+0.j 0.+0.j 1.+0.j]]
:Units:
1
:Origin story:
Identity matrix.
:Indices:
This quantity has these indices
[x, y]
#0 index "x" corresponds to the generic index.
#1 index "y" corresponds to the generic index.
==========================
Quantity *orbitallabels*
==========================
:Shape:
(18,)
:Value:
['\\left( {\\rm s}{\\rm p}^3{\\rm d}^2 \\right)_{-{\\rm x}}^{\\uparrow}'
'\\left( {\\rm s}{\\rm p}^3{\\rm d}^2 \\right)_{-{\\rm x}}^{\\downarrow}'
'\\left( {\\rm s}{\\rm p}^3{\\rm d}^2 \\right)_{+{\\rm x}}^{\\uparrow}'
'\\left( {\\rm s}{\\rm p}^3{\\rm d}^2 \\right)_{+{\\rm x}}^{\\downarrow}'
'\\left( {\\rm s}{\\rm p}^3{\\rm d}^2 \\right)_{-{\\rm y}}^{\\uparrow}'
'\\left( {\\rm s}{\\rm p}^3{\\rm d}^2 \\right)_{-{\\rm y}}^{\\downarrow}'
'\\left( {\\rm s}{\\rm p}^3{\\rm d}^2 \\right)_{+{\\rm y}}^{\\uparrow}'
'\\left( {\\rm s}{\\rm p}^3{\\rm d}^2 \\right)_{+{\\rm y}}^{\\downarrow}'
... cutting long output ... set parameter "full" to True to get complete output.
:Units:
1
:Origin story:
Array of names of localized atomic-like orbitals used in the decomposition
of the wavefunction *psi*. Uparrow and downarrow refer to spin angular
momentum (opposite to the spin magnetic moment). All orbitals are centered
on the atom at the origin. Directions x, y, and z are along Cartesian
directions. Spin axis is along the z-axis. There are six sp3d2 hybrids
orbitals (six for each spin). These orbitals have center-of-mass weight
displaced along +/-x, +/-y, or +/-z axes.
:Indices:
This quantity has these indices
[p]
#0 index "p" corresponds to the localized orbital index
================
Quantity *psi*
================
:Shape:
(512, 18, 18)
:Value:
[[[ 1.484e-02+0.000e+00j -3.977e-01-9.095e-02j 1.484e-02+1.450e-17j ...
-6.324e-17+9.117e-17j 1.496e-16+3.299e-16j -4.463e-17-6.967e-17j]
[ 4.080e-01-0.000e+00j 1.446e-02+3.308e-03j 4.080e-01+4.962e-18j ...
6.334e-18+4.682e-17j -1.637e-17-1.418e-16j 2.260e-18-5.272e-17j]
[ 8.246e-03+0.000e+00j -4.902e-02+1.440e-02j 8.246e-03+2.233e-18j ...
2.554e-02+2.947e-01j -1.277e-02-1.730e-01j -1.134e-02+1.833e-01j]
...
[ 6.092e-02+0.000e+00j -3.691e-01-1.385e-01j -6.092e-02+1.391e-16j ...
... cutting long output ... set parameter "full" to True to get complete output.
:Units:
1
:Origin story:
This is the electron wavefunction written in terms of the localized Wannier
state. The approximate atomic-like orbital characters of these localized
Wannier states are given by quantity *orbitallabels* (available only if your
database was loaded from the WfBase's database).
:Indices:
This quantity has these indices
[k, n, p]
Definition of the quantity in terms of the same indices as above
psi_knp = < W_p | psi_kn >
#0 index "k" corresponds to the index of a k-point
#1 index "n" corresponds to the electron band index of the state
#2 index "p" corresponds to the localized orbital index
==================
Quantity *recip*
==================
:Shape:
(3, 3)
:Value:
[[-1.513 -1.513 1.513]
[ 1.513 1.513 1.513]
[-1.513 1.513 -1.513]]
:Units:
Ang^(-1.0)
:Origin story:
Reciprocal unit cell vectors.
:Indices:
This quantity has these indices
[i, a]
#0 index "i" corresponds to the index of the reciprocal cell vector
#1 index "a" corresponds to the Cartesian axis (0 for x, 1 for y, 2 for z)
==============================
Quantity *reliablemaxenergy*
==============================
:Shape:
()
:Value:
10.951839332415805
:Units:
eV
:Origin story:
Due to the nature of the Wannier interpolation, the electronic properties
are well reproduced for the valence band, up to some energy around the Fermi
level. This number gives you a maximal energy up to which you should trust
the electronic properties. For a lot of calculations, one does not need to
worry about the states that are too far from the Fermi level. The energy of
this window includes the fact that the Fermi level is set to zero.
==============================
Quantity *reliableminenergy*
==============================
:Shape:
()
:Value:
-9.61084045035559
:Units:
eV
:Origin story:
Similarly to reliablemaxenergy, parameter reliableminenergy gives you the
minimal energy for the range with reliable band properties. States below
reliableminenergy, such as core states, are given by Wannier interpolation.
The interaction of valence with core and semi-core states is included, of
course, but the energies of core states themselves will not show up here.
==================
Quantity *sigma*
==================
:Shape:
(31, 3, 3)
:Value:
[[[-1.470e-19-2.358e-02j -3.258e-18+1.711e-18j -3.065e-17-6.410e-18j]
[ 3.143e-18+4.233e-18j -9.175e-20-2.358e-02j -2.493e-17-1.700e-18j]
[ 3.062e-17-1.048e-17j 2.496e-17-3.409e-18j 1.623e-20-2.358e-02j]]
[[-1.741e-19-2.780e-02j -3.075e-18+9.940e-19j -3.202e-17-9.555e-18j]
[ 2.800e-18+3.722e-18j -1.087e-19-2.780e-02j -2.523e-17-2.555e-18j]
[ 3.204e-17-1.093e-17j 2.551e-17-3.274e-18j 1.747e-20-2.780e-02j]]
... cutting long output ... set parameter "full" to True to get complete output.
:Units:
Ang^(-1.0)
:Origin story:
This quantity was computed by parsing the following string
sigma_oij <= (j / (numk * volume)) * (f_km - f_kn) * Real((E_km - E_kn)
/ (E_km - E_kn - hbaromega_o - j*eta)) * A_knmi * A_kmnj
:Python code:
##################################################################################
def evaluate_directly(__object):
import numpy as np
from opt_einsum import contract as opteinsum
_orig_shp = {}
_f = []
_s = {}
__brod00 = np.copy(__object["f"])
__brod00 = __brod00[:,:,None] - (__object["f"])[:,None,:]
__brod01 = np.copy(__object["E"])
__brod01 = __brod01[:,:,None] - (__object["E"])[:,None,:]
__brod02 = np.array(complex(1.0j))
__brod02 = __brod02 * (__object["eta"])
__brod03 = np.copy(__object["E"])
__brod03 = __brod03[:,:,None,None] - (__object["E"])[:,None,:,None]
__brod03 = __brod03.squeeze(axis = (3,))
__brod03 = __brod03[:,:,:,None] - (__object["hbaromega"])[None,None,None,:]
__brod03 = __brod03 - (__brod02)
__brod04 = np.copy(__brod01)
__brod04 = __brod04[:,:,:,None] * ((1.0/(__brod03)))[:,:,:,:]
__mult00 = opteinsum(",,,kmn,kmno,knmi,kmnj->oij",\
complex(1.0j),\
(1.0/(__object["numk"])),\
(1.0/(__object["volume"])),\
__brod00,\
np.real(__brod04),\
__object["A"],\
__object["A"])
__value = __mult00
return __value
##################################################################################
:LaTeX:
$\sigma_{oij} \Leftarrow \displaystyle\sum_{ kmn } \frac{ i }{ N_{\rm k} \,
V_{\rm c} } \, \left( f_{km} - f_{kn} \right) \, {\rm Re} \left( \frac{
E_{km} - E_{kn} }{ E_{km} - E_{kn} - \hbar \omega_{o} - i \, \eta } \right)
\, \langle u_{kn} \lvert i \partial_{k_{i}} \rvert u_{km} \rangle \, \langle
u_{km} \lvert i \partial_{k_{j}} \rvert u_{kn} \rangle$
===================
Quantity *volume*
===================
:Shape:
()
:Value:
17.91516228544604
:Units:
Ang^3.0
:Origin story:
The volume of the computational unit cell.