abacus-develop icon indicating copy to clipboard operation
abacus-develop copied to clipboard

Discussion: large discrepency on EOS of CrO3 system yielded when changing `pseudo_rcut` and `pseudo_mesh`

Open kirk0830 opened this issue 1 year ago • 9 comments

Describe the bug

I am sorting the data of precision test on pseudopotentials, the CrO3 test case looks strange. For example if fix the pseudopotential of O as PseudoDojo v0.5 (SR) and Cr as PD04 (high), with default pseudo_mesh and pseudo_rcut setting, the delta value with respect to the all-electron data is turned out to be 1793.82 meV/atom. However, if set

pseudo_rcut 10
pseudo_mesh 1

, then the delta value will be 0.86 meV/atom. On website of acwf-verification, the value around 1 meV/atom is always a reasonable one: Image Both Abinit and SIESTA employ PseudoDojo family pseudopotentials in this test case.

Should ABACUS change the default value of pseudo_rcut and pseudo_mesh?

Expected behavior

No response

To Reproduce

No response

Environment

No response

Additional Context

No response

Task list for Issue attackers (only for developers)

  • [ ] Verify the issue is not a duplicate.
  • [ ] Describe the bug.
  • [ ] Steps to reproduce.
  • [ ] Expected behavior.
  • [ ] Error message.
  • [ ] Environment details.
  • [ ] Additional context.
  • [ ] Assign a priority level (low, medium, high, urgent).
  • [ ] Assign the issue to a team member.
  • [ ] Label the issue with relevant tags.
  • [ ] Identify possible related issues.
  • [ ] Create a unit test or automated test to reproduce the bug (if applicable).
  • [ ] Fix the bug.
  • [ ] Test the fix.
  • [ ] Update documentation (if necessary).
  • [ ] Close the issue and inform the reporter (if applicable).

kirk0830 avatar Jan 08 '25 04:01 kirk0830

I do think more test and discussion are needed for these parameters related to the usage of pseudopotential.

QuantumMisaka avatar Jan 10 '25 05:01 QuantumMisaka

this behavior is caused by pseudo_rcut,

INPUT setting delta (meV/atom)
default 1793.8
pseudo_rcut 10+pseudo_mesh 1+symmetry 0+smearing_method fd+smearing_sigma 0.0045 0.9999
pseudo_rcut 10+pseudo_mesh 1+smearing_method fd+smearing_sigma 0.0045 0.9999
pseudo_rcut 10+pseudo_mesh 1 0.8613
pseudo_rcut 10 0.8613

related test files:

normconserving-DOJOv0.5-CrO3eos.zip

kirk0830 avatar Jan 10 '25 10:01 kirk0830

@Cstandardlib Is there any progress at your side? I manually perform the Fourier transform on the local potential in pseudopotential file, $ V\left( \mathbf{G} \right) \ =\int{\mathrm{d}\mathbf{r}V\left( |\mathbf{r}| \right) \mathrm{e}^{i\mathbf{G}\cdot \mathbf{r}}} \ =2\pi \int_0^{\infty}{\mathrm{d}rV\left( r \right) r^2\int_0^{\pi}{e^{iGr\cos \theta}\sin \theta \mathrm{d}\theta}} \ =-2\pi \int_0^{\infty}{\mathrm{d}rV\left( r \right) r^2\int_0^{\pi}{e^{iGr\cos \theta}\mathrm{d}\left( \cos \theta \right)}} \ =-2\pi \int_0^{\infty}{\mathrm{d}rV\left( r \right) r^2\int_1^{-1}{e^{iGrt}\mathrm{d}t}} \ =2\pi \int_0^{\infty}{\mathrm{d}rV\left( r \right) r^2\left( \frac{e^{iGr}-e^{-iGr}}{iGr} \right)} \ =\frac{4\pi}{G}\int_0^{\infty}{\mathrm{d}rV\left( r \right) \sin \left( Gr \right) r} $ and find there is an unexpected numerical calculation behavior of this pseudopotential. Comparatively, I also do transform on SG15. The choice pseudo_rcut 10 seems can always avoid the numerical problem. Image

kirk0830 avatar Mar 20 '25 05:03 kirk0830

@kirk0830 The pseudo_rcut parameter does have a strong impact on the results on some certain pseudo libraries(PseudoDojo v0.4), and I found that it will yield rather different results when setting pseudo_rcut=15(default), 10 and 6 Bohr. The results agree well when this parameter is aligned with other software's settings (like ABINIT, Quantum Espresso). However, modifying this parameter leads to significant discrepancies in the results, particularly for first-row transition metals from Cr to Zn. And sorry that I'm now still not quite clear about the usage and operation mode of this parameter now. I wonder how it works? :dizzy_face:

figure about different pseudo_rcut value results, Co2O3 left: pseudo_rcut=10.0, right: pseudo_rcut=15 default

Image

The How to verify the precision of density-functional-theory implementations via reproducible and universal workflows | Nature Reviews Physics acwf article has some discussion on this case in Section14 of their Supplementary information, for your reference :slightly_smiling_face:

Cstandardlib avatar May 22 '25 06:05 Cstandardlib

@Cstandardlib As far as I remember, the pseudo_rcut works like a truncation radius beyond which the local potential will be discarded. However, for SG15 pseudopotential, the radial data of local potential is only within 6 au, so there will not be any difference if set pseudo_rcut to 10 or 15, but pseudopotential deposited on DOJO is different, that is why the pseudo_rcut impacts much on precision of calculation. As shown in my previous comment, there will be many large amplitudes of high-frequency components, which implies the non-convergence.

kirk0830 avatar May 23 '25 02:05 kirk0830

@kirk0830 According to @zhubonan and acwf-related discussions of aiida team, for PseudoDojo the long-range data beyond a certain radius are not relavent and may contain errors. This part of data should be trimmed or discarded. You can reference Add PseudoDojo results for QE and CASTEP by mbercx · Pull Request #36 · aiidateam/acwf-verification-scripts, zhubonan/dojo-upf-trim: dojo-upf-trim and How to verify the precision of density-functional-theory implementations via reproducible and universal workflows | Nature Reviews Physics supplementary S14 for details.

Cstandardlib avatar May 30 '25 07:05 Cstandardlib

We are currently working with Automated Interactive Infrastructure and Database for Computational Science — AiiDA documentation and its ABACUS plugin MCresearch/aiida-abacus: AiiDA plugin for ABACUS. AiiDA makes it easy to do such tests automatically, and it is convenient and easy to compare across different softwares, pseudo libraries, etc. Perhelps it'll be of some help.

Cstandardlib avatar May 30 '25 07:05 Cstandardlib

Some test results comparing EOS of ABACUS to Quantum Espresso trimming PseudoDojo-v0.4 at 6.0 Bohr.

  1. pseudo_rcut = default

Image

  1. pseudo_rcut = 6.0

Image

Tests show that pseudo_mesh has no influence on the result.

Cstandardlib avatar May 30 '25 09:05 Cstandardlib

@Cstandardlib yes aiida provides many easy-to-use workflows. So the next question and what I really want to discuss is, is it needed to change the default value of keyword pseudo_rcut?

kirk0830 avatar Jun 03 '25 05:06 kirk0830