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

Feature: initialize planewave basis wavefunction by numerical atomic orbitals #2983

Merged
merged 102 commits into from
Sep 25, 2023
Merged

Conversation

kirk0830
Copy link
Collaborator

@kirk0830 kirk0830 commented Sep 20, 2023

Introduction and performance

A simple test would be illustrative, I choose the conventionally considered hard-to-converge system examples/smearing/lcao_fe, make following changes:
image
Tested result:
DRHO
DRHO_1st
threshold
ETOT
AvgIter

Usage

  • specify psi_initializer 1 in INPUT file, will enable the newly-implemented psi initializer, supports random, atomic, atomic+random, nao, nao+random method. For *+random method, 5% random wavefunction is mixed, in accordance with the old version
  • use init_wfc nao the newly added, where nao stands for Numerical Atomic Orbital

Unittests' Note:

The unittest system has been well-estabilished for quite a while, but it is hard for wavefunction initialization function to make really unit test. Therefore tests are designed in a top-down way: use the value generated from old implemented one as reference value.

Feature in future

Stochastic DFT scheme is not supported currently, its related implementation will depend on actual demands. Therefore currently if INPUT has two lines like:

psi_initializer 1
esolver_type sdft

, will switch psi_initializer to 0 automatically.

kirk0830 and others added 30 commits August 9, 2023 15:42
A new library is added and there will be a new global variable named context. To use its function please refer to online documents.
This reverts commit e707cb7.
Copy link
Collaborator

@Qianruipku Qianruipku left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If results of KG do not change too much, you can update them because they are sensitive.

@Qianruipku Qianruipku self-requested a review September 21, 2023 11:50
@kirk0830
Copy link
Collaborator Author

If results of KG do not change too much, you can update them because they are sensitive.

Thanks Qianrui, I find failed tests are all SDFT related. Maybe there are variables not initialized, I will examine and find out.

@dyzheng dyzheng merged commit 08c6236 into deepmodeling:develop Sep 25, 2023
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Focus Issues-AISI
  
In progress
Status: In progress
Development

Successfully merging this pull request may close these issues.

None yet

4 participants