Refactor: Refine ELF Output for Noncollinear Spin (nspin=4) #6914
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reminder
Linked Issue
Fix #...
Key changes:
For
nspin=4, spin-decomposed ELF components lack a rigorous, standard definition. Outputting them can cause user confusion. This pull request updates the handling and output of the ELF for noncollinear spin in both the documentation and the codebase. The changes ensure that only the total ELF is calculated and output fornspin = 4, rather than separate components for each spin channel. Additionally, new tests are added to verify this behavior.ELF Output Logic and Calculation
write_elf.cppso that fornspin = 4, only the total ELF is calculated and written toelf.cube, instead of outputting separate files for each spin component. The calculation uses only the total charge density and kinetic energy density, and notes the absence of gauge invariance corrections.read_input_item_output.cppthat prevented ELF output fornspin = 4, allowing ELF calculation in this case.Documentation Updates
input-main.mdto reflect the new ELF file naming convention (elf.cubefornspin = 1andnspin = 4,elf1.cube/elf2.cubefornspin = 2), and clarified the ELF calculation for the noncollinear case.Testing
63_NO_KP_out_elffornspin = 4ELF output, including input files, reference results, and test registration.Unit Tests and/or Case Tests for my changes
What's changed?
Any changes of core modules? (ignore if not applicable)