Back to the main page of Tatiana Korona
Contents
| (2) |
| (3) |
![]() |
(4) |
![]() |
(5) |
Therefore, the electrostatic energy
can be easily calculated as any other first-order property of
the molecule, provided that densities
and
are known.
For the analysis of the electrostatic energy in a correlated picture it is
common to divide the total density into the SCF and correlated parts:
| (6) |
Then the electrostatic energy (1) can be divided into uncorrelated
and correlated parts:
In the MOLPRO package the correlated densities on the CCSD, MP2, and QCISD level are available. In recent MOLPRO releases those densities can be saved using the command
save,density=recordafter the name of the corresponding method (from 2000.9 for MP2 and QCISD and from a patched 2002.5 for CCSD) and then read in MATROP using a command
load,arbitrary_name,DEN,recordNote that the nonrelaxed CCSD density is saved in the record
record-10The CCSD density is available from the version 2002.1, but is saved in another format to records 5050.2 (the CCSD density with the relaxation contribution) and 5040.2 (nonrelaxed). It can be then read in MATROP using a command
load,arbitrary_name,triang,recordIf the relaxed CCSD density is required (what should usually be the case), no frozen core can be used. The nonrelaxed CCSD density can be calculated with and without frozen core. MP2 and QCISD densities are always relaxed and can be calculated with and without frozen core. Note that the SAPT suite of codes does not allow for the frozen core anyway, so the correlated electrostatics should be calculated without frozen core for consistency with other SAPT corrections.
A simplified algorithm for obtaining the correlated part of the electrostatic energy in the MP2, QCISD, or CCSD approximations is given below:
| (11) |
| (12) |
| (13) |
Citations required if you use the correlated density from the MOLPRO package:
The very latest version of the script is presented here (works for Molpro2020) .
Below are archive versions (used in the explanation of what is done - versions of scripts differ mainly in the set number, where the needed density is stored in the record) a sample MOLPRO script is given for calculating the CCSD electrostatics. A care is already taken in the script in order to detect the current MOLPRO version and to read the CCSD densities in MATROP correspondingly. You can also download it directly by clicking . And you find another script, which works with MOLPRO2006.1. The latter script works with MOLPRO2012.1 after one simple change:
symmetry,xinstead of
set zsymel=x
***,He-H2 correlated electrostatics from Molpro
memory,4,m
! Thresholds should be set somewhat tighter than defaults
! if you calculate intermolecular interaction energies:
gthresh,twoint=1.e-15,energy=1.e-7,coeff=1.e-6
! just a small test basis
basis=avdz
! Set geometry
r=4.0 bohr
rhh=1.4 bohr
geometry={
he,, 0., 0. , r he
h1,, -rhh/2, 0. , 0. h
h2,, rhh/2, 0. , 0. h}
! Nuclear repulsion term (only necessary for E(100))
inr=2*2/sqrt((rhh/2)**2+r**2)
! Choose the method(s):
method=[ccsd] ! available methods: ccsd,qcisd,mp2
! For the final table:
Term=['E(100)','E(1c0)','E(10c)','E(1cc)','E(1)(total)','E(1)(corr)']
do i=1,#method
! A MONOMER A MONOMER A MONOMER A MONOMER A MONOMER A MONOMER A MONOMER
! Do SCF for the A monomer (of course with the ghost functions on the monomer B)
scfa=2110.2 ! here SCF results for A will be saved
dummy,h1,h2
! Accuracy of SCF should also be set tighter than default:
hf;accu,13;save,scfa
! Use MATROP to calculate the effective potential for the monomer A:
matrop
load,EPOT ! read the bare potential for A (v_A)
save,EPOT,5703.2,triang ! save the bare potential for A in the record 5703.2
! (it will be overwritten in the calculations for the monomer B)
load,DEN,DEN,scfa ! read the SCF density for A
coul,J,DEN ! calculate the Coulomb operator with the SCF A density
add,WA,1,EPOT,2,J ! calculate the effective potential for A
save,WA,5701.2,triang ! and save it in the record 5701.2
! Calculate the correlated density for the monomer A
! and save it to the record 5051.2
$method(i);core,0;cphf,1
expec
save,density=5051.2
if($method(i).eq.CCSD.and.$version.lt.2002.5) then
data,copy,5050.2,5051.2 ! with relaxation contribution (better)
data,copy,5040.2,5041.2 ! nonrelaxed (worse, but can be
! calculated with frozen core)
endif
! B MONOMER B MONOMER B MONOMER B MONOMER B MONOMER B MONOMER B MONOMER
dummy,he
scfb=2111.2 ! here SCF results for B will be saved
hf;accu,13;save,scfb
! Use MATROP to calculate the effective potential for the monomer B:
matrop
load,EPOT
load,DEN,DEN,scfb
coul,J,DEN
add,WB,1,EPOT,2,J
save,WB,5702.2,triang
! Calculate the correlated density for the monomer B
! and save it to the record 5052.2
$method(i);core,0;cphf,1
expec
save,density=5052.2
if($method(i).eq.CCSD.and.$version.lt.2002.5) then
data,copy,5050.2,5052.2
data,copy,5040.2,5042.2
endif
! CALCULATION of the ELECTROSTATIC ENERGY
! this is the begin of MATROP
if($method(i).eq.CCSD.and.$version.lt.2002.5) then
matrop
load,TOTDENA,triang,5051.2 ! read the correlated density for A
load,TOTDENB,triang,5052.2 ! read the correlated density for B
load,WA,triang,5701.2 ! read the effective potential for A
load,WB,triang,5702.2 ! read the effective potential for B
load,DENA,DEN,scfA ! read the SCF density for A
load,DENB,DEN,scfB ! read the SCF density for B
add,CDENA,1,TOTDENA,-1,DENA ! calculate the correlated part of density for A
add,CDENB,1,TOTDENB,-1,DENB ! calculate the correlated part of density for B
! calculate E(100)elst (just for check with SAPT)
! in two ways (see below)
load,EPOT ! load bare potential for monomer B
trace,e100B,DENA,EPOT
trace,e100A,DENB,WA
load,EPOT,triang,5703.2 ! load bare potential for monomer A
trace,e100A1,DENB,EPOT
trace,e100B1,DENA,WB
! (just for check: the trace of the SCF density should be equal to
! the number of electrons and the trace of the correlated part should be 0)
load,S ! load the overlap matrix
trace,na,DENA,S
trace,nb,DENB,S
trace,nap,CDENA,S
trace,nbp,CDENB,S
! The main point - calculation of the correlated electrostatics:
trace,e1n0,CDENA,WB
trace,e10n,CDENB,WA
coul,J,CDENA
trace,e1nn,J,CDENB
! this is the end of MATROP
else ! dependent on molpro version
matrop
load,TOTDENA,den,5051.2 ! read the correlated density for A
load,TOTDENB,den,5052.2 ! read the correlated density for B
load,WA,triang,5701.2 ! read the effective potential for A
load,WB,triang,5702.2 ! read the effective potential for B
load,DENA,DEN,scfA ! read the SCF density for A
load,DENB,DEN,scfB ! read the SCF density for B
add,CDENA,1,TOTDENA,-1,DENA ! calculate the correlated part of density for A
add,CDENB,1,TOTDENB,-1,DENB ! calculate the correlated part of density for B
! calculate E(100)elst (just for check with SAPT)
! in two ways (see below)
load,EPOT ! load bare potential for monomer B
trace,e100B,DENA,EPOT
trace,e100A,DENB,WA
load,EPOT,triang,5703.2 ! load bare potential for monomer A
trace,e100A1,DENB,EPOT
trace,e100B1,DENA,WB
! (just for check: the trace of the SCF density should be equal to
! the number of electrons and the trace of the correlated part should be 0)
load,S ! load the overlap matrix
trace,na,DENA,S
trace,nb,DENB,S
trace,nap,CDENA,S
trace,nbp,CDENB,S
! The main point - calculation of the correlated electrostatics:
trace,e1n0,CDENA,WB
trace,e10n,CDENB,WA
coul,J,CDENA
trace,e1nn,J,CDENB
! this is the end of MATROP
endif ! dependent on molpro version
! Now extract the results:
! the SCF-correlated part (e10n) and the correlated-SCF part (e1n0) are ready
! the correlated-correlated part:
e1nn=2*e1nn
! the SCF-SCF part (calculated in two ways, both should give the same number!)
e100=INR+e100A+e100B
e100p=INR+e100A1+e100B1
if(abs(e100-e100p).gt.1.e-8) then
text, Warning: SCF check failed,$e100,$e100p
endif
! the total correlation contribution:
e1c=e10n+e1n0+e1nn
! the total electrostatic contribution:
e1t=e100+e1c
! hartree - > Kelvin
e100k=e100*tokelvin
e1n0k=e1n0*tokelvin
e10nk=e10n*tokelvin
e1nnk=e1nn*tokelvin
e1ck=e1c*tokelvin
e1tk=e1t*tokelvin
! hartree - > cm-1
e100c=e100*tocm
e1n0c=e1n0*tocm
e10nc=e10n*tocm
e1nnc=e1nn*tocm
e1cc=e1c*tocm
e1tc=e1t*tocm
! Make the final table:
! final results in microhartrees:
n=6
skala=10**n
eau(1)=e100*skala
eau(2)=e1n0*skala
eau(3)=e10n*skala
eau(4)=e1nn*skala
eau(5)=e1t*skala
eau(6)=e1c*skala
eke(1)=e100k
eke(2)=e1n0k
eke(3)=e10nk
eke(4)=e1nnk
eke(5)=e1tk
eke(6)=e1ck
ecm(1)=e100c
ecm(2)=e1n0c
ecm(3)=e10nc
ecm(4)=e1nnc
ecm(5)=e1tc
ecm(6)=e1cc
text, FINAL RESULTS
table,Term,eau
digits,,6
title, Electrostatic interaction energy in the $method approximation
title, energies in hartree/10^$n
table,Term,eke
digits,,6
title, Electrostatic interaction energy in the $method approximation
title, energies in Kelvin
table,Term,ecm
digits,,6
title, Electrostatic interaction energy in the $method approximation
title, energies in cm^-1
enddo
Back to top of the page
Bibliography
1 B. Jeziorski, R. Moszynski, and K. Szalewicz, Chem. Rev. 94, 1887 (1994).
Tatiana Korona 2007-03-08