forte2.orbitals.semicanonicalizer#

Module Contents#

class forte2.orbitals.semicanonicalizer.Semicanonicalizer(g1: numpy.ndarray, C: numpy.ndarray, system: forte2.system.System, mo_space: forte2.state.MOSpace | forte2.state.EmbeddingMOSpace = None, fock_builder: forte2.jkbuilder.FockBuilder = None, mix_inactive: bool = False, mix_active: bool = False, do_frozen: bool = True, do_active: bool = True)#

Class to perform semicanonicalization of a set of molecular orbitals. The semi-canonical basis is defined as a basis where the generalized Fock matrix is diagonal in a set of subspaces.

Parameters:
mo_spaceMOSpace

The molecular orbital space defining the subspaces.

g1np.ndarray

The active space 1-electron density matrix in the molecular orbital basis.

Cnp.ndarray

The molecular orbital coefficients, in the “original” order of the orbitals.

systemSystem

The system object containing the basis set and other properties.

fock_builderFockBuilder, optional

An instance of FockBuilder to compute the Fock matrix. If None, a new FockBuilder will be created.

mix_inactivebool, optional, default=False

If True, frozen_core and core orbitals will be diagonalized together, virtual and frozen_virt also will be diagonalized together.

mix_activebool, optional, default=False

If True, all GAS active orbitals will be diagonalized together.

Notes

The generalized Fock matrix is defined as

\[f_p^q = h_p^q + \sum_{ij}^{\mathbf{H}}v_{pi}^{qj}\gamma_j^i,\]

where \(\mathbf{H}\) is the set of hole orbitals (i.e., all orbitals that are not unoccupied). The task of the Semicanonicalizer class is then to form the generalized Fock matrix and accumulate unitary transformations that diagonalizes the Fock matrix in the specified subspaces. If a subspace is to be untouched, the corresponding subblock of unitary transformation is set to the identity.

mo_space = None#
two_component#
system#
fock_builder = None#
mix_inactive = False#
mix_active = False#
do_frozen = True#
do_active = True#