tbplas.SK

class tbplas.SK

Class for evaluating hopping integrals using Slater-Koster formula.

The maximum supported angular momentum is l=2 (d orbitals). Reference: https://journals.aps.org/pr/abstract/10.1103/PhysRev.94.1498

The reason why we make orbital labels as attributes is to avoid misspelling, which is likely to happen as we have to repeat them many times.

__init__() None

Methods

__init__()

dd(r[, label_i, label_j, v_dds, v_ddp, v_ddd])

Evaluate the hopping integral <d_i,0|H|d_j,r>.

dp(r[, label_p, label_d, v_pds, v_pdp])

Evaluate the hopping integral <d,0|H|p,r>.

ds(r[, label_d, v_sds])

Evaluate the hopping integral <d,0|H|s,r>.

eval(r[, label_i, label_j, v_sss, v_sps, ...])

Common interface for evaluating hopping integral <i,0|H|j,r>.

pd(r[, label_p, label_d, v_pds, v_pdp])

Evaluate the hopping integral <p,0|H|d,r>.

pp(r[, label_i, label_j, v_pps, v_ppp])

Evaluate the hopping integral <p_i,0|H|p_j,r>.

ps(r[, label_p, v_sps])

Evaluate the hopping integral <p,0|H|s,r>.

sd(r[, label_d, v_sds])

Evaluate the hopping integral <s,0|H|d,r>.

sp(r[, label_p, v_sps])

Evaluate the hopping integral <s,0|H|p,r>.

ss([v_sss])

Evaluate the hopping integral <s,0|H|s,r>.

__init__() None
dd(r: ndarray, label_i: str = 'dxy', label_j: str = 'dxy', v_dds: complex = 0.0, v_ddp: complex = 0.0, v_ddd: complex = 0) complex

Evaluate the hopping integral <d_i,0|H|d_j,r>.

Parameters:
  • r – Cartesian coordinates of the displacement vector

  • label_i – label of d_i orbital

  • label_j – label of d_j orbital

  • v_dds – V_dd_sigma

  • v_ddp – V_dd_pi

  • v_ddd – V_dd_delta

Returns:

hopping integral

Raises:

ValueError – if label_i or label_j is not in self.d_labels

dp(r: ndarray, label_p: str = 'px', label_d: str = 'dxy', v_pds: complex = 0.0, v_pdp: complex = 0.0) complex

Evaluate the hopping integral <d,0|H|p,r>.

Parameters:
  • r – Cartesian coordinates of the displacement vector

  • label_p – label of p orbital

  • label_d – label of d orbital

  • v_pds – V_pd_sigma

  • v_pdp – V_pd_pi

Returns:

hopping integral

Raises:

ValueError – if label_p is not in self.p_labels or label_d is not in self.d_labels

ds(r: ndarray, label_d: str = 'dxy', v_sds: complex = 0.0) complex

Evaluate the hopping integral <d,0|H|s,r>.

Parameters:
  • r – Cartesian coordinates of the displacement vector

  • label_d – label of d orbital

  • v_sds – V_sd_sigma

Returns:

hopping integral

Raises:

ValueError – if label_d is not in self.d_labels

eval(r: ndarray, label_i: str = 's', label_j: str = 's', v_sss: complex = 0.0, v_sps: complex = 0.0, v_sds: complex = 0.0, v_pps: complex = 0.0, v_ppp: complex = 0.0, v_pds: complex = 0.0, v_pdp: complex = 0.0, v_dds: complex = 0.0, v_ddp: complex = 0.0, v_ddd: complex = 0.0) complex

Common interface for evaluating hopping integral <i,0|H|j,r>.

Parameters:
  • r – Cartesian coordinates of the displacement vector

  • label_i – label for orbital i

  • label_j – label for orbital j

  • v_sss – V_ss_sigma

  • v_sps – V_sp_sigma

  • v_sds – V_sd_sigma

  • v_pps – V_pp_sigma

  • v_ppp – V_pp_pi

  • v_pds – V_pd_sigma

  • v_pdp – V_pd_pi

  • v_dds – V_dd_sigma

  • v_ddp – V_dd_pi

  • v_ddd – V_dd_delta

Returns:

hopping integral

Raises:

ValueError – if label_i or label_j is not in predefined labels

pd(r: ndarray, label_p: str = 'px', label_d: str = 'dxy', v_pds: complex = 0.0, v_pdp: complex = 0.0) complex

Evaluate the hopping integral <p,0|H|d,r>.

Parameters:
  • r – Cartesian coordinates of the displacement vector

  • label_p – label of p orbital

  • label_d – label of d orbital

  • v_pds – V_pd_sigma

  • v_pdp – V_pd_pi

Returns:

hopping integral

Raises:

ValueError – if label_p is not in self.p_labels or label_d is not in self.d_labels

pp(r: ndarray, label_i: str = 'px', label_j: str = 'px', v_pps: complex = 0.0, v_ppp: complex = 0.0) complex

Evaluate the hopping integral <p_i,0|H|p_j,r>.

Parameters:
  • r – Cartesian coordinates of the displacement vector

  • label_i – label of p_i orbital

  • label_j – label of p_j orbital

  • v_pps – V_pp_sigma

  • v_ppp – V_pp_pi

Returns:

hopping integral

Raises:

ValueError – if label_i or label_j is not in self.p_labels

ps(r: ndarray, label_p: str = 'px', v_sps: complex = 0.0) complex

Evaluate the hopping integral <p,0|H|s,r>.

Parameters:
  • r – Cartesian coordinates of the displacement vector

  • label_p – label of p orbital

  • v_sps – V_sp_sigma

Returns:

hopping integral

Raises:

ValueError – if label_p is not in self.p_labels

sd(r: ndarray, label_d: str = 'dxy', v_sds: complex = 0.0) complex

Evaluate the hopping integral <s,0|H|d,r>.

Parameters:
  • r – Cartesian coordinates of the displacement vector

  • label_d – label of d orbital

  • v_sds – V_sd_sigma

Returns:

hopping integral

Raises:

ValueError – if label_d is not in self.d_labels

sp(r: ndarray, label_p: str = 'px', v_sps: complex = 0.0) complex

Evaluate the hopping integral <s,0|H|p,r>.

Parameters:
  • r – Cartesian coordinates of the displacement vector

  • label_p – label of p orbital

  • v_sps – V_sp_sigma

Returns:

hopping integral

Raises:

ValueError – if label_p is not in self.p_labels

static ss(v_sss: complex = 0.0) complex

Evaluate the hopping integral <s,0|H|s,r>.

Parameters:

v_sss – V_ss_sigma

Returns:

hopping integral

__weakref__

list of weak references to the object (if defined)