diff --git a/source/basis_sets.rst b/source/basis_sets.rst index 899f2cc3c032f6113d2478fa250fde481611fc0f..1ea3130b3864804746f6e0a9b58216d81206aeb3 100644 --- a/source/basis_sets.rst +++ b/source/basis_sets.rst @@ -124,7 +124,7 @@ FFT (WFPROD) -------------- When the interaction potential is represented in the mixed product basis, the coupling to the single-particle states involve projections of the form :math:{\langle M_{\mathbf{k}\mu} \phi_{\mathbf{q}n} | \phi_{\mathbf{k+q}n'} \rangle\,.} -The calculation of these projections can be quite expensive. Therefore, there are a number of keywords that can be used for acceleration. Most of them are, by now, somewhat obsolete. An important keyword, though, is FFT in the section WFPROD of the input file. When used, the interstitial terms are evaluated using Fast Fourier Transformations (FFTs), i.e., by transforming into real space (where the convolutions turn into products), instead of by explicit convolutions in reciprocal space. For small systems the latter is faster, but for large systems it is recommendable to use FFTs because of a better scaling with system size. A run with FFTs can be made to yield results identical to the explicit summation. This requires an FFT reciprocal cutoff radius of :math:{2G_\mathrm{max}+g_\mathrm{max}}, which can be achieved by setting FFT EXACT, but such a calculation is quite costly. It is, therefore, advisable to use smaller cutoff radii, thereby sacrificing a bit of accuracy but speeding up the computations a lot. If given without an argument, Spex will use 2/3 of the above ''exact'' cutoff. One can also specify a cutoff by a real-valued argument explicitly, good compromises between accuracy and speed are values between 6 and 8 Bohr'^-1^'. +The calculation of these projections can be quite expensive. Therefore, there are a number of keywords that can be used for acceleration. Most of them are, by now, somewhat obsolete. An important keyword, though, is FFT in the section WFPROD of the input file. When used, the interstitial terms are evaluated using Fast Fourier Transformations (FFTs), i.e., by transforming into real space (where the convolutions turn into products), instead of by explicit convolutions in reciprocal space. For small systems the latter is faster, but for large systems it is recommendable to use FFTs because of a better scaling with system size. A run with FFTs can be made to yield results identical to the explicit summation. This requires an FFT reciprocal cutoff radius of :math:{2G_\mathrm{max}+g_\mathrm{max}}, which can be achieved by setting FFT EXACT, but such a calculation is quite costly. It is, therefore, advisable to use smaller cutoff radii, thereby sacrificing a bit of accuracy but speeding up the computations a lot. If given without an argument, Spex will use 2/3 of the above *exact* cutoff. One can also specify a cutoff by a real-valued argument explicitly, good compromises between accuracy and speed are values between 6 and 8 Bohr'^-1^'. +----------+---------------+-------------------------------------------------------------------------------+ | Examples | FFT 6 | Use FFTs with the cutoff 6 Bohr'^-1^'. | diff --git a/source/index.rst b/source/index.rst index 4b2718c088da0749953c081e34ac17e238749125..eb2793c1c1978069aa48bd243e2b15fdfcd247b8 100644 --- a/source/index.rst +++ b/source/index.rst @@ -13,7 +13,7 @@ It needs input from a converged DFT calculation, which can be generated by Fleur If you use SPEX for your research, please cite the following work: -.. highlights:: Christoph Friedrich, Stefan Blügel, Arno Schindlmayr, "Efficient implementation of the GW approximation within the all-electron FLAPW method", Phys. Rev. B 81, 125102 (2010). +.. highlights:: Christoph Friedrich, Stefan Blügel, Arno Schindlmayr, "Efficient implementation of the GW approximation within the all-electron FLAPW method", *Phys. Rev. B 81, 125102 (2010)*. .. toctree:: :maxdepth: 2 diff --git a/source/tutorials.rst b/source/tutorials.rst index 934dab8cac1ca75451362763fc5cc86ba542316c..0d7960b2c4a36357499707c724c80cfe79527f02 100644 --- a/source/tutorials.rst +++ b/source/tutorials.rst @@ -67,7 +67,7 @@ where :math:{v^\mathrm{ext}}, :math:{v^\mathrm{H}}, :math:{\Sigma^\mathrm{x \displaystyle E_{\mathbf{k}n}=\epsilon_{\mathbf{k}n}+\langle\phi_{\mathbf{k}n}|\Sigma^\mathrm{xc}(E_{\mathbf{k}n})-v^\mathrm{xc}|\phi_{\mathbf{k}n}\rangle\approx\epsilon_{\mathbf{k}n}+Z_{\mathbf{k}n}\langle\phi_{\mathbf{k}n}|\Sigma^\mathrm{xc}(\epsilon_{\mathbf{k}n})-v^\mathrm{xc}|\phi_{\mathbf{k}n}\rangle :label: qppert -with the single-particle wavefunction :math:{\phi_{\mathbf{k}n}} and the frequency-independent potential :math:{v^{\mathrm{xc}}}, which in the case of a KS solution would correspond to the local exchange-correlation potential; the nonlocal Hartree-Fock exchange potential and the ''hermitianized'' self-energy of QSGW (see below) are other examples. :math:{Z_{\mathbf{k}n}=[1-\partial\Sigma^{\mathrm{xc}}/\partial\omega(\epsilon_{\mathbf{k}n})]^{-1}} is called the renormalization factor. The two expressions on the right-hand side correspond to the "linearized" and "direct" (iterative) solutions given in the output. The direct solution takes into account the non-linearity of the quasiparticle equation and is thus considered the more accurate result. However, there is usually only little difference between the two values. +with the single-particle wavefunction :math:{\phi_{\mathbf{k}n}} and the frequency-independent potential :math:{v^{\mathrm{xc}}}, which in the case of a KS solution would correspond to the local exchange-correlation potential; the nonlocal Hartree-Fock exchange potential and the *hermitianized* self-energy of QSGW (see below) are other examples. :math:{Z_{\mathbf{k}n}=[1-\partial\Sigma^{\mathrm{xc}}/\partial\omega(\epsilon_{\mathbf{k}n})]^{-1}} is called the renormalization factor. The two expressions on the right-hand side correspond to the "linearized" and "direct" (iterative) solutions given in the output. The direct solution takes into account the non-linearity of the quasiparticle equation and is thus considered the more accurate result. However, there is usually only little difference between the two values. Up to this point, the job syntax for Hartree Fock (JOB HF), PBE0 (JOB PBE0), screened exchange (JOB SX), COHSEX (JOB COSX), and ''GT'' (JOB GT and JOB GWT) calculations is identical to the one of GW calculations, e.g., JOB HF FULL X:(1-10). Except the latter (GT), all of these methods are mean-field approaches, so one only gets one single-particle energy (instead of a ''linearized'' and a ''direct'' solution) for each band. .. _spectral: @@ -354,9 +354,9 @@ for diagonal elements and .. math:: \displaystyle A_{\mathbf{k}nn'}=\langle \phi_{\mathbf{k}n} | \Sigma^\mathrm{xc}(\epsilon_{\mathbf{k}n})+\Sigma^\mathrm{xc}(\epsilon_{\mathbf{k}n'}) | \phi_{\mathbf{k}n'} \rangle -for off-diagonal elements. The hermitianized QSGW operator is then obtained from :math:{\Sigma^\mathrm{xc,H}=(A+A^\dagger)/2}. The difference to the original definition is the inclusion of the renormalization factor to better reproduce the GW quasiparticle energies. The hermitianized matrix, or rather the difference :math:{\Sigma^{\mathrm{xc,H}}-v^\mathrm{xc}}, is written to the file "spex.qsgw", which is later read by the DFT code. In Fleur, the following steps are required: +for off-diagonal elements. The *hermitianized* QSGW operator is then obtained from :math:{\Sigma^\mathrm{xc,H}=(A+A^\dagger)/2}. The difference to the original definition is the inclusion of the renormalization factor to better reproduce the GW quasiparticle energies. The *hermitianized* matrix, or rather the difference :math:{\Sigma^{\mathrm{xc,H}}-v^\mathrm{xc}}, is written to the file "spex.qsgw", which is later read by the DFT code. In Fleur, the following steps are required: -* rm fleur.qsgw - remove any previous version of the hermitianized matrix. +* rm fleur.qsgw - remove any previous version of the *hermitianized* matrix. * rm broyd* - remove Broyden information about previous iterations because this information is inconsistent with the new Hamiltonian (the SCF calculation does not converge otherwise). * Set gw=3` in the Fleur input file. * Run Fleur.