Excited State Algorithm

Excited state calculations can very easily be performed in any first-principles code. It is installed in TOMBO, but very easy to install in other programs as well by simply adding several lines just after diagonalization of the LDA/HF/GW Hamiltonian as follows:

Let the highest occupied molecular orbital (HOMO) level be “ind” and the lowest unoccupied molecular orbital (LUMO) level be “ind” + 1.
Suppose that you want to excite one electron with spin “ispin” (“ispin” = 1, 2) from the HOMO level to the HOMO + “iExcite” level, i.e., LUMO + “iExcite” -1 level (“iExcite” is a positive integer).
Then, what you have to do is to change the order of the energy eigenvalue “EIG(level, ispin)” and the wave function coefficient “c(ibase, level, ispin)”. Here, “level” and “ibase” are the level and basis indices, respectively.
Suppose that “ibase” runs from “mbs1” + 1 to “mbs2”.
Then, in FORTRAN language, the code is explicitly written as follows:

            E_dummy = EIG(ind, ispin)
            EIG(ind, ispin) = EIG(ind+iExcite, ispin)
            EIG(ind+iExcite, ispin) = E_dummy
            do i = mbs1+1, mbs2
              z = c(i, ind, ispin)
              c(i, ind, ispin) = c(i, ind+iExcite, ispin)
              c(i, ind+iExcite, ispin) = z
            end do

In self-consistent field (SCF) calculations using extended Kohn-Sham theory (EKST), Hartree-Fock (HF) theory, or extended quasiparticle theory (EQPT) using e.g. the GW approximation, this change of order should be performed every self-consistent iteration loop. No other part needs to be changed. That’s it. Very simple!

(EKST) T. Nakashima, H. Raebiger, and K. Ohno, Physical Review B 104, L201116 (2021). https://doi.org/10.1103/PhysRevB.104.L201116
(EQPT) K. Ohno, S. Ono, and T. Isobe, Journal of Chemical Physics 146, 084108 (2017). https://doi.org/10.1063/1.4976553



Back to Top page

Go to TOMBO – Gallery

Go to TOMBO – Download Site