NATURALO: Difference between revisions

From VASP Wiki
No edit summary
No edit summary
 
(15 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{TAGDEF|NATURALO|[integer]|0}}
{{TAGDEF|NATURALO|[integer]|0; for low scaling GW type calculations the default is 2}}


Description: calculate RPA natural orbitals.
Description: calculate RPA natural orbitals.
Line 24: Line 24:
* {{TAG|NATURALO}}=0 calculate the density matrix, diagonalize the matrix and write the natural orbitals and eigenvalues of the density matrix to the file {{TAG|WAVECAR}}. This setting is usually not particularly useful for practical calculations.
* {{TAG|NATURALO}}=0 calculate the density matrix, diagonalize the matrix and write the natural orbitals and eigenvalues of the density matrix to the file {{TAG|WAVECAR}}. This setting is usually not particularly useful for practical calculations.


* {{TAG|NATURALO}}=1 calculate the density matrix, diagonalize the matrix only in the sub-block of unoccupied states, and write the occupied Kohn Sham orbitals, as well as the natural orbitals corresponding to unoccupied states to the file {{TAG|WAVECAR}}. The unoccupied orbitals are ordered according to their occupancies in the RPA density matrix.  Note that this setting is reserved for gapped systems (insulators and semiconductors). The one-electron occupancies are not updated from their KS values (they will remain 1 for occupied Kohn-Sham orbitals and 0 for natural orbitals representing the virtual manifold). This setting has been used in Ref. <ref name="ramberger2019rpa"/>. See also Ref. <ref name="GruneisNO"/> for further information.
* {{TAG|NATURALO}}=1 calculate the density matrix, diagonalize the matrix only in the sub-block of unoccupied states, and write the occupied Kohn Sham orbitals, as well as the natural orbitals corresponding to unoccupied states to the file {{TAG|WAVECAR}}. The unoccupied orbitals are ordered according to their occupancies in the RPA density matrix.  The one-electron occupancies are not updated from their KS values (they will remain 1 for occupied Kohn-Sham orbitals and 0 for natural orbitals representing the virtual manifold). This setting has been used in Ref. <ref name="ramberger2019rpa"/>. See also Ref. <ref name="GruneisNO"/> for further information. Note that all orbitals- even those with a tiny fractional occupancy -are treated as occupied orbitals and not updated: the algorithm should hence even work for metallic systems.


* {{TAG|NATURALO}} =negative value. Similar to  {{TAG|NATURALO}}=1 but additionally conserves ABS|{{TAG|NATURALO}}| unoccupied Kohn-Sham states. This is expedient, for subsequent GW and BSE calculations to conserve few unoccupied orbitals to their Kohn-Sham state.
* {{TAG|NATURALO}}<0. Similar to  {{TAG|NATURALO}}=1 but additionally conserves ABS|{{TAG|NATURALO}}| unoccupied Kohn-Sham states. This is expedient, for subsequent GW and BSE calculations to conserve few unoccupied orbitals to their Kohn-Sham states.


* If 10 is added (e.g. {{TAG|NATURALO}}=10, {{TAG|NATURALO}}=11) the density matrix is diagonalizes using a perturbative Loewdin algorithm that attempts to keep the orbital order strictly conserved: E.g. the natural orbital matching closest to each Kohn-Sham orbital will be determined and stored. Use this tag for metals.
* If 10 is added (e.g. {{TAG|NATURALO}}=10, {{TAG|NATURALO}}=11) the density matrix is diagonalizes using a perturbative Loewdin algorithm that attempts to keep the orbital order strictly conserved: E.g. the natural orbital matching closest to each Kohn-Sham orbital will be determined and stored. Use this tag for metals.


* {{TAG|NATURALO}}=2 (or 12) is similar to 0, but the one-electron occupancies are not updated. In rare cases this might lead to inconsistencies, if the orbital order changes between DFT and the RPA density matrix (i.e. a previously occupied DFT orbitals posses a smaller occupation in the RPA density matrix than some unoccupied Kohn-Sham orbitals and are moved into the unoccupied block). This problem can be reduced using {{TAG|NATURALO}}=12, as described above. This flag, in combination with {{TAG|ALGO}} = scGW0R, can be used to evaluate the GW-singles contribution to the correlation energy.<ref name="Klimessingles"/> One can deduct the GW singles energies from the energies after
* {{TAG|NATURALO}}=2 (or 12) is similar to 0, but the one-electron occupancies are not updated. In rare cases this might lead to inconsistencies, if the orbital order changes between DFT and the RPA density matrix (i.e. a previously occupied DFT orbitals posses a smaller occupation in the RPA density matrix than some unoccupied Kohn-Sham orbitals and are moved into the unoccupied block). This problem can be reduced using {{TAG|NATURALO}}=12, as described above. This flag, in combination with {{TAG|ALGO}} = scGW0R, can be used to evaluate the GW-singles contribution to the correlation energy.<ref name="Klimessingles"/> One can deduct the HF singles and the GW singles energies from the energies after  


Energies after update of density matrix
    Energies after diagonalization of HF Hamiltonian (single shot)
Hartree-Fock free energy of the ion-electron system (eV)
    Hartree-Fock free energy of the ion-electron system (eV)


Experience has shown that there is very little difference between the natural orbitals obtained using {{TAG|ALGO}} = G0W0R and {{TAG|ALGO}} = scGW0R. We strongly recommend to use the more efficient and better tested algorithm {{TAG|ALGO}} = G0W0R (with the exception of GW-singles). Furthermore, perform careful tests for {{TAG|NOMEGA}}: the RPA total energy converges much faster then the natural orbitals. Using a too small {{TAG|NOMEGA}} can yield natural orbitals that are non-optimal, leading to very slow convergence of correlated calculations with respect to the number of natural orbitals.
    Energies after update of density matrix
    Hartree-Fock free energy of the ion-electron system (eV)
 
Experience has shown that there is very little difference between the natural orbitals obtained using {{TAG|ALGO}} = G0W0R and {{TAG|ALGO}} = scGW0R. We strongly recommend to use the more efficient and better tested algorithm {{TAG|ALGO}} = G0W0R (with the exception of GW-singles) to determine natural orbitals. Furthermore, perform careful tests for {{TAG|NOMEGA}}: the RPA total energy converges much faster then the natural orbitals. Using a too small {{TAG|NOMEGA}} can yield natural orbitals that are non-optimal, leading to very slow convergence of correlated calculations with respect to the number of natural orbitals.
A crucial test is that the following line
A crucial test is that the following line
   
   
  correlated contrib. to density matrix        0.0000004037        0.0000000000
  correlated contrib. to density matrix        0.0000004037        0.0000000000
   
   
in the stdout and OUTCAR file shows values close to zero (for {{TAG|ALGO}} = G0W0R). The above value is perfectly acceptable, and it decreases as {{TAG|NOMEGA}} increases.
in the stdout and OUTCAR file shows values close to zero (for {{TAG|ALGO}} = G0W0R). The above value is perfectly acceptable and the value decreases as {{TAG|NOMEGA}} increases.  


* {{TAG|NATURALO}}=4 preserves original (DFT) orbitals. This mode is useful if only quasi-particle energies are corrected with the GW method, for instance when selecting {{TAG|ALGO}}=[[GW calculations#gw0|EVGW0R]].
{{NB|mind|available as of VASP.6.4:}}


== Related Tags and Sections ==
== Related tags and articles ==


* {{TAG|ALGO}} for response functions and ''RPA'' calculations
* {{TAG|ALGO}} for response functions and ''RPA'' calculations
Line 58: Line 63:


----
----
[[Category:INCAR]][[Category:Many-Body Perturbation Theory]] [[Category:GW]] [[Category:ACFDT]][[Category:Performance]][[Category:Parallelization]][[Category:Low-scaling GW and RPA]][[Category:VASP6]]
[[Category:INCAR tag]][[Category:Many-body perturbation theory]][[Category:GW]] [[Category:ACFDT]][[Category:Low-scaling GW and RPA]]

Latest revision as of 08:50, 21 February 2024

NATURALO = [integer]
Default: NATURALO = 0; for low scaling GW type calculations the default is 2 

Description: calculate RPA natural orbitals.


This flag should be used in combination with ALGO = G0W0R or ALGO = scGW0R. The VASP code diagonalizes the RPA density matrix and writes the final natural orbitals to the WAVECAR file. The one-electron occupancies on the WAVECAR file can also be updated to the eigenvalues of the RPA density matrix. For ALGO = G0W0R, the interacting Green's function is approximated as

whereas for ALGO = scGW0R the Dyson equation is solved

In both cases, the RPA density matrix is determined as . More details on the use of RPA natural orbitals can be found in Ref. [1].

The following settings are currently supported

  • NATURALO=0 calculate the density matrix, diagonalize the matrix and write the natural orbitals and eigenvalues of the density matrix to the file WAVECAR. This setting is usually not particularly useful for practical calculations.
  • NATURALO=1 calculate the density matrix, diagonalize the matrix only in the sub-block of unoccupied states, and write the occupied Kohn Sham orbitals, as well as the natural orbitals corresponding to unoccupied states to the file WAVECAR. The unoccupied orbitals are ordered according to their occupancies in the RPA density matrix. The one-electron occupancies are not updated from their KS values (they will remain 1 for occupied Kohn-Sham orbitals and 0 for natural orbitals representing the virtual manifold). This setting has been used in Ref. [1]. See also Ref. [2] for further information. Note that all orbitals- even those with a tiny fractional occupancy -are treated as occupied orbitals and not updated: the algorithm should hence even work for metallic systems.
  • NATURALO<0. Similar to NATURALO=1 but additionally conserves ABS|NATURALO| unoccupied Kohn-Sham states. This is expedient, for subsequent GW and BSE calculations to conserve few unoccupied orbitals to their Kohn-Sham states.
  • If 10 is added (e.g. NATURALO=10, NATURALO=11) the density matrix is diagonalizes using a perturbative Loewdin algorithm that attempts to keep the orbital order strictly conserved: E.g. the natural orbital matching closest to each Kohn-Sham orbital will be determined and stored. Use this tag for metals.
  • NATURALO=2 (or 12) is similar to 0, but the one-electron occupancies are not updated. In rare cases this might lead to inconsistencies, if the orbital order changes between DFT and the RPA density matrix (i.e. a previously occupied DFT orbitals posses a smaller occupation in the RPA density matrix than some unoccupied Kohn-Sham orbitals and are moved into the unoccupied block). This problem can be reduced using NATURALO=12, as described above. This flag, in combination with ALGO = scGW0R, can be used to evaluate the GW-singles contribution to the correlation energy.[3] One can deduct the HF singles and the GW singles energies from the energies after
    Energies after diagonalization of HF Hamiltonian (single shot)
    Hartree-Fock free energy of the ion-electron system (eV)
    Energies after update of density matrix
    Hartree-Fock free energy of the ion-electron system (eV)

Experience has shown that there is very little difference between the natural orbitals obtained using ALGO = G0W0R and ALGO = scGW0R. We strongly recommend to use the more efficient and better tested algorithm ALGO = G0W0R (with the exception of GW-singles) to determine natural orbitals. Furthermore, perform careful tests for NOMEGA: the RPA total energy converges much faster then the natural orbitals. Using a too small NOMEGA can yield natural orbitals that are non-optimal, leading to very slow convergence of correlated calculations with respect to the number of natural orbitals. A crucial test is that the following line

correlated contrib. to density matrix         0.0000004037        0.0000000000

in the stdout and OUTCAR file shows values close to zero (for ALGO = G0W0R). The above value is perfectly acceptable and the value decreases as NOMEGA increases.

  • NATURALO=4 preserves original (DFT) orbitals. This mode is useful if only quasi-particle energies are corrected with the GW method, for instance when selecting ALGO=EVGW0R.
Mind: available as of VASP.6.4:

Related tags and articles

References