interaction parameter

Model Hamiltonian is defined as

\[{\hat H} = \sum_{i j} \sum_{\alpha \beta}^{N_{\rm band}} \sum_{\sigma=\uparrow, \downarrow} t_{i \alpha j \beta} c_{i \alpha \sigma}^\dagger c_{j \beta \sigma} +h.c. + {\hat H}_{\rm int},\]

where

(1)\[{\hat H}_{\rm int} = \frac{1}{2} \sum_{i, \alpha \beta \gamma \delta,\sigma \sigma'} U^{i}_{\alpha \beta \gamma \delta} c_{i \alpha \sigma}^\dagger c_{i \beta \sigma'}^\dagger c_{i \delta \sigma'} c_{i \gamma \sigma}.\]

The interaction matrix \(U^{i}_{\alpha \beta \gamma \delta}\) is specified by the parameter interaction.

interaction = kanamori

In this case, the Kanamori-type interaction is used, i.e.

\[\begin{split}\begin{align} U_{\alpha \alpha \alpha \alpha} &= U, \\ U_{\alpha \beta \alpha \beta} &= U' \qquad (\alpha \neq \beta), \\ U_{\alpha \beta \beta \alpha} &= J \qquad (\alpha \neq \beta), \\ U_{\alpha \alpha \beta \beta} &= J \qquad (\alpha \neq \beta), \end{align}\end{split}\]

where \(U, U', J\) at each correlated shell are specified by the parameter kanamori as

interaction = kanamori
kanamori = [(U_1, U'_1, J_1), (U_2, U'_2, J_2), ... ]

For example, if there are two correlated shells that have \((U, U', J) = (4, 2, 1)\) and \((U, U', J) = (6, 3, 1.5)\), respectively, you need to set the input parameters as

interaction = kanamori
kanamori = [(4.0, 2.0, 1.0), (6.0, 3.0, 1.5)]

interaction = slater_f

In this case, the fully rotationally invariant Slater interaction is used. The interaction matrix is constructed by the effective Slater integrals \(F_0, F_2, F_4, F_6\). These Slater integrals and the angular momentum at each correlated shell are specified by the parameter slater_f as follows

interaction = slater_f
slater_f = [(angular_momentum, F_0, F_2, F_4, F_6), ... ]

For example, if there are two correlated shells, one has d-orbital with \((F_0, F_2, F_4) = (2, 1, 0.5)\) and the other has p-orbital with \((F_0, F_2) = (3, 1.5)\), you need to set the input parameter as

interaction = slater_f
slater_f = [(2, 2.0, 1.0, 0.5, 0.0), (1, 3.0, 1.5 0.0, 0.0)]

Note

You must specify all of \(F_0, F_2, F_4, F_6\).

The basis can be specified by slater_basis parameter. See slater_basis parameter for details.

interaction = slater_uj

The Slater interaction is used as in the case with interaction = slater_f, but a conventional intuitive parameterization is implemented. The effective Slater integrals \(F_0, F_2, F_4, F_6\) are evaluated from parameters \(U\) and \(J\). The explicit formulas are given as follows:

  • \(l = 1\)

\[F_0 = U, \quad F_2 = 5 J\]
  • \(l=2\)

\[F_0 = U, \quad F_2 = \frac{14 J}{1.0 + 0.63},\quad F_4 = 0.63 F_2\]
  • \(l=3\)

\[F_0 = U, \quad F_2 = \frac{6435 J}{286 + 195 \times 451 / 675 + 250 \times 1001 / 2025},\quad F_4 = \frac{451 F_2}{675},\quad F_6 = \frac{1001 F_2}{2025}\]

The \(U\), \(J\) and the angular momentum at each correlated shell are specified by the parameter slater_uj as

interaction = slater_uj
slater_uj = [(angular_momentum1, U1, J1), (angular_momentum2, U2, J2), ... ]

The basis can be specified by slater_basis parameter. See slater_basis parameter for details.

interaction = respack

Use the output by RESPACK. Under construction.

interaction = file

One can set the U tensor \(U^{i}_{\alpha \beta \gamma \delta}\) from an external file. The input parameters for this are

interaction = file
interaction_file = ['file1.npy', 'file2.npy',]

The filenames for all inequivalent shells are listed in interaction_file parameter. The suppored formats are

  • NumPy .npy format (binary file): Four dimensional NumPy array corresponding to \(U^{i}_{\alpha \beta \gamma \delta}\) for shell \(i\) is save by numpy.save command.

  • text file: \(U^{i}_{\alpha \beta \gamma \delta}\) for each shell \(i\) is written in a one dimansional manner as follows (example for norb=3 without spin-orbit coupling)

    Re(U[0,0,0,0])
    Re(U[0,0,0,1])
    Re(U[0,0,0,2])
    Re(U[0,0,1,0])
    ...
    

    or

    Re(U[0,0,0,0]) Im(U[0,0,0,0])
    Re(U[0,0,0,1]) Im(U[0,0,0,1])
    Re(U[0,0,0,2]) Im(U[0,0,0,2])
    Re(U[0,0,1,0]) Im(U[0,0,1,0])
    ...
    

    No blank line should be put between consecutive elements. Lines beginning with # are skipped.

The definition of the U tensor depends on the spin_orbit parameter. For spin_orbit=False, \(U^{i}_{\alpha \beta \gamma \delta}\) is defined by Eq. (1). The shape of the U tensor is (norb, norb, norb, norb).

For spin_orbit=True, on the other hand, \(U^{i}_{\alpha \beta \gamma \delta}\) is defined by

\[{\hat H}_{\rm int} = \frac{1}{2} \sum_{i, \alpha \beta \gamma \delta} U^{i}_{\alpha \beta \gamma \delta} c_{i \alpha}^\dagger c_{i \beta}^\dagger c_{i \delta} c_{i \gamma}.\]

In this case, the indices \(\alpha, \beta, \gamma, \delta\) include spin. The shape of the U tensor is therefore (2*norb, 2*norb, 2*norb, 2*norb).

density_density option

If you want to treat only the density-density part

\[{\hat H}_{\rm int} = \frac{1}{2} \sum_{i, \alpha, \sigma \sigma'} U^{i}_{\alpha \alpha \alpha \alpha} c_{i \alpha \sigma}^\dagger c_{i \beta \sigma'}^\dagger c_{i \beta \sigma'} c_{i \alpha \sigma} + \frac{1}{2} \sum_{i, \alpha \neq \beta, \sigma \sigma'} U^{i}_{\alpha \beta \alpha \beta} c_{i \alpha \sigma}^\dagger c_{i \beta \sigma'}^\dagger c_{i \beta \sigma'} c_{i \alpha \sigma} + \frac{1}{2} \sum_{i, \alpha \neq \beta, \sigma} U^{i}_{\alpha \beta \beta \alpha} c_{i \alpha \sigma}^\dagger c_{i \beta \sigma}^\dagger c_{i \alpha \sigma} c_{i \beta \sigma},\]

you specify the parameter density_density as

density_density = True

Note

It can not be used in conjunction to the Hubbard-I solver or the double-counting correction.