David Strubbe edited Sternheimer.tex  over 9 years ago

Commit id: d33a769a014addf32c49e2e960a182c99eeb39de

deletions | additions      

       

for large systems, it saves time overall since it increases the condition number of the matrix for the linear solver,  and thus reduces the number of solver iterations required to attain a given precision.  We also have implemented the Sternheimer formalism when non-integer occupations are used, as appropriate for metallic systems. In this case weighted projectors are added to both sides of the eq.~(\ref{eq:sternheimer}).\cite{DeGironcoli} We have generalized the equations to the dynamic case \cite{Strubbe_theis}. \cite{Strubbethesis}.  The modified Sternheimer equation is \begin{equation}  \left\{\hat H - \epsilon_n\pm\omega +  \mathrm{i}\eta + \sum_n \alpha_m \left| \varphi_m \right> \left| \varphi_m \right> \right\}\delta\varphi_{n}(\vec r, \pm\omega) = -\left[ \tilde{\theta}_{{\rm F},n} - \sum_m \beta_{n,m} \left| \varphi_m \right> \left| \varphi_m \right> \right] \delta{\hat H}(\pm\omega) \varphi_n(\vec r) 

where  \begin{equation}  \alpha_n = {\rm max} \left( \epsilon_{\rm F} - 3 \sigma - \epsilon_n, 0 \right)  \beta_{n,m} = \tilde{theta}_{{\rm \tilde{\theta}_{{\rm  F},n} \tilde{theta}_{n,m} \tilde{\theta}_{n,m}  + \tilde{theta}_{{\rm \tilde{\theta}_{{\rm  F},m} \tilde{theta}_{m,n} \tilde{\theta}_{m,n}  + \alpha_m \frac{\tilde{theta}_{{\rm \frac{\tilde{\theta}_{{\rm  F},n} - \tilde{theta}_{n,m}}{\epsilon_n \tilde{\theta}_{n,m}}{\epsilon_n  - \epsilon_m \mp \omega} \tilde{theta}_{m,n} \tilde{\theta}_{m,n}  \end{equation}  $\sigma$ is the broadening energy and $\tilde{\theta}$ is the smearing scheme's approximation to the Heaviside function.  Apart from semiconducting smearing (\textit{i.e.} the original equation above, which corresponds to the zero temperature limit),  the code offers the standard Fermi-Dirac~\cite{Mermin_1965}, Methfessel-Paxton~\cite{Methfessel_1989}, spline~\cite{Holender_1995}, and cold~\cite{Marzari_1999} smearing schemes.  Additionally, we have developed a scheme for handling arbitrary fractional occupations, which do not have to be defined by a function of the energy eigenvalues \cite{Strubbe_thesis}. \cite{Strubbethesis}.  In order to solve eq.~(\ref{eq:sternheimer}) we use a self-consistent iteration scheme similar to the ones used for ground-state DFT. Each iteration we need to solve a sparse linear problem where the operator to invert is the shifted KS Hamiltonian. For real wavefunctions and a real shift (as for the static case), we can use conjugate gradients. When the shift is complex, a non-Hermitian iterative solver is required. We have found that a robust and efficient solver is the quasi-minimal residual (QMR) method~\cite{Freund_1991}.