-
Notifications
You must be signed in to change notification settings - Fork 19
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
Node xc #231
Conversation
Codecov ReportAttention:
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. |
* 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; | ||
}; |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
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.