mirror of
https://github.com/TREX-CoE/qmckl.git
synced 2025-05-01 04:44:49 +02:00
3-body doc
This commit is contained in:
parent
4c50aec603
commit
494c402cb4
@ -996,21 +996,80 @@ Here we calculate the single electron contributions to the electron-electron-nuc
|
|||||||
To start, we need to calculate the rescaled distances for the single electron electron-nucleus and electron-electron distances.
|
To start, we need to calculate the rescaled distances for the single electron electron-nucleus and electron-electron distances.
|
||||||
These rescaled distances are calculates by
|
These rescaled distances are calculates by
|
||||||
\[
|
\[
|
||||||
\widetilde{R}_{\alpha} = e^{-\kappa R_{\alpha}} \quad \text{and} \quad \widetilde{r}_{i} = e^{-\kappa r_{i}}.
|
\widetilde{R}_{\alpha} = e^{-\kappa l R_{\alpha}} \quad \text{and} \quad \widetilde{r}_{i} = e^{-\kappa l r_{i}}.
|
||||||
\]
|
\]
|
||||||
|
Here, $\kappa$ is the rescaling factor and $l$ the power. The neccessery powers are stored in the same array.
|
||||||
With these, we can now calculate the single electron contribution to the $\delta P$ matrix, using the equation
|
From these, we can calculate the $\delta \widetilde{R}$ and $\delta \widetilde{r}$ using
|
||||||
\begin{eqnarray*}
|
\begin{eqnarray*}
|
||||||
\delta P_{i,\alpha,k,l} &= P^{\text{new}}_{i,\alpha,k,l} - P^{\text{old}}_{i,\alpha,k,l}\\
|
\delta \widetilde{R}_{\alpha} &=& \widetilde{R}_{\alpha}^\text{new} - \widetilde{R}_{\alpha}^\text{old} \quad \text{and}\\
|
||||||
&= \sum_{j=1}^{N_\text{elec}} \left(\widetilde{r}_{i,j,k} \delta \widetilde{R}_{j,\alpha,l}\delta_{j,\text{num}} +
|
\delta \widetilde{r}_{i} &=& \widetilde{r}_{i}^\text{new} - \widetilde{r}_{i}^\text{old}.
|
||||||
\delta \widetilde{r}_{i,j,k} \widetilde{R}_{j,\alpha,l} (\delta_{j,\text{num}}
|
|
||||||
+ \delta_{i,\text{num}}) + \delta \widetilde{r}_{i,j,k} \delta \widetilde{R}_{j,\alpha,l} \delta_{j,\text{num}}\right)\\
|
|
||||||
&= \sum_{j=1}^{N_\text{elec}} \left( \delta \widetilde{r}_{\text{num},j,k} \widetilde{R}_{j,\alpha,l} \right)
|
|
||||||
+ \widetilde{r}_{i,\text{num},k} \delta \widetilde{R}_{\text{num},\alpha,l} + \delta \widetilde{r}_{i,\text{num},k} \left( \widetilde{R}_{\text{num},\alpha,l}
|
|
||||||
+ \delta \widetilde{R}_{\text{num},\alpha,l} \right)
|
|
||||||
\end{eqnarray*}
|
\end{eqnarray*}
|
||||||
|
|
||||||
|
|
||||||
|
With these, we can now calculate the single electron contribution to the $\delta P$ matrix, using the equation
|
||||||
|
\begin{eqnarray*}
|
||||||
|
\delta P_{i,\alpha,k,l} &=& P^{\text{new}}_{i,\alpha,k,l} - P^{\text{old}}_{i,\alpha,k,l}\\
|
||||||
|
&=& \sum_{j=1}^{N_\text{elec}} \left(\widetilde{r}_{i,j,k} \delta \widetilde{R}_{j,\alpha,l}\delta_{j,\text{num}} +
|
||||||
|
\delta \widetilde{r}_{i,j,k} \widetilde{R}_{j,\alpha,l} (\delta_{j,\text{num}}
|
||||||
|
+ \delta_{i,\text{num}}) + \delta \widetilde{r}_{i,j,k} \delta \widetilde{R}_{j,\alpha,l} \delta_{j,\text{num}}\right)\\
|
||||||
|
&=& \sum_{j=1}^{N_\text{elec}} \left( \delta \widetilde{r}_{\text{num},j,k} \widetilde{R}_{j,\alpha,l} \right)
|
||||||
|
+ \widetilde{r}_{i,\text{num},k} \delta \widetilde{R}_{\text{num},\alpha,l} + \delta \widetilde{r}_{i,\text{num},k} \left( \widetilde{R}_{\text{num},\alpha,l}
|
||||||
|
+ \delta \widetilde{R}_{\text{num},\alpha,l} \right).
|
||||||
|
\end{eqnarray*}
|
||||||
|
|
||||||
|
Then, the electron-electron-nucleus Jastrow value can be calculated by
|
||||||
|
\begin{eqnarray*}
|
||||||
|
J_{een} &=& J_{een}^{\text{new}} - J_{een}^{\text{old}}\\
|
||||||
|
&=&\sum_{p=2}^{N_\text{nord}} \sum_{k=0}^{p-1} \sum_{l=0}^{p-k-2\delta_{k,0}}\sum_{\alpha=1}^{N_\text{nucl}} c_{l,k,p,\alpha}
|
||||||
|
\sum_{i=1}^{N_\text{elec}} \left( \delta \widetilde{R}_{i,\alpha,(p-k-l)/2} P_{i,\alpha,k,(p-k+l)/2} \delta_{i,\text{num}}
|
||||||
|
+ \widetilde{R}_{i,\alpha,(p-k-l)/2} \delta P_{i,\alpha,k,(p-k+l)/2}
|
||||||
|
+ \delta \widetilde{R}_{i,\alpha,(p-k-l)/2} \delta P_{i,\alpha,k,(p-k+l)/2} \delta_{i,\text{num}} \right)\\
|
||||||
|
&=& \sum_{p=2}^{N_\text{nord}} \sum_{k=0}^{p-1} \sum_{l=0}^{p-k-2\delta_{k,0}}\sum_{\alpha=1}^{N_\text{nucl}} c_{l,k,p,\alpha} \left(
|
||||||
|
\sum_{i=1}^{N_\text{elec}} \left( \widetilde{R}_{i,\alpha,(p-k-l)/2} \delta P_{i,\alpha,k,(p-k+l)/2} \right)
|
||||||
|
+ \delta \widetilde{R}_{\text{num},\alpha,(p-k-l)/2} \left(P_{\text{num},\alpha,k,(p-k+l)/2} + \delta P_{\text{num},\alpha,k,(p-k+l)/2} \right)\right)
|
||||||
|
\end{eqnarray*}
|
||||||
|
|
||||||
|
|
||||||
|
To calculate the gradients and Laplacian of the electron-electron-nucleus Jastrow,
|
||||||
|
we first have to calculate the gradients and Laplacian of the rescaled distances,
|
||||||
|
\[
|
||||||
|
\partial_{i,m} \widetilde{R}_{\alpha} = -\kappa l e^{-\kappa l R_{\alpha}} \frac{x_m - X_{m,\alpha}}{R_\alpha} \quad \text{and} \quad
|
||||||
|
\partial_{i,4} \widetilde{R}_{\alpha} = -\kappa l \left(\frac{2}{R_\alpha}- \kappa l \right) e^{-\kappa l R_{\alpha}},
|
||||||
|
\]
|
||||||
|
where $i$ is the electron of which we are taking the derivative and $m=1:3$ are the gradients and $m=4$ is the Laplacian.
|
||||||
|
The derivatives of the single electron rescaled electron-nucleus distances are only nonzero when $i=\text{num}$.
|
||||||
|
Similarly for $r$ we get
|
||||||
|
\[
|
||||||
|
\partial_{i,m} \widetilde{r}_{i} = -\kappa l e^{-\kappa l r_{i}} \frac{x_m - X_{m,i}}{r_i} \quad \text{and} \quad
|
||||||
|
\partial_{i,4} \widetilde{r}_{i} = -\kappa l \left(\frac{2}{r_i}- \kappa l \right) e^{-\kappa l r_{i}}.
|
||||||
|
\]
|
||||||
|
|
||||||
|
With these, we can now calculate the gradient and Laplacian of the $\delta P$ matrix, using the equation
|
||||||
|
\begin{eqnarray*}
|
||||||
|
\partial_{i,m} \delta P_{i,\alpha,k,l} &=& \partial_{i,m} P_{i,\alpha,k,l}^\text{new} - \partial_{i,m} P_{i,\alpha,k,l}^\text{old}\\
|
||||||
|
&=& \partial_{i,m}\delta \widetilde{r}_{\text{num},i,k} \left(\partial_{i,m}\delta \widetilde{R}_{\text{num},\alpha,l} + \partial_{i,m}\widetilde{R}_{\text{num},\alpha,l} \right) g_m
|
||||||
|
+ \partial_{i,m}\widetilde{r}_{\text{num},i,k} \delta \widetilde{R}_{\text{num},\alpha,l}
|
||||||
|
+ \delta_{i,\text{num}} \sum_{j=1}^{N_\text{elec}} \left( \partial_{j,m} \delta \widetilde{r}_{\text{num},j,k} \widetilde{R}_{j,\alpha,l} \right),
|
||||||
|
\end{eqnarray*}
|
||||||
|
where $g_m = \{-1,-1,-1,1\}$.
|
||||||
|
|
||||||
|
Then, the gradient and Laplacian of the electron-electron-nucleus Jastrow value can be calculated by
|
||||||
|
\begin{eqnarray*}
|
||||||
|
\partial_{i,m} J_{een} &=& \partial_{i,m} J_{een}^{\text{new}} - \partial_{i,m} J_{een}^{\text{old}}\\
|
||||||
|
&=&\sum_{p=2}^{N_\text{nord}} \sum_{k=0}^{p-1} \sum_{l=0}^{p-k-2\delta_{k,0}}\sum_{\alpha=1}^{N_\text{nucl}} c_{l,k,p,\alpha}
|
||||||
|
\left( \widetilde{R}_{i,\alpha,(p-k-l)/2} \partial_{i,m} \delta P_{i,\alpha,k,(p-k+l)/2}
|
||||||
|
+ \widetilde{R}_{i,\alpha,(p-k+l)/2} \partial_{i,m} \delta P_{i,\alpha,k,(p-k-l)/2} \right. \\
|
||||||
|
& &\ + \partial_{i,m}\widetilde{R}_{i,\alpha,(p-k-l)/2} \delta P_{i,\alpha,k,(p-k+l)/2}
|
||||||
|
+ \partial_{i,m}\widetilde{R}_{i,\alpha,(p-k+l)/2} \delta P_{i,\alpha,k,(p-k-l)/2} \\
|
||||||
|
& &\ + \delta_{i,\text{num}} \left( \delta \widetilde{R}_{i,\alpha,(p-k-l)/2} \left ( \partial_{i,m} P_{i,\alpha,k,(p-k+l)/2} + \partial_{i,m} \delta P_{i,\alpha,k,(p-k+l)/2} \right)
|
||||||
|
+ \delta \widetilde{R}_{i,\alpha,(p-k+l)/2} \left ( \partial_{i,m} P_{i,\alpha,k,(p-k-l)/2} + \partial_{i,m} \delta P_{i,\alpha,k,(p-k-l)/2} \right) \right. \\
|
||||||
|
& &\ \left. + \partial_{i,m} \delta \widetilde{R}_{i,\alpha,(p-k-l)/2} \left ( P_{i,\alpha,k,(p-k+l)/2} + \delta P_{i,\alpha,k,(p-k+l)/2} \right)
|
||||||
|
+ \partial_{i,m} \delta \widetilde{R}_{i,\alpha,(p-k+l)/2} \left ( P_{i,\alpha,k,(p-k-l)/2} + \delta P_{i,\alpha,k,(p-k-l)/2} \right) \right)\\
|
||||||
|
& &\ + \delta_{m,4} \sum_{d=1}^3 \left( \partial_{i,d} \widetilde{R}_{i,\alpha,(p-k-l)/2} \partial_{i,d} \delta P_{i,\alpha,k,(p-k+l)/2}
|
||||||
|
+ \partial_{i,d} \widetilde{R}_{i,\alpha,(p-k+l)/2} \partial_{i,d} \delta P_{i,\alpha,k,(p-k-l)/2} \right)\\
|
||||||
|
& &\ \left. + \delta_{m,4}\delta_{i,\text{num}} \sum_{d=1}^3\left( \partial_{i,d}\delta \widetilde{R}_{i,\alpha,(p-k-l)/2} \left( \partial_{i,d} P_{i,\alpha,k,(p-k+l)/2} + \partial_{i,d}\delta P_{i,\alpha,k,(p-k+l)/2} \right)
|
||||||
|
+ \partial_{i,d}\delta \widetilde{R}_{i,\alpha,(p-k+l)/2} \left( \partial_{i,d} P_{i,\alpha,k,(p-k-l)/2} + \partial_{i,d} \delta P_{i,\alpha,k,(p-k-l)/2} \right) \right) \right)
|
||||||
|
\end{eqnarray*}
|
||||||
** Electron-electron rescaled distances
|
** Electron-electron rescaled distances
|
||||||
|
|
||||||
*** Get
|
*** Get
|
||||||
@ -2618,7 +2677,7 @@ for (int elec = 0; elec < elec_num; elec++){
|
|||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Electorn-electron rescaled distances derivative
|
** Electron-electron rescaled distances derivative
|
||||||
|
|
||||||
*** Get
|
*** Get
|
||||||
|
|
||||||
@ -3200,7 +3259,8 @@ integer(qmckl_exit_code) function qmckl_compute_jastrow_champ_delta_p_gl_doc( &
|
|||||||
do k = 1, 4
|
do k = 1, 4
|
||||||
do a = 1, nucl_num
|
do a = 1, nucl_num
|
||||||
een_rescaled_delta_n = een_rescaled_single_n(a,l,nw) - een_rescaled_n(num, a, l, nw)
|
een_rescaled_delta_n = een_rescaled_single_n(a,l,nw) - een_rescaled_n(num, a, l, nw)
|
||||||
tmp = fk(k) * (een_rescaled_n(num,a,l,nw) + een_rescaled_delta_n)
|
!tmp = fk(k) * (een_rescaled_n(num,a,l,nw) + een_rescaled_delta_n)
|
||||||
|
tmp = fk(k) * een_rescaled_single_n(a,l,nw)
|
||||||
do j = 1, elec_num
|
do j = 1, elec_num
|
||||||
delta_p_gl(j,a,k,l,m,nw) = delta_e_gl(j,k) * tmp + &
|
delta_p_gl(j,a,k,l,m,nw) = delta_e_gl(j,k) * tmp + &
|
||||||
een_rescaled_e_gl(j,k,num,m,nw) * een_rescaled_delta_n
|
een_rescaled_e_gl(j,k,num,m,nw) * een_rescaled_delta_n
|
||||||
|
Loading…
x
Reference in New Issue
Block a user