Skip to content

[Dependency] Wavefunction container source_psi depending back on higher layers #7601

Description

@Critsium-xy

Describe the Code Quality Issue

  • Symptom: psi_prepare.*, setup_psi_pw.h include hamilt/hamilt.h, hsolver/diago_iter_assist.h, pw/vnl_pw.h, pw/structure_factor.h, pw/soc.h; laterally they also include cell/klist.h, basis/pw_basis_k.h.
  • Fix: return psi to a pure container; move wavefunction initialization logic (which depends on vnl/structure_factor/hamilt/diago) to the callers (esolver/hsolver) or inject via interfaces. If cell/basis container types (klist, pw_basis_k) are pure data they may remain as same-layer references; otherwise decouple via forward declarations/interfaces.
  • Acceptance: cut psi → hamilt/hsolver/pw.

Additional Context

No response

Task list for Issue attackers (only for developers)

  • Identify the specific code file or section with the code quality issue.
  • Investigate the issue and determine the root cause.
  • Research best practices and potential solutions for the identified issue.
  • Refactor the code to improve code quality, following the suggested solution.
  • Ensure the refactored code adheres to the project's coding standards.
  • Test the refactored code to ensure it functions as expected.
  • Update any relevant documentation, if necessary.
  • Submit a pull request with the refactored code and a description of the changes made.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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