From: <ate...@us...> - 2006-05-10 22:20:21
|
Revision: 108 Author: atenderholt Date: 2006-05-10 15:20:20 -0700 (Wed, 10 May 2006) ViewCVS: http://svn.sourceforge.net/cclib/?rev=108&view=rev Log Message: ----------- Hopefully finished up density, more testing is needed. Modified Paths: -------------- trunk/src/cclib/method/density.py Modified: trunk/src/cclib/method/density.py =================================================================== --- trunk/src/cclib/method/density.py 2006-05-10 21:58:18 UTC (rev 107) +++ trunk/src/cclib/method/density.py 2006-05-10 22:20:20 UTC (rev 108) @@ -40,22 +40,22 @@ def calculate(self,fupdate=0.05,cupdate=0.002): """Calculate the density matrix given the results of a parser""" - if not self.parser.parsed: - self.parser.parse() + #if not self.parser.parsed: + # self.parser.parse() #do we have the needed info in the parser? - if not hasattr(self.parser,"mocoeffs") - and not hasattr(self.parser,"aooverlaps") - and not hasattr(self.parser,"nbasis") + if not hasattr(self.parser,"mocoeffs") \ + and not hasattr(self.parser,"aooverlaps") \ + and not hasattr(self.parser,"nbasis") \ and not hasattr(self.parser,"homos"): self.logger.error("Missing mocoeffs or aooverlaps") return False #let the caller of function know we didn't finish self.logger.info("Creating attribute density: array[3]") size=self.parser.nbasis - beta=(len(self.parser.mocoeffs)==2) + unrestricted=(len(self.parser.mocoeffs)==2) - if beta: + if unrestricted: self.density=Numeric.zeros([2,size,size],"f") else: self.density=Numeric.zeros([1,size,size],"f") @@ -66,9 +66,12 @@ col=Numeric.reshape(self.parser.mocoeffs[spin][i],(size,1)) colt=Numeric.reshape(col,(1,size)) - tempdensity=Numeric.matrixmultipy(col,colt) - density[spin]=Numeric.add(density[spin],tempdensity) + tempdensity=Numeric.matrixmultiply(col,colt) + self.density[spin]=Numeric.add(self.density[spin],tempdensity) + if not unrestricted: #multiply by two to account for second electron + self.density[0]=Numeric.add(self.density[0],self.density[0]) + if __name__=="__main__": import doctest,g03parser doctest.testmod(g03parser,verbose=False) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |