Thursday, May 27, 2010

New Program!

The new program for doing electron-nuclear dynamics is now in progress. I settled on a name, too: Python Accelerated Coherent states Electron-nuclear dynamics = PACE.

So far, it can handle basis sets using NWChem-like syntax, geometry in Angstrom or Bohr, perform UHF SCF and gradients, has geometry optimization using steepest descent, and has a job database system. Some of the ideas in NWChem are shamelessly copied. After all, imitation is the sincerest form of flattery. As an aside, the design philosophy of NWChem is excellent, but I think they made a grave error in committing to Fortran as the language.

This program is basically a set of tools implemented as Python modules. The job interpreter just strings together basic tasks in a user-friendly way. For example, the algorithm for geometry optimization should not have to be aware of all possible theories for computing energy and gradients and the user should just be able to specify a level of theory and start the optimization.

Python allows rapid prototyping, getting an algorithm hammered out and bugs identified and fixed. One of the really beautiful features is that once a procedure has been solidified, it can be made faster by implementing it in C++. In this way, data flow is performed in Python (where it is easy to handle) and computational bottlenecks are compiled and hence very fast.

I just finished getting UHF gradients to work after a peculiar bug that caused diatomics having p-orbitals to be computed incorrectly. Now the normal Born-Oppenheimer molecular dynamics algorithms are conserving energy. Once I finish this test run, I will be able to have a direct comparison with CSTechG (the old code), both in results and time taken.

1 comment:

  1. I just read your blog for the very first time. I'm very surprised to see that, there are not many people out there who will appreciate your work. And I know the thing about FORTRAN, it's bloody over-hyped. But after working for three years on cuda and VENUS Chemical Dynamics which was developed in your university, somehow FORTRAN is still faster ! I hope your python-c++ integration went well. Nice blog man.

    ReplyDelete