pkozlows / fci

0 stars 0 forks source link

what to look for in pyscf fci mod #31

Open pkozlows opened 1 year ago

pkozlows commented 1 year ago

I want to spend a little time now learning about how pyscf works as a framework by which I can do computational chemistry exclusively using voice coding (me and GUIs don't get along well) and also to learn what an optimal implementation of FCI could look like. do you have any recommendations as to what I should bring my attention to? even though this is only an example, pyscf/examples/fci/01-given_h1e_h2e.py seems similar to the structure of what I implemented with h1e.npy and h2e.npy. pyscf/fci/cistring.py does have a lot of functions whose function I recognize, which may be a sign that I learn something :)

Walter-Feng commented 1 year ago

I never looked into the actual implementation of FCI in pyscf - I have only some knowledge about SCF procedures and some CCSD(T) in it due to ... uh ... some trifle jobs. What I can guarantee you is the h1e and h2e are direct copy from, e.g. SCF results, so consistent with pyscf dataflow.

Do you really need to learn pyscf algorithm for FCI? It's not like it's a bad choice, but it still feels to me you have something easier and more significant you can learn. If you want to proceed with FCI implementation, you might need to look at GUGA (Graphical unitary group approach).

Optimization of the code requires much more effort than having a good mathematical representation of the algorithm - e.g. mastering C/C++ codes, knowledges of memory management, SIMD techniques, math libraries, latencies, thread parallelization, etc., etc., etc. and etc. No intention to scare you, but don't underestimate the difficulty of reading the optimized code. Usually it would be 1~3 month without any positive feedback.