Closed DavidGoing closed 2 years ago
Hello, thank you for noticing this. It does indeed look like a mistake. The T1
cross terms are often very small for well converged wave functions. Would you mind opening a PR for a fix?
Hi Daniel @dgasmith , the EOM-CCSD code is spin-free while the CCSD code mentioned by @DavidMing-2001 is in spin-orbitals. You can see that in the spin-free case i.e for tau^{alpha, beta}_{alpha, beta}, only the first term would survive!
Ah, thanks @ashutoshvt! Makes perfect sense, is there a piece of documentation that alludes to this fact?
Actually, we put all the spin-adapted CC helper functions in the RHF folder: psi4/psi4numpy/coupled_cluster/RHF/
. Also, in the eom class's docs, we mention it as spin-adapted:
class HelperCCEom(object):
"""
EOMCCSD helper class for spin adapted EOMCCSD
"""
Sorry, I haven't looked at github for a while, because recently I am preparing for final exam week, Now all of my exams have finished. I am very glad to help to fix this issue, but could you please tell me what is PR?
I also have a small question about the code, but I don't know whether this is a issue(this also happen in making other equations as well), in stanon's paper, equation(3) is constructed as: However, in your code, this part is implemented as(in repo psi4/psi4numpy/coupled_cluster/RHF/helper_ccenergy.py): I notice there are coefficients difference and some extra term about exchange two body integral in your code. I am wondering about the reason of making this difference.
The difference between the published equation of Stanton and the code above is spin-adaptation. Stanton's equations are in the spin-orbital basis and thus applicable to a spin-restricted or -unrestricted representation. The specific code you quote assume a closed-shell reference determinant and a singlet target CC state.
Oh, thanks for you reply, I notice that there is some difference between the CCSD energy calculated from Spin_orbital_CCSD and RHF. Is this difference also due to spin adaptation?
There should be essentially no difference between the spin-orbital and spin-adapted CCSD energies. Can you be more specific as to the magnitude of the difference you're seeing – perhaps provide an input?
I just simply run EOM_CCSD.py in RHF and CCSD.py in Spin_Orbitals_CCSD. Then I compare the output of two programs. Since CCSD in folder Spin_Orbitals_CCSD is written in spin orbital basis and CCSD module in folder RHF is written in spin free form. For CCSD.py, I got the CCSD correlation energy equal to -0.1423eV And for ccsd in RHF, I got the ccsd correlation energy equal to -0.2239eV And I noticed that both RHF and CCSD are focus on H2O melocule.
Those aren't the same calculation because they use different basis sets. The EOM-CCSD test case uses the cc-pVDZ basis, and the spin-orbital CCSD test uses the 3-21G basis.
Also the units on the energies are Hartrees, not eV.
Oh, I understand, many thanks. So this means I can use spin-orbital basis in eom-ccsd and I will get the same result.
I am an undergraduate from China. Recently I'm read your code in repo psi4/psi4numpy to learn how to implement eom-ccsd method in python. In the process of reading the code, I noticed that there are some small differences in making intermediates between code for ground state CCSD method and code for eom-ccsd method. For example, in Stanton's paper, equation(9) is: While in the code for ground state CCSD method(in repo psi4/psi4numpy/coupled cluster/spin_orbital/CCSD / CCSD.py), the part is implemented as:
However, in the code for eom-ccsd(in repo psi4/psi4numpy/coupled_cluster/RHF/helper_ccenergy.py), this part is implemented as:
Obviously in the latter case the minus term in the bracket has been neglected. This kind of problem happened in making other intermediates as well. However, the weird thing is that one will get very close output using two functions.