[ANN] PyQuante 1.0.3 is available

Rick Muller rpm@wag.caltech.edu
Mon, 09 Sep 2002 12:51:40 -0700

PyQuante is a suite of programs for writing quantum chemistry
software. The program is written in the Python programming language,
but has many "rate-determining" modules also written in C for
speed. The resulting code is not nearly as fast as Jaguar, Gaussian,
or GAMESS, but the resulting code is much easier to understand and

The goal of this software is not necessarily to provide a working
quantum chemistry program (although it will hopefully do that), but
rather to provide a well-engineered set of tools so that scientists
can construct their own quantum chemistry programs without going
through the tedium of having to write everything.

The program is released under the GNU General Public License and is
thus freeware. PyQuante can be downloaded from
http://pyquante.sourceforge.net. People can subscribe to the
pyquante-users mailing list at

Here is an example of what the closed-shell Hartree-Fock scripts look

(best viewed in a fixed-width font...)

def rhf(atomlist):
     "General wrapper for restricted closed-shell hartree fock"
     from basis_631ss import basis
     bfs = getbasis(atomlist,basis)
     S,h = get1ints(bfs,atomlist)
     Ints = get2ints(bfs)
     energy = scf(atomlist,S,h,Ints)
     return energy

def scf(atomlist,S,h,Ints,charge=0,ConvCriteria=0.0001,MaxIter=20):
     "Run the self-consistent field optimization of the  wave function"
     evecs = get_guess(h,S)
     nel = get_nel_from_atomlist(atomlist,charge)
     nclosed,nopen = divmod(nel,2)
     enuke = get_enuke_from_atomlist(atomlist)
     print "nocc, enuke: ",nocc,enuke
     eold = 0.
     for i in range(MaxIter):
         D = mkdens(evecs,0,nocc)
         G = get2JmK(Ints,D)
         F = h+G
         evals,evecs = GHeigenvectors(F,S)
         energy = get_energy(h,F,D,enuke)
         print energy
         if abs(energy-eold) < ConvCriteria: break
         eold = energy
     return energy