Skip to content

Conversation

@joshkamm
Copy link
Member

@joshkamm joshkamm commented Jan 7, 2026

Notes from Paul 1/7/26

  • Paul made some important changes in becke.h. The reason this is important is because we might need to make a change to zest
  • Without these changes, you can't do DFT in a gaussian basis set
  • In gauss.h, a function name changed to eval_ghd_ke which should have a "d" because it's double precision
  • Changed grid_util.h because Paul thought a couple functions shouldn't be in grid_util.h
  • gto_grid.h -> cosmetic changes
  • integrals.h -> thresholds got changed, seem fine but we should test them
  • reduce.h -> we were digging due to nvidia compiler errors but that should have been fixed since then
  • write.h -> pay attention to write_molden_g
  • src/libio/CmakeLists.txt -> Minfo=accel impacts compiler printout, we might not want it
  • read.cpp -> LMAX_AUX=7 because there's a decent chance Paul programmed higher angular momentum functions over the past year so in principle the aux basis could use those but it could surprise people because it impacts the size of integral matrices printed out
  • async stuff got turned off
  • becke.cpp -> gassian basis DFT functionality added, bfield functionality added
  • cuda_util.cpp -> slight performance improvements
  • gauss.cpp -> derivatives of gaussian functions through l=4
  • hess.cpp -> hessian code changed from single to double precision but Paul doesn't remember why, expanded to d and f functions
  • integrals_ps.cpp -> Vaibhav may have also made changes that we'll need to pay attention to
  • jellium_ints.cpp the jellium needs to know what its positive charge is which comes off the number of electrons, No=# of occupied orbitals and Ne=# of number of electrons, this will break results silently without a compiler error
  • murak.cpp -> single precision grid wasn't working so it just calls double precision function now
  • pVpd.cpp -> Paul added g functions
  • reduce.cpp -> double** vs double*

Merging this branch would break backwards compatibility in terms of restarting with already computed integrals

Paul accidentally deleted the following line when merging conflicts
void compare_pao_12(bool gbasis, int natoms, int* atno, double* coords, int nrad, int nang, double* ang_g, double* ang_w, vector<vector<double> >& basis);

Think about whether Paul will be pushing any more changes before pushing to this branch

Create an issue / branch in zest to test this branch as a dependency and merge in conjunction with this one

  • Implement changes
  • Update documentation
  • Update tests
  • Look through pull request changes
  • Clean up code and retest
  • Increment version number

Closes ISSUE

Github copilot pull request summary

This pull request introduces a broad set of enhancements and new functionality to the codebase, primarily focused on extending grid, basis, and integral utilities, improving precision handling, and adding new helper and debug functions. The changes also include updates to function signatures for consistency and expanded capabilities, as well as new methods for reading, writing, and processing data.

Grid and Basis Utilities

  • Added new functions to save atomic orbital basis and density grids (save_grid_ao_basis, save_grid_rho), and included additional headers in grid_util.h for improved modularity. ([include/grid_util.hR4-R15](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-01e9abd795df3093dfcaba45d39f1ea708a5c387dd115b378a866e11767e3c14R4-R15))
  • Introduced get_becke_grid_sparse for sparse grid generation, and new double-precision and derivative-based density/basis computation functions in becke.h. ([include/becke.hR32-L42](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-c9ca3b27c7f5d44b0030580b5a13f5789ca54716445e9d3953e11720f5f88ce7R32-L42))
  • Added functions for evenly spaced radial grid generation and new variants for Murak grid creation in murak.h. ([include/murak.hL25-R32](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-1210581ed2d08beacbb25f2abade720efec51c620d6b9709c091ad52c5d0e6d3L25-R32))

Precision and Threshold Improvements

  • Updated threshold constants for grid weights and coefficients to much lower values to improve numerical stability and precision in integrals.h. ([include/integrals.hL9-R12](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-e65c83c6852ca1bdc7527bba55e8d7100c315213aec302597d7d796848d9a8dcL9-R12))
  • Added double-precision and derivative variants for basis evaluation in gauss.h and pVp.h. ([[1]](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-7ab6d36d5234b0bae0031b96c36e01cb3cd592c157e8e5c20615cab3fed3b9b0R12-R16), [[2]](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-3b691615f7532effff244aa000e1898c5b18ece183ed5c942d8ee38461e00565R20))

Integral and Reduction Functionality

  • Expanded and updated integral computation functions to support new arguments and batching for prolate spheroidal coordinates, including debug helpers and new batch parameters for 3c/4c integrals in integrals.h. ([include/integrals.hR122-R131](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-e65c83c6852ca1bdc7527bba55e8d7100c315213aec302597d7d796848d9a8dcR122-R131))
  • Added new reduction functions supporting double precision and additional output arguments for 2c/3c integrals in reduce.h. ([include/reduce.hR77-R84](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-a8bf75dba7be671e490c824660d382c3a3834b312897f61f62abd462dedec180R77-R84))

Data I/O and Processing

  • Added new functions for reading integer vectors and CSV files, CI state reading, and expanded DFT value saving and processing capabilities in read.h and write.h. ([[1]](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-f76e40f4a2bbaf381a61146fa1fc2d74dc58d3cee36bb75a95271ab53613527aR42-R43), [[2]](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-f76e40f4a2bbaf381a61146fa1fc2d74dc58d3cee36bb75a95271ab53613527aR72), [[3]](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-679ea06405158b2febc083749049234de570eb23a9456485a2b3aaf33913fec4L28-R34))
  • Introduced new vector and matrix utility functions for GPU and CPU, including linear solver routines in cpu_util.h and cuda_util.h. ([[1]](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-4cedc2f72b6e4a82174ab2ca082662ee83a0f10681a3afd90678623f9bcc61efR25-R26), [[2]](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-9d2df640cb138830338dcfb3c8a830757662ef4fbb7a165c483e6db7c015f19dR19-R20))

Symmetry and Miscellaneous

  • Added new atomic symmetry determination functions and extended symmetry utilities in symm.h. ([include/symm.hL26-R26](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-7606cd59f861a73d2afbb40798e609a1e8f938f7cf1104b40329b04af3f879f3L26-R26))
  • Updated function signatures for electric field computation to support double precision and additional arguments in integrals.h. ([include/integrals.hL76-R77](https://github.com/ZimmermanGroup/SlaterGPU/pull/66/files#diff-e65c83c6852ca1bdc7527bba55e8d7100c315213aec302597d7d796848d9a8dcL76-R77))

These changes collectively improve the flexibility, precision, and usability of the computational chemistry codebase, especially for grid-based calculations and advanced integral evaluation.

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.

4 participants