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

Node xc #231

Merged
merged 14 commits into from
Jan 30, 2024
Merged

Node xc #231

merged 14 commits into from
Jan 30, 2024

Conversation

gitpeterwind
Copy link
Member

@gitpeterwind gitpeterwind commented Nov 30, 2023

Tools for the nodewise DFT , mostly to make (zero bandwidth) derivative of a node.

Also orthogonalize MPI_FuncVector aka OrbitalVector.

Automatic determination of the right number of omp threads, based on hardware accessibilty. OMP_NUM_THREADS not used for MPI.

Unused memory reserved for GenNodes (GenNodeChunks) are cleaned every time nodes are deallocated: it appeared that the unused memory for GenNodes could be very large, and was kept until the tree was deleted, which sometimes happens only when the entire OrbitalVector was cleared.

It appeared that the operative system of Betzy had a "memory leak": (some deleted memory was not reused). The solution is to allocate memory in chunks of 32 MB (16MB ws not enough). NB: orbitals stored on disk with previous versions, can therefore not directly be read by this version.

Copy link

codecov bot commented Nov 30, 2023

Codecov Report

Attention: 159 lines in your changes are missing coverage. Please review.

Comparison is base (8107aab) 67.13% compared to head (c1d3953) 65.85%.

Files Patch % Lines
src/utils/ComplexFunction.cpp 0.00% 71 Missing ⚠️
src/treebuilders/DerivativeCalculator.cpp 0.00% 37 Missing ⚠️
src/trees/FunctionNode.cpp 3.84% 25 Missing ⚠️
src/trees/FunctionTree.cpp 4.34% 22 Missing ⚠️
src/utils/omp_utils.cpp 0.00% 2 Missing ⚠️
src/utils/parallel.cpp 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #231      +/-   ##
==========================================
- Coverage   67.13%   65.85%   -1.29%     
==========================================
  Files         185      185              
  Lines       10109    10206      +97     
==========================================
- Hits         6787     6721      -66     
- Misses       3322     3485     +163     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Comment on lines +80 to +88
* Same as RepresentableFunction, but output a matrix of values
* for all points in a node, given its NodeIndex.
*
*/
class RepresentableFunction_M {
public:
RepresentableFunction_M() {}
virtual Eigen::MatrixXd evalf(mrcpp::NodeIndex<3> nIdx) const = 0;
};
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this class actually used? I see there's a FunctionTree::integrateEndNodes function taking such an argument, but I can't find an actual implementation of any RepresentableFunction_M

Copy link
Member Author

Choose a reason for hiding this comment

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

Not yet: My original plan was to make a representableFunction_M for representing the XCpotential, so that the entire potential never needed to be stored. However I did not use it at the end. I still think it may/will be useful: in general it is much more efficient to treat all points of a node together, rather than one by one.

@ilfreddy ilfreddy merged commit 682642f into MRChemSoft:master Jan 30, 2024
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants