MP2 charges


  • Guest -
Is it possible to get a PDC using electron correlation (MP2)?

  • Guest -
Per MP2 documentation:

If an MP2 energy gradient is computed, all contributions are available to form the MP2 linear-response density. This is the density that when contracted with any spin-free, one-electron operator yields the associated property defined as the derivative of the energy. Thus, the reported MP2 dipole moment is the derivative of the energy w.r.t. an external electric field and is not the expectation value of the operator over the wavefunction. It has been shown that evaluating the MP2 density through a derivative provides more accurate results, presumably because this matches the way experiments probe the electron density more closely[5][6][7][8].

Only dipole moments are printed by the MP2 gradient code, but natural orbitals are produced and stored in the permanent directory with a file extension of ".mp2nos". These may be fed into the property package to compute more general properties. Note that the MP2 linear response density matrix is not necessarily positive definite so it is not unusual to see a few small negative natural orbital occupation numbers. Significant negative occupation numbers have been argued to be a sign that the system might be near degenerate[9].




You can use the .mp2nos file as an input to the property calculations.

Bert

  • Guest -
Thank you very much.
Unfortunately, not being a quantum chemist, I do not understand it well.
Could somebody be so kind as to give a working example?

Forum Vet
Try "task mp2 gradient".

Bert


Quote: Jan 17th 11:14 am
Thank you very much.
Unfortunately, not being a quantum chemist, I do not understand it well.
Could somebody be so kind as to give a working example?

  • Guest -
Did not work. With "task MP2 gradient" and "task scf energy" the result is the same.

Quote:Bert Jan 23rd 9:38 pm
Try "task mp2 gradient".

Bert




charge 0

geometry
O    0 0 -0.1166268   
H -0.75940716 0 0.4665072
H 0.75940716 0 0.4665072
end

basis cartesian
* library 6-31+G*
end

esp
recalculate 
probe 0.07
range 0.3
factor 1
spacing 0.02
end

mp2
tight 
freeze atomic
end

task MP2 gradient
task esp

Forum Vet
That is because it picked up the SCF movecs file as ESP doesn't recognize the mp2nos file by default. try the following input deck.

Notes:

1. I set start so I know the prefix for the output files, i.e. h2o.movecs and h2o.mp2nos

2. I set 'set "esp:input vectors" h2o.mp2nos ' to tell the esp module to use h2o.mp2nos as the vectors file for its calculations.

Bert




start h2o

charge 0

geometry
  O    0 0 -0.1166268   
H -0.75940716 0 0.4665072
H 0.75940716 0 0.4665072
end

basis cartesian
  * library 6-31+G*
end

esp
  recalculate 
probe 0.07
range 0.3
factor 1
spacing 0.02
end

mp2
  tight 
freeze atomic
end

task MP2 gradient

set "esp:input vectors" h2o.mp2nos

task esp
[QUOTE= Jan 24th 1:06 pm]Did not work. With "task MP2 gradient" and "task scf energy" the result is the same.

Quote:Bert Jan 23rd 9:38 pm
Try "task mp2 gradient".

Bert




charge 0

geometry
O    0 0 -0.1166268   
H -0.75940716 0 0.4665072
H 0.75940716 0 0.4665072
end

basis cartesian
* library 6-31+G*
end

esp
recalculate 
probe 0.07
range 0.3
factor 1
spacing 0.02
end

mp2
tight 
freeze atomic
end

task MP2 gradient
task esp


  • Guest -
Thank you very much, it works.

Unfortunately, there was another problem.
The charges are calculated in the Pople basis sets and cc-X.
However, the program crashed in the basis sets aug-cc-X or d-aug-cc-X, with the message:

(rank:0 hostname:abvgd pid:3952):ARMCI DASSERT fail. armci.c:ARMCI_Error():260 cond:0
 0: ARMCI aborting 0 (0).

Forum Vet
I need more information, such as the full input file and a larger part of the output. The relevant error information is way before this.

Bert

Quote: Jan 25th 2:30 pm
Thank you very much, it works.

Unfortunately, there was another problem.
The charges are calculated in the Pople basis sets and cc-X.
However, the program crashed in the basis sets aug-cc-X or d-aug-cc-X, with the message:

(rank:0 hostname:abvgd pid:3952):ARMCI DASSERT fail. armci.c:ARMCI_Error():260 cond:0
 0: ARMCI aborting 0 (0).[/quote]

  • Guest -
Quote:Bert Jan 25th 6:30 pm
I need more information, such as the full input file and a larger part of the output. The relevant error information is way before this.

Bert



I see that the problem is not in the basis set, but in fact is it spherical or cartesian.

If you remove the word "spherical", then the problem disappears.
But is it good? After all, Dunning basis sets are spherical.

charge 0

geometry 
 O    -0.989 0.6203 0.0827   
 H    -0.3665 1.1207 -0.4459   
 H    -1.6444 1.259 0.3632  
end 

basis spherical
 * library aug-cc-pvdz
end 

esp 
 recalculate 
 probe   0.07
 range   0.3
 factor  1
 spacing 0.02
end 

mp2 
 tight 
 freeze atomic 
end 

task MP2 gradient
set "esp:input vectors" nwchem.mp2nos
task esp


  MP2 natural orbitals output to ./nwchem.mp2nos

  Using symmetry


                         mp2 ENERGY GRADIENTS

    atom               coordinates                        gradient
                 x          y          z           x          y          z
   1 O       0.000000   0.000000   0.220393    0.000000   0.000000  -0.011636
   2 H      -1.435071   0.000000  -0.881571    0.005756   0.000000   0.005818
   3 H       1.435071   0.000000  -0.881571   -0.005756   0.000000   0.005818

                 ----------------------------------------
                 |  Time  |  1-e(secs)   |  2-e(secs)   |
                 ----------------------------------------
                 |  CPU   |       0.00   |       0.61   |
                 ----------------------------------------
                 |  WALL  |       0.00   |       0.60   |
                 ----------------------------------------
 -----------------------
 Performance information
 -----------------------

 Timer overhead =  0.00D+00 seconds/call

               Nr. of calls         CPU time (s)                 Wall time (s)                GFlops
             ---------------    -------------------     ------------------------------   -------------------
Name         Min   Avg   Max    Min     Avg     Max     Min     Avg     Max   Mx/calls   Min     Max     Sum
mp2: moin     1     1     1   0.52    0.52    0.52     0.52    0.52    0.52    0.52      0.0     0.0     0.0   
mp2: make     1     1     1   1.60E-2 1.60E-2 1.60E-2  1.60E-2 1.60E-2 1.60E-2 1.60E-2   0.0     0.0     0.0   
mp2: pija     1     1     1   1.60E-2 1.60E-2 1.60E-2  1.00E-3 1.00E-3 1.00E-3 1.00E-3   0.0     0.0     0.0   
mp2: wija     1     1     1    0.0     0.0     0.0     2.00E-3 2.00E-3 2.00E-3 2.00E-3   0.0     0.0     0.0   
mp2: lai      1     1     1   1.50E-2 1.50E-2 1.50E-2  2.40E-2 2.40E-2 2.40E-2 2.40E-2   0.0     0.0     0.0   
mp2: back     1     1     1    0.0     0.0     0.0     1.90E-2 1.90E-2 1.90E-2 1.90E-2   0.0     0.0     0.0   
mp2: nons     1     1     1   0.97    0.97    0.97     0.98    0.98    0.98    0.98      0.0     0.0     0.0   
mp2: laif     1     1     1   0.20    0.20    0.20     0.21    0.21    0.21    0.21      0.0     0.0     0.0   
mp2: cphf     1     1     1   0.25    0.25    0.25     0.25    0.25    0.25    0.25      0.0     0.0     0.0   
mp2: wijf     1     1     1   0.22    0.22    0.22     0.21    0.21    0.21    0.21      0.0     0.0     0.0   
mp2: sep      1     1     1   0.63    0.63    0.63     0.62    0.62    0.62    0.62      0.0     0.0     0.0   
mp2: tota     1     1     1    3.0     3.0     3.0      3.0     3.0     3.0     3.0      0.0     0.0     0.0   

 The average no. of pstat calls per process was 1.20D+01
 with a timing overhead of 0.00D+00s


 Task  times  cpu:        3.4s     wall:        3.5s
0:0::: 0
(rank:0 hostname:abvgd pid:4064):ARMCI DASSERT fail. armci.c:ARMCI_Error():260 cond:0
  0: ARMCI aborting 0 (0).

Forum Vet
Using cartesian should be perfectly fine.

Bert

Quote: Jan 26th 11:07 am
Quote:Bert Jan 25th 6:30 pm
I need more information, such as the full input file and a larger part of the output. The relevant error information is way before this.

Bert



I see that the problem is not in the basis set, but in fact is it spherical or cartesian.

If you remove the word "spherical", then the problem disappears.
But is it good? After all, Dunning basis sets are spherical.

charge 0

geometry 
 O    -0.989 0.6203 0.0827   
 H    -0.3665 1.1207 -0.4459   
 H    -1.6444 1.259 0.3632  
end 

basis spherical
 * library aug-cc-pvdz
end 

esp 
 recalculate 
 probe   0.07
 range   0.3
 factor  1
 spacing 0.02
end 

mp2 
 tight 
 freeze atomic 
end 

task MP2 gradient
set "esp:input vectors" nwchem.mp2nos
task esp


  MP2 natural orbitals output to ./nwchem.mp2nos

  Using symmetry


                         mp2 ENERGY GRADIENTS

    atom               coordinates                        gradient
                 x          y          z           x          y          z
   1 O       0.000000   0.000000   0.220393    0.000000   0.000000  -0.011636
   2 H      -1.435071   0.000000  -0.881571    0.005756   0.000000   0.005818
   3 H       1.435071   0.000000  -0.881571   -0.005756   0.000000   0.005818

                 ----------------------------------------
                 |  Time  |  1-e(secs)   |  2-e(secs)   |
                 ----------------------------------------
                 |  CPU   |       0.00   |       0.61   |
                 ----------------------------------------
                 |  WALL  |       0.00   |       0.60   |
                 ----------------------------------------
 -----------------------
 Performance information
 -----------------------

 Timer overhead =  0.00D+00 seconds/call

               Nr. of calls         CPU time (s)                 Wall time (s)                GFlops
             ---------------    -------------------     ------------------------------   -------------------
Name         Min   Avg   Max    Min     Avg     Max     Min     Avg     Max   Mx/calls   Min     Max     Sum
mp2: moin     1     1     1   0.52    0.52    0.52     0.52    0.52    0.52    0.52      0.0     0.0     0.0   
mp2: make     1     1     1   1.60E-2 1.60E-2 1.60E-2  1.60E-2 1.60E-2 1.60E-2 1.60E-2   0.0     0.0     0.0   
mp2: pija     1     1     1   1.60E-2 1.60E-2 1.60E-2  1.00E-3 1.00E-3 1.00E-3 1.00E-3   0.0     0.0     0.0   
mp2: wija     1     1     1    0.0     0.0     0.0     2.00E-3 2.00E-3 2.00E-3 2.00E-3   0.0     0.0     0.0   
mp2: lai      1     1     1   1.50E-2 1.50E-2 1.50E-2  2.40E-2 2.40E-2 2.40E-2 2.40E-2   0.0     0.0     0.0   
mp2: back     1     1     1    0.0     0.0     0.0     1.90E-2 1.90E-2 1.90E-2 1.90E-2   0.0     0.0     0.0   
mp2: nons     1     1     1   0.97    0.97    0.97     0.98    0.98    0.98    0.98      0.0     0.0     0.0   
mp2: laif     1     1     1   0.20    0.20    0.20     0.21    0.21    0.21    0.21      0.0     0.0     0.0   
mp2: cphf     1     1     1   0.25    0.25    0.25     0.25    0.25    0.25    0.25      0.0     0.0     0.0   
mp2: wijf     1     1     1   0.22    0.22    0.22     0.21    0.21    0.21    0.21      0.0     0.0     0.0   
mp2: sep      1     1     1   0.63    0.63    0.63     0.62    0.62    0.62    0.62      0.0     0.0     0.0   
mp2: tota     1     1     1    3.0     3.0     3.0      3.0     3.0     3.0     3.0      0.0     0.0     0.0   

 The average no. of pstat calls per process was 1.20D+01
 with a timing overhead of 0.00D+00s


 Task  times  cpu:        3.4s     wall:        3.5s
0:0::: 0
(rank:0 hostname:abvgd pid:4064):ARMCI DASSERT fail. armci.c:ARMCI_Error():260 cond:0
  0: ARMCI aborting 0 (0).

  • Guest -
Thank you very much for your help, and sorry for another question.

In principle, this method calculation of charges is sufficient for me, but I'd like to try COSMO.
Again, this works in the SCF, but there are problems with MP2.

start nw
memory 1800 mb
charge 0

geometry 
 O    0 0 -0.1166268   
 H    -0.75940716 0 0.4665072  
 H    0.75940716 0 0.4665072   
end 

basis cartesian
 * library aug-cc-pvdz
end 

cosmo
end 

esp 
 recalculate 
 probe   0.07
 range   0.3
 factor  1
 spacing 0.02
end 

mp2 
 tight 
 freeze atomic 
end 

task MP2 gradient
set "esp:input vectors" nw.mp2nos
task esp


End of output after the crash:

 Parallel integral file used       4 records with       0 large values


  num_grad: !! displaced energy failed


 Deleting state for mp2 with suffix numg
        ./nw.movecs

 ------------------------------------------------------------------------
 mp2 gradient failed                                                                     0
 ------------------------------------------------------------------------
 ------------------------------------------------------------------------
  current input line : 
    35: task MP2 gradient
 ------------------------------------------------------------------------
 ------------------------------------------------------------------------
 This type of error is most commonly associatated with calculations not reaching convergence criteria
 ------------------------------------------------------------------------
 For more information see the NWChem manual at http://nwchemgit.github.io/index.php/NWChem_Documentation


 For further details see manual section:                                                                                                                                                                                                                                                                
0:0:mp2 gradient failed:: 0
(rank:0 hostname:abvgd pid:2060):ARMCI DASSERT fail. armci.c:ARMCI_Error():260 cond:0
  0: ARMCI aborting 0 (0).

Forum Vet
Unfortunately, this is currently not possible with NWChem. When COSMO is invoked gradients are calculated numerically, and the Hessian needed for the calculation of natural is not calculated when numerical gradients are used.

Bert


Quote: Jan 27th 1:28 pm
Thank you very much for your help, and sorry for another question.

In principle, this method calculation of charges is sufficient for me, but I'd like to try COSMO.
Again, this works in the SCF, but there are problems with MP2.

start nw
memory 1800 mb
charge 0

geometry 
 O    0 0 -0.1166268   
 H    -0.75940716 0 0.4665072  
 H    0.75940716 0 0.4665072   
end 

basis cartesian
 * library aug-cc-pvdz
end 

cosmo
end 

esp 
 recalculate 
 probe   0.07
 range   0.3
 factor  1
 spacing 0.02
end 

mp2 
 tight 
 freeze atomic 
end 

task MP2 gradient
set "esp:input vectors" nw.mp2nos
task esp


End of output after the crash:

 Parallel integral file used       4 records with       0 large values


  num_grad: !! displaced energy failed


 Deleting state for mp2 with suffix numg
        ./nw.movecs

 ------------------------------------------------------------------------
 mp2 gradient failed                                                                     0
 ------------------------------------------------------------------------
 ------------------------------------------------------------------------
  current input line : 
    35: task MP2 gradient
 ------------------------------------------------------------------------
 ------------------------------------------------------------------------
 This type of error is most commonly associatated with calculations not reaching convergence criteria
 ------------------------------------------------------------------------
 For more information see the NWChem manual at http://nwchemgit.github.io/index.php/NWChem_Documentation


 For further details see manual section:                                                                                                                                                                                                                                                                
0:0:mp2 gradient failed:: 0
(rank:0 hostname:abvgd pid:2060):ARMCI DASSERT fail. armci.c:ARMCI_Error():260 cond:0
  0: ARMCI aborting 0 (0).

Just Got Here
MP2 dplot
Hello, I am trying to get a cube file output from an MP2 calculation for a water cluster. But to output a
cube file, I need to do a gradient calculation, apparently. The program then has iteration problems at the
cphf stage. I tried various methods to fix this, but could not relax the tolerance without changing the
prod-acc variable, so that it iterates more slowly. Ive attached the input file.

Thanks,
Steve


start wat
title "wat eightmer"

memory total 10000 mb

BASIS "ao basis" PRINT
    *  library aug-cc-pvtz
END

scf
  direct
rhf
maxiter 200
sym off
adapt off
end
scf
vectors output wat.movecs
end
set cphf:precond_tol 1.0d-7
set cphf:maxiter 2500
set cphf:thresh 2.00d-4
set cphf:acc 4.0d-10

dplot
 TITLE WAT8
vectors wat.mp2nos
LimitXYZ
-6.1 6.1 420
-6.1 6.1 420
-6.1 6.1 420
spin total
gaussian
output lumo52.cube
end

driver
  maxiter 200
end

mp2
  freeze atomic
end

geometry units angstroms
O -0.39405 1.35430 2.47819
H -0.43044 1.32614 3.45711
H -1.16709 0.86132 2.13210
O 1.84847 0.12538 1.61158
H 1.84963 0.15419 0.63201
H 1.02005 0.54411 1.92588
O 4.04947 1.36589 2.56407
H 3.98131 1.30555 3.53983
H 3.25168 0.94740 2.17831
O 1.87213 0.11959 -1.08784
H 1.88241 -0.79673 -1.43520
H 2.65821 0.58619 -1.44108
end

task mp2 gradient
task dplot

Forum Vet
The following input deck produces the natirual orbitals without a problem:


start wat
title "wat eightmer"

memory total 2000 mb

BASIS "ao basis" PRINT
   *  library aug-cc-pvtz
END

scf
 rhf
maxiter 200
end
scf
vectors output wat.movecs
end

dplot
TITLE WAT8
vectors wat.mp2nos
LimitXYZ
-6.1 6.1 420
-6.1 6.1 420
-6.1 6.1 420
spin total
gaussian
output lumo52.cube
end

driver
 maxiter 200
end

mp2
 freeze atomic
end

geometry units angstroms
O -0.39405 1.35430 2.47819
H -0.43044 1.32614 3.45711
H -1.16709 0.86132 2.13210
O 1.84847 0.12538 1.61158
H 1.84963 0.15419 0.63201
H 1.02005 0.54411 1.92588
O 4.04947 1.36589 2.56407
H 3.98131 1.30555 3.53983
H 3.25168 0.94740 2.17831
O 1.87213 0.11959 -1.08784
H 1.88241 -0.79673 -1.43520
H 2.65821 0.58619 -1.44108
end

task mp2 gradient
task dplot

It seems that when "direct" is set in the SCF, this is picked up by the CPHF and it fails there. This is a bug we need to investigate.

Bert



Quote:SteveRick Jul 16th 3:26 pm
Hello, I am trying to get a cube file output from an MP2 calculation for a water cluster. But to output a
cube file, I need to do a gradient calculation, apparently. The program then has iteration problems at the
cphf stage. I tried various methods to fix this, but could not relax the tolerance without changing the
prod-acc variable, so that it iterates more slowly. Ive attached the input file.

Thanks,
Steve


start wat
title "wat eightmer"

memory total 10000 mb

BASIS "ao basis" PRINT
    *  library aug-cc-pvtz
END

scf
  direct
rhf
maxiter 200
sym off
adapt off
end
scf
vectors output wat.movecs
end
set cphf:precond_tol 1.0d-7
set cphf:maxiter 2500
set cphf:thresh 2.00d-4
set cphf:acc 4.0d-10

dplot
 TITLE WAT8
vectors wat.mp2nos
LimitXYZ
-6.1 6.1 420
-6.1 6.1 420
-6.1 6.1 420
spin total
gaussian
output lumo52.cube
end

driver
  maxiter 200
end

mp2
  freeze atomic
end

geometry units angstroms
O -0.39405 1.35430 2.47819
H -0.43044 1.32614 3.45711
H -1.16709 0.86132 2.13210
O 1.84847 0.12538 1.61158
H 1.84963 0.15419 0.63201
H 1.02005 0.54411 1.92588
O 4.04947 1.36589 2.56407
H 3.98131 1.30555 3.53983
H 3.25168 0.94740 2.17831
O 1.87213 0.11959 -1.08784
H 1.88241 -0.79673 -1.43520
H 2.65821 0.58619 -1.44108
end

task mp2 gradient
task dplot


Forum >> NWChem's corner >> NWChem functionality