[Gausssum-devel] Instructions for using gausssum2
Brought to you by:
baoilleach
From: Noel O'B. <no...@ca...> - 2005-10-14 16:11:45
|
Here is the start of some documentation on gausssum2: > cclib is the Python package on top of which GaussSum is built. cclib > does all the hard work of parsing computational chemistry log files, > performing various related calculations, and also making nice tables > of the results. GaussSum can be seen as a GUI interface to cclib. > > In other words, everything that GaussSum can do, you can do with > cclib. This means that you can write programs that extract data from > logfiles without having to worry about doing the extraction yourself > for all the different varieties and shapes of logfiles. > > As an example, here is a Python script that uses cclib to find out the > HOMO of every .log file in the current directory, and print the result > on the screen. > > from cclib.parsers import G03 > from glob import glob > > for logfile in glob("*.log"): > t = G03(logfile) > t.parse() > print logfile,t.HOMO > > And here's the output in a folder of mine: > [Insert output here] > > Although you may think that finding the HOMO is a relatively easy task > and suitable for a command like 'grep', you may forget to consider the > case for unrestricted calculations, or calculations that involve some > obscure combination of keywords. The advantage of using a library is > that it is likely that all possible problems have already been > discovered due to the large user base. Other parsing tasks are more > complicated and are completely unsuited to one-line commands, and > shell scripts. > > So, how does it work? (The following discussion assumes a basic > knowledge of object-oriented programming) > > In a general sense, you need to create an instance of a subclass of > the logfile object (the currently available ones are G03, and GAMESS, > but please add your own favourite program). In the example above, this > is done by the following statement "t = G03(logfile)". > > Next, call the parse() method of this object. In one pass of the file, > every useful piece of information is extracted and placed into > attributes of the object (please add your own extractions too). The > attributes can be accessed using the dot notation, e.g. t.HOMO > accesses the extracted information on the HOMO. > > If you want to perform one of the analysis methods present in cclib, > you need to call one of the 'calc' methods inherited from the > superclass, for example calcuvspectrum() uses the extracted > information on electronic transitions to convolute the uvspectrum and > place the result in t.uvspectrum. > > Finally, if you want to write out information to a file in a > tab-separated format, you can use one of the 'tidy' methods inherited > from the superclass, for example tidyevalue() writes out eigenvalue > information in a nice format along with the names of the molecular > orbitals. > > And now to specifics. > > Parsing G03 logfiles creates the following attributes (if present in > the logfile): > > Parsing GAMESS logfiles creates the following attributes (if present > in the logfile): > > The following 'calc' methods are available: > > The following 'tidy' methods are available: > > Notes for developers: > (unit testing) |