valence-labs / mess

MESS: Modern Electronic Structure Simulations
https://valence-labs.github.io/mess/
MIT License
13 stars 1 forks source link

Cache orbitals when constructing basis set #17

Open hatemhelal opened 3 days ago

hatemhelal commented 3 days ago

This diff introduces a cached function for looking up the basis set parameters and converting those into mess.Orbital instances. The cached object is centered on the origin so the last step is to move the basis functions to the correct atom center.

This appears to save some time in the benchmark added:

Name (time in ms)                           Min                Max               Mean            StdDev             Median               IQR            Outliers      OPS            Rounds  Iterations
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_construct_basis (NOW)              10.6405 (1.0)      11.6807 (1.0)      11.0971 (1.0)      0.4134 (1.0)      11.1947 (1.0)      0.5950 (1.03)          2;0  90.1137 (1.0)           5           1
test_construct_basis (0001_a11be28)     23.0007 (2.16)     24.9462 (2.14)     23.5519 (2.12)     0.7894 (1.91)     23.2954 (2.08)     0.5754 (1.0)           1;1  42.4594 (0.47)          5           1
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Still testing how this impacts the batching implementation.