{"id":40129449,"url":"https://github.com/berquist/pyquante","last_synced_at":"2026-01-19T13:31:41.429Z","repository":{"id":32987480,"uuid":"36614842","full_name":"berquist/PyQuante","owner":"berquist","description":"A GitHub copy of the PyQuante quantum chemistry package, written in Python/C.","archived":false,"fork":false,"pushed_at":"2015-05-31T17:53:27.000Z","size":1664,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-27T19:41:05.527Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://pyquante.sourceforge.net/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berquist.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-31T17:52:58.000Z","updated_at":"2025-04-09T16:08:16.000Z","dependencies_parsed_at":"2022-09-11T02:11:08.782Z","dependency_job_id":null,"html_url":"https://github.com/berquist/PyQuante","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/berquist/PyQuante","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquist%2FPyQuante","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquist%2FPyQuante/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquist%2FPyQuante/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquist%2FPyQuante/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berquist","download_url":"https://codeload.github.com/berquist/PyQuante/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquist%2FPyQuante/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28569194,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T12:50:50.164Z","status":"ssl_error","status_checked_at":"2026-01-19T12:50:42.704Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-19T13:31:41.364Z","updated_at":"2026-01-19T13:31:41.421Z","avatar_url":"https://github.com/berquist.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PyQuante - Python Quantum Chemistry\n[Rick Muller](mailto:rmuller@sandia.gov) v1.6.5\n\n## What is PyQuante?\n[PyQuante](http://pyquante.sourceforge.net/) \n([Download Site](http://sourceforge.net/projects/pyquante)\n[User Guide](userguide.html)) \nis an open-source suite of programs\nfor developing quantum chemistry methods. The program is written in\nthe [Python](http://www.python.org) programming language, but has many\n\"rate-determining\" modules also written in C for speed. The resulting\ncode is not nearly as fast as\n[Jaguar](http://www.schrodinger.com/Products/jaguar.html),\n[NWChem](http://www.emsl.pnl.gov/docs/nwchem/nwchem.html),\n[Gaussian](http://www.gaussian.com/), or\n[GAMESS](http://www.msg.ameslab.gov/GAMESS/GAMESS.html), but the\nresulting code is much easier to understand and modify. \n\nThe goal of\nthis software is not necessarily to provide a working quantum\nchemistry program (although it will hopefully do that), but rather to\nprovide a well-engineered set of tools so that scientists can\nconstruct their own quantum chemistry programs without going through\nthe tedium of having to write every low-level routine. More\ninformation, including links to the download page, is available at\n[the PyQuante Home Page](http://pyquante.sourceforge.net). \n\nHere is an example of what closed-shell Hartree-Fock scripts look\nlike:\n\n    from PyQuante import Molecule\n    from PyQuante.Ints import getbasis, getints, get2JmK\n    from PyQuante.hartree_fock import get_guess, get_energy\n    from PyQuante.LA2 import mkdens, geigh\n    \n    h2 = Molecule('H2',\n                     [(1,  (0.00000000,     0.00000000,     0.36628549)),\n                      (1,  (0.00000000,     0.00000000,    -0.36628549))],\n                     units='Angstrom')\n\n    def rhf(atoms,**opts):\n            \"General wrapper for restricted closed-shell hartree fock\"\n            ConvCriteria = opts.get('ConvCriteria',1e-6)\n            MaxIter = opts.get('MaxIter',20)\n            basis = opts.get('basis',None)\n            bfs = getbasis(atoms,basis)\n            S,h,Ints = getints(bfs,atoms)\n            orbs = get_guess(h,S)\n            nel = atoms.get_nel()\n            enuke = atoms.get_enuke()\n            nclosed,nopen = divmod(nel,2)\n            eold = 0.\n            for i in range(MaxIter):\n                    D = mkdens(orbs,0,nel/2)\n                    G = get2JmK(Ints,D)\n                    F = h+G\n                    evals,orbs = geigh(F,S)\n                    energy = get_energy(h,F,D,enuke)\n                    print energy\n                    if abs(energy-eold) \u003c ConvCriteria: break\n                    eold = energy\n            return energy\n    \n    rhf(h2)\n\nEven without knowing any Python, it is easy to see what the various \nsteps in the program are doing.\n\n## Current features\n- Hartree-Fock: Restriced closed-shell HF and unrestricted open-shell\n  HF;\n- DFT: LDA (SVWN, Xalpha) and GGA (BLYP, PBE) functionals;\n- Two electron integrals computed using Huzinaga, Rys, or\n  Head-Gordon/Pople techniques. C and Python interfaces to all of\n  these programs.\n- MINDO/3 semiempirical energies and forces\n- CI-Singles excited states\n- DIIS convergence acceleration\n- Second-order Moller-Plesset (MP2) perturbation theory\n\nUpcoming release road map (your suggestions are welcome:\n[Email Me](mailto:rmuller@sandia.gov)):\n\n- Spin polarized (aka unrestricted spin) DFT\n- Divide-and-conquer linear scaling Hamiltonians\n- Restricted open-shell Hartree-Fock and GVB \n- Forces\n- Hybrid functionals\n- CI/MCSCF\n- MPn/CCSD\n\n\n## Programming Philosophy\nI always strive for simplicity over speed. Data structures change more\noften than functions. My aim here is to be more rigid about functional\ninterfaces than data interfaces. Which means that I only program\nfunctions in C, not data structures themselves, which I keep in python\nso I can change them as the needs of the code evolve. I believe that\nthe first mistake people make in object-oriented programming is to\nmake a very rigid object structure that cannot evolve with the code.\n\nCurrently the only C routines are the integral code and the NumPy\nroutines. This may change out of necessity if there appear to be huge\nbottlenecks keeping some of this in python, but I'd rather keep as\nmuch code in python and only put routines in C if I really, really\nneed to.\n\n## License\nThe software is released under the modified BSD license, which means\nthat everyone is free to download, use, and modify the code without\ncharge.\n\n## Obtaining the Code\nThe program is available in tarball form from the \n[PyQuante Download Page](http://sourceforge.net/projects/pyquante). The CVS archive for the program is also at Sourceforge, and is recommended for anyone wanting to stay on the bleeding edge; information on how to access the CVS archive is available [here](http://sourceforge.net/cvs/?group_id=43213).\n\n##Building the Code \nMuch of the code is written in python, and thus is platform\nindependent. The rest of the code now uses the python distutils\nprocedures for building the C modules. Type\n\n\t% sudo python setup.py install\n\nand the code should build and install properly. I've tested this on\nLinux, Windows/Cygwin, and Macintosh OS X.\n\nGetting Started\n---------------\nThere is a [User Guide](userguide.html) and other documentation in\nthe Doc subdirectory, and tests in the Tests subdirectory.\nSubscription to the\n[mailing list](http://lists.sourceforge.net/lists/listinfo/pyquante-users) is highly recommended for further support. [Email me](mailto:rmuller@sandia.gov) if you need additional help.\n\nContributors\n------------\n- Konrad Hinsen helped with the original setup.py file\n- Tom Manz wrote the Epstein-Nesbet pair correlation theory that is \n  distributed in the EN2.py module\n- Daniel Rohr has written and debugged the EXX density functional\n  code\n- Nigel Moriarty has made contributions to the semiempirical code\n- Huub Van Dam was very helpful in implementing gradient-corrected \n  functionals. His http://www.cse.clrc.ac.uk/qcg/dft/[Density\n  Functional Repository Web Site] is an essential reference for anyone \n  trying to implement density functionals. \n\n## Changelog\n- 1.6.5: 2014-10\n  \t* Removed dependence on oldnumeric, which is no longer supported in Numpy\n- 1.6.3: 2010-05\n        * Code release with libint functionality\n\n- 1.6.2: 2009-02-24\n        * Removed the shebangs because they made the FC installation\n\tbarf\n\t* Fixed a problem with MINDO in the TessSuite.py\n\n- 1.5.0: 2005-12-19\n\t* A User's Guide\n\t* EXX density functionals\n\t* Gradient-corrected density functionals\n\t* Fermi-Dirac finite-temperature occupations in DFT and HF\n\t* Minor interface improvements in the software routines\n\n- 1.4.0: 2005-10-25\n\t* Fixed a serious bug in the AtomicGrid staggering (the spingrid=True)\n  \t\tfunctions.\n\t* Made charge a property of Molecule, and removed it from the\n  \t\targuments in hartree_fock.py and dft.py.\n\t* Started a major interface change where all non-essential\n  \t\targuments to functions will be passed in keyword argument\n  \t\tdictionaries, since this provides *much* more flexibility.\n\n- 1.3.1: 2005-07-07\n\t* Moved the cints, crys, chgp routines into the PyQuante subdirectory.\n\t* Renamed chgp.index to chgp.iiindex, which fixed a compile error under\n  \t\tgcc 4.0 (I think).\n\n- 1.3.0: 2005-06-01\n\t* Added a capability to do three-center integrals over Gaussians,\n  \t\twhich is useful for EXX and OEP.\n\t* Fixed a bug in cints.binomial() where the return type\n  \t\twas incorrectly specified.\n\t* Made the typing slightly stronger in CGBF and PGBF\n\t* Fixed a bug in mopac_doverlap submitted by Andrew Ryzhkov\n\n- 1.2: 2004-10-19\n\t* Relicensed the code under the modified BSD license.\n\n- 1.1.1: 2003-04-14\n\t* Got MP2 working, so I decided to release a new version of the code.\n\n- 1.1.0: 2003-04-09\n\t* Got Pulay's DIIS convergence acceleration working; this is now the\n  \t\tdefault converger in both hartree_fock and dft.\n\t* Got a simple version of Configuration-Interaction Singles working.\n\t* Made the test suite a little bit more robust; hopefully the\n  \t\tvariations in the results that other people complained about are\n\t\tnow fixed.\n\n- 1.0.5: 2002-12-12\n\t* Added a MINDO3.py module, which performs semi-empirical calculations\n  \t\tusing Dewar's MINDO/3 Hamiltonian\n\t* Added a Dynamics.py module to run molecular dynamics. Currently\n  \t\tonly the MINDO3.py module supplies forces.\n\t* Added a Minimizers.py module with a steepest descent minimizer\n  \t\tcurrently resides. \n\n- 1.0.4: 2002-09-28\n\t* Fixed a bug whereby the different integral modules cints, chgp, and\n  \t\tcrys could not be imported at the same time. Reported by Konrad\n\t\tHinsen.\n\t* Fixed a bug in crys related to the Rys polynomials. Reported by \n\t\tPat Nichols.\n\n- 1.0.3: 2002-09-09\n\t* Fixed an underflow bug in DFunctionals.py\n\t* Slightly improved the test suite\n\n- 1.0.2:\t2002-09-08\n\t* Fixed a bug in CGBF/contr_coulomb where the return values were\n  \t\tmultiplied by the wrong normalization constants (all a.norm()).\n\t* Wrote a test suite (Tests/TessSweet.py), that also contains the\n  \t\texpected result of each program.\n\t* Put additional comments in MolecularGrid.py, AtomicGrid.py, and\n  \t\tDFunctionals.py on the methods these are based upon.\n\n- 1.0.1: 2002-09-01\n\t* Rearranged the files according to the \"proper\" Python distutils\n  \t\tmodule, according to Konrad Hinson's suggestions.\n\n- 1.0.0: 2002-07-22\n\t* Original PyQuante release, naively called \"1.0\".\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberquist%2Fpyquante","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberquist%2Fpyquante","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberquist%2Fpyquante/lists"}