MP2 ground state calculation - Tutorial: Difference between revisions

From VASP Wiki
(Created page with "{{Template:mp2}} This tutorial introduces how to calculate the ground state energy using second order Møller-Plesset perturbation theory (MP2) with VASP. Currently there are...")
 
No edit summary
 
(24 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Template:mp2}}
{{Template:MP2 - Tutorial}}


This tutorial introduces how to calculate the ground state energy using second order Møller-Plesset perturbation theory (MP2) with VASP. Currently there are three implementations for MP2 available:
This tutorial introduces how to calculate the ground state energy using second order Møller-Plesset perturbation theory (MP2) with VASP. Currently there are three implementations available:
* MP2: this was the first implementation in VASP and is very efficient for small systems, i.e. systems with less than ~40 valence electrons per unit cell or unit cells smaller than ~200 ų. The system size scaling of this algorithm is N⁵.
 
* LTMP2: the Laplace transformed MP2 algorithm has a lower scaling (N⁴) than the previous MP2 algorithm and is therefore efficient for large systems with unit cells larger than ~200 ų and more than ~40 valence electrons.
* '''MP2'''<ref name="marsman"/>: this implementation is recommended for very small unit cells, very few k-points and very low plane-wave cuttofs. The system size scaling of this algorithm is N&#8309;.
* stochastic MP2
* '''LTMP2'''<ref name="schaefer2017"/>: for all larger systems this Laplace transformed MP2 (LTMP) implementation is recommended. Larger cutoffs and denser k-point meshes can be used. It possesses a lower system size scaling (N&#8308;) and a more efficient k-point sampling.
* '''stochastic LTMP2'''<ref name="schaefer2018"/>: even faster calculations at the price of statistical noise can be achieved with the stochastic MP2 algorithm. It is an optimal choice for very large systems where only relative errors per valence electron are relevant. Keeping the absolute error fixed, the algorithm exhibits a cubic scaling with the system size, N&#179;, whereas for a fixed relative error, a linear scaling, N&#185;, can be achieved. Note that there is no k-point sampling and no spin polarization implemented for this algorithm.
 
'''NOTE:''' ''If you use one of these algorithms, please cite the corresponding reference in your publication in addition to the standard VASP reference.''
 
Both LTMP2 as well as stochastic LTMP2 are high performance algorithms that can parallelize the MP2 calculation over thousands of CPUs.
 
<!--Furthermore, for very large systems, there is another technique to calcualte the MP2 ground state energy:
* '''high energy contributions using stochastic LTMP2''': For very large systems it is also possible to calculate only the low energy MP2 contributions (very small cutoff parameters) with ''MP2'' or ''LTMP2'' and correct the missing high energy MP2 contributions with the ''stochastic LTMP2'' algorithm. This allows for more accurate calculations for very large systems, since only a fraction of the MP2 energy is calulated stochastically.-->
At first, one should select the best algorithm according to the considered system size. In the following, a step by step instruction for each algorithm is presented.
 
== Preparation: the Hartree-Fock ground state ==
 
In order to calculate the Hartree-Fock ground state, use the following {{TAG|INCAR}} file
{{TAGBL|ISMEAR}} = 0 ; {{TAGBL|SIGMA}} = 0.01
{{TAGBL|ALGO}} = A
{{TAGBL|LHFCALC}} = .TRUE. ; {{TAGBL|AEXX}} = 1.0
{{TAGBL|EDIFF}} = 1E-6
{{TAGBL|ENCUT}} = # 10-20% larger than {{TAGBL|ENMAX}} in the {{TAGBL|POTCAR}} file
{{TAGBL|LORBITALREAL}} = .TRUE. # only necessary for LTMP2 and stochastic LTMP2
Keep the {{TAG|OUTCAR}} file to read-out the Hartree-Fock ground state energy later.
 
== Calculating the unoccupied Hartree-Fock orbitals ==
 
We also need the unoccupied/virtual Hartree-Fock orbitals to perform MP2 calculations. The number of necessary orbitals should be equal to the number of plane-waves, that can be found via
nplw=`awk '/number of plane-waves:/ {print $5} ' < OUTCAR_HARTREE_FOCK_GROUND_STATE
For the Gamma-only version of VASP, twice the number of plane-waves have to be used.
 
Set the INCAR file to
{{TAGBL|ISMEAR}} = 0 ; {{TAGBL|SIGMA}} = 0.01
{{TAGBL|ALGO}} = Exact
{{TAGBL|LHFCALC}} = .TRUE. ; {{TAGBL|AEXX}} = 1.0
{{TAGBL|NELM}} = 1
{{TAGBL|NBANDS}} = # number of plane-waves (favorably a multiple of the used mpi-ranks)
{{TAGBL|ENCUT}} = # same value as in the Hartree-Fock step
{{TAGBL|LORBITALREAL}} = .TRUE. # only necessary for LTMP2 and stochastic LTMP2
Make sure that VASP reads the {{TAG|WAVECAR}} file from the previous Hartree-Fock step.
 
== Actual MP2 calculations ==
 
Depending on your choice, please switch to the corresponding page.


<div style="background:#FFFFFF; border:solid 1px #AAAAAA; padding:0.5em 1em; margin-right:14em;">
<div style="background:#FFFFFF; border:solid 1px #AAAAAA; padding:0.5em 1em; margin-right:14em;">
# [[bandgap of Si in GW|bandgap of Si in GW]]
# [[MP2|MP2]]
# [[bandstructure of Si in GW (VASP2WANNIER90)|bandstructure of Si in GW (VASP2WANNIER90)]]
# [[LTMP2|LTMP2]]
# [[bandstructure of SrVO3 in GW|bandstructure of SrVO3 in GW]]
# [[stochastic LTMP2|stochastic LTMP2]]
<!--# [[High energy contributions using stochastic LTMP2|High energy contributions using stochastic LTMP2]]-->
</div>
</div>


[[Category:Tutorials]]
== References ==
<references>
<ref name="marsman">[http://dx.doi.org/10.1063/1.3126249 M. Marsman, A. Gr&uuml;neis, J. Paier, and G. Kresse, J. Chem. Phys. 130, 184103 (2009).]</ref>
<ref name="schaefer2017">[http://dx.doi.org/10.1063/1.4976937 T. Sch&auml;fer, B. Ramberger, and G. Kresse, J. Chem. Phys. 146, 104101 (2017).]</ref>
<ref name="schaefer2018">[https://doi.org/10.1063/1.5016100 T. Sch&auml;fer, B. Ramberger, and G. Kresse, J. Chem. Phys. 148, 064103 (2018).]</ref>
</references>
 
----
[[Category:Many-body perturbation theory]][[Category:MP2]][[Category:Tutorials]]

Latest revision as of 10:20, 19 July 2022

This tutorial introduces how to calculate the ground state energy using second order Møller-Plesset perturbation theory (MP2) with VASP. Currently there are three implementations available:

  • MP2[1]: this implementation is recommended for very small unit cells, very few k-points and very low plane-wave cuttofs. The system size scaling of this algorithm is N⁵.
  • LTMP2[2]: for all larger systems this Laplace transformed MP2 (LTMP) implementation is recommended. Larger cutoffs and denser k-point meshes can be used. It possesses a lower system size scaling (N⁴) and a more efficient k-point sampling.
  • stochastic LTMP2[3]: even faster calculations at the price of statistical noise can be achieved with the stochastic MP2 algorithm. It is an optimal choice for very large systems where only relative errors per valence electron are relevant. Keeping the absolute error fixed, the algorithm exhibits a cubic scaling with the system size, N³, whereas for a fixed relative error, a linear scaling, N¹, can be achieved. Note that there is no k-point sampling and no spin polarization implemented for this algorithm.

NOTE: If you use one of these algorithms, please cite the corresponding reference in your publication in addition to the standard VASP reference.

Both LTMP2 as well as stochastic LTMP2 are high performance algorithms that can parallelize the MP2 calculation over thousands of CPUs.

At first, one should select the best algorithm according to the considered system size. In the following, a step by step instruction for each algorithm is presented.

Preparation: the Hartree-Fock ground state

In order to calculate the Hartree-Fock ground state, use the following INCAR file

ISMEAR = 0 ; SIGMA = 0.01
ALGO = A
LHFCALC = .TRUE. ; AEXX = 1.0
EDIFF = 1E-6
ENCUT = # 10-20% larger than ENMAX in the POTCAR file
LORBITALREAL = .TRUE. # only necessary for LTMP2 and stochastic LTMP2

Keep the OUTCAR file to read-out the Hartree-Fock ground state energy later.

Calculating the unoccupied Hartree-Fock orbitals

We also need the unoccupied/virtual Hartree-Fock orbitals to perform MP2 calculations. The number of necessary orbitals should be equal to the number of plane-waves, that can be found via

nplw=`awk '/number of plane-waves:/ {print $5} ' < OUTCAR_HARTREE_FOCK_GROUND_STATE

For the Gamma-only version of VASP, twice the number of plane-waves have to be used.

Set the INCAR file to

ISMEAR = 0 ; SIGMA = 0.01
ALGO = Exact
LHFCALC = .TRUE. ; AEXX = 1.0
NELM = 1
NBANDS = # number of plane-waves (favorably a multiple of the used mpi-ranks)
ENCUT = # same value as in the Hartree-Fock step
LORBITALREAL = .TRUE. # only necessary for LTMP2 and stochastic LTMP2

Make sure that VASP reads the WAVECAR file from the previous Hartree-Fock step.

Actual MP2 calculations

Depending on your choice, please switch to the corresponding page.

References