-
Notifications
You must be signed in to change notification settings - Fork 89
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
Elastic constants #884
Comments
Actually I'm not sure if it's the precompilation or just the computation, should investigate (profile). |
Thanks for the basic setup ! I will play a bit with it. I'll let you know as soon as I've been able to do the profiling. |
From the profiling a lot of the time seems to be devoted to the computation of the Hessian involved in the ForwardDiff rule applying to the self_consistent_field function. But I'm not sure that I'm reading the graph correctly. |
Can you maybe post a screenshot? If that's the case it's actually computation and not compilation and we should probably optimize it. |
Cool, looks similar to what I did for the lattice constant sensitivities. We can probably simplify a bit with proper update constructors or set lattice functions for planewavebasis, which is needed for lattice optimisations as well. Regarding performance: The tolerances in solve omega+k are not yet tuned very well and parallelisation could be improved, but maybe there are more obvious things, too. |
Sorry for the delay ! I'm not sure a screen of the flame graph is readable but here is the file generated by ProfileView. Apparently you can just do "ProfileView.view(nothing)" and then open the file for an interactive flame graph ! |
Nothing weird here, just lots of ffts and matmuls, so yeah looks like it needs some finetuning |
cc @LaurentVidal95
Elastic constants appear to work more or less out of the box (with one fix), we should probably fix and advertise them in an example. It does take ages to precompile the forwarddiff stuff though, I'm not sure what we can do about that...
The text was updated successfully, but these errors were encountered: