horton.orbital_utils – Utility functions for orbital modifications¶
Rotate AO/MO (or MO/MO) coefficient matrix such that C` = C*U
- Rotation matrices (TwoIndex instance) and AO/MO coefficients (Expansion instance). rots and exps are ordered such that rot1 corresponds to exp1, etc., i.e., rot1, rot2,..., exp1, exp2,...
Determine a unitary matrix from a skew-symmetric matrix K as U = exp(-K) by approximating U = 1 - K + 1/2 K^2 + O(3)
- A skew-symmetric matrix (TwoIndex instance)
Update MO integrals. Returns list of transformed 1- and 2-electron integrals according to a list of expansion coefficients.
- One-electron integrals in the AO basis. A TwoIndex instance.
- Two-electron integrals in the AO basis.
- Choice of 4-index transformation. Default ‘tensordot’.
- The expansion coefficients.
split_core_active(one, two, ecore, orb, ncore, nactive, indextrans='tensordot')¶
Reduce a Hamiltonian to an active space
Works only for restricted wavefunctions.
- One and two-electron integrals.
- The core energy of the given Hamiltonian. In the case of a standard molecular system, this is the nuclear nuclear repulsion.
- The MO expansion coefficients. An Expansion instance. If None, integrals are assued to be already transformed into the mo basis and no transformation is carried out in this function.
- The number of frozen core orbitals (int)
- The number of active orbitals (int)
- 4-index transformation (str). One of
Returns a tuple with three values:
- The one-body operator in the small space
- The two-body operator in the small space
- The core energy, i.e. the sum of the given core energy and HF contributions from the core orbitals.