PAOFLOW.transport.calculators.green#

Functions#

compute_surface_green_function(h_eff, s_eff, ...[, delta])

Construct the surface or bulk Green's function using the transfer matrices.

compute_conductor_green_function(blc_00C, sigma_l[, ...])

Construct the retarded Green's function for the conductor region.

Module Contents#

PAOFLOW.transport.calculators.green.compute_surface_green_function(h_eff, s_eff, t_coupling, transfer_matrix, transfer_matrix_conj, igreen, delta=1e-05)[source]#

Construct the surface or bulk Green’s function using the transfer matrices.

Parameters:
  • h_eff (np.ndarray) – Hamiltonian block H_00 of shape (dim, dim).

  • s_eff (np.ndarray) – Overlap matrix S_00 of shape (dim, dim).

  • t_coupling (np.ndarray) – Coupling matrix H_01 of shape (dim, dim).

  • transfer_matrix (np.ndarray) – Right-going transfer matrix T of shape (dim, dim).

  • transfer_matrix_conj (np.ndarray) – Left-going transfer matrix T† of shape (dim, dim).

  • igreen ({-1, 0, 1}) – Green’s function type: -1 for left surface, 0 for bulk, 1 for right surface.

  • delta (float) – Small imaginary shift to stabilize inversion.

Returns:

`green` – The computed Green’s function matrix G(E) of shape (dim, dim).

Return type:

np.ndarray

Notes

Implements the iterative method of Lopez Sancho et al. (J. Phys. F: Met. Phys., 14, 1205, 1984) to compute the transfer matrices T and T† for semi-infinite leads.

The Green’s function is stabilized using a small imaginary part delta: G = [E⋅S - H + i⋅delta⋅S - Σ]⁻¹ T and T† are constructed iteratively to capture surface coupling.

PAOFLOW.transport.calculators.green.compute_conductor_green_function(blc_00C, sigma_l, sigma_r=None, smearing_type='lorentzian', delta=1e-05, delta_ratio=0.005, g_smear=None, xgrid=None, calc='inverse', surface=False)[source]#

Construct the retarded Green’s function for the conductor region.

Parameters:
  • sigma_l (np.ndarray) – Self-energy from the left lead.

  • sigma_r (np.ndarray, optional) – Self-energy from the right lead. Not used if surface=True.

  • smearing_type (str) – Smearing method: ‘lorentzian’, ‘none’, or ‘numerical’.

  • delta (float) – Imaginary broadening parameter.

  • delta_ratio (float) – Delta scaling used for ‘none’ smearing.

  • g_smear (np.ndarray, optional) – Precomputed smeared Green’s function values on xgrid (for numerical smearing).

  • xgrid (np.ndarray, optional) – Energy grid corresponding to g_smear.

  • calc ({'direct', 'inverse'}) – Whether to compute G or G⁻¹ for subtraction.

  • surface (bool) – Whether to compute projected surface bandstructure using only left lead.

Returns:

`g_c` – Green’s function of the conductor region.

Return type:

np.ndarray

Notes

Computes:

G_C = [ ω·S_C − H_C − Σ_L − Σ_R ]⁻¹

or for surface projection:

G_C = [ ω·S_C − H_C − Σ_L ]⁻¹