Effective Hamiltonians provide a powerful framework for coarse-grained representation of complex electronic structure
and for making direct comparisons with the experimentally derived parameters. It is commonly
used in magnetic systems.^{Malrieu:2014}
Following general theory of effective Hamiltonians,^{Malrieu:2014}
Ref. Pokhilko:2020b describes how effective Hamiltonians can be extracted from the
EOM-CC wave functions by using Bloch’s formalism.
This approach provides an exact map of the many-body electronic structure onto a selected model space, yielding
rigorous effective Hamiltonians in this model space.
Currently, only EOM-SF-CCSD wave functions and Heisenberg’s and Hubbard’s model spaces are supported.
The implemented procedure is $N$-to-$N$ map, meaning that the number of model states is the same as the number of electronic states used to build the effective Hamiltonian.
In the case of the Heisenberg’s Hamiltonian, the number of states $N$ should be the same as the number of open-shell electrons,
since this is the number of open-shell configurations that a single spin-flipping excitation can provide.
In the case of the Hubbard’s Hamiltonian, $N$ should equal to the total number of configurations that a single spin-flipping excitation can generate
in the open-shell subspace (squared number of open-shell orbitals).
Once CC_MAKE_EFF_HAM *$rem* variable is set to 1,
the electronic states are read from the list specified in the *$eff_ham* section.
Right and left amplitudes of these EOM states are used for the effective Hamiltonian construction.
The Hamiltonians are constructed in two forms: the Bloch’s form (non-Hermitian) and des Cloizeaux’s form (Hermitian).
If CC_OSFNO is invoked (recommended), the correspondence between the open-shell orbitals is established through the
SVD procedure,^{Pokhilko:2020a} followed by Boys’ localization of these orbitals.
If these orbitals are desired, the orbital canonicalization should be disabled with CC_CANONIZE = false.
If GUI is set to 2, the orbitals used in CCMAN2 calculations are dropped to the *.fchk* file
and can be visualized by IQmol.
Note:
Beware that localization procedure may fail when there are several orbitals residing on the same radical centers,
since in this case Boys localization becomes ill-conditioned.

The syntax of the *$eff_ham* section is similar to the syntax of the *$trans_prop* section.
First, *state_list* starts the list of electronic states that are used for the construction of the effective Hamiltonian.
The EOM states are abbreviated by the type of the method (currently, only SF_STATES is supported), its irrep (use 1 for OSFNO and localized orbitals), and the number in the particular irrep.
The list of states is terminated by *end_list*.
The type of the effective Hamiltonian is specified by the *eff_ham* keyword, which can be either HEISENBERG or HUBBARD.

The example below is based on Molecule 1 from Ref. Pokhilko:2020b.
It shows how the Heisenberg Hamiltonian can be constructed from the EOM-SF-CCSD
wave-functions. It can be modified to construct the Hubbard Hamiltonian by (i) requesting 4 SF states (that would include
2 covalent and 2 ionic states) and (ii) setting *eff_ham* to HUBBARD.

$comment Molecule 1 from J. Chem. Phys. 152, 094108 (2020): propane-1,3-diyl. This example illustrates the construction of the Heisenberg Hamiltonian from the two lowest diradical states computed by EOM-SF-CCSD. $end $molecule 0 3 C -0.0720787494 -0.2443969570 1.2525335342 C -0.1914499016 0.5591929000 0.0000000000 C -0.0720787494 -0.2443969570 -1.2525335342 H 0.1191211842 0.2375636339 2.2059937351 H -0.3120216606 -1.3031986575 1.2578210464 H 0.5519313098 1.3748537257 0.0000000000 H -1.1649723712 1.1083017822 0.0000000000 H 0.1191211842 0.2375636339 -2.2059937351 H -0.3120216606 -1.3031986575 -1.2578210464 $end $rem basis = sto-3g gui = 2 method = eom-ccsd sf_states = [2] sym_ignore = true symmetry = false CC_OSFNO = true CC_FNO_THRESH = 9900 CC_CANONIZE false cc_make_eff_ham = 1 cc_eom_prop = 1 cc_eom_prop_te = 1 $end $eff_ham state_list sf_states 1 1 sf_states 1 2 end_list eff_ham heisenberg $end