Open susilehtola opened 3 years ago
I am almost ready with a full rewrite to Rust (keeping Python interfaces) so this may also be a good moment to add some API changes.
I would very much like to extend the code for more quadrature schemes and partitioning schemes. Which ones would be the most important to start with in your opinion? If there is some open source reference data when implementing, that would help a lot also.
Schemes in a rough order of importance / ease of implementation.
Angular schemes:
Radial schemes:
Partitionings:
In addition to these, one should also include support for pruned grids, since they may lead to noticeable increases in performance. Support for the SG-0, SG-1, SG-2, and SG-3 standard grids would also be nice.
For several of these, especially the pruning, you can look into the code in Psi4 and PySCF.
I am almost ready with a full rewrite to Rust (keeping Python interfaces) so this may also be a good moment to add some API changes.
Btw what do you see as the benefits of Rust? NumGrid is a pretty compact project
Thanks for the references! Rust: more speed and fewer bugs :-) See also https://www.nature.com/articles/d41586-020-03382-2.
Now after the library rewrite I will soon start extending it to more quadratures. For me first goal is to speed up the space partitioning for larger molecules. Then more radial options.
I will soon have the LKO and SSF partitioning schemes in place. Just need to do a bit more testing.
numgrid sounds like a promising project, but is handicapped by the limitation to a single angular grid aimed for Gaussian basis sets, and the single Becke partitioning. It would be significantly more useful, if it had all the standard radial quadratures, as well as more modern partitionings.
Are there any plans to expand the project in this direction? API changes will become necessary to allow the user choosing the grid.