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#