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

Orbital Occupancy Discrepancies in Cu and Ag Pseudopotentials #104

Open
romanfanta4 opened this issue Apr 4, 2024 · 3 comments
Open

Orbital Occupancy Discrepancies in Cu and Ag Pseudopotentials #104

romanfanta4 opened this issue Apr 4, 2024 · 3 comments

Comments

@romanfanta4
Copy link

Hello,
I've noticed a bug/discrepancy in the pseudopotential headers for copper (Cu-soft vs Cu original) and silver.

  1. The occupancy numbers for the D orbital are listed as 8 and 9 in different files. I expected a full occupancy of 10 based on copper's electron configuration ([Ar] 3d^10 4s^1) and the same for Ag. I checked the surrounding elements (Fe, Co, Ni, Zn) and saw the correct occupancy for D orbitals.
  2. Regarding the S orbital occupancy, it's listed as 2.0, which represents only the 3s^2 electrons. Given copper's configuration, I expect two S channels to account for both 3s^2 and the 4s^1 electrons, aligning with the total valence electron count of 19 mentioned in the header. Same thing would be e.g., for chromium.

Could you help me understand the reasoning behind these specific occupancy values, or is it just a bug?
When running the Quantum Espresso calculations with Cu, the number of electrons, is correctly set, but correct labeling of occupations is crucial for DFT+U.

Cu.ccECP-soft.upf:

<PP_HEADER>
   0         Version Number
   Cu        Element
   NC        Norm - Conserving pseudopotential
    F      Nonlinear Core Correction
SLA  PW   PBE  PBE     PBE  Exchange-Correlation functional
 19          Z valence
 0          Total energy
 0.000000   0.000000     Suggested cutoff for wfc and rho
 2           Max angular momentum component
 1163           Number of points in mesh
 3  2     Number of Wavefuncitons, Number of Projectors
 Wavefunctions         nl  l   occ
                       S  0  2.000000
                       P  1  6.000000
                       D  2  8.000000
</PP_HEADER>

Cu.ccECP.upf_deprecated:

<PP_HEADER>
   0         Version Number
   Cu        Element
   NC        Norm - Conserving pseudopotential
    F      Nonlinear Core Correction
SLA  PW   PBE  PBE     PBE  Exchange-Correlation functional
 19          Z valence
 0          Total energy
 0.000000   0.000000     Suggested cutoff for wfc and rho
 2           Max angular momentum component
 1163           Number of points in mesh
 3  2     Number of Wavefuncitons, Number of Projectors
 Wavefunctions         nl  l   occ
                       S  0  2.000000
                       P  1  6.000000
                       D  2  9.000000
</PP_HEADER>

Same issue is for Ag.ccECP.AREP.upf:

<PP_HEADER>
   0         Version Number
   Ag        Element
   NC        Norm - Conserving pseudopotential
    F      Nonlinear Core Correction
SLA  PW   PBE  PBE     PBE  Exchange-Correlation functional
 19          Z valence
 0          Total energy
 0.000000   0.000000     Suggested cutoff for wfc and rho
 2           Max angular momentum component
 1175           Number of points in mesh
 3  2     Number of Wavefuncitons, Number of Projectors
 Wavefunctions         nl  l   occ
                       S  0  2.000000
                       P  1  6.000000
                       D  2  8.000000
</PP_HEADER>
@prckent
Copy link
Contributor

prckent commented Apr 4, 2024

As part of #89 , the UPF files are going to be regenerated. We should check/retest then.

@aannabe
Copy link
Contributor

aannabe commented Apr 5, 2024

I want to add that the reference states listed in the header files being different from the ground state is not a bug per se. There were a few reasons for them to be different. For example, depending on the chosen reference state, one gets a different quality of transferability, existence of ghost states, and different convergence behavior. So due to these factors, the transition metal upf files were usually generated with ionized states, mostly removing the outer valence s-orbitals. As these are single-projector ECPs (KB form), it nominally should not be an issue when you run PW codes. For example, if you run Cu atom in a large box, you should see the correct electronic ground state.

However, there is probably room for improvement in choosing the reference states, as you correctly pointed out the lack of 4s states. There is also a related discussion in #69. For example, when calculating Lowdin charges, the reference states are used as the basis, and thus, there is a non-zero charge spilling. The reference states should, therefore, be reasonable enough to result in small charge spilling. I am guessing including a small fractional occupation for 4s should improve the charges/moments there. At some point, we need to regenerate all upf (#89, #104) and xml (#69) files.

@bkincaid256
Copy link
Contributor

Opium doesn't ever show the second of any l channel. It only does the first in my experience. Adding to what Gani mentioned, the place to check for the expected performance of the upfs on various configurations is going to be at the end of the .rpt files. A number of configurations are run and the discrepancy vs the AE is shown in eV. In pretty much every case the nominal ground state is tested which would have the configuration mentioned by Roman.

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

4 participants