The first order variation of the wave function $\Delta \psi_n$ is obtained by standard perturbation theory (Eq. 25 of ref 1):

\begin{equation} (H_{SCF}-\epsilon_n)|\Delta \psi_n \rangle = -(\Delta V_{SCF} - \Delta \epsilon)|\psi_n\rangle \tag{1} \end{equation}

However, in practical implementations, the following equation (Eq. 30 of the same ref) is adopted and an iterative algorithm like conjugate-gradient approach is employed to find the solution:

\begin{equation} (H_{SCF}-\epsilon_n-\alpha P_v)|\Delta \psi_n \rangle = -P_c\Delta V_{SCF}|\psi_n\rangle \tag{2} \end{equation} where $P$ is the projection operator with $v$ and $c$ for valence/occupied and conduction/empty states, respectively. The $\alpha P_v$ term is added to eliminate the singularity of the linear operator $H_{SCF}-\epsilon_n$.

As Eq. (2) is one typical way to evaluate the occupied states variation with the aid of projection operators, how can we calculate the derivative of conduction states?

  • 1
    $\begingroup$ This is a really interesting set of questions, but it may be a bit too broad as is. I think if you narrowed it down to one or two points from your list, with the other points possibly moved to separate questions, it will be easier for someone to provide an answer. $\endgroup$
    – Tyberius
    Dec 28, 2020 at 3:40
  • 1
    $\begingroup$ I agree. This question has gone almost 2 months without a comment or answer, and it's probably because answering five questions can be a daunting task. If you can ask separate questions that would be great, and people who the answer to one of them can individually answer each question that they know how to answer. We need more questions anyway: area51.stackexchange.com/proposals/122958?phase=beta ! $\endgroup$ Dec 28, 2020 at 3:43
  • 1
    $\begingroup$ @Tyberius NikeDattani Thanks for your comments. Now the original question is edited to show my most central concern. $\endgroup$ Dec 28, 2020 at 14:14
  • $\begingroup$ @XiaomingWang Excellent! $\endgroup$ Dec 28, 2020 at 17:27
  • $\begingroup$ Hi @XiaomingWang, it's been more than 1 year since we last corresponded about this question. Did you figure it out? You had 5 questions in your original version of this question, and I wonder if in the last 14 months you figured out the answer? $\endgroup$ Jan 26, 2022 at 3:35

1 Answer 1


Let's start by unpacking Eq. (1), which we rewrite here:

$$\begin{equation} (H_{SCF} - \varepsilon_n)\lvert \Delta \psi_n \rangle = -(\Delta V_{SCF} + \Delta \varepsilon_n) \lvert \psi_n \rangle. \tag{1}\end{equation}$$

Well, we know (Eq. (28) of Baroni et al.) that the variation in wavefunction $n$ can be written as

$$\begin{equation} \Delta \psi_n(r) = \sum_{m \neq n} \frac{\langle \psi_m | \Delta V_{SCF} | \psi_n \rangle}{\varepsilon_n - \varepsilon_m} \psi_m(r), \tag{28}\end{equation}$$

where $n, m$ range over both occupied states, $\lvert \psi \rangle \in occ$, and virtual states, denoted $\lvert \phi \rangle \not\in occ$. (Note that our expressions will lack a factor of 2 compared to Baroni et al. because we are counting up and down spin orbitals separately.)

Now, the response to the electron density is only summed over occupied states. So, taking $z^*$ as the complex conjugate of $z$, Eqs. (23) and (29) of Baroni et al. read

$$\begin{align} \Delta n(r) &= \sum_{n \in occ} \left[ \Delta \psi_n^*(r) \psi_n(r) + \psi_n^*(r) \Delta \psi_n(r) \right] \tag{23} \\\\ &= \sum_{n \in occ} \sum_{m \neq n} \left[ \psi_m^*(r) \frac{\langle \psi_n | \Delta V_{SCF} | \psi_m \rangle}{\varepsilon_m - \varepsilon_n} \psi_n(r) + \psi_n^*(r) \frac{\langle \psi_m | \Delta V_{SCF} | \psi_n \rangle}{\varepsilon_n - \varepsilon_m} \psi_m(r) \right]. \tag{29} \end{align}$$

If we let $m$ range over occupied states, we notice that the contributions to $\Delta n$ coming from orbitals $m,n$ and from $n,m$ cancel; so we can take $m$ to range over the virtual states only. This is succinctly described a little later in Baroni et al.:

the response of the system to an external perturbation depends only on the component of the perturbation that couples the occupied-state manifold with the empty-state one.

Let's return to Eq. (1) above. Implicit in passing to Eq. (2) is the idea that $\lvert \psi_n \rangle$ is an occupied state: that means that $\lvert \Delta \psi_n \rangle$ lives in the virtual manifold. That's why we multiply the right side of Eq. (2) onto $P_c$, the unoccupied projector. What we really meant was

$$\begin{equation} (H_{SCF} - \varepsilon_n)\lvert \Delta \psi_n \rangle = - P_v (\Delta V_{SCF} + \Delta \varepsilon_n) \lvert \psi_n \rangle - P_c (\Delta V_{SCF} + \Delta \varepsilon_n) \lvert \psi_n \rangle, \end{equation}$$

but the components of $\lvert \Delta \psi_n \rangle \in \text{span}\ {P_v}$ are all zero, so we can just neglect to write it. This gives us the original Eq. (2):

$$\begin{equation} (H_{SCF} + \alpha P_v - \varepsilon_n) \lvert \Delta \psi_n \rangle = -P_c \Delta V_{SCF} \lvert \psi_n \rangle, \qquad n \in occ. \tag{2}\end{equation}$$

But the occupied-virtual coupling goes both ways! If we let $n$ in Eq. (29) index the (infinitely many, so we just handwave away the functional analysis issues) virtual states, then $m$ has to index occupied states. So if we assume $\lvert \psi_n \rangle$ is an unoccupied state in Eq. (1), then $\lvert \Delta \psi_n \rangle$ must belong to the occupied manifold, and we can write

$$\begin{equation} (H_{SCF} - \varepsilon_n) \lvert \Delta \psi_n \rangle = -P_v \Delta V_{SCF} \lvert \psi_n \rangle \qquad n \not\in occ; \tag{3}\end{equation}$$

(note that $\Delta \epsilon_n = \langle \psi_n | \Delta V_{SCF} | \psi_n \rangle$ goes away upon the projection just like in the question's equation $1 \to 2$), and we can fix singularities in $H_{SCF} - \varepsilon_n$ by adding a small amount of an operator we know acts trivially on $\lvert \Delta \psi_n \rangle$. So at long last

$$\begin{equation} (H_{SCF} + \alpha P_c - \epsilon_n) \lvert \Delta \psi_n \rangle = -P_v \Delta V_{SCF} \lvert \psi_n \rangle, \qquad n \not\in occ. \tag{4} \end{equation}$$


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .