forked from abacusmodeling/abacus-develop
-
Notifications
You must be signed in to change notification settings - Fork 145
Refactor: new gint module #5869
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
mohanchen
reviewed
Jan 19, 2025
mohanchen
reviewed
Jan 22, 2025
mohanchen
reviewed
Jan 22, 2025
source/module_hamilt_lcao/module_gint/temp_gint/unitcell_info.h
Outdated
Show resolved
Hide resolved
mohanchen
approved these changes
Feb 10, 2025
Fisherd99
pushed a commit
to Fisherd99/abacus-BSE
that referenced
this pull request
Mar 31, 2025
* remove redundant parameters * version 0.0 * inline some simple functions * change type alias * version 0.1 * version 0.2 * for test * fix some bugs, the first correct version * improve efficiency ang rename some variables * small change * add openmp support to gint_vl * remove some comments * remove some comments * remove some unused code related to spin in gint_k * enable rho calculation * support fvl calculation * add nspin=4 support and change interface * change some raw pointer to shared_ptr * rename hamilt::HContainer * support tau calculation * fix a bug * add vlocal metagga support * support force metagga calculation * change shared_ptr to raw pointer of GintAtom * improve performance * remove destructor * add timer * add timer * improve performance * change 2D ptr to 1D ptr * modify zeros function * replace array pool with vector * Revert "Refactor:remove cal_tau from ElecStateLCAO (deepmodeling#5802)" This reverts commit 414446a. * fix a bug * remove some rudundant functions * simplify member function of biggrid_info * rename some variables * unify some variables name * change some variable to static * fix a bug and delete a redundant operation * add new gint interface * change new_grid_tech to new_gint * revert some incorrect changes * add a unit test * change some names * check nullptr * [pre-commit.ci lite] apply automatic fixes * change DM to dm * change HRGint to hr_gint * modify variable name * fix a bug --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
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
Refactor
Refactor ABACUS codes
The Absolute Zero
Reduce the "entropy" of the code to 0
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.
Background
The original
module_gintwas disorganized, with input and output for different grid integration tasks mixed together. Additionally, the overall framework for grid integration was poorly structured. This PR rewrites the grid integration framework. The new code is located undersource/module_hamilt_lcao/module_gint/new_gint.Since the new code is not yet complete—GPU version grid integration, for example, has not been implemented in this PR—it is considered an experimental PR. Only a portion of the old grid integration interfaces have been replaced with the new grid integration interfaces and the old grid integration code will be retained until the new grid integration code is fully completed, at which point it will be removed. Moreover, the new grid integration code will only be compiled when
-DNEW_GINTis set during CMake configuration.Unit Tests and/or Case Tests for my changes
What's changed?
module_gintcode, if-DNEW_GINTis set during CMake configuration, some interfaces of old version ofmodule_gintwill be replaced with new version.Performance Comparison
Based on current testing, the new grid integration code shows slightly higher efficiency due to more detailed optimizations。 Below are the results from running the si64 in tests/performance on my computer using
OMP_NUM_THREADS=4 mpirun -n 4 abacus: