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