quemb.molbe.pfrag.schmidt_decomposition

quemb.molbe.pfrag.schmidt_decomposition(mo_coeff, nocc, Frag_sites, cinv=None, rdm=None, norb=None, return_orb_count=False)

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) – Molecular orbital coefficients.

  • nocc (int) – Number of occupied orbitals.

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

  • cinv (ndarray, optional) – Inverse of the transformation matrix. Defaults to None.

  • rdm (ndarray, optional) – Reduced density matrix. If not provided, it will be computed from the molecular orbitals. Defaults to None.

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

  • return_orb_count (bool, optional) – Return more information about the number of orbitals. Used in UBE. Defaults to False

Returns:

  • numpy.ndarray – Transformation matrix (TA) including both fragment and entangled bath orbitals.

  • if return_orb_count – numpy.ndarray, int, int returns TA (above), number of orbitals in the fragment space, and number of orbitals in bath space