(git:6344619)
Loading...
Searching...
No Matches
kubo_bloch Module Reference

Metric-aware Bloch velocities without eigenvector derivatives or band-gap divisions. More...

Functions/Subroutines

subroutine, public bloch_current (h, s, dh, ds, d, energies, current, status, coefficients)
 Evaluate v_nm = C^H(dH - E_n*dS)C + i*(E_n-E_m)*C^H*D*C.
subroutine, public bloch_current_from_frame (h, s, dh, ds, d, energies, c, current, tolerance, residuals, status)
 Evaluate the current in a validated reconstructed eigenframe, without rediagonalization.
pure real(dp) function, public fermi_slope (ea, eb, mu, kt)
 Stable Fermi divided difference including the intraband and degenerate limits.

Detailed Description

Metric-aware Bloch velocities without eigenvector derivatives or band-gap divisions.

Author
Thomas D. Kuehne, tkueh.nosp@m.ne@c.nosp@m.p2k.o.nosp@m.rg

Function/Subroutine Documentation

◆ bloch_current()

subroutine, public kubo_bloch::bloch_current ( complex(dp), dimension(:, :), intent(in) h,
complex(dp), dimension(:, :), intent(in) s,
complex(dp), dimension(:, :, :), intent(in) dh,
complex(dp), dimension(:, :, :), intent(in) ds,
complex(dp), dimension(:, :, :), intent(in) d,
real(dp), dimension(:), intent(out) energies,
complex(dp), dimension(:, :, :), intent(out) current,
integer, intent(out) status,
complex(dp), dimension(:, :), intent(out), optional coefficients )

Evaluate v_nm = C^H(dH - E_n*dS)C + i*(E_n-E_m)*C^H*D*C.

Parameters
hFull covariant Hamiltonian, including SOC when applicable
sOverlap in the same Bloch convention
dhCartesian k derivatives of h, in Ha*bohr
dsCartesian k derivatives of s, in bohr
dCell-gauge image first moments, satisfying D-D^H=-i*dS, in bohr
energiesGeneralized spectrum
currentAnti-Hermitian current -i*v in the eigenbasis, including diagonal velocities
status0 success; -1 invalid data; -2 metric failure; -3 connection failure; positive LAPACK failure
coefficientsOptional complete eigenframe for symmetry reconstruction
Note
For a general k-dependent basis D transforms as B^H*D*B-i*(dB)^H*S*B. The connection terms are essential even when the spectrum is accurately reproduced.

Definition at line 35 of file kubo_bloch.F.

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

◆ bloch_current_from_frame()

subroutine, public kubo_bloch::bloch_current_from_frame ( complex(dp), dimension(:, :), intent(in) h,
complex(dp), dimension(:, :), intent(in) s,
complex(dp), dimension(:, :, :), intent(in) dh,
complex(dp), dimension(:, :, :), intent(in) ds,
complex(dp), dimension(:, :, :), intent(in) d,
real(dp), dimension(:), intent(in) energies,
complex(dp), dimension(:, :), intent(in) c,
complex(dp), dimension(:, :, :), intent(out) current,
real(dp), intent(in) tolerance,
real(dp), dimension(2), intent(out) residuals,
integer, intent(out) status )

Evaluate the current in a validated reconstructed eigenframe, without rediagonalization.

Parameters
hTarget Hamiltonian
sTarget AO metric
dhCartesian Hamiltonian derivatives
dsCartesian overlap derivatives
dCell-gauge image first moments
energiesSource spectrum, including complete degenerate blocks
cCandidate target eigenframe
currentTarget current in exactly the supplied gauge
toleranceMaximum orthonormality and relative projected-eigenproblem errors
residualsMetric error and energy-scaled projected-Hamiltonian error
status0 success; -1 invalid data; -3 connection failure; -4 invalid eigenframe

Definition at line 75 of file kubo_bloch.F.

Here is the caller graph for this function:

◆ fermi_slope()

pure real(dp) function, public kubo_bloch::fermi_slope ( real(dp), intent(in) ea,
real(dp), intent(in) eb,
real(dp), intent(in) mu,
real(dp), intent(in) kt )

Stable Fermi divided difference including the intraband and degenerate limits.

Parameters
eaFirst energy
ebSecond energy
muChemical potential
ktPositive temperature in energy units
Returns
(f(ea)-f(eb))/(ea-eb) for unit occupation, nonpositive

Definition at line 162 of file kubo_bloch.F.

Here is the caller graph for this function: