RSDFT-CIPSI-QMC/Data/Jastrow.ipynb
2020-04-21 12:11:38 +02:00

10 KiB

None <html> <head> </head>

Jastrow factors

H2O

In [ ]:
onedet   = "Jastrows/H2O/H2O-cc-pcvTz.wfj-1det_J2.ud_exp.dat"
os = 1.-7.92535494e-01

multidet = "Jastrows/H2O/H2O-cc-pcvTz-multidet.wfj_J2.ud_exp.dat"
ms = 1.-8.59001137e-01

onedet_H = "Jastrows/H2O/H2O-cc-pcvTz.wfj-1det_J1.H_exp.dat"
ohs = 1.-1.03221118e+00
onedet_O = "Jastrows/H2O/H2O-cc-pcvTz.wfj-1det_J1.O_exp.dat"
oos = 1.-1.43887500e+00

#onedet = "Jastrows/N2H4/N2H4-tr6.wfj_J2.ud_exp.dat"
#os = 1.-8.03464242e-01
In [ ]:
set yrange [1:1.4]
set xrange [0:3]
set grid
set xlabel "r_{12} (a.u.)"
set format y "%.2f"
set format x "%.1f"
set key bottom right

plot onedet   u 1:($2+os) w l title "HF"\
,    multidet u 1:($2+ms) w l title "FCI"

set yrange [0:1]
plot onedet_O  u 1:($2+oos) w l title "O"\
,    onedet_H  u 1:($2+ohs) w l title "H"
In [ ]:
f1(x) = exp(a_1 * x/(1. + b_1*x))
f2(x) = exp(a_2 * x/(1. + b_2*x))
f3(x) = exp(a_3 * x**2+b_3)
f4(x) = exp(a_4 * x**2+b_4)
a_1 = 0.5
a_2 = 0.5
a_3 = 0.5
a_4 = 0.5
b_1 = 1.
b_2 = 1.
b_3 = 1.
b_4 = 1.

fit f1(x) onedet   u 1:($2+os) via b_1
fit f2(x) multidet u 1:($2+ms) via b_2
fit [0:1] f3(x) onedet_O   u 1:($2+oos) via a_3, b_3
fit [0:1] f4(x) onedet_H   u 1:($2+ohs) via a_4, b_4
In [ ]:
set xrange [0:3]
set yrange [1.:1.3]
set grid
set xlabel "r_{12} (a.u.)"
set format y "%.2f"
set format x "%.1f"
set key bottom right

plot onedet   u 1:($2+os) w l title "HF"\
,    multidet u 1:($2+ms) w l title "FCI"\
,    f1(x) title "exp(- 0.5 r_{12} / (1. + 1.93 r_{12}))"\
,    f2(x) title "exp(- 0.5 r_{12} / (1. + 3.99 r_{12}))"
In [ ]:
set xrange [0:1]
set yrange [0.6:1.]
set grid
set xlabel "r_{12} (a.u.)"
set format y "%.2f"
set format x "%.1f"
set key bottom right

plot onedet_O   u 1:($2+oos) w l title "O"\
,    onedet_H   u 1:($2+ohs) w l title "H"\
,    f3(x) title "exp(- 0.5 r_{12} / (1. + 1.93 r_{12}))"\
,    f4(x) title "exp(- 0.5 r_{12} / (1. + 3.99 r_{12}))"
In [ ]:
#set term pdf font "Times,15pt"
#set output "jastrow_h2o.pdf"

Range-separated Coulomb operator

In [ ]:
w(x) = 1./x
w_lr(mu,x) = erf(mu*x)/x
w_sr(mu,x) = w(x) - w_lr(mu,x)
In [ ]:
set xrange [0:4]
set yrange [0:3]
set key top right
plot w(x)        title '1/r_{12}',\
     w_lr(0.5,x) title '{/Symbol m}=0.5' ls 2,\
     w_sr(0.5,x) notitle ls 2, \
     w_lr(1.0,x) title '{/Symbol m}=1.0' ls 4,\
     w_sr(1.0,x) notitle ls 4

DMC Energies

Single-determinant

In [ ]:
data = "Jastrows/data_dmc"
set key top right
set xrange [0:7.5]
set xlabel "{/Symbol m} (a.u.)"
set ylabel "Energy (a.u.)"
set format y "%.4f"
set yrange [-76.4115:-76.4095]
plot data index 0 u 1:5:6 w errorlines title "1 det / cc-pVDZ"
set yrange [-76.4215:-76.4195]
plot data index 1 u 1:5:6 w errorlines title "1 det / cc-pVTZ"
set yrange [-76.4232:-76.4212]
plot data index 2 u 1:5:6 w errorlines title "1 det / cc-pVQZ"

Multi-determinant

In [ ]:
data = "Jastrows/data_dmc"
set key top right
set xrange [0:7.5]
set xlabel "{/Symbol m} (a.u.)"
set ylabel "Energy (a.u.)"
set format y "%.3f"
set yrange [-76.44:-76.405]
plot data index 0 u 1:7:8 w errorlines title "CIPSI / cc-pVDZ", \
data index 1 u 1:7:8 w errorlines title "CIPSI / cc-pVTZ", \
data index 2 u 1:7:8 w errorlines title "CIPSI / cc-pVQZ"

Fit $\mu$


$\Psi(r_1,\dots,r_N)$ is a CI trial wave function: $$ |\Psi \rangle = \sum_{I \in \mathcal{B}} c_I |I\rangle $$ When running a FN-DMC calculation, the fixed-node wave function can be written as $\Phi(r_1,\dots,r_N) = \Psi(r_1,\dots,r_N)\times w(r_1,\dots,r_N)$, where $w$ is a positive function, such that $$ E = \min_w \frac{ \langle w \Psi | H | \Psi \rangle } {\langle w \Psi | \Psi \rangle} $$

We want to find the change in the potential that would model the effect of the FN-DMC. This corresponds to removing some short-range potential:

$$ \frac{ \langle w \Psi | V_{ee} | w \Psi \rangle } {\langle w \Psi | w \Psi \rangle} = \frac{ \langle \Psi | V_{ee} - \delta V_{ee} | \Psi \rangle } {\langle \Psi | \Psi \rangle} $$

where

$$ V_{ee} = \frac{1}{r_{12}} $$

and $$ \delta V_{ee} = \alpha \left( \frac{1}{r_{12}} - \frac{\text{erf}( \mu r_{12})}{r_{12}} \right). $$

$$ \frac{ \langle w \Psi | V_{ee} | w \Psi \rangle } {\langle w \Psi | w \Psi \rangle} = \frac{ \langle \Psi | V_{ee} | \Psi \rangle } {\langle \Psi | \Psi \rangle} - \alpha \frac{ \langle \Psi | V_{ee} | \Psi \rangle } {\langle \Psi | \Psi \rangle} + \alpha \frac{ \langle \Psi | V_{ee}^{lr} | \Psi \rangle } {\langle \Psi | \Psi \rangle} $$$$ \frac{\langle \Psi | w^2 V_{ee} | \Psi \rangle} {\langle w \Psi | w \Psi \rangle} = (1-\alpha) \langle \Psi | V_{ee} | \Psi \rangle + \alpha \langle \Psi | V_{ee}^{lr} | \Psi \rangle $$
$$ w^2 = \left[ (1-\alpha) + \alpha\, \text{erf}(\mu\, r_{12}) \right]\langle w \Psi | w \Psi \rangle $$

To find the parameter $\mu$, we minimize $$ \int \left|a\, \text{erf}(\mu\,r_{12}) + b - w(r_{12})^2 \right|^2 \text{d}r_{12} $$

In [ ]:
set yrange [1:1.3]
set xrange [0:3]
set grid
set xlabel "r_{12} (a.u.)"
set format y "%.2f"
set format x "%.1f"
set key bottom right

f(x) = (a * (erf(mu*x)) +b)
mu = 2.
b=1.
a = 1.
fit f(x) multidet u 1:( ($2+ms)**2 ) via a, b, mu
In [ ]:
plot f(x), multidet u 1:( ($2+ms)**2) title "{/Symbol m}=3.05" w l
In [ ]:
set yrange [1:1.7]
set xrange [0:2.5]
set grid
set xlabel "r_{12} (a.u.)"
set format y "%.2f"
set format x "%.1f"
set key bottom right

f(x) = (a * (erf(mu*x)) +b)
mu = 2.
b=1.
a = 1.
fit f(x) onedet   u 1:( ($2+os)**2) via a, b, mu
In [ ]:
plot f(x), onedet   u 1:( ($2+os)**2 ) title "{/Symbol m}=0.94" w l
In [ ]:

</html>