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

Downsampling the k points in K_Vectors, required in the planewave hybrid functional calculation #4155

Open
14 tasks
Flying-dragon-boxing opened this issue May 12, 2024 · 0 comments
Assignees
Labels
Features Needed The features are indeed needed, and developers should have sophisticated knowledge Plans Plan to do something

Comments

@Flying-dragon-boxing
Copy link

Background

For a k point, get downsampled q points:
$\mathbf{q_k} = \mathbf{k} + \mathbf{b}_1 \dfrac{m_1 C_1}{N_1} + \mathbf{b}_2 \dfrac{m_2 C_2}{N_2} + \mathbf{b}_3 \dfrac{m_3 C_3}{N_3}, (m_i = 0, \cdots, N_i/C_i - 1)$
($\mathbf{b}_i$ are the reciprocal lattice vectors of the primitive cell, and $C_i$ is the integer grid reduction factor along reciprocal lattice direction $\mathbf{b}_i$)

Reference:
https://www.vasp.at/wiki/index.php/Downsampling_of_the_Hartree-Fock_operator
https://doi.org/10.1063/1.2187006

Describe the solution you'd like

  • Given a (maybe global) k point number ik
  • Get the downsampled k point number list std::vector<int> iqs

Task list only for developers

  • Notice possible changes of behavior
  • Explain the changes of codes in core modules of ESolver, HSolver, ElecState, Hamilt, Operator or Psi

Notice Possible Changes of Behavior (Reminder only for developers)

No response

Notice any changes of core modules (Reminder only for developers)

No response

Notice Possible Changes of Core Modules (Reminder only for developers)

No response

Additional Context

I don't really understand much about the M-P sampling and the Gamma Centered sampling process, and I'm curious if the q points got from this method is an exact subset of the k points set. If so, we can use a index iq for one q point, and we can easily get the planewaves on q point iq. If Interpolation is required, the downsampling seems to be not efficient.
I think there is no need to support such downsampling for a manually set k point list. (And this may be hard! )

Task list for Issue attackers (only for developers)

  • Review and understand the proposed feature and its importance.
  • Research on the existing solutions and relevant research articles/resources.
  • Discuss with the team to evaluate the feasibility of implementing the feature.
  • Create a design document outlining the proposed solution and implementation details.
  • Get feedback from the team on the design document.
  • Develop the feature following the agreed design.
  • Write unit tests and integration tests for the feature.
  • Update the documentation to include the new feature.
  • Perform code review and address any issues.
  • Merge the feature into the main branch.
  • Monitor for any issues or bugs reported by users after the feature is released.
  • Address any issues or bugs reported by users and continuously improve the feature.
@mohanchen mohanchen added the Features Needed The features are indeed needed, and developers should have sophisticated knowledge label May 12, 2024
@mohanchen mohanchen self-assigned this May 13, 2024
@mohanchen mohanchen added the Plans Plan to do something label May 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Features Needed The features are indeed needed, and developers should have sophisticated knowledge Plans Plan to do something
Projects
None yet
Development

No branches or pull requests

2 participants