On Wed, 2006-07-12 at 14:32 -0600, Rick Muller wrote:
> Should certainly be possible to make a more robust interface.
> Currently the HF and DFT codes have the following interface:
>
> >>> h2 = Molecule('H2',atomlist = [(1,(0,0,-0.7)),(1,(0,0,0.7))])
> >>> energy, orbital_energy, orbitals = dft(h2)
>
> If you also have the basis set, you can compute both orbital
> amplitudes and densities at points in real space.
>
> Let me know if I can help in any way. I've written code along these
> lines before, and can probably dig up something close to what you need.
Sounds good. I'd like to see that code if you can find it.
I think a first attempt to make a useful bridge between cclib and
PyQuante would be for cclib to provide a function density() as follows:
def density(mocoeffs, coordinates, basis set, delta = 0.1, cube = None):
"""Calculate the electron density using PyQuante.
Requires:
mocoeffs - mol. orb. coefficients in terms of atom orbitals
coordinates
basis set - a set of Gaussian functions per atom (expressed as
per PyQuante user guide)
Optional:
delta - the dx/y/z value for points in the cube. Defaults to
0.1Ang or something sensible.
cube - the dimensions of the cube. Default is something sensible
Returns:
a Numeric array of the density (which can be visualised with
MayaVi for example)
"""
If this makes sense to you and seems doable, I'll start hacking basis
set info out of log files. Of course, I will make sure that the above
code will work equally well for users of PyQuante and other comp. chem.
packages.
In PyQuante everything is Gaussian-based right? No STOs? If so, that
rules out ADF I think.
Noel
P.S. Let me know if you want to move this discussion from the pyquante
users list.
|