Choosing a Contact Type

Overview

gauNEGF offers four contact type options for modeling electron-electrode coupling. The release status of each is summarized in Supported Configurations (the green / yellow / red matrix).

  • Energy-independent (constant) self-energy – green. Static self-energy matrices set via gauNEGF.scf.NEGF.setSigma() or gauNEGF.scfE.NEGFE.setSigma(). Simplest approach; energy-independent broadening matrices.

  • 1D chain contacts – green on minimal basis with contactFromFock=True; yellow with external alpha/beta on minimal basis; red on non-minimal basis (LANL2DZ-class). Energy-dependent self-energy for semi-infinite linear chain electrodes via gauNEGF.scfE.NEGFE.setContact1D(). Uses gauNEGF.surfG1D.surfG internally.

  • Bethe lattice contacts – green. Energy-dependent self-energy for metallic FCC [111] surfaces with Slater-Koster parameters via gauNEGF.scfE.NEGFE.setContactBethe(). Uses gauNEGF.surfGBethe.surfGB internally. Non-orthogonal cross-term Q correction is now applied automatically (this release).

  • 3D atomic contacts – per-atom gauNEGF.surfG3D.surfGAt3D builder is green; the full surfG3 wrapper for periodic 3D contacts is red (DOS and band structure plot correctly but end-to-end transport is not validated yet). Direct explicit construction required for advanced users.

Choosing Your Contact Type

Use the following decision table to select the contact setup method for your simulation:

Scenario

Contact type

gauNEGF entry point

Quick test, benchmarking, or constant self-energy

Energy-independent

gauNEGF.scf.NEGF.setSigma() or gauNEGF.scfE.NEGFE.setSigma()

Periodic 1D electrode (CNT, nanowire, linear chain)

1D chain

gauNEGF.scfE.NEGFE.setContact1D()

Metallic contact with Slater-Koster parameters (Au, FCC)

Bethe lattice

gauNEGF.scfE.NEGFE.setContactBethe()

Explicit 3D bulk k-point contact (advanced)

3D atomic

gauNEGF.surfG3D.surfGAt3D (direct construction)

Fermi Energy and 1D Auto-Extract Contacts

Warning

For 1D contacts set up with atom indices only (no explicit tau/alpha/beta matrices), DO NOT specify a fermi energy in setVoltage or the electron count will become unphysical! Instead use defaults or set fermiMethod . Example: negf.setVoltage(0.0)

Correct usage:

# 1D auto-extract: fermi energy not specified
negf.setVoltage(0.0)  # fermiMethod='muller' is the default

# Bethe lattice: contacts set Fermi level (0eV reference).
# Passing fermi=0 explicitly is a valid shortcut at zero bias -- it only
# shifts all energies; the two-pass form shown in contacts_bethe.rst can
# be slightly more accurate by matching the initial DFT guess.
negf.setContactBethe([[1,2,3],[7,8,9]], 'Au')
negf.setVoltage(0.0, 0.0)

For detailed information on available Fermi search methods, see Configuration and Tuning.

Where to Go Next