Skip to content

outlying behavior when running with 2 cores for mixing kinetic energy density #6086

Description

@BariumOxide13716

Describe the bug

An inconsistent behavior is found for mpirunning ABACUS with 2 processors among running serially, with 2, 4, and 8 cores.

The system tested is a carbon atom in a cubic box of 1.5-Angstrom edges. The calculation uses 20 Ryd as the kinetic energy cutoff, and 3 grid points along each dimension, int total 27, are used. Numerical orbitals are used.

The r2SCAN functional is used, with and without mixing kinetic-energy density, to obtain the electronic structure.

Two commints were tested, one is called new, 35448cb, commited on March 31st, 2025. The other commit is called old, 2f15c55, commited on November 12th, 2024.

For the new commit, when running with "-np 2", the SCF calculation does not converge, whereas serial, "-np 4" and "-np 8" are the same to each other to 10^-8 eV. The SCF loops show that the calculations agreeing with each other have their densities converged at the 14th SCF step, whereas the "-np 2" calculation does not manage to converge here. (see serial.log, np2.log, np4.log, and np8.log is the attached zipped folder)

I also attach the calculations 1 core and 2 cores with the old code. The same error is also found in the calculation (see log files in old_serial.log, and old_np2.log in the attachment).

However, if kinetic-energy density is not to be mixed in the calculation by commenting out mxing_tau, the old code give the same results for single- and two-core calculations.

test_218.zip

Expected behavior

the converged SCF energy should be the same regardless of how many cores are used in the calculation when mixing kinetic energy density.

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).

Metadata

Metadata

Labels

BugsBugs that only solvable with sufficient knowledge of DFT

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions