Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement the Hellman-Feynman finite difference test for CC methods. #96

Open
haakoek opened this issue Sep 8, 2022 · 0 comments
Open
Assignees

Comments

@haakoek
Copy link
Collaborator

haakoek commented Sep 8, 2022

According to the (generalized) Hellman-Feynman theorem,

(d/da)<tilde_Psi|H(a)|Psi>|{a=a0} = <tilde_Psi|(d/da)H(a)|Psi>|{a=a0}.

In particular, if H(a) = H0+a*\hat{r} we have that

(d/da)<tilde_Psi|H(a)|Psi>|{a=a0} = <tilde_Psi|r|Psi>|{a=a0},
that is, the derivative of the energy

The derivative on the left-hand side can be estimated with a two-point central finite difference as

(d/da)<tilde_Psi|H(a)|Psi>|_{a=a0} approx (<tilde_Psi|H(a0+da)|Psi>-<tilde_Psi|H(a0-da)|Psi>)/(2*da) + O(da^2),

and compared to the expectation value of the position at the point a0. This provides a particular powerful test case since the CC energies are independent of the lambda-amplitudes at convergence, while on the other hand, CC expectation values depend on lambda. Also, if a0 neq 0, it effectively tests that an external perturbation (in the dipole approximation) is correctly implemented since both the energy and now depend on the perturbation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants