jjgoings / McMurchie-Davidson

do a simple closed shell Hartree-Fock using McMurchie-Davidson to compute integrals
BSD 3-Clause "New" or "Revised" License
78 stars 17 forks source link

Changing source code #19

Closed urwald closed 3 years ago

urwald commented 3 years ago

Hi, I rewrote your integral engine in C++ for using it in my own code. However, I have some bugs regarding the nuclear attraction integrals in my code and I would like to add some print()-statements in your source code to see e.g. the values of nuclear attraction integrals between primitive gaussians. If I change the code in mmd/integrals/reference.py and rebuild with python setup.py build_ext --inplace install --user the changes are not working. I suggest that this has to do with the already existing files in /cython. I am very inexperienced with Python, could you please tell me 1) whether I am allowed to change the source code at all and 2) how to solve this cython issue? Thanks a lot!

AlexB67 commented 3 years ago

Hi, I think you need to change onee.pyx in the cython directory, then rebuild in the way you did. Not the reference.py. I just put a print statement in to test it, and it worked.

jjgoings commented 3 years ago

Hi @urwald

@AlexB67 is right, the integral routines that are actually used in MMD are in the cython folder. You'll want to make changes there and re-compile, as you have done.

I kept the Python implementation around in the mmd/integrals folder, but this is never used or called and serves as a file for my own reference. It's the implementation that matches the code on my blog, so I wanted to keep it around somewhere, but I also have a reference implementation in the mmd/backup folder as well...

Anyway, I admit this is confusing, so I'll move those out. It would be cool to allow one to toggle between a "pure" Python and Cython implementation of integrals, but the reference.py integrals are incomplete and it would break some functionality downstream.

jjgoings commented 3 years ago

OK, I see now that mmd/integrals serves to hold the cythonized integrals, so that's why we keep it around. I'll still need to move things around for clarity, but right now I cannot compile correctly on a new Apple M1 (great.), so I'll get back to this once I figure out why all my tests fail.