quemb.molbe.pfrag.schmidt_decomposition

quemb.molbe.pfrag.schmidt_decomposition(mo_coeff, nocc, AO_in_frag, thr_bath=1e-10, cinv=None, rdm=None, norb=None)

Perform Schmidt decomposition on the molecular orbital coefficients.

This function decomposes the molecular orbitals into fragment and environment parts using the Schmidt decomposition method. It computes the transformation matrix (TA) which includes both the fragment orbitals and the entangled bath.

Parameters:
  • mo_coeff (ndarray[tuple[int, ...], dtype[float64]]) – Molecular orbital coefficients.

  • nocc (int) – Number of occupied orbitals.

  • Frag_sites (list of int) – List of fragment sites (indices).

  • thr_bath (float) – Threshold for bath orbitals in Schmidt decomposition

  • cinv (ndarray[tuple[int, ...], dtype[float64]] | None) – Inverse of the transformation matrix. Defaults to None.

  • rdm (ndarray[tuple[int, ...], dtype[float64]] | None) – Reduced density matrix. If not provided, it will be computed from the molecular orbitals. Defaults to None.

  • norb (int | None) – Specifies number of bath orbitals. Used for UBE to make alpha and beta spaces the same size. Defaults to None

Returns:

TA, norbs_frag, norbs_bath

Transformation matrix (TA) including both fragment and entangled bath orbitals.

Return type:

tuple